タグ

ブックマーク / blog.sushi.money (14)

  • 未知の道に突入せず、まずは半分知ってるくらいの状態になる - hitode909の日記

    Perl製アプリケーションからGraphQLを喋ってみたい、ということがあって昨年末に2週間くらいでプロトタイピングしていた。 CPANにGraphQLというライブラリが公開されていて、社内の利用実績もあるので、これをいきなり使ってみても良かったのだけど、自分はGraphQLについては、耳では知っていて、GitHubAPIを呼び出したことがある、くらいで、実際に実装したことはなかった。 このような状態で突き進むと、問題に遭遇したときに2パターンの怪しさが出てきて、切り分けていくことになる。未知のものが多すぎて、プロジェクトXの、トンネルを掘るだけで難しいのに現地の言葉はわからない、みたいな回をイメージしてください。 GraphQL自体への理解が間違っているパターン スキーマ、クエリの書き方が悪い、概念を勘違いしている、など PerlでのGraphQLライブラリの使い方が間違っているパター

    未知の道に突入せず、まずは半分知ってるくらいの状態になる - hitode909の日記
  • アウトプットの品質を下げておくと気軽に書けるようになる - hitode909の日記

    12月であるし、アドベントカレンダーが回っていたりして、よくできた興味深いブログの記事を目にすることが多い。 よくできた記事ばかり見ていると、自分もちゃんとしたものを出さなければ、となってしまうことがありそう。しかしちょっと待ってほしい。 ブログ記事、といっても、プロの編集の手が入ったお金のかかった記事、一人で頑張って書いた大作、チョロっと書いて出てきた日記まで様々なものがある。 100文字くらいで終わっているものもあれば10万文字くらい書かれているものもあるので、文量に1000倍の差がある。 映像の世界で1000倍の差を出そうとすると、2時間すなわち7000秒の映画と、スマホで撮った7秒の動画、くらいの差がある。 2時間で観れるすばらしい映画がなにかあるとして、 Amazon.co.jp: フォレスト・ガンプ/一期一会 (字幕版)を観る | Prime Video これの1000分の1の

    アウトプットの品質を下げておくと気軽に書けるようになる - hitode909の日記
  • テスト、正常系から書くか異常系から書くか - hitode909の日記

    今週は同僚と毎日長時間ペアプロしていた。 おもしろかったのが、同僚のテストの書き進め方で、一番複雑な正常系のテストをちゃんと書いてから、その複雑なテストをもとに、いろんな条件を削っていって異常系のテストを作っていく、というところ。 僕は逆で、入力が空なら何も起きない、とか、一番簡単な異常系のテストを書いて、そこだけ通るのを確認して、よしよし、と進めていって、メソッド来の動きは最後に確認して終わる。 変な進め方だな〜(主観)と思って眺めていたけど、たしかに正常系のテストが通っていれば、あとはバリデーションまわりのチェックとか、例外となる場合のチェックをすれば終わりで、異常系のテストがすごい速さで書かれていておもしろかった。 …という話をしたら、チームメンバーたちは正常系のテストから書きはじめるという人が多くて、正しくことを確認してから、1個ずつ前提となる条件を外してみて試す、と聞いて、同値

    テスト、正常系から書くか異常系から書くか - hitode909の日記
    cu39
    cu39 2020/10/23
  • 【現在は対応不要】Chrome80以降でALBの認証を使っているとcookieが4096バイトを超えて認証できないことがあり、社内サービスではcookie名を縮めて対応した - hitode909の日記

    2020/2/18追記 サポートに問い合わせたところ、ALBの不具合はロールバック済みで、cookie名を縮める対応は不要、とのことでした。試してみたところ、たしかにcookie名の指定をやめても問題なく認証できました。 AWSのApplication Load Balancerの認証機能を使って、スタッフからのアクセスのみ許可する社内向けウェブサービスを運用しているのだけど、昨日くらいからGoogle Chromeで認証が通らなないという声を聞くようになった。 現象としてはリダイレクトループが発生していて、コンソールを見るとSet-Cookie headerが長すぎるというエラーが出ていた。 Set-Cookie header is ignored in response from url: https://****/oauth2/idpresponse?code=e51b4cf0-8b

    【現在は対応不要】Chrome80以降でALBの認証を使っているとcookieが4096バイトを超えて認証できないことがあり、社内サービスではcookie名を縮めて対応した - hitode909の日記
  • Courseraの機械学習のコース完走した - hitode909の日記

    Courseraの機械学習11週目(字余り).毎週やってて,今日が最終週.OCRとか.データを10倍集めるとよいぞ,とか,シーリング分析とか.英語は横に長いから,横に長いところを探すとよいぞ,とか言ってて,日語だったら??とか気になった. 最後に,卒業式みたいなコーナーがあって,たくさんある動画を見てくれてありがとう…毎週たくさんのコードを書いて…みたいな先生のいい話を聞けて感動する. 学習には教師あり学習と教師なし学習があって,ニューラルネットが,サポートベクトルマシンが,といった手法だけでなく,データの扱い方とか,評価の方法も教えてもらえてよかった.これがなければ,なんとなくやってみて,なんとなくよくなった気がする,とか言ってたけど,今なら,実数1個で評価できなければならない,という気持ちで接することができる. 勉強になっていいけど,わりとたいへんで,毎週末どちらかは機械学習やってる

    Courseraの機械学習のコース完走した - hitode909の日記
    cu39
    cu39 2016/04/15
  • KAOSS DJで姉を出したり朝ご飯を選んだり絵文字を高速入力したりgit pushもできる - hitode909の日記

    最近KAOSS DJで遊んでて,きのうMIDIイベントを受け取るところまでできたので,もうちょっと知的なことをやってみる. フェーダーに応じて姉を出す クロスフェーダーの値に応じて文字を出してみる.UniMIDIでイベントを受け取って,182番のときだけ値を見てなんかする.182番はクロスフェーダの操作で,3番目にフェーダーの位置が入ってる. require 'bundler' Bundler.require input = UniMIDI::Input.first.open loop { events = input.gets events.each{|event| data = event[:data] next unless data[0] == 182 size = data[2] / 127.0 * 30 puts '姉' * size } } sketch-midi/ane.r

    KAOSS DJで姉を出したり朝ご飯を選んだり絵文字を高速入力したりgit pushもできる - hitode909の日記
    cu39
    cu39 2015/07/28
  • 気が狂った設計 - hitode909の日記

    大きめのこととか,自信のないところを触るときは,コード書く前に,こういう作戦考えてみたけどどうですかって聞いてみたり,こういうことやりたいんだけど一緒に考えませんかって,いっしょに話して設計考えたりするとよいと思う. 一緒に考えたすぐあとに気が狂った設計とか言い出したらおかしいので,未然に変な設計のままコード書いてしまうのを防げる. 特に辛い気持ちになるのが、「気が狂った設計」「クソコード」「(こんな実装は)有り得ない」といった言葉だ。 Pull Requestのレビューが辛くて会社をやめたい 単に言葉が強いのはよくないと思う.我が社にはそんな強い言葉でレビュー書く人はいない. 我が社には,普段から強い言葉を発する人もいなくて,みんな物腰柔らかな変な言葉を話している. 言葉使いや文体は,ずっと過ごしてると同僚から移ったりするので,普段からそういう言葉を話していると,全体の雰囲気も悪くなりそ

    気が狂った設計 - hitode909の日記
    cu39
    cu39 2015/07/03
  • テスト先に書きたい若者よ - hitode909の日記

    弊社では毎年インターンを受け入れているのだけど,いまもインターンが来てて,テスト先に書きたいけど油断すると先に実装を書いてしまう,とか話してた. 個人的には,テスト先に書くのが大事というよりかは,意識して仕様を先に考えるのが大事だと思っている.テストを先に書くと,先に仕様を考えざるを得ないので,良いスタイルが身につく. 僕がよくやるのは,関連しそうなクラスの絵をひと通りノートに書いてみて,その図だけで,うまく動くことを説明できるくらい考えてみる.その時点でおかしかったら,コード書いてもおかしくなる.ノートに方眼ついてるとクラス図書きやすい.UMLとかじゃなくても,自分で見て分かるくらいでもいいと思う. 紙でうまくいったら,外部仕様だけソースコードに書いてみる.クラス名と,メソッドの定義と,メソッドの上くらいに,ひと通りコメントでも書いてみて,この関数はこういうことをするんです,こういう引数

    テスト先に書きたい若者よ - hitode909の日記
    cu39
    cu39 2014/08/14
    ロディアの方眼濃すぎるよね。オキナの色はいいよ、コピーで消えるし。
  • 全自動リファクタリング君 - hitode909の日記

    長年の技術的負債で,あるネームスペース以下には,このオブジェクトを渡さず,このオブジェクトのフィールドの一部だけを渡したい,みたいな話があった.コンテキストオブジェクト全部渡すと,そのメソッドが何に依存しているか分からないので,必要な分だけ渡すべきで,最近は必要な分だけもらってるけど,昔書いた分は全部もらってて,混在しててきびしい状況だった. 静的解析して安全に置き換えられることを確認して,ソースコードの定義と呼び出し元を書き換えて,変更箇所のテストが通ったらcommitしてpushする,テスト失敗したら人間を呼ぶ,みたいなスクリプトを書いた.午前中にスクリプト書いて,午後に動かして,263コミット,280ファイル書き換えて無事リファクタリング成功した.すごい. すごいけど,最初から型さえあればIDEからちまちまリファクタリングできたはずなので,2014年にこういう技術を開発してるのはつら

    全自動リファクタリング君 - hitode909の日記
    cu39
    cu39 2014/04/26
  • 失敗する前提でデプロイする - hitode909の日記

    うちのチームでは,デプロイするたびに自動的にgitのtagを切るようにしてる.たとえば,いまデプロイしたら,deploy/2014-02-01-14-48とか. たまに,リリースした直後になんかミスってたことに気付いて,慌ててロールバックすることがある. tagを切ってるので,ひとつ前に戻せばいいのだけど,えっと,どれだっけとかいって探すので慌てるし,普段はタグ指定してデプロイしてないので,どうやって戻すか忘れる. デプロイ終わったときに,今回のデプロイを戻すには,これをしましょう,とか表示するようにした. デプロイ終わったらこんなのが出る.前回のデプロイが昨日だったら昨日くらいのタグが出る. ヒント:戻すときは以下のコマンドを実行しましょう cap -S revision=deploy/2014-01-31-15-17 deploy 実装方法としては,こんな感じに,デプロイ前に最新のタグ

    失敗する前提でデプロイする - hitode909の日記
    cu39
    cu39 2014/02/01
  • テスト書きすぎ問題 - hitode909の日記

    テスト書きすぎるとよくないって言ってる人がいた.DHHっていう人.作業時間の1/3以上テストしてたらおかしいとか,ActiveRecordのバリデーションなど,Railsの機能はテストしない,とか. Signals vs. Noiseの去年のエントリに、テストをどれくらい書くべきかということについてDHHが指針を示していたものがあったので... - Sooey 偉い人が言ってるからという理由で,テスト手抜き派の人に良い材料を与えてしまった.僕は意見ちがって,作業時間半分以上はテスト書いたりしてる. テストたくさん書くと,最初に書くときのコストは増える.けど,あとから読む時や,変更したい時には,読むだけだし,書くのも差分だけで良い.コード体を理解できれば,要らないテスト捨てるのは,落ちたのを消すだけだから簡単.あとで見て,テスト足りないと分かったときに,明文化されてない仕様からテストを補う

    テスト書きすぎ問題 - hitode909の日記
    cu39
    cu39 2013/10/14
  • localeについて少し学んだ - hitode909の日記

    自宅サーバー(Ubuntu サーバー版)で作業していると、たまにlocaleがおかしいみたいなことを言われることがあった。 % svn up svn: warning: cannot set LC_CTYPE locale svn: warning: environment variable LANG is ja_JP.UTF-8 svn: warning: please check that your locale name is correct svn: Can't convert string from native encoding to 'UTF-8':Macのクライアントとシェルの設定ファイルを共有しているので、.zshrcでLANGをja_JP.UTF-8にしていた。 下の記事によると、Ubuntuは初期状態では日語のサポートは入ってなくて、ubuntu-desktop-j

    localeについて少し学んだ - hitode909の日記
    cu39
    cu39 2012/05/26
  • Google IME SKK サーバー 作った - hitode909の日記

    Google CGI API for Japanese Input*1を使って変換するSKKサーバーを作った. Googleのサーバーが高性能なので,通常のSKK辞書ではできないような変換ができる.以下は例. 手元の辞書にないが世の中にはあるような言葉を変換できる. 意味不明な言葉でも適当に変換できる. 一文まとめて変換できる. インストール gemになってるので,gem installでインストールできる.依存ライブラリは特にないはず. % gem install google-ime-skk追記,Ruby1.8ではgem install jsonする必要があった,Ruby1.9では不要. 実行 google-ime-skkという実行ファイルができるので実行するとサーバーが起動する. % google-ime-skk 設定 AquaSKKでは,skkserv辞書として追加する.デフォルト

    cu39
    cu39 2011/08/18
  • 上に行くcd作った - hitode909の日記

    シェルで,上のディレクトリに行くのがめんどくさくて,cd ../../../../とかしないといけなくて,指を痛める. 上に行くためのupっていうコマンドを作ることにした. その1 up 3ってやると,3つ上に行くのを作った. function up() { i=0 while [ $i -lt $1 ] do cd ../ i=`expr $i + 1` done } 使い方 % pwd /Users/fkd/co/dev/dotfiles % up 3 % pwd /Users/fkd %これは使いにくくて,cd ../../って打つときは,いくつ上に行くか考えながら,../って打ってる.これだと,先に数えておかないといけなくて,難しかった. その2 考えながら入力できるようにしてみた.引数の数だけ見る. function up() { i=0 while [ $i -lt $# ]

    cu39
    cu39 2010/10/03
  • 1