ネットの海の片隅で

技術ネタの放流、あるいは不法投棄。

僕はコミットが少ない

ふと思い立って、ChromeのシークレットモードでGitHubの個人ページを見てみました。 思っていたより遥かに灰色でした。 自分の見ている画面ではそれなりに緑色なので、public repoに対してコミットして脱GitHubひきこもりをしていく必要がありそうです。

宇宙博

宇宙博に行ってきました。 SPACE EXPO 宇宙博 2014 | NASA・JAXAの挑戦 京葉線 東京駅から京葉線で海浜幕張駅へ向かう途中、車中がやけに混んでいたので「そうか、夢の国に行く人がいっぱいいるんだな」と思っていました。 しかし、舞浜駅を出発するときにも…

野崎まど『know』

人々が脳に「電子葉」と呼ばれるデバイスを埋め込んで生活するようになった2081年のお話。 あらゆるものがセンシングされ、その情報に対して電子葉からアクセスできる世界。 そういう意味では攻殻機動隊の世界観に近いとも言える。 今後、人類が生成・収集・…

エンコードしない文字を指定できるURIエンコーダ「uri_encoding」

世間がRubyKaigiで盛り上がっていて寂しかったので、URIエンコード・デコードを行うgemを書きました。 s-osa/uri_encoding · GitHub インストール uri_encoding | RubyGems.org | your community gem host に置いてあるので、テキトーにbundle installとかge…

Slack vs Skype

SlackとSkypeを比較してみます。 HipChatやChatWorkじゃなく、Skypeとの比較です。 一応、それぞれの公式サイトを貼っておきます。 Slack: Be less busy Skype | お友達やご家族への無料通話 比較項目一覧 料金 広告 ルーム メンション ファイル送信 検索 日…

夢の国に行ってきた。

T;DR 先日、東京ディズニーリゾートに行ってきました。 ウォルト・ディズニー ディズニー映画をよく知らないのでウォルト・ディズニーに関しても詳しくは知らないんですが、僕の記憶している限りだと、 ミッキーとかの映画を作った人 ディズニーランドという…

クックパッド5daysインターンに行ってきました。

クックパッド 5-day インターンシップ こんなんです。 【エンジニア・総合職向け】5-dayインターンシップ / スマホアプリ開発 動機 主な動機は2つありました。 1. cookpad覗いてみたい 普段、主にRubyを書いている人間からするとクックパッドは非常に気にな…

「有線しよう」

無線LANをメインで使っていたオフィスに有線LANを導入した話です。 無線LANは便利だが……。 普段、僕は無線LANでインターネットとつながっています。 しかし、無線LANには無線であるという性質上、どうしようもない類の問題がいくつかあります。 そして、中で…

「継承より委譲」≠「継承使うな」

TL;DR 適材適所。 「継承より委譲」 オブジェクト指向に関する有名な警句に「継承より委譲」があります。 僕はオブジェクト指向について語れるほど立派な人間じゃありませんが、 「むやみに継承使わないほうが良いよ」 「移譲のほうが良いケースが多いよ」 …

V社 プリンタサプライ

Brother DCP-7040 Brother MFC-J890DN Canon MG7100

String#encodeが変換できそうで変換できない文字

問題 RubyでUTF-8からWindows-31J(Shift_JIS)に文字コードを変換すると、正常に変換できそうであるにもかかわらず、実際には変換が行えず例外が投げられる文字があります。 "\u{301C}" # => "〜" "\u{301C}".encode(Encoding::Windows_31J) # => Encoding:…

いにしえの「CSV over FTP」

EC

TL;DR 単なる文句です。 「CSV over FTPとかマジやめて!」 はじめに ここに書かれていることは自分が調べられた範囲で得られた事実です。 調査不足による不備や、僕が権限が付与されていないために見られないだけで実は存在している機能などもあるかもしれ…

絶望しないでありますっ!

絶望 twitterを見ていると、絶望します。 というのも、有名なプログラマの人たちをフォローしているから。 ○○さんすげー。 あ、××さんもすごい。 それに比べて俺と来たら……。 俺なんかがコード書く意味あるのかな? みたいな。 twitterに限らず、ブログや勉…

不揃いなHashから長方形の配列をつくるgem「Emmental」

