サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
体力トレーニング
secondlife.hatenablog.jp
先日、メインの開発環境を MacOS から Windows 10 Professional へと移しました。理由としては主に2点で、現在仕事を自宅の固定席で行っており PC を持ち運びする必要がなくなったため Mac より高速で安価な Windows デスクトップ機を使いたいこと(Ryzen 9使いたい!)、WSL2 が正式版となり使ってみた感じ問題なく WSL2 で仕事の開発ができそうだったことが挙げられます。 WSL2 はふつうに Linux なので問題なく開発環境の構築が行なえ、Windows からも VSCode Remote のおかげでで違和感なくWSL2上のコードを編集、実行ができ快適な開発が行えています。(なお、WSL2 についての記事は山程溢れているので、ここでは殆ど触れません。) しかしながら、WSL2 ではないふつうの Windows 上で開発する機会が出てきたので、M
Google Photos は様々な Web サイトから Google Photos にアップロードした写真を貼り付けできる*1、という太っ腹な Picker API という機能がある。 ただ、この機能は他の Web サイトが無料で Google Photos の生 JPEG 画像を使え、Google 側に旨味はほぼないため、いつかはなくなるんだろうなぁ、けど無くならないと嬉しいな、という気持ちで使っていたら、Google Picker API で貼り付けた画像が「画像所有ユーザ以外は過去画像含め見れなくなる」という斜め上の変更が入ったため(この辺の認証メカニズムの変更の影響?)、数千枚の旅行写真を Google Photos から貼り付けていた 自分は悲しみに明け暮れていた。 またはてなブログでは、この Google Photos の貼り付け機能をはてなブログから利用できる機能としてユー
はてなグループが終了してしまい、はてなに頼んでエクスポートしてもらった MovableType 形式の日記が記載されている .mt データは手元にあれど、手元のストレージの肥やしになっている方はいませんか、私はそうでした。 というわけで、せっかく10年以上書いていた日記がWeb上から消えてしまって悲しいので、もう一度再び公開できるように静的サイトジェネレータを作った。 https://subtech-secondlife.netlify.com/ (サブテク日記再び・懐かしのデザイン…) https://github.com/hotchpotch/hatena-group-static-generator (ソースコード) これを使えばみなさんはてなグループ日記をまたどこかに公開できるので、よかったら公開しよう!!1 GatsbyJS を使って作った感想 静的サイトジェネレータは一昔前は
追記 kazuho さんからの指摘いただいた通り、TCP BBRアルゴリズムがモバイル環境の通信速度向上に影響を与えているわけでは無く、キャリア/ISPが制御している回線(本記事ではIIJmio回線)を、BBR+SSRという特殊なコネクションにより、トラフィックシェイピングの挙動を変えてしまい*1、そのため帯域幅が増えたと推測されます。この利用方法では、TCPの公平性に悪影響を与えてしまう行為になる可能性があり、一般良識の範囲内で試すなど、定常的な利用は控えた方が良いでしょう。 さらに追記 IIUC同僚氏いわく、kernelのtcp実装ならBBRv1。モバイルキャリア内にありがちなユーザ毎のキューがボトルネックか、同一ユーザが並行ダウンロードを行なって確認すればいい(バンド幅の総和が不変ならユーザ毎のキューあり)。キューがあってそこがボトルネックなら輻輳制御間の公平性の懸念はない— Kaz
2016年10月に開かれた、ニコ技深セン観察会第6回に参加し、深センに行ってきた。 ニコ技深圳観察会 まとめ (ポータル):tks(高須 正和)のブロマガ - ブロマガ 深センの有名な電気街、華強北(ファーチャンペイ)は秋葉原の何倍も広く、沢山のお店で安価な商品が大量に並んでいて、よく解らない面白ガジェットやおもちゃも売られ、街中ではドローンが飛んでいるような街、と話には聞いていたが、実際に行ってみると、まんまその通りだった。またハードウェアスタートアップのエコシステムとしての深センも、これだけ様々なヒト・モノ・工場等々が集まっていると、ものすごい速度で開発が進んでいくんだろうな、という漠然とした熱量を感じることができた。 (ファーチャンペイのビルの一角。このようなビルが無数にある) しかしながら、個人的に一番衝撃的だったのは、きちんとした商店から、コンビニ、チェーン飲食店、電気街の小さな
http://advent-calendar2readlists.herokuapp.com/ Qiita や Adventar、ATND のアドベントカレンダーがオフラインの電子書籍で読みたい、と思ったので作った。例えば寿司アドベントカレンダーなら、URLを入れて変換すると、readlistsを裏側で叩いて、こんな感じに生成される。 http://readlists.com/307857dc/ 生成後は readlists の機能を使って、iPhone や iPad に送ったり、dropbox に epub を保存したり、その他いろいろな方法で、様々なデバイスで読むことが出来る(※なお readlists の kindle に送る、は一部文字がおかしくなるのでオススメしない)。また Qiita のアドベントカレンダーは、HTML の要素の関係で必要の無い要素も混じってしまっていて、ちょっ
Ruby 上で http を叩いた通信見たい時に、毎回同じ事をやってるので抽象化して http-dump というライブラリを作った。 https://github.com/hotchpotch/http-dump $ gem install http-dump require 'net/http' require 'uri' require 'http-dump' HTTPDump.dump { Net::HTTP.get(URI('http://example.com')) } と http でやりとりしてるコードを block で囲むと、以下のように出力される。 > GET http://example.com/ with headers {'Accept'=>'*/*', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=
この投稿は RubyMotion Advent Calendar 2013 の23日目の記事です。 最近 iPhone に買い換えて、初めて iPhone をメイン端末にしてみたので iOS アプリを何か作ってみよう、と思い最初は無難に Xcode + Objective-C で書いていたんだけど、そういえば RubyMotion でも iOS アプリ作れるんだっけ、どんな感じなんだろうと思って Rubyist がみんな大好き*1 Rubyistokei の iOS 版を作ってみた。 Rubyistokei は 画像の表示 ネットワークでのデータ取得 github 上に表示元のメタデータが上がってるため、それを取得し利用する レイアウトの構築 タイマーの利用 時計なんで あたりの実装が必要で、最初の題材としては簡単すぎずも無く、難しすぎずも無くちょうど良い感じでした。 https://gi
https://github.com/hotchpotch/GlitchKit 本日、社内外の iOS/Android 向け Tips 共有会、#potatotips 第二回 で、「XXXKit -それははしかのような物-」という内容を発表した。 最近 iOS (Objective-C) を今更ながらに学び始めたんだけど、新しい事を学んで今まで知らなかった/興味深いパラダイムがあると、それにどっぷりつかりがちで、それを プログラマにおけるはしか 、と言ったりする。 その中でかじってすぐに興味深いと感じたのは Objective-C の"カテゴリ"で。これはヘッダを import するだけ(実際は import するしない関わらずリンクされた時)で、様々なオブジェクトのクラスの挙動を拡張できる。Ruby における mixin + refinements のような物だし、Perl でも use
miyagawa さんの podcast が毎回面白い、Web っ子ならあーそれそうだよね〜的な相づちを頭の中でうちつつにやにやと聴いてしまう。しかしそれだけだとなんか言い足りない気分、なんか言いたい!と言うわけで、今回の江島さんとの podcast の話題に勝手に乗っかかってみます試み。 http://podcast.bulknews.net/post/43535683799/podcast-ep2-2013-02-19-kenn-ejima マシン環境のセットアップの話し 開発環境をどう整えどう保つか。これはエンジニアそこそこいる会社だと必ず考える話で。マシンセットアップの初期化コストを減らし、その後どう継続するか。 miyagawa さんが言う、うちの会社というのは弊社(クックパッド)のことで、エンジニアの開発環境 OS は Mac。 Mac の上にとりわけ仮想環境の Linux な
してきました。主な内容は Rails 2.3 -> 3.0 へ、cookpad という巨大なサービスでの Rails をどうアップグレードするかという話がメインです。 こう機会を逃してエントリーがどんどん書きにくくなっていった(日記はその日のうちに書きましょう)んですが、はてダが SpeakerDeck に対応した記念に! あと、SapporoRubyKaigi から帰ってきた翌週、Rails 3.0 -> 3.2 へのバージョンアップもこっそりと行いました。 ピークタイム終わった!ヘーシャもレーィルズ3.2にバージョンアップしましたご協力いただいたみなさん朝からお疲れ様でした!!!!1— セコンさん (@hotchpotch) 9月 19, 2012
先月行われた Fluentd meetup in Japanというイベントで発表してきました!一ヶ月前だけどエントリーにするの忘れていたので、今更ながらエントリーに。 fluentd を利用した大規模ウェブサービスのロギング View more presentations from hotchpotch fluentd、クックパッドではすでに100台以上のサーバに入れて各種ログを集約してますが本当に便利で。あとログ以外も最近 fluentd 経由で投げ始めたので、その辺も近々エントリーにできたらなーと思います。
100人のプロが選んだソフトウェア開発の名著 君のために選んだ1冊 が出版され、『私と Ruby と添削と』という内容で寄稿しました。私がどうプログラミング・オープンソースの楽しさを知ったかについての昔話です。公開して良い、とのことなので公開いたします。 なお、文章中に出てくる tdiarytimes.rb のコードは以下です。9年前に書いたコードなので今読み返すと恥ずかしいを通り越してもはや微笑ましいですね!!1これでも当時は、自分なりにできるだけ綺麗なコードにして公開した記憶があります。 https://github.com/tdiary/tdiary-contrib/blob/master/plugin/tdiarytimes.rb 私と Ruby と添削と プログラミング技術の向上させるには、どういう方法があるでしょうか。プログラミングに関する書籍を読む、オープンソースで公開されて
最近クックパッドでは、アプリケーションサーバの大半が Rails 2.3 から Rails 3 に置き換わったのですが*1、リリース前のベンチマークの時点ではあまりパフォーマンスが出ず四苦八苦していました。具体的には Rails 2.3 の時と比べ MRI 1.8.7 だとレスポンスタムが200%ぐらい遅い結果でした。Rails 3 になって実装が Merb core を取り入れ疎結合で綺麗になった反面、より多くのオブジェクトと・メモリを利用する様になった影響かと思います。 そこで Ruby インタプリタの変更*2を行い検証をしたところ MRI 1.8.7 (Rails 2.3と比べ) 約200%遅い MRI 1.8.7 -> Ruby Enterprise Edition 1.8.7 2011.03 (tcmalloc 無効) 約180%低速 MRI 1.8.7 -> Ruby Ente
先日のももクロハッカソンで出会った wantedly を作ってる仲さんが と言ってたので、面白そうなので wantedly を速くしてみました。 wantedly ちなみにデータが数百万オーダーもなさそうなのに、どのページもログインすると2-5秒ぐらいかかっていたので、確実に速くできそうだなぁという感覚はやる前からありました。 アプリケーションサイドのチューニング 初心者*1にありがちな問題として SQL に適切にインデックス張ってない キャッシュすべき場所をキャッシュしていない 無駄なデータを引きすぎてる ことがよくあります。ので順に実装を見ていきました。 SQLに適切なインデックスを張ってない 張ってありました!びっくり!\(^o^)/ キャッシュすべき場所をキャッシュしていない Facebook API を利用したアプリケーションなんですが、ユーザのデータの取得を毎回馬鹿正直に HT
最近はかなこ推しになりつつある、週末エンジニアの secondlife ですこんにちは。 9/4(日)にももいろ週末エンジニアの方々と都内某所で、第一回ももクロハッカソンを開き参加し、Perl ライブラリの Acme::MomoiroClover を作りました。 https://github.com/hotchpotch/perl-acme-momoiroclover http://search.cpan.org/~tateno/Acme-MomoiroClover/ 何故今更 Acme::MomoiroClover を作ったかと云うと、今までに日本のアイドルの Acme シリーズは二つ、Acme::MorningMusume と Acme::AKB48 があります。その Acme が存在するアイドル2ユニットに共通していえることの一つに、どちらも紅白歌合戦に参加したことがあることが言えま
ダイアリー開設以来はじめて変える気がします。はてなダイアリーは半角カナをタイトルに使えないんですね!!! 追記 id:whirl に数値文字参照なら使えると教えて貰って半角カナをタイトルに入れることができました!ありがとう〜 ちなみに基本は箱押しです!!!
先日行われた RubyKaigi 2011 & 闇RubyKaigi 2011 で発表しました。RubyKaigi 2011 での会社的なちゃんとした(?)発表は、クックパッド開発者ブログをご覧下さい! Ruby を利用した大規模ウェブサービスの開発・運用 – RubyKaigi 2011 発表資料 « クックパッド開発者ブログ 闇RubyKaigi2011の発表資料 2011闇RubyKaigi あなたの知らないREEの使い方 View more presentations from hotchpotch RubyKaigi 1日目当日に闇RubyKaigiの追加募集があって、プレゼン時間2分とのことだったので応募したら通った*1ので発表しました。2分のLTぐらいならTAKESAKOさんじゃなくともサクっと作れるので、当日募集にはちょうど良い時間だと感じました! プレゼン内容的にはREE
先日行われたRuby勉強会@札幌-18で、Ruby勉強会にもかかわらず空気を読まず、継続的インテグレーションについて発表しました。 継続的インテグレーション - Ruby勉強会@札幌-18 View more presentations from hotchpotch 継続的インテグレーションは複数人開発ではやるべき価値がある手法だと思ってますが、実際に実践してみないと価値をなかなか体験できない物だと思っています。 継続的インテグレーションについて語る際に、言葉で伝えにくい部分がある。それは、継続的インテグレーションは開発全体に関わる「パターン」への移行をもたらすものだということであり、こればかりは、実地で体験してみないと理解しがたいのだ。 継続的インテグレーションの恩恵 スライドの中では、実際にクックパッドで継続的インテグレーションを行っていて感じた価値、その結果変わった開発サイクル・プ
Ruby のパッケージングマネージャの rubygems と Perl の CPAN と比較して、rubygems の残念なところの一つに『インストール時にテストを行わない』ことが挙げられます。rubygems は gem install package で一発で入れられる事は便利なんですが、インストール時にテストが行われないため、実際にその環境で正しい挙動をするとは限りません。また、rubygems で入れたパッケージのテスト方法もコマンド一発で簡単にできるわけではないのでめんどくさかったりします。なにより問題なのが、インストール時にテストが行われないため『開発者がテストをさぼりがち』になってしまいます*1。 最近 rubygems でも CPAN と同じように、インストール時にテスト可能なパッケージはテストを行い、失敗したら基本的にインストールできない(設定で変えられます)仕組みを持っ
本日大江戸*1で行われた大江戸Ruby会議01で、高速なテストサイクルを回すにはという内容で発表してきました。 大江戸Ruby会議01 高速なテストサイクルを回すには View more presentations from hotchpotch テストを速くするには二パターンあり、一つは単体実行時の速度・フィードバックの高速化、もう一つはすべてのテスト実行時の高速化があると思っていて、それらについての話です。ぎゅっとまとめると、前半の単体実行時の速度・フィードバック高速化には spork / prefetch-rspec / autotest / watchr を使おうという話と、後半は REE / parallel_tests による高速化・並列実行、remote spec によるリモートマシンでの分散テストについての話です。 特にオレオレプロジェクトの prefetch-rspec
本日行われた Shibuya.js の発表資料をアップしました。 さいきんの JavaScript テスト / Test.js - Shibuya.js 発表資料 View more presentations from hotchpotch JS のテスティングフレームワークのおおざっぱな説明や JavaScript テストにおける問題、それについての解決方法の一つ、CUI でのテスト、Envjs、エンドツーエンドテストにおける JS / Ajax のテスト、終わりにちらっと Phantomjs の話があります。 スライドの最後にあるように、やはりまだコレだ!という JS のテスティングフレームワークは存在しなく、今後 JS のテストは『僕らが書きたいテスト』をどれだけ簡単に書ける・書く手法が確立されるかによって流行廃りは決まってくるんじゃないかなぁ、と思ってます。そのうちの一つがスライ
みなさま、いかがお過ごしでしょうか。以前人のことをオサーンオサーン云いまくっていたけどその当時のオサーン年齢のもうすぐ三十路になります secondlife ですこんばんわ。言葉のしっぺ返しが痛い今日この頃です。 さて、若かりし頃には合わなかったけど今使ってみるとしっくり来る物もありますね。その一つが AutoTest(ZenTest) です。ファイルが更新したらこける / SyntaxError になると解っていてもテストが走りFFF、自分のテストサイクルでテストが実行できないのが我慢できませんでしたが、久しぶりに使ってみるとそんなのは気にならず、いちいちテスト実行しなくてよくなってとても気持ちがよい感じです。 しかしながら ZenTest に含まれる AutoTest はレールが敷かれているテスト環境では利用しやすいけど、ちょっと道を踏み外すと結構テストを実行するのがめんどくさいです。
12/18 にオライリーから発売される、97きのこ本ことプログラマが知る97のきのことに、"快適な環境を追求する" というエッセイを一本寄稿しました。みなさん、良かったら手に取ってみてください。 プログラマが知るべき97のこと 作者: 和田卓人,Kevlin Henney,夏目大出版社/メーカー: オライリージャパン発売日: 2010/12/18メディア: 単行本(ソフトカバー)購入: 58人 クリック: 2,086回この商品を含むブログ (325件) を見る あ、今更間漂う報告ですが、2010年8月からクックパッド株式会社で働いてます。なんか報告のタイミングがずれていまさら感が漂いますが…。 クックパッドでは "快適な環境を追求する" ということで開発基盤チームに所属してます。開発基盤チームでは全員が利用するライブラリの開発から、サービスをより良くするにはどういった(ソフトウェア・プロセ
7/16 が最終出社日*1となり、はてなを退職しました。はてなブックマークでのチュートリアル機能がはてなでの最後の仕事となりました。 はてなに入ってからを振り返ってみると2006年1月にはてなに15番目の社員として入社し、4年7ヶ月はてなのメンバーと一緒に働いてきました。当時はまだ誰も辞めていなかったため、過去はてなで働いた人すべて一緒に仕事をしてきたことになります。入社時はまだオフィスが東京にあり、毎日全員が朝会でディスカッション、時には数時間も熱く語るというエキサイティングな職場だったのがとても印象的でした。 当時は本当に自由な環境でいろいろな事を試行錯誤していた日々でした。入社約2ヶ月で、会社のフレームワークに DI の概念を実装したころで Perl もう無理と投げ出して Perl を書かない仕事ばっかりやっていたのも今となっては良い(?)思い出です。今だったらあり得ないですねほんと
先日の公開された Android 2.2 ですが、この 2.2 で API から Google 経由で簡単に Push Notification Service を利用することができるようになりました。 Android Cloud to Device Messaging Framework - Android — Google Developers アプリ開発者はこの API を使えば簡単に Web やその他 Android 以外のデバイスから起こしたアクションを Android に通知することができます。感覚としては5秒後にはもうすでにAndroid端末にpushされてる感じです。 で、この API を作った Chrome to Phone という Google Chrome で見ているページをワンクリックで Android に通知して Android ブラウザで開いたり、GoogleM
HTML5 File API つかうとローカルファイルをブラウザに Drag したファイルをハンドリングして binary やら data スキームとして扱うことができ、Firefox 3.6 や Chrome 5 ですでに使えるというのを今さらながら知った*1ので、はてなフォトライフにローカルファイルをブラウザにドラッグするだけでアップロードできる UserScript を作ってみまんた。 http://gist.github.com/raw/406281/drag_drop_fotouploader.user.js WinXP + Firefox 3.6.3 で確認してますが OSX や Chrome5 などの環境で動くかは試してないので解りません。動作デモは以下の swf 動画を見てください。 http://rails2u.com/misc/fotolife_drag/ なんかすごい
ブックマークレットをかんたんに作成・公開できるラボサービス、その名も Hatena::Let を作りました。 http://let.hatelabo.jp/ 未だにブックマークレットを作るときには、アドレスバーに javascritp:... を打ち込んで実行したり、 Firebug で実行して試しつつも外部の bookmarklet 化サービスを使って文字列削ったり、IE対策のため500ちょい文字を超えると gist にファイルを置きつつもおきまりの var script = document.createElement('scrit');... で JS のローダー書いたり、とやりたいことは同じなのにめんどくさい手順を毎回行っていたました。 ここらへんの手順を毎回繰り返すことなくさくっと作って公開したい!と思い id:cho45 と半年ぐらい前の開発合宿*1で作って眠らせていたのを、ち
本日、はてなモノリスという Android / iPhone3GS 向けの簡単にモノのバーコードをスキャンして投稿(Twitter にも同時投稿できます)というサービスを作りました。是非対応端末をお使いの方は利用してみてくださいね。概要だけきいてもうーん、という感じですが実際に使ってみると簡単にモノのバーコードが認識できお気楽に投稿できるのは楽しいです! http://mono.hatena.ne.jp/ 約一ヶ月ほど専念して開発したんですが、その話でも。 開発の経緯 最近僕ははてなブックマークのディレクターと、はてなの Android 開発周りを担当しています。とあるミーティングで今後 Android をどう展開していくか、という話を id:jkondo, id:naoya, id:cho45 と僕で行いました。Android の開発おもしろーい、と個人的に強く思ってることもあり And
次のページ
このページを最初にブックマークしてみませんか?
『川o・-・)<2nd life』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く