タグ

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

  • なぜひどいコードを書いてはいけないか - hitode909の日記

    ひどいコードは何やってるか分からない ひどいコードが何やってるか分かっても、なぜそうなってるのか、そこを変えるとどうなるか分からない ひどいコードは新たな変更に耐えられず書き直されることになる ひどいコードを書き直すには、ひどいコードがどうなっているか理解し、どこを変えるとどうなるのか理解する必要がある ひどいコードはたいていひどいテストコードが支えていて、テストコードがあったとしてもひどいコードと同様の問題があり、頼れるものが何もない どんなにひどいコードでも、書いた人を憎んではいけない。たとえ自分の書いたコードだとしても、先輩の書いたコードだとしても、ソフトウェアとしてひどい物にはひどいと言っていくことが大切で、だからと言って人に向かってひどいと言ってるわけではない。 最高の仲間たちが日々変化する難しい問題に対処していいコードを書いたり、ときにはひどいコードを書いている、という😇的な

    なぜひどいコードを書いてはいけないか - hitode909の日記
  • Emacsのウィンドウが勝手にびよんびよんなってたのしいやつ - hitode909の日記

    Emacsのウィンドウが勝手にびよんびよんなってたのしいやつができたぞ!!! (run-with-timer 0 0.1 '(lambda () (set-frame-size (selected-frame) (floor (* 20 (+ (sin (* 2 (float-time))) 2))) (floor (* 10 (+ (cos (* 2 (float-time))) 2))) ))) これをscratchに貼るとびよんびよんなってたのしい.まったく仕事できない. 疲れてるときに便利です 疲れた!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!— 趣味はマリンスポーツです (@hitode909) 2015年9月3日

    Emacsのウィンドウが勝手にびよんびよんなってたのしいやつ - hitode909の日記
  • 気が狂った設計 - hitode909の日記

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

    気が狂った設計 - hitode909の日記
  • テスト書きすぎ問題 - hitode909の日記

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

    テスト書きすぎ問題 - hitode909の日記
  • OperaでjQueryの.height()で取得した値をJSON.stringifyすると値が10分の1になる - hitode909の日記

    OperaでjQueryで要素の高さを.height()で取得してJSONにシリアライズすると1の位がなくなって10分の1の数字になる.*1したら正しい値になる. 高さを取得したあと必ず*1するのいやな感じがするので誰か何か知ってたら教えてください.Operaは12.00だった.jQueryを使わずに再現させようとしたけどうまくいかなかった.よくわからない. http://jsfiddle.net/5u6hC/1/

    OperaでjQueryの.height()で取得した値をJSON.stringifyすると値が10分の1になる - hitode909の日記
    Itisango
    Itisango 2012/07/16
  • HTMLとJSだけで何か作るときの - hitode909の日記

    HTMLとJSだけで何か作ることが多くて,開発環境をどう作るかとか,ノウハウみたいなのがたまってきたと思う. ローカルのHTMLファイルをブラウザで開くと,いろんな制約がある.たとえば,ファイルAPIを使えないとか,YouTubeのプレイヤー貼り付けできないとか,/js/みたいに絶対パスで指定することもできない.ページ1枚なら他のページにリンクとかいらないけど,ウェブサイトを作ってるときとかは,/help/でヘルプページを表示するとか書いたときに,ローカルのファイルを見てリンクが切れてるということになる.開発中はリンク切れだけど番サーバーに置くと見れるはずとか言って開発するのは怖い. サーバーでRubyとかPerlが動いてるみたいなときはローカルでサーバーを立てて開発してると思う.HTMLとJSだけ使うときでもローカルでサーバーを立てて開発したほうがいいと思う. 開発中は,nginxでフ

    HTMLとJSだけで何か作るときの - hitode909の日記
  • Perlで自動でセミコロン書くやつ - hitode909の日記

    セミコロン書きたくないから,Perlで自動でセミコロン書くやつを作った. こういうセミコロンなしのFizzBuzzのPerlのプログラムを書いて, #! /usr/bin/env perl use strict use warnings for my $i (1..20) { my $message = "" $message .= "Fizz" unless $i % 3 $message .= "Buzz" unless $i % 5 $message = $i unless $message print "$message\n" } perl_auto_semicolonというコマンドにファイルを渡すと, % ./perl_auto_semicolon fizzbuzz.pl コンパイル通るまで行末にセミコロンつけたり外したりして,うまく動きそうになると,ファイルに書き出してくれる.

    Perlで自動でセミコロン書くやつ - hitode909の日記
    Itisango
    Itisango 2012/03/18
  • はてなブログ新着記事 Google Chrome 拡張 - hitode909の日記

    はてなブログの購読しているブログの新着記事を読みまくるためのGoogle Chrome拡張を作りました. インストールすると,ツールバーにはてなブログ新着ボタンが出ます. 新着記事があるとアイコンに未読件数が出て,アイコンをクリックすると記事がタブで開かれます. 「次の記事」ボタンを押すと次の記事が出るので,どんどん読んでいけます. たとえば下のスクリーンショットだと,読んでない記事が11件あるということです. はてなブログはユーザーが自由にJSを書けたりCSSを書いたりできて,開くと音が出るブログとか,縦書きのブログとか,凝ったのがいろいろあるので,RSSリーダーやダッシュボードで読むのではなくて,1個ずつ読みに行きたいと思って,こういうのを作りました. 年末に作って一人で便利に使っていたのをそろそろ出そうという気になったので今日公開しました. 一ヶ月半くらいずっと使っていて便利だったの

    はてなブログ新着記事 Google Chrome 拡張 - hitode909の日記
    Itisango
    Itisango 2012/01/15
  • はてなでコードを書くときに気をつけていること - hitode909の日記

    こんにちは,はてなPerlを書いているhitode909です. 趣味はマリンスポーツです. この記事は,Hatena::Staff Advent Calendar 2011とは全く関係なくて,id:nanto_viさんから何かバトンが回ってきたので書いています. 最近クールだと思っているテクニックを皆様にお伝えしようと思います. メソッド名に引数の情報を含める 引数に何を期待しているかよくわからないことがあります. $fooと$barは何でしょうか. sub new { my ($class, $foo, $bar) = @_; こうなると少しましです.userとcategory_idです. sub new { my ($class, $user, $category_id) = @_; 呼び出すときに,どの順だったか忘そうですね. TheClass->new($user, 3); Th

    Itisango
    Itisango 2011/12/18
  • Emacsのカーソルを気軽に高速点滅させる - hitode909の日記

    以前,cute-cursor.elというのを作って*1,それを使うと,カーソルの色が七色に輝くのだけど,Emacsが非常に重くなるという問題があって,しばらく使えてなかった. blink-cursor-modeのインターバルを0.05秒にするとカーソルが高速点滅させることができ,かつ,そんなに重くならないことが分かった. (setq blink-cursor-interval 0.05) (setq blink-cursor-delay 0.05) (blink-cursor-mode 1) これくらいなら気軽にできて良いと思う. *1:Emacsのカーソルを激しく点滅させるEmacs Lisp - hitode909の日記

    Emacsのカーソルを気軽に高速点滅させる - hitode909の日記
    Itisango
    Itisango 2011/06/21
  • RubyのGeneratorが便利な例を考えた - hitode909の日記

    ライブラリのインターフェイスが変なときにGeneratorを使ってましにできることがある. MeCabのRubyバインディングのインターフェイスがださくて,使いにくかった. 分かち書きして,名詞だけ表示するようなとき,普通に書くとこうなる. c = MeCab::Tagger.new("-O wakati") node = c.parseToNode(text) while node do puts node.surface if node.feature =~ /^名詞/ node = node.next end whileとか,node = node.nextとかが,Rubyっぽくない. Generatorに入れて1個ずつ返すようにすると,Enumlatorを使えるようになって,だいぶましになる. c = MeCab::Tagger.new("-O wakati") node = c.

    RubyのGeneratorが便利な例を考えた - hitode909の日記
    Itisango
    Itisango 2010/10/13
  • リファクタリング:Rubyエディションを読んだ - hitode909の日記

    アサーションの導入というのが紹介されていて,便利そうだった. assertにブロックを渡して,結果が偽のとき例外が起きるようにする. こういう感じ. module Assertions class AssertionError < StandardError end def assert(&block) yield or raise AssertionError end end class Human include Assertions def initialize(name) assert{ name != nil } @name = name end end Human.new(nil) # ここで例外が起きる こういうのはよいと思う. リファクタリング:Rubyエディション 作者: Jay Fields,Shane Harvie,Martin Fowler,Kent Beck,長尾

    リファクタリング:Rubyエディションを読んだ - hitode909の日記
    Itisango
    Itisango 2010/06/19
  • ☆をハッピィにするGreasemonkey - hitode909の日記

    ☆のアイコンをはてなココで設定したハッピィにするのを書いた.見た目の変化が激しくて楽しい. ☆をハッピィにするGreasemonkey — Gist 関連 ☆をユーザーアイコンにするGreasemonkey - hitode909のダイアリー

    ☆をハッピィにするGreasemonkey - hitode909の日記
    Itisango
    Itisango 2010/05/31
  • Greasemonkeyいろいろ作った - hitode909の日記

    Greasemonkeyをいろいろ作った.合わせて使うと楽しい. 画像や文字の位置を入れ替える いろいろ入れ替える — Gist 勝手にリンクをクリックしてちがうページに行く 勝手にリンククリックしまくる — Gist 色を派手にする 色をランダムに変える — Gist 完成系 静止画なので分からないけど,ずっとちかちかしていて,5秒ごとにランダムなリンクを踏んでくれる.見ていて飽きない.

    Greasemonkeyいろいろ作った - hitode909の日記
    Itisango
    Itisango 2010/05/07
  • 2009年をgithubで振り返る - hitode909の日記

    githubに書き捨てたコードを見直して1年を振り返ってみる. 1月 なし(なにをやってたんだろう……) 2月 http://gist.github.com/43410 僕のロゴを出力するRubyのスクリプト. がりがり書いてしまったけど,ロゴのビットマップを配列に入れておけば,あとから使い回せてよかったと思う. http://gist.github.com/68373 id:coconutsfineのはてなダイアリーに誘導するGreasemonkey. Javascriptは全然知らなかったけど,Kanasan.JSに初参加して,その場で書いた. http://github.com/jugyo/termtter Termtterのコミッタになって,いろいろ作ってた. jugyoさんの求心力でコミッタが続々集まってくるのがおもしろかった. Termtterは今でも使っていて,とても便利.

    2009年をgithubで振り返る - hitode909の日記
    Itisango
    Itisango 2010/01/01
  • 今日からはてなでバイトしてます - hitode909の日記

    縁あって、はてなエンジニアのアルバイトをしています。 今週中にRubyと同じくらいPerlも書けるようになることを目標に勉強していますので、よろしくお願いします。

    今日からはてなでバイトしてます - hitode909の日記
    Itisango
    Itisango 2009/02/24
  • キャラバン京都参加しました - hitode909の日記

    404 Not Found Twitterで話題になってたので、立命館の人たちとぞろぞろ行ってきました。 けっこう大人数で行って、2、3列くらい占領していました。 特に予備知識無しで行ってみたのですが、プログラミングだけでなく、普段あまり聞くことのない、セキュリティのお話も聞けて、勉強になることがたくさんありました。 詳細なレポートについては、周りにいた人がけっこう書かれているので、割愛いたします。 セキュリティ&プログラミングキャンプキャラバン2008 レポート - y_tsuda's blog - s21g セキュリティ&プログラミングキャンプ・キャラバン2008 -京都- その1 - orz blog セキュリティ&プログラミングキャンプキャラバンに行ってきた - まめ畑 特に何も考えず飲み会に参加してみたのですが、いろいろな方とお話しできたので、総じて参加してよかったですね。

    キャラバン京都参加しました - hitode909の日記
    Itisango
    Itisango 2009/02/08
  • 1