valid,invalid

関心を持てる事柄について

Cybozu Meetup で聞いた各社の技術ブログ運用の話と、Quipper のブログ再開について

Cybozu Meetup で聞いた採用文脈でのブログ運用の話と、Quipper のブログ再開の話です。*1 Quipper のブログ再開 所属する Quipper でも最近プロダクトチームのブログを再開しました。 quipper.hatenablog.com 自分も早速記事を書き、本日公開されました。 q…

Roppongi.jsで『エンジニアも気にしたい色のアクセシビリティ』についてLTをしてきました

第3回 Roppongi.js に参加し、『エンジニアも気にしたい色のアクセシビリティ』というタイトルでLTをしました。 スライドのタイトルを575にしたかったものの「エンジニア アクセシビリティ 気にしよう」のような駄作しか生まれなかったために断念しました。 …

Rails のフロントエンドのレベル上げ

第15回 Meguro.rb に参加し、『フロントエンドのレベル上げ 〜Rails エンジニアが Webpacker を使う場合〜』というタイトルでLTをしました。 お気付きの通りスライドと本記事のタイトルが違いますが、スライドのタイトルを575にし忘れるという痛恨のミスがあ…

Generative Art を始めて7日間、作品を毎日公開した記録

ゴールデンウィーク(以下、GW)の途中で以下の記事を読んで Generative Art (ジェネレーティブアート - Wikipedia)*1 なるものを知り、試しに触ってみたら面白かった。 ジェネラティブアートを始めよう|なめらかサンショウウオ|note Generative Art with …

GitHub GraphQL API v4 を JavaScript から利用する

TL;DR 開発している Slack bot で発生する N+1 問題を解消するために GitHub GraphQL API v4 を利用した クライアントサイド(今回は JavaScript)側から使ってみただけだが、かなり開発体験が良かった 背景: review-waiting-list-bot について review-waiti…

babel-eslint を使って非標準仕様でも lint できるようにする

Parsing error on ESLint review-waiting-list-bot の実装中に以下のようなオブジェクトの分割代入するコードを書いたら eslint で parse error が起きるようになってしまった。 const { authors, ...conditions } = { authors: [], owner: '', repo: '' } $…

技術的負債を抱えながら突っ走る -日々15分の改善活動-

開発しているシステムが大規模かつ老朽化しかけていることもあり、最近は負債の返却を念頭に置いて普段の開発をしている。 前提として、個人的には負債を返す頻度は多いほど良い*1と考えている。 この立場に立つときに生まれる問い、「では、日々の開発のス…

package.json の dependencies を JavaScript のコード内で参照する