ソースはここに置いてあります。 s-osa/emmental · GitHub インストールはgem i emmentalとかbundle installとかのいつものやつで。 使い方 基本 emmental = Emmental.new emmental << {foo: 1, bar: 2} emmental << {fizz: 3, "buzz" => 5} emmental << {fo…

Technology waits for no one.

テクノロジーは指数関数的に進歩する。 これがレイ・カーツワイルの主張で、ムーアの法則などがその根拠になっている。 そして、テクノロジーが指数関数的に進歩することによって、2045年頃にコンピュータが人類の能力の総和を超えるというのが技術的特異点…

RailsのモデルでJANコードのバリデーションをするgem 「jan_validator」

つくったもの Rails*1向けのJANコードバリデータ。 先日のgemをベースにしています。 参考にしたページ ActiveModel::Validator balexand/email_validator · GitHub 使い方 JANコードのバリデーションがRails標準のpresence: trueのようなカタチで書けるよう…

JANコード用のgem「jan」

作ったもの JANコードを便利に扱うためのgemを作りました。 JANコードっていうのはバーコードに使われているこんなやつです。 国際的にはEANコードと呼ばれていたりします。 JANコードとは│JANコード登録│ 一般財団法人流通システム開発センター ean | RubyG…

i18nをYAMLで管理するのしんどい

TL;DR 愚痴です。 問題 Railsのi18nではt(:hello)みたいな感じで、tメソッドを使って多言語対応すると思います。*1 この多言語対応のtranslationファイルがYAMLで書かれていて #common.en.yml en: hello: "Hello" #common.ja.yml ja: hello: "こんにちは" み…

論理削除の必要性をひねり出そうとして失敗した

DB

はじめに このエントリは僕の平凡な考えを淡々と書いたものです。過度な期待はしないでください。 あと、部屋は明るくしてディスプレイから30センチは離れて見やがってください。 物理削除したくない! 外部キー制約を張っていない場合 削除したレコードを参…

『実践Node.jsプログラミング』誤植訂正

Kindle版『実践Node.jsプログラミング』のコードに誤植があったので、気づいた範囲で書いておきます。 第2章 2.4.1 Socket.IOサーバーを設定する(p.31) 変数宣言部。 左辺のオブジェクトリテラルが消えているので追加。 // lib/chat_server.js var socketi…

オレオレ Chrome extension 死亡のお知らせ

今まで、自分あるいは社内だけで使うために作ったChrome extension「オレオレエクステンション」はChromeウェブストアに登録せず、ローカルに置いたcrxファイルを使って手作業でインストールしていました。 しかし、少し前にGoogleのポリシーが変わり、ウェ…

正規乱数を生成するgem「RandomBell」

Rubyで一様な乱数が欲しければRandomやSecureRandomを使えば良いと思うのですが、「偏った乱数」が欲しいこともあると思います。 イメージとしてはゲームのパラメータとかですかね。 例えば、あるダンジョンで出てくる敵のレベルを20-30の間でランダムに決め…

「サロゲートキー vs 複合キー」という間違った対立

DB

DB設計についてググっていると、「サロゲートキーは使うべきではない」や「複合キーは使うべきではない」といったDBのキーに関する論争をよく見かけます。 それらを見ていると、多くの議論で「これって対比の軸がズレてないか?」と思いました。 正しい対比 …

私は衰退しました。

最近、記憶力をはじめとする脳の劣化が激しい。 昔はクソみたいなコードを書きながらも、どのメソッドがどこにあるとかそういうのを覚えてられたけど、このごろそれができない。 しかし、覚えてられないからこのへんにありそうって感じで探して見つけられる…

オフセット付きのheadコマンドを作りました

個人的な話ですが、コードやログを読むときに $ grep -n 'fizzbuzz' fizzbuzz.rb 543: puts 'fizzbuzz' みたいにして、該当箇所を探すということをよくします。 こうして該当行を探した後はその前後を見るためにheadとtailを組み合わせて $ head -n 445 fizz…

あなたがKindleを買うべきたった1つの理由

Kindle Paperwhite(ニューモデル)出版社/メーカー: Amazon発売日: 2013/10/22メディア: エレクトロニクスこの商品を含むブログ (56件) を見る Kindle Fire HDX 8.9 16GB タブレット出版社/メーカー: Amazon発売日: 2013/11/28メディア: エレクトロニクスこ…

Jasmineでfixtureを読み込む

JavaScriptのテストでfixtureを使いたいと思うこと、ないですか? JavaScriptのユニットテストでfixtureを使いたい JavaScriptのテストにおいて、特にXMLHttpRequestのレスポンスを利用する場合などは、 いちいちリクエストを投げるとテストが遅くなる ネッ…

OpenSSLを使ってセキュアにファイルを送信する

先日、外部に漏れるとマズいファイル*1をセキュアに受け渡しする必要が生じました。 受け渡しをする相手と頻繁に会うようであれば直接会って渡せば良いのですが、あまり合う機会がない相手の場合はインターネット越しに安全にファイルを渡す必要があります。…

RDBの素晴らしさに気づき始めたという話

リレーショナル・データベースの設計について思ったことをうだうだと書いてみます。 「そんな基本的なことを……」 「しかも、間違ってるし」 とかいろいろあると思うので、指摘していただけると嬉しいです。 そもそもの問題 僕がDBを触り始めたのはRailsでWeb…

PostgreSQL用データベース設計ツール3選

PostgreSQLを使ったわりと大きめのデータベースを設計することになったので、ER図を作成するツールについて調べました。 自分のために調べたことのメモなので「MySQLは?」とか訊かれても基本的にわかりません。 対象とするツール GUI Database Design Tools…