Perlでソースコードを解析して数値を発見したらとりあえず倍にすることで滅茶苦茶なFizzBuzzを生成するといった活動を紹介しました. スライドは以下です.160枚くらいあるので見るの疲れそう. Perlの静的解析入門とPerlリファクタリングツールApp::PRTのご紹介 // Speaker Deck お知らせ 静的解析友達募集中です #yapcasia— 趣味はマリンスポーツです (@hitode909) 2014年8月30日
弊社では毎年インターンを受け入れているのだけど,いまもインターンが来てて,テスト先に書きたいけど油断すると先に実装を書いてしまう,とか話してた. 個人的には,テスト先に書くのが大事というよりかは,意識して仕様を先に考えるのが大事だと思っている.テストを先に書くと,先に仕様を考えざるを得ないので,良いスタイルが身につく. 僕がよくやるのは,関連しそうなクラスの絵をひと通りノートに書いてみて,その図だけで,うまく動くことを説明できるくらい考えてみる.その時点でおかしかったら,コード書いてもおかしくなる.ノートに方眼ついてるとクラス図書きやすい.UMLとかじゃなくても,自分で見て分かるくらいでもいいと思う. 紙でうまくいったら,外部仕様だけソースコードに書いてみる.クラス名と,メソッドの定義と,メソッドの上くらいに,ひと通りコメントでも書いてみて,この関数はこういうことをするんです,こういう引数
特にすることなかったけど、寿司食べるためにもう一泊して、日曜まで居ることにした。一休っていうサイト、安い順で探せて便利だった。グランドパレスに9100円で泊まった。築地の公園見学した。公園、良い雰囲気で、草とか生えてて、半裸の男性がいっぱいいる。寿司屋、一時間半くらい並んだ。まさか全員時間通りに来るとは思ってなかったから、予約してなかった。先週もおまかせ食べたけど何度食べても良い。東京駅でビール飲んで、秋葉原でヨーヨーの紐100本買った。前にインターネットで買った紐はちょっと短くてやや困ってた。やまとの系列店に入ったら、ビール500円くらいして普通だった。けどトマトの切り方とかやまと感があった。新幹線の改札前でビール飲んで終電で帰った。
昨日,ページャNightという勉強会で,はてなブログのJSの見どころを紹介するLTをした.(昨日の日記). 資料公開しようかと思ったのだけど,発表資料そのまま公開しても意味不明なので,エントリに書き直すことにした. たとえば,このLGTM画像は発表資料の1枚目で,もし発表資料をそのまま公開したら,こういう謎の画像を解説もないまま見ることになっていたはず. JSのページャいっぱいある はてなブログの編集画面には編集サイドバーというのがあって,写真とかAmazon検索とかTwitterとかinstagramとかあれこれ貼れるようになってる. Amazon検索しても画面遷移するわけじゃなくて,ウェブ2.0という感じで,XHRでJSONを取ってきて,HTMLを組み立てて表示,クリックすると選択,貼り付けを押すとエディタに挿入される,という仕組み. 編集サイドバーから貼れるサービスは10種類くらいあ
UTF-8文字列をUTF-8でエンコーディングした時に得られる文字化けに詳しい人「それUTF-8文字列をUTF-8でエンコーディングしてるんじゃない?」— インタビュー記事 (@moznion) 2014, 6月 11 use strict; use warnings; use Encode qw(encode_utf8); use Time::HiRes qw/usleep/; my ($value) = @ARGV; while(1) { print "$value\n"; usleep 100000; $value = encode_utf8 $value; } encode_utf8しまくるやつ % perl encode.pl '徳川家康' 徳川家康 å¾³å·å®¶åº· å¾³å·Â家康 Ã¥þóÃ¥÷ÃÂÃ¥îöÃÂ¥
大学で学部の設立10周年イベントがあって見に行った。大学行くの2年ぶりくらい?だけど何の思い入れもないから何の感動もなかった。全面禁煙っていう旗が至る所に立っててしょうもない。おもてなしとして、注意がメインなのは、権威的で、受け取り側としては、人間として扱われてないと感じる。学生は人間扱いしなくていいのかもしれないけど、卒業生はともかく、外部の方もいらっしゃるので、そういうときに、うちの大学は学生を信頼していないから、5メートルに一本禁煙の旗を立てています、そういう大学にこのたびはようこそいらっしゃいました、みたいなことをアピールするのは情けない。今思い出したけど、喫煙する学生を注意するだけの警備のおっさんとか雇われてて見ててつらかった。 イベント、はこべさんが変な花をつけて若者に語りかけてた。思ったのは、ウェブ企業で働いています、というだけでは、何の人かわからないので、何か成果がほしい。
コードを書く速度が遅いとお嘆きのあなた!!! なんか、とにかくコードを書く速度が遅いんだけど、何が一番のボトルネックになってるんだろう ...— Cside (@Cside_) 2014, 5月 27 あなた!!! > id:Cside コードを書くのがなんとなくお嘆きのあなた!!!オブジェクト指向入門第二版を読めば、大半の些細な悩みは解決することでしょう!!! 利用者の声 私も愛用しています!!!最高の本です!!!最高過ぎて前歯が折れました 滋賀県在住マリンスポーツ氏 はこべさんも途中まで読んだそうです 滋賀県在住マリンスポーツ氏 ある昼下がり、しばゆーの机に下巻があるのを目撃したんです 滋賀県在住マリンスポーツ氏 お求めはこちらから 今ならAmazonプライムに加入することで24時間無料で発送いたします(Amazonが)。 オブジェクト指向入門 第2版 原則・コンセプト (IT Arc
長年の技術的負債で,あるネームスペース以下には,このオブジェクトを渡さず,このオブジェクトのフィールドの一部だけを渡したい,みたいな話があった.コンテキストオブジェクト全部渡すと,そのメソッドが何に依存しているか分からないので,必要な分だけ渡すべきで,最近は必要な分だけもらってるけど,昔書いた分は全部もらってて,混在しててきびしい状況だった. 静的解析して安全に置き換えられることを確認して,ソースコードの定義と呼び出し元を書き換えて,変更箇所のテストが通ったらcommitしてpushする,テスト失敗したら人間を呼ぶ,みたいなスクリプトを書いた.午前中にスクリプト書いて,午後に動かして,263コミット,280ファイル書き換えて無事リファクタリング成功した.すごい. すごいけど,最初から型さえあればIDEからちまちまリファクタリングできたはずなので,2014年にこういう技術を開発してるのはつら
staticおじさんっていう,インスタンスを作らず,ぜんぶstaticメソッドで済ませようという人が居る.僕もクラスなるべく作りたくないと思っていて,ちゃんとしたクラスを作るのは難しいので,インスタンス作らずに済むに越したことはないと思う.ドメイン駆動設計っていう本読むと,Serviceクラスは状態を持たないみたいな話があったけど,いま触ってるプロジェクトではServiceクラスはインスタンスを作らず,クラスメソッドだけ持たせるようにしてる.インスタンス作ると,そのインスタンスは何を持つのかとか,誰がどういう責任を持つのかとか,いろいろ考えることあるけど,クラスメソッドなら単なる関数なので,作るのが楽.オブジェクト指向分からないからという理由でやってるのではなくて,作らず済むときには作らないようにしている.必要なときにはインスタンス作っていて,引数10個の関数の呼び出しをがんばって組み立て
最近書いてるコード、難しいことをしていて、先週からやってるけど、なかなかうまくいかなくて、疲れる。先週うまくいかなくて帰って、週末酒飲みまくったらいろんなことを忘れたけど、朝来たらいろいろ思い出した。うまくいかなくても、とりあえず書くことはできて、気は進まないけど、とりあえず書いてみると、よく考えるとここでこういうことをするのはおかしい、とか気づいて、ちょっと戻ってなんとかしたりする。先に見通しが立たないのに書き始めるのどうかという感じだけど、能力が低くて、計画も立てられないような感じなら、とりあえずやってみるしかない。ソフトウェア作ることに関して言えば、間違ったら戻せるし、戻った時には、こっちはおかしいっていうことが分かってるので、戻った時にはもうちょっとましになってる。ので、とりあえず迷ったら作ってみるほうがよい。そもそも必要な知識が足りないとかなら、地道に勉強するしかないけど、そうで
Perlリファクタリングツール,適当にやったらCPANに公開できた.ご利用ください. App::PRT - Command line Perl Refacoring Tool - metacpan.org id:moznionをcollaboratorに入れたらいろいろ直したり教えてくれたりして便利だった.最高. CPANに公開するの,RubyGems.orgにgemを公開するよりややめんどうだった.やったことメモっておく. PAUSE: request_idからPAUSEのアカウント申請する 活動したい内容とか適当に書くと無視されるそうなのでちゃんと書く 本名 hitode909じゃだめで hitode 909だといけた moznionをcollaboratorに呼ぶ Minillaっていうオーサリングツールを入れてパッケージとしての体裁を整える minil migrateして失敗したと
こんにちは,まずはこのGIFをご覧ください. Perlのソースコードをリファクタリングするツールまともなのがないから自作することにした.perl-refactoring-toolsっていうそのままの名前. GitHub - hitode909/App-PRT: Command line tool for Perl code refactoring いろいろあってApp::PRTになった GitHub - hitode909/App-PRT: Command line tool for Perl code refactoring いまのところ,トークンの置き換えと,クラスのリネームができる. テストのカバレッジ100%で意識高い. hitode909/App-PRT | Coveralls - Test Coverage History & Statistics トークンの置き換え トークン
marqueeタグ,最近人気ないけど,かわいいので,使っていきたい.今日の日記もmarqueeにすることにした.あなたの意図に反してこの文字が流れていたら私の意図通りこの文字が流れていると言える.フィードリーダーとかではmarquee出せない気がするので,わざわざ元のページ開いて見てほしい.現実世界には,あまり流れる文字ない気がするけど,巻物とかがんばって巻くとmarqueeになる.本はmarqueeじゃなくて,Page Downという感じだから,あまりもう紙では見ることない気がする.身近なmarqueeとしては,新幹線とか乗るとmarquee見れる.自分が新幹線作ることを考えると,乗客にmarqueeを見せ続けて便利というのは不気味だから,新幹線考えた人は偉い.普通は乗客にmarquee見せようと思わないと思う.あと京都駅の駅前に防災情報みたいな電光掲示板が設置されてて,そこでmarqu
コードレビュー,慣れるとできるけど,いきなりdiffを渡されて,どうぞ見てくださいと言われてもよくわからないと思う. やりましょうというのはいいけど,ただむやみに読んでもうまくいかない.変更がある程度大きくなるとdiffだけ見てもよくわからないので,いろいろ見ることになる. 僕はいつも以下のようなことを無意識にやってて,うまくいってる気がしてる.GitHubのPull Requestの仕組みを使ってる前提で. Discussionをさらっと眺めてどういう問題を解決したいのか見る Commit Statusを見て,テスト通ってることを確認する Commitsタブで1コミットずつブラウザの新しいタブに開く 全部クリックし終わったら古い順に1コミットずつ読む 気になる点があったらエディタとかにメモしておく.あとで書き直されるかもしれないので,まだコメントしない 全コミット見終わったらFiles
ステンレスシャワーラックを紹介する動画を撮影した. ステンレスシャワーラックとは、ステンレスのシャワーラックである ステンレスシャワーラックはステンレスのシャワーラックで,錆びないシャワーラックである.たしかに錆びてなかった.持った感じも説得力があって孤独を癒やし生きる喜びを表現する.錆びないの不気味で,いちど文明が滅びてポクツナマンションとか廃墟になって土に返って2億年後に発掘されたときに2億年前の錆びないシャワーラック出てきたらびっくりすると思う. Amazonで買えるので今すぐ買いましょう.1個売れるたびにid:pokutunaにたぶん70円くらい支払われます. ステンレスシャワーラックの詳しい使い方はこちら. 便利家具情報 - ポクポク
最近会社にカフェスペースっていうお茶する空間があるのだけど、そこでビール飲んでたら、いいところに棒が置いてあって、そもそも、棒で同僚を殴ってはいけないというのは常識であるけど、手の届くところにスイッチを入れるとおもしろい音が出る棒が置いてあるというのは、人々が集まる場所の設計として、うまくいってないと思う。棒だったからいいけど、いいところに絞首台あったら興味本位で絞首される人とかが出てくると思う。一般的に、UIを設計するとき、非可逆な変更を加えるような、危険なボタンはなるべく手の届きにくいところに置いたり、パスワード入れ直させたりする。それか、元に戻せるようにする。同僚を棒で殴る前に戻すとか、同僚を殴るためのパスワードを入力という操作はない。おもしろい棒をそこらへんに置いとくのはそういう配慮が足りない。ブログの記事書く画面にワンクリックでブログ削除するボタンが置いてあったらおかしいと思う。
年越しだから新福菜館でラーメン食べた.チャーハンも食べたところ,チャーハンおいしかったけど,食べすぎた.おいしいとは思う.おいしいけど,食べすぎるというのはよくない. View this post on Instagram A post shared by 趣味はマリンスポーツです (@hitode909) www.instagram.com しかしながら,年末感というか,プレミアム感を出すために,普段はラーメン食べてるのに,チャーハンも追加するというのは,ベネフィット感があると主張したとして,誰かれも怒られることはないと思う.しかし,そもそも,たくさん食べればめでたいという価値観は,戦後にチューイングガム大量に噛むと甘みが増すとか言ってる時期で卒業すべきであって,このようなグローバルオポチュニティー世紀である21世紀に,世界中が貴重な資源を取り合いオポチュニティーな感じがあるのに,そうや
MongoDBなどはスキーマレスなデータベースであり,先にスキーマ決めなくても,何でもつっこめることになってる. データベースから見ればスキーマレスということでいいけど,アプリケーション的には,何が入ってるかちゃんと管理したい. 下の例では,AliceとBobでは持ってるフィールドがちがって,Bobはhobbyを持ってるけど,Aliceは持ってない. { name => 'Alice', age => 20, } { name => 'Bob', age => 21, hobbies => ['tennis', 'soccer'], } これくらいなら見れば分かるけど,長期間運用してて,結局何が入ってるのか分からない,みたいなことがあって,難しかった. オブジェクトをどんどん渡していくと構造を教えてくれるのを作った. hitode909/perl-object-classifier · G
ウェブサービス,UI変えると,改悪とか,元に戻してとか,そういう意見が出る. サービス提供する側の立場では,新しいUIのほうが使いやすかったり,機能が増えたり,収益が増えたりするので,新しい方を多くの人に提供することに価値がある.使いやすいかとか,儲かるかとかは,リリースまでに調べておく必要があり,リリースの結果使いにくくなったり収益減ったりしたら,失敗ということになる. 一方で,ユーザーの立場からすると,前の方がずっと使ってて愛着があったとか,新しい方を覚えるのは手間とか,確かにという感じはする.また,ウェブサービスは最終的にユーザーの手元のブラウザで表示されて動くので,映画の結末が気に入らないから変えたいといった要望よりは,受け入れやすい.データ構造についての,サーバー側の処理についてのユーザーからの要望というのはあまりなくて,このボタンがどうみたいな,UIの要望が多いと思う. 全部置
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く