package.json に書かれた、依存しているライブラリの名前 (dependencies) を JavaScript のコード内で参照するやり方。 import pkg from './package.json'; const dependencies = Object.keys(pkg.dependencies) const devDependencies = Object.keys(pkg.de…

brew cleanup でディスクの空き容量を増やす

brew は古くなった formula を自動的に消してくれないので、使い続けるほどにインストールしたパッケージが積もってディスクを圧迫する。 FAQ — Homebrew Documentation に書いてある brew cleanup を試したら 4GB ほどの空き領域を得られた。 How to use br…

スプレッド構文と Object.assign の違い

JavaScript の Object の spread operator (スプレッド構文) と Object.assign の違いを調べてわかった気になるが何度も忘れるので整理 結論 実質ほぼ同じことが実現できるが互換性の問題があるので Babel や TypeScript でトランスパイルするなら spread op…

React で SVG を描画するための use タグでは xlinkHref を使う

React で use tag 使うときの躓き 結論 sprite - SVG use tag and ReactJS - Stack Overflow にある通り xlinkHref を使うとよい。 <svg> <use xlinkHref="#my-logo" /> </svg> 古いバージョンでは dangerouslySetInnerHTML を使うしか回避策が無かったようだが、今ではこの方法は避けたほうが良い。…

JavaScript が動作する Capybara の feature spec でブラウザのコンソールを確認する

結論 page.driver.browser.manage.logs.get(:browser) 調べた経緯 フォームの text input に対する fill が働かないのでどうしたかと思い、Selenium で操作中のブラウザをのぞいてみると React の component が一切 render されていなかった。 どこかで Java…

休日の成果を手放しに称賛しない

土日祝日などの勤務時間外にがんばって出した成果を「やっていき」「圧倒的当事者意識」などと手放しに称賛しない方が良いと思っている。 「いやー土日にがんばるなんてスゴイっすね〜〜〜」と褒められて気分良くなったりするんだけど往々にしてそもそも実現…

PhantomJS + Poltergeist を Selenium + Headless Chrome で置き換える (2) Teaspoon による JavaScript test 編

PhantomJS + Poltergeist を Selenium + Headless Chrome で置き換える (1) Rails + Capybara による feature spec 編 - valid,invalid の続き。 teaspoon.env の変更内容について Capybara + Selenium + headless Chrome の設定例はググると結構出てくるも…

PhantomJS + Poltergeist を Selenium + Headless Chrome で置き換える (1) Rails + Capybara による feature spec 編

レガシーに半身浴しているような、ふだんなかなか触らないけれど現役のレポジトリに潜んでいた亡霊を退治!!! Poltergeist + PhantomJS を消し去り、 Selenium + Headless Chromium に置き換えた。 このレポジトリは Rails による API バックエンドと SPA フ…

Chrome Music Lab の Song Maker で遊ぶ

Chrome Music Lab 触るだけでめちゃ面白いし、成果物をかんたんにシェアできる仕組みも web って感じで最高 ゲーム音楽っぽいの作ってみた 森 https://goo.gl/EE7HFH 村 https://goo.gl/R4NHHL 洞窟 https://goo.gl/CpWJNk

Bootstrap3 要素の順番をレスポンシブに入れ替える

Bootstrap3 のグリッドシステムでは pull / push という要素を押し込む/引っ張るためのクラスが使える。これを使うことでレスポンシブに要素の順番を入れ替えることができる。 押し込む/引っ張ると言ってもわかりづらいので実例を見たい。 要素を入れ替える…

TreasureData (Presto) で複数行をまとめて1行に集約

Oracle の LISTAGG, MySQL の GROUP_CONCAT みたいなことを TreasureData (Presto) でやりたい。 答え array_join と array_agg を組み合わせることで実現できる。 6.15. Array Functions and Operators — Presto 0.195 Documentation 例 employee : departm…

YAMLのAnchorとAliasを使ってconfigをDRYに書く

あらすじ ふだん無意識に読み飛ばしているが使おうと思ったときに出てこなかった YAML の anchor と alias を使うと色々 DRY に書ける DRYに書いた Anchor/Alias YAML では &name (Anchor) で名前をつけて *name (Alias) で参照することができる*1。 Example…

社員は「会社のために」「いつまでも」働くという欺瞞を葬る本『ALLIANCE 人と企業が信頼で結ばれる新しい雇用』

同僚から「"退職"に関する本ですよ…(暗黒微笑)」とスッと渡された本、『ALLIANCE 人と企業が信頼で結ばれる新しい雇用』を読んだ。 ALLIANCE アライアンス作者: リード・ホフマン,ベン・カスノーカ,クリス・イェ出版社/メーカー: ダイヤモンド社発…

Bower は deprecated なので Yarn へ移行した

一度もまともに使ったことなかったけど bower って死んでたんだね…。正確にいうと "maintained, but deprecated" か。 github.com snyk.io 自分には関係ない話かと思っていた…が、普段まったく触らないがひっそりと稼働を続けるレポジトリに2014年来の bower…

OSSに貢献してお金を得る

OSSに貢献して¥6,000ぐらい貰えたのでその話をする。OSSがお金になった話 · Dとはちょっと違う。 contribution に対する tip として 0.00357757 BTC (≒ ¥6,000) 貰った— 広島の粗大ゴミ (@ohbarye) 2018年1月14日 tip4commit Tip4Commit — Contribute to O…

『高い城の男』

高い城の男作者: フィリップ・K・ディック出版社/メーカー: 早川書房発売日: 2012/11/30メディア: Kindle版この商品を含むブログ (13件) を見る もしドイツと日本が戦争に勝っていたら世界はこうなっていただろうか…という思考実験、平行世界もの。序盤を読…

『僕がアップルで学んだこと 環境を整えれば人が変わる、組織が変わる』

僕がアップルで学んだこと 環境を整えれば人が変わる、組織が変わる (アスキー新書)作者: 松井博出版社/メーカー: KADOKAWA / アスキー・メディアワークス発売日: 2012/10/24メディア: Kindle版購入: 1人 クリック: 3回この商品を含むブログ (3件) を見る 一…

2017年の振り返り -意志とエゴ-

2016年の振り返り -罪と罰- - valid,invalid 2017年の目標 -1年の目標を立てるのをやめる- - valid,invalidに書いたように、2017年は通年の目標を持つのを止めてみた。代わりに各月に何かしらに注力するという制約を付け、以下の活動に取り組んだ。月数が合…

gulp-util の問題、deprecation warning と migration path について

2017年12月28日に The Problem with gulp-util という記事が公開された。 medium.com gulp をウォッチしていたわけではないのだが、たまたま残された gulp 資産を触っている時に deprecation warning がコンソールに出力され、そのメッセージ中にこの記事へ…

仮想通貨取引を40万円で始めてから2ヶ月で120万円の含み益

雰囲気で仮想通貨をやっているメモです。技術的な話は出てこない、マネーゲームにフォーカスしたメモ ただのメモだがあとで怒られないように disclaimer 書いておかないと… Read the Disclaimer: Trading is a highly risky activity. Do consult your finan…

Rails で Slack のような Magic Link による認証を実装する

passwordless という gem が最近リリースされたようなので少し触ってみた。 名前の通り認証時にパスワードを必要とせず、いわゆる Magic Link によるログイン機構を Rails アプリケーションで実現できる。 Magic Link とは Slack や Medium が実装しているこ…

HIPHOPダンスとヨガを始めた

年初に 2017年の目標 -1年の目標を立てるのをやめる- - valid,invalid で書いたように今年は30日ずつ何かを頑張ることにしている。やや飽きつつも10月からまた再開し、11月はダンススクールに通うことにした。 やる理由 あえて理由を言語化するなら 健康をも…

10月はお金周りを整理した

年初に 2017年の目標 -1年の目標を立てるのをやめる- - valid,invalid で書いたように今年は30日ずつ何かを頑張ることにしているのだが夏以降は完全に飽きていた。 しかし10月は家庭の事情もありお金まわりの勉強をちょっとだけ真面目にしてみた。 目標 以下…