タグ

ブックマーク / nekogata.hatenablog.com (39)

  • リーダブルコードとハードバップコード - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    まずはこのおもしろツイートをご紹介させてください。 誰だよww 紀伊國屋書店武蔵小杉店でこれ並べた奴ww 確かに表紙は紛らわしいけど、ここじゃねーよww pic.twitter.com/UliFnZuYyt— Kohei Tabata(田畑) (@nerd0geek1) 2018年12月24日 このツイートを某所で紹介したところ、「たしかに紛らわしい」「"よりよいChordを書くためのシンプルで実践的なテクニック"でもふつうに意味が通じるのがすごい」という声のほかに、「ワーオ,君の書くコードはまるでハードバップのようだ(喧嘩になります)」「 $_[++$_]->%* これとかハードバップ感ある」という声が上がったため、ハードバップのようなコードを書いて見ました。Perlで実行してみましょう。 s///;sub bop { '$_[++$_]->%* is_a', +{ 'hard', 'b

    リーダブルコードとハードバップコード - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    jewel12
    jewel12 2018/12/25
  • 実況中継シリーズ 「開発現場で役立たせるための設計原則とパターン」 #builderscon 2018 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    先日慶應義塾大学日吉キャンパスで行われた builderscon2018、最高のカンファレンスでしたね。わたしも「開発現場で役立たせるための設計原則とパターン」というタイトルで発表させていただきました。今回は恒例「実況中継シリーズ」として、プレゼンの再現をブログで行いたいと思います。 なお、過去の実況中継シリーズは前職の技術ブログにまとまっていますので、そちらからご覧ください。 それでは編を開始したいと思います。 開発現場で役立たせるための設計原則とパターン アバンパート よろしくお願いします。 まず最初に簡単に自己紹介をさせていただきます。 先月転職をしまして、8/1からClassiという会社で働いています。と息子がおります。Scalaが好きですが、仕事ではRubyメインという感じです。 Web+DB PressやSoftware Designで何度か特集を書かせていただきました。と

    実況中継シリーズ 「開発現場で役立たせるための設計原則とパターン」 #builderscon 2018 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    jewel12
    jewel12 2018/09/12
  • Classi株式会社に入社しました - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    今月からClassi株式会社で働いています。まだ試用期間なのですが、所属を明かして良いと許可をもらったので入社エントリ書きます。 前職を退職しようと決意してから(ここにはかなりの葛藤があったのですがそれはまた別の話)、転職エージェントにお世話になりつつさまざまな会社を訪問させていただきました。 わたしが転職に際して重視したのは以下の三点でした。 家族が幸せにごはんをべていけるための給与 自分のやっている仕事が世界を良くするであろうと自分が思えるかどうか 自分の得てきた能力が求められていて、なおかつ転職先できちんと成長できそうか 幸運かつ大変ありがたいことに、これらの条件を満たしてくれるような多くの会社からお声掛けをいただけたのですが、Classiに入社することを決めた決め手は以下の2点でした。 教育のセンターピンとも言える学校教育をビジネスドメインとしている 面談中にメンバーのことを好き

    Classi株式会社に入社しました - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    jewel12
    jewel12 2018/08/03
  • Redis の expire はいつ実際にデータを消しているのか? - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    expire で指定した時間を過ぎたデータが実際に消されるタイミングはいつなのかということを調べた。 どこから調べたの 公式ドキュメントのexpireのところ から調べた で、どうやって消してるの Redis は expire で指定した時間が過ぎたデータを消すのにふたつの戦略を使ってる。 値が取得されるときに消すよ 値が取得されるときに、その値がすでに expire 過ぎてたら消す。 値が取得されなくても消すよ 値が取得されるときに消す感じだと、たまにしか取得されないデータとかあるいは全然取得されないみたなデータはいつまでも消えなくて困るよね 値が取得されなくても定期的に消そうねって感じで消す。Redis さんは以下のような感じで消してるらしい まずランダムに20個のキーを選ぶ 選んだキーのデータが expire 過ぎてたら消す 25 個より多くの key が expired だったら1

    Redis の expire はいつ実際にデータを消しているのか? - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    jewel12
    jewel12 2016/02/02
  • YAPC::Asia 2015 で発表しました #yapcasia - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    Perlで学ぼう!文系プログラマのための、知識ゼロからのデータ構造と計算量」というタイトルでYAPC::Asia 2015 で発表してきました。 yapcasia.org http://yapcasia.org/2015/talk/show/9f7059dc-003c-11e5-a00c-89c77d574c3a 上記のリンクからスライド、動画(そのうちアップロードされるでしょう)が見れます。 スライドはほとんど説明のための図にとどまっており、口頭でいろいろと説明したので、当日入場制限で入場できなかったとか、チケットが手に入らなくて来られなかった方はぜひ動画を見ていただけると幸いです。 わたしはプログラマとして活動し始めてから、Perlコミュニティのひとたちが対外的に発表してきたトークや資料、ブログ、あるいは直接のコミュニケーションなどで、直接、間接にかなり助けられてきていて、そのおかげ

    YAPC::Asia 2015 で発表しました #yapcasia - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    jewel12
    jewel12 2015/08/23
  • Perlの黒魔術を解説するよ〜〜〜〜 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    まずはこちらをごらんください。 shinh.hatenablog.com すごすぎる……。恐ろしいですね。 なぜこんなことになるのか、解説していきましょう。まずはPerlの気持ちになりましょう。 Perlの気持ち編 ポイントその1 barewordを数値コンテキストで評価するとどうなるのかということ 件のプログラムは、base64 っぽい文字列が書かれていますが、これを前からPerlコードとして読んでいくと、大きく2つのパートに分かれることに気づきます。というのも、前から一文字ずつ読んでいくと、「+」という演算子にぶつかるわけですね。 それに気づくと、このコードは前半部分 dXNlIE1JTUU6OkJhc2U2NDtwcmludCBlbmNvZGVfYmFzZTY0IGpvaW4nJyw8PjsKX19FTkRfXwo と、 s//v62/e+s//v60/e+s//v44/e+s//v

    Perlの黒魔術を解説するよ〜〜〜〜 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    jewel12
    jewel12 2015/05/08
    いい話
  • エラーハンドリング・クロニクル #nds41 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    はじめに プログラミング技術歴史は、ありとあらゆる歴史がそうであるように、いろんな「史観」で眺めることができます。ならば、プログラミング技術歴史を、「エラーハンドリングとの戦い」という視点から見ることもできるのではないでしょうか。日は、エラーハンドリングとの戦いの歴史を俯瞰することで、エラーハンドリングの勘所について考えていこうと思います。 なお、このエントリはNDSという勉強会の第41回で発表した内容と同一です。 Cの時代 Cの時代のエラーハンドリングでは、関数の返り値と、グローバル変数errnoを見ることで処理が成功したか失敗したかを見るのが一般的でした。 例として、文字列をlongに変換するstrtol関数をmanで引いてみましょう。すると、だいたい以下のようなことが書かれています。 変換に失敗すると、0を返す 変換に失敗した場合、グローバルな変数であるerrnoに以下の定数を

    エラーハンドリング・クロニクル #nds41 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    jewel12
    jewel12 2015/04/13
  • スロークッカーとかいうぐう有能調理器具wwwwwwww - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    はじめに プログラマやツイッターユーザの間では、誕生日とか退職とか就職とか引っ越しとか結婚とかそういう節目のタイミングでアマゾンの欲しいものリストを公開しプレゼントを請うという文化が存在します。不肖私もこのたび 2月13日に無事31歳の誕生日を迎えることとなりまして、浅ましくも欲しいものリストを公開したところ、ハリボのグミが1.4kgのほか、ウイスキーが約1.5リットル、KORGのクリップチューナー、アイカツのCD、さらには大物としてスロークッカーという調理器具を友人各位からいただきました。当に友人に恵まれていて感謝以外の感情がない。各位におかれましては必ず誕生日にwishlistを私宛に送るように。恩に報いる所存です。 amazonの箱のチョイスがおかしい様子です ゴールデンベアとハッピーコーラです 日が誇るウイスキー、白州です。 Signalize!とカレンダーガールが収録されてい

    スロークッカーとかいうぐう有能調理器具wwwwwwww - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    jewel12
    jewel12 2015/02/16
    新しいCIツールのお出ましだ!
  • タイ風角煮考 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    ここ最近角煮が話題かどうか知りませんが角煮です。 角煮ですが、うまいし簡単に作れるのですが時間がかかります。とはいえ、タイ風角煮なら雑に作ってもうまいという知見があるのでシェアします。 まず、角煮が硬くなるのは調味料で煮る、そのタイミングです。このタイ風角煮はその工程をまるっと無視して、タイ風のたれをかけてべるものなので、雑に作ってもほろほろの角煮が出来上がります。ただし圧力鍋は必須です。圧力鍋は角煮に限らず煮込み料理がはかどりまくるのでないひとはこの機会に買いましょう。 材料は以下のとおりです。 豚バラブロックたくさん トムヤムクンのもと レモン汁 ナンプラー しょうが 好きなだけ ネギの青い部分 キャベツ パクチー(おこのみで) 下ごしらえ 豚バラブロックは適当なサイズに切っておきます。しょうがは皮をむいて(皮は捨てない)、すりおろしておきます。みじん切りでもいいです。 豚バラを雑に

    タイ風角煮考 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    jewel12
    jewel12 2015/02/03
  • Niigata.pm をやるぞ!!!!!! - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    「Niigata.pm って死に体なんじゃないの?」「しんぺいさん Niigata.pm やる気ないでしょ」「新潟にPMなんてあったっけ」「あいつもう RubyScala しか書いてないしダメだな」「型さん完全にやる気ない」などの発言がそこかしこで聞かれる Niigata.pm ですが、単に子育てが忙しくて余裕なかっただけだよ!というわけで Niigata.pm やります! NDS#39 Niigata.pm tech talk - connpass すごい!2ヶ月先だ!!! 2ヶ月先なので、まだまだ未定なことも多いですが、なんといっても目玉は、東京ははてなから id:Songmu さんをゲストにおよびしていることです!songmuさんにしていただく発表は現在調整中ですが、続報をお待ちください。 また、songmuさん以外にも @hayajo さんと @ritou さん(ふたりとも

    Niigata.pm をやるぞ!!!!!! - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    jewel12
    jewel12 2014/10/13
    songmu さん!
  • YAPC::Asia 2014 レポート「一歩踏み出すのに遅すぎるということはない」 #yapcasia - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    YAPC::Asia 2014 に参加して来ました。自分も Scala のトークで応募していたのですが、残念ながらリジェクトとなり、サークル参加ではなく一般参加者として参加しました。 いろいろと書きたいことはあるのですがあまりに長くなってしまうので 2 点に絞って書きます。 Scala in Perl Company の話 はてなのはこべさんによる、「Perlの会社であるはてながなぜ Scala を採用したのか」という話題を中心としたトークでした。このブログの最近の投稿を読んでいただけるとわかるとおり、わたしの最近の学習と関心の中心にある言語は Scala で、実際に業務でも一部 Scala を利用しているので、とても楽しみにしていたトークでした。 動的型付けの言語のつらみの部分や、それに対するアンサーとしてなぜ Scala なのかという話や、一方で Scala も銀の弾丸ではないという冷

    YAPC::Asia 2014 レポート「一歩踏み出すのに遅すぎるということはない」 #yapcasia - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    jewel12
    jewel12 2014/09/01
    サークル参加
  • で、結局型クラスって何がうれしいの、ということの説明 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    前回の記事では、Scala では implicit parameter を利用することで型クラスと同等のことが実現できることがわかりました。しかし前回の疑問として、「で、それの何がうれしいのよ」というのは残っていましたね。 今回はそのうれしみをなるべくわかりやすく説明したいと思います。 たとえば、色んなクラスに flipFlap メソッドを生やしたい まず、前回と同じく「値をひっくり返す」という flipFlap について考えてみましょう。 前回は関数を作りましたが、Scalaらしく、こういう動きにしたいですね 1.flipFlap // => -1 true.flipFlap // => false "string".flipFlap // => gnirts Scala ではクラスを拡張するときには implicit conversion を使うのが一般的ですね。 class IntF

    で、結局型クラスって何がうれしいの、ということの説明 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    jewel12
    jewel12 2014/07/02
  • Scala の implicit parameter は型クラスの一種とはどういうことなのか - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    なんか型クラスとか言うと型の怖いひとたちが怖い話をワイワイしてるイメージがありますよね。わたしはあります。「で、それって何がうれしいのよ」とか、そういう話はあまりされていないような印象がありますね(あくまで印象です)。その上 "Scala の implicit parameter は型クラスの一種" とか言われると「暗黙的な引数がなんで型クラスの一種なんや!!!意味がわからん!!!!」となります。わたしはなりました。 というわけでそのへんについて勉強したので書きます。 そもそも型クラスってなんや Haskellとかにあるやつですね。アドホック多相を実現するもの、らしいです。すごい、いきなり意味がわからない。 というわけで、まずは「アドホック多相ってなんなの」という話からして行きます。 さて、まずは「多相」から行きましょう。この文脈で言う多相とは、簡単に言えば「引数にいろんな型を取れる」とい

    Scala の implicit parameter は型クラスの一種とはどういうことなのか - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    jewel12
    jewel12 2014/06/30
    丁寧だ
  • 要するに DI って何なのという話 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    友人から「しんぺいさん DI について書いてほしい」みたいな話をだいぶ前からされてたんだけど書く気力ずっとなかった。でも仕事の気分転換にちょっとずつ書いたやつがいい量まとまったので公開するです。たいしたことは書いてないっていうか知ってるひとにはあたりまえのことしか書いてない。サンプルコードはわたしの趣味Scala で書いてあるが、Java が読めればなんとなく読めると思います。 DI ってなに Dependency Injection、日語で言えば依存性の注入です。おしまい。 で記事を終えてもいいんだけど、そもそも依存性とはなんなのか、それを注入するとはどういうことなのか、なぜ DI が必要となるのかみたいな話をこれからします。 そもそも依存性ってなあに 例を出します。入力された文字列をもとにおみくじをひいて、その結果を twitter に投稿するプログラムにしましょう。 まずは普通

    要するに DI って何なのという話 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    jewel12
    jewel12 2014/02/13
    "とにかくDI!かならずDI!いつでもDI!盲目DI!"
  • 猫型プログラミング言語史観(2) 〜あるいは実行コンテキストにどう立ち向かうのか〜 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    前回のおさらいと今回の話 前回は手続き型パラダイムとオブジェクト指向パラダイムを見比べたときに、「ひとかたまりのデータとそれを操作する手続きを一カ所にまとめて守る」という方向に言語が進化していったというひとつの史観を示しました。その中で返答として「構造化プログラミング」の時点でその視点はすでにあるという指摘を頂いたりもしました。ただ、「ひとかたまりのデータとそれを操作する手続きを一カ所にまとめる」という発想もオブジェクト指向の「ひとつの側面としては」たしかにありますし、その側面を見ると、オブジェクト指向言語に「言語デザインでもってプログラマーがそれを行いやすくした」という面を見いだすことができそうです。そして、その視点に立ったときに「臭ってくる」ヤバい設計として、「データが露出してる」「別のクラスのデータいじってる」「複数の異なるデータに関心をもってしまっている」というものを挙げてみました

    猫型プログラミング言語史観(2) 〜あるいは実行コンテキストにどう立ち向かうのか〜 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    jewel12
    jewel12 2014/01/21
  • 猫型プログラミング言語史観(1) 〜あるいはオブジェクト指向における設計指針のひとつ〜 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    TL;DR 手続き型プログラミングでは手続きを抽象化することで保守性を挙げることに成功したが、データを守ることには失敗してしまった。そこでオブジェクト指向はデータと手続きをひとかたまりにすることでデータを外から守るというコンセプトを打ち出した。 ここから、「手続き型プログラミングで書いてるのに手続きが十分に抽象化されていないのはヤバいね」とか「オブジェクト指向で書いてるのにひとかたまりじゃない雑多なデータに関心をもっちゃってるのはヤバいね」などの設計指針を導くことができるのである。そして純粋関数型言語の場合は……という話です。 はじめに プログラミング言語にはいろいろなパラダイムがあるが、その中で手続き型プログラミング、オブジェクト指向、純粋関数型言語について、わたしなりのひとつの史観を示すのがこの稿の目的である。となんかかっこつけて言ってみたんだけど、要するに、それぞれのパラダイムがどん

    猫型プログラミング言語史観(1) 〜あるいはオブジェクト指向における設計指針のひとつ〜 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    jewel12
    jewel12 2014/01/17
    任意の人間の1人です
  • PHP はいつもわたしに新鮮な驚きを与えてくれる - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    ことの始まり PHP の srand 関数について調べていて、ひょんな拍子にsrandのseedに文字列(numericである必要はあるけど)を渡せることを知った。 では、ここに long を超えるものを放り込むとどうなるのか。 では結果をごらんください。 「!?!?」 なぜこうなるのか 秘密は PHP 処理系の zend_parse_arg_impl 関数にあります。 zend_parse_arg_impl はphpの関数に渡された引数をパースする部分で、longを要求する関数にstringな値が渡された時の処理はこの部分ですね。 https://github.com/php/php-src/blob/master/Zend/zend_API.c#L335 さて、読み進めていくと「ん!?!?」ってなる行があるはずです。 この行ですね https://github.com/php/php-

    PHP はいつもわたしに新鮮な驚きを与えてくれる - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    jewel12
    jewel12 2013/12/11
  • やはりおまえらの MVC は間違えている in バックボーンジェーエス - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    続編の紹介 続編 やはり俺のMVCは間違えている in Backbone.js を書いた。そっちのほうが有益な情報が乗ってると思うけど面白くないかもしれない 以下編 MVC の話と宗教の話と政治の話と野球の話はしてはいけないそうですがそんなの知るか俺はするぞ クライアントサイド MVC の話 そもそも MVC の出自が GUI アプリケーションのために生まれてきたものなので「クライアントサイド MVC」などと言う言い方をしなければならない状況がすでに憎いのだけれど、まあそれはおいておく。 「うちは Backbone.js を使っているから MVC でクライアントサイドが作られていて保守性が高いです」みたいなことを言う人間がたまにいるが、Backbone.js をつかったから(あるいは Marionette.js を使ったらから)といって自動的にお前のアプリケーションが MVC になるわけ

    やはりおまえらの MVC は間違えている in バックボーンジェーエス - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    jewel12
    jewel12 2013/11/11
  • ウォーターセル株式会社に join します - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    とはいえ、パートタイムです。今までの仕事も今まで通り行ってるので、実情としては仕事を増やしたという感じです。子供できてお金必要だし。みなさんの大好きな転職エントリではありません。具体的な仕事はまだ始まってない(今週金曜日が初仕事です)し、まだ join することが決まっただけなんだけど、なんかいくらでもやらないといけないことあるっぽいし、まあ価値を提供〜〜〜!!できるようになるべく頑張りたいな、と思ってます。 というわけでスピリッチャルなエントリ書きます。 ウォーターセルってなに? 「アグリノート」という、農業支援のためのアプリケーション作ってる会社です。決して怪しいお水を高値で売ってるみたいなやつじゃないです。そもそも sell じゃなくて cell だしな join の理由 まず第一にお金が必要で仕事を増やす必要があったからです。ここは譲れない。だってお金必要だもん。そもそもなんで私が

    ウォーターセル株式会社に join します - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    jewel12
    jewel12 2013/10/09
    目出鯛!!!!!!!
  • Scalaの勉強会、Scala入学式を新潟県長岡市でやってきました #nds33 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    Scala 一年生のわたしですが、僭越ながら「みんなで Scala に入門しようぜ!」というハンズオン形式のセミナーの講師を行ってきました。「Scala 入学式」という名前は papix 氏がやってる「Perl 入学式」のパクりです! この勉強会に使った資料は以下にアップしておきます。 https://gist.github.com/Shinpeim/6740436 一部マークダウン壊れてるけど勘弁してもう燃え尽きた。 東京から jewelve 氏と moznion 氏が参戦してくれたりと、LTもえらい面白かったです。講師役がなんかいろいろ書くのもアレなんで、参加者のみなさんのブログを見ていただければなと思います!(参加者のひとはぜひブログ書いて!見つけ次第リンクしていきます) civic site - NDS第33回NDSに参加してきました! ナカザンドットネット - Scala入学式

    Scalaの勉強会、Scala入学式を新潟県長岡市でやってきました #nds33 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く