タグ

ブックマーク / qiita.com (26)

  • タイムゾーン呪いの書 - Qiita

    コメント欄で「Software Design 誌 (2018/12) に寄稿した内容や修正などをこちらの記事にも適用したい」と言ったあと、やるやる詐欺でずっと放置していましたが、三年近く経ってようやく 2021年 7月に大幅に改訂し、同時に Zenn に引っ越すことにしました。 タイムゾーン呪いの書 (知識編) タイムゾーン呪いの書 (実装編) タイムゾーン呪いの書 (Java 編) なにやら長くなりすぎたので三部構成になっています。 この Qiita 版は、しばらく (最低一年は) 改訂前のまま残しておきます。 タイムゾーンの存在はほぼ全ての人が知っていると思います。ソフトウェア・エンジニアなら多くの方が、自分の得意な言語で、タイムゾーンが関わるなにかしらのコードを書いたことがあるでしょう。ですが、日に住んで日仕事をしていると国内時差もなく1 夏時間もない2 日標準時 (Japa

    タイムゾーン呪いの書 - Qiita
    kamatama_41
    kamatama_41 2018/02/06
    力作だ..
  • シェルスクリプトを何万倍も遅くしないためには —— ループせずフィルタしよう - Qiita

    🐚 🐚 🐚 🐚 シェルスクリプトは遅すぎて使えない 普通の「速い言語」より何百、いや、何千倍も遅い 他のプログラミング言語を経験してからシェルスクリプトに入門し、このような感想を持つ方も多いのではないでしょうか。 実際、こういったことは往々にして起こり得ますので、「速い言語」を使うべきか否か見極めることは大事だと思います。 しかし、当にシェルスクリプトというのは、そこまで遅いのでしょうか? データ量が多い場合は常に最初から「速い言語」で書いた方がよいのでしょうか? 実は、そうとも限りません。 シェルスクリプトにはシェルスクリプトなりの「速い書き方」があります。 この「速い書き方」で処理できる問題に関しては、シェルスクリプトは「速い言語」なのです。 では、「速い書き方」とは何かというと、端的には「たくさん繰り返されるループはシェルスクリプトで記述しない」ことです。 以下でこれを説明

    シェルスクリプトを何万倍も遅くしないためには —— ループせずフィルタしよう - Qiita
    kamatama_41
    kamatama_41 2018/01/31
    なるほど
  • Retty流『2200万ユーザを支える機械学習基盤』の作り方 - Qiita

    みなさん、こんにちは。Retty CTO の樽石です。 この記事は Retty Advent Calendar 25日目です。メリークリスマス。 昨日は @ttakeoka の『MFIにむけてRettyの取り組み』でした。 今年も残りわずかになりました。いかがお過ごしですか? Retty はこの 1 年でエンジニアがほぼ倍増しました。それによって、情報発信者が増え、Advent Calendar に参加出来るようになりました。みんな楽しそうにしていて、うれしいです。 Retty Inc. Advent Calendar 2016 - Qiita さて、今年最後の Retty Advent Calendar 記事を書くということで、はじめは 1年のまとめ的内容にしようかと思いましたが、それでは平凡で面白くありません。そこで、ネタになりそうなマニアックな技術的記事で締めくくりたいと思います。

    Retty流『2200万ユーザを支える機械学習基盤』の作り方 - Qiita
  • 不安とストレスから解放される見積りとスケジュール方法 - Qiita

    エンジニア組織を強くするためのを出版しました Qiitaでエンジニアリングをめぐる様々なコミュニケーションの問題とその解決策や考え方を書いてきた。それらの背後にあるエッセンスをこの度書籍として出版するに至りました。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング この書籍は、エンジニアリングを「不確実性を削減する」という第一原理で捉え直し、様々なエンジニアリングとその間のコミュニケーションをめぐる現象を説明していくものです。 はじめに 何かはじめてのことをする場合、人はとても「不安」を感じます。人は未来を考えることができる生き物です。その特異な能力ゆえに、未来に起こるかもしれないよくないことを考えると「不安」を感じてしまうのです。 仕事プロジェクトなどは、「間に合わなかったらどうしよう」とか「この仕事はちゃんと終えられるのだろうか。」など、未来のことを

    不安とストレスから解放される見積りとスケジュール方法 - Qiita
  • 【知見共有】GoogleBigQueryの設計ミスでデータサイエンティストの業務効率が低下 - Qiita

    GoogleBigQueryの問い合わせクエリー肥大化でメンテが大変なことになったので、人間のためのクエリーを書けるよう工夫する話です。データ収集基盤としてBigQueryを採用しています。スマホアプリやサーバで生成される全てのユーザ行動ログをfluent経由でBigQueryに投入してデータサイエンティストに自由に活用してもらっています。 データ収集基盤の仕様設計 BigQueryはGoogle様のクラウド技術を利用して100GByteのフルスキャンだって10秒で終わるイケてるサービスです。BigQueryをデータ収集基盤として運用すればReadが超高速なので、アプリエンジニアは行動ログを仕込むだけ、データサイエンティストは蓄積されたデータを利用してビジネスに活用とWin-Winの関係が築けるはずだ、と思っていたのですがそう上手くはいきませんでした。 問い合わせクエリー肥大化による業務効

    【知見共有】GoogleBigQueryの設計ミスでデータサイエンティストの業務効率が低下 - Qiita
  • Revisions of "AWSのS3で静的Webサイトを公開する手順まとめ" - Qiita

    This is a revisions of "AWSのS3で静的Webサイトを公開する手順まとめ"

    Revisions of "AWSのS3で静的Webサイトを公開する手順まとめ" - Qiita
    kamatama_41
    kamatama_41 2015/10/20
    これか
  • Rack解説 - Rackの構造とRack DSL - Qiita

    Rackとは RackはRubyによるWebアプリケーション開発のHTTP送受信処理を担当するモジュール(gem)で、Ruby on Railsを始めとする多くのWebフレームワークの一番下のレベルで利用されています。 稿ではRackの基的な部分を中心に説明します。 簡単なRackアプリケーション まず基を理解するため説明用の簡単なアプリケーションを作成します。 最初にrack gemのインストールが必要ですが、Ruby on Railsをインストールしている場合はすでに必須モジュールとして入っています。単独でインストールする場合は次を参考にして下さい。 次にconfig.ruという名前の小さなファイルを作ります。これはRackのサーバ起動コマンドrackupの設定ファイルで、中身はRubyで記述します。 class ShowEnv def call(env) [ 200, # ステ

    Rack解説 - Rackの構造とRack DSL - Qiita
  • マイクロソフトはどうやってBingをFPGAで実装したか - Qiita

    ドワンゴがニコ動の画像配信向けにFPGAエンジニアを募集したり、マイクロソフトはBingをFPGA実装したり、Baiduもディープラーニングの高速化にFPGAを導入したりと、なんだか世の中急にハードウェアくさくなってきた。IoTとは違う意味で。 金融分野ではすでにCPUでは遅すぎてFPGAによるナノ秒単位の株取引が行われているって記事を書いたのは2年前だけど、ここ数年はIntelのCPUのクロックもあまり上がらなくなってきたし、Fusion-ioやNetezzaといった大手御用達のハイエンド鬼速ストレージも、フタを開ければ中身はすでにFPGAに移行済み。IBMが最近出したData Engine for NoSQLという製品ではPOWER8プロセッサにFPGAを直付けしてRedisを高速化したり。いよいよデータセンターにも、先の見えないCPUに代わってFPGAGPUを導入する波が押し寄せつ

    マイクロソフトはどうやってBingをFPGAで実装したか - Qiita
  • GS Collections 使い方メモ - Qiita

    Java Magazine で取り上げられていて存在は知っていたものの、特にチェックはしてなかった GS Collections。 Java Day Tokyo 2015 や JJUG CCC 2015 で再びその名前を耳にし、気になってチラッと実装を見たところ、面白そうだったので使い方を調べてみた。 【追記】Eclipse Collections 2015 年の 10 月から 12 月にかけて、 GS Collections は Eclipse 財団に移管された。 名前も GS Collections から Eclipse Collections に変更された。 公式サイトはこちら → Eclipse Collections - Features you want with the collections you need. (日語ページ) GS Collections と、機能的な差

    GS Collections 使い方メモ - Qiita
    kamatama_41
    kamatama_41 2015/04/15
    これは使ってみたい
  • Java で Embulk Output Plugin を書く - Qiita

    はじめに すでに Ruby で書かれた Embulk plugins が登場しており、Embulk の利用シーンも段々と増えていると感じます。その一方で、Java で書かれた plugins はまだまだ少ないのではないかと思います。ちょうど、Embulk から Elasticsearch へデータを書き出す output plugin を書く機会があったので、その plugin の書き方をメモとして残します。 まずは Plugin Template を利用 Ruby であれ Java であれ plugins を作成するには、まず Embulk に用意されている new コマンドを実行するのがよいかと思います。New コマンドは、Plugin 開発に必要な gradle スクリプトや Embulk 体が plugins を登録するために必要なスクリプトなどを自動で生成します。Embulk

    Java で Embulk Output Plugin を書く - Qiita
  • 技術的負債 - Qiita

    この文章の目的 開発者とステークホルダーが「技術的負債」という言葉で正しくコミュニケーションをとれるようになることをゴールとする。技術的負債については色々な所で語られるが、実際の現場では技術的負債が管理されてない事が多いのでは無いだろうか。この場で技術的負債という言葉についての知見をまとめ、たたき台とする事で、ゴールに到達する第一歩としたい。 対象読者 開発者 責任者/見積もりに対して決定権を持つ人 技術的負債とは何か 技術的負債とは、コード・設計の状態を表す見積もりのための言葉である。継続的に開発を行う上で理想状態から離れたものを負債という比喩で表していている。 たとえば、省略可能なプロセスを飛ばす事で開発の高速化を行う事があり、初期開発を高速に行う開発者の中には意識的・無意識的問わずこれを行っている事例が多々存在する。このようにして抱えられた技術的負債は長期的に見た場合に問題を引き起こ

    技術的負債 - Qiita
  • JavaのユニットテストにSpockを適用する - Qiita

    アトラクションルームクラス。ルームに人を追加するaddメソッドを持つ。キャパシティは合計20あり、男性の大人は3、女性の大人は2、子供は男女とも1を消費する。キャパシティがいっぱいになったら満員で、それ以上は人を追加できない package spockexample; import org.junit.Before; import org.junit.experimental.runners.Enclosed; import org.junit.experimental.theories.DataPoints; import org.junit.experimental.theories.Theories; import org.junit.experimental.theories.Theory; import org.junit.runner.RunWith; import stati

    JavaのユニットテストにSpockを適用する - Qiita
  • iTermでsshするときに、接続先に応じて背景色を変える方法 - Qiita

    自分の場合はこれを利用させて頂いてます。 使い方は簡単で、どこでもいいから適当にリンク先のコードをファイルに書き出して置いておく。 例だと~/bin/ssh-host-color となっているので自分もそうしている。 特にPATHが通っている必要はない。 ポイントはコード中の if [[ "$@" =~ thomd ]]; then set_term_bgcolor 40 0 0 elif [[ "$@" =~ git ]]; then set_term_bgcolor 0 40 0 fi で、ifの中のthomdやgitに当たる箇所を変更する。 実際にsshコマンドの中に含まれている文字列を書いておくことで、それに反応してset_term_bgcolorが実行される。 set_term_bgcolorの後の数字はRGBに当たる数字になっているので、自分でお好みの色を指定すればよい。 配置

    iTermでsshするときに、接続先に応じて背景色を変える方法 - Qiita
  • Railsが時代に合わなくなってきた - Qiita

    追記 RailsでJS辛い問題に関しての結論:http://qiita.com/kaiinui@github/items/dad6180f1910c6a4bfd5 -- 近年、(1) Web/App両対応が増えてきたこと、(2) WebでもJSを多用するようになったこと、の二つがあり、以下の点でRailsが微妙になっている。 ViewのJavascriptRailsから独立している API層のサポートが微妙 最初に書いておきますが、特に決定的な解決策もなく、辛いから今後解消されてほしいよね、な話です。 ViewのJavascriptRailsから独立している Railsはとても堅牢。 モデル、コントローラ、ルーティングと、変にいじらない限りはほとんどテストが要らない。 必要なのは、モデルに新たにpublicメソッドを付けたときくらいだろう。 実際、バックエンドはそうそうバグが出ない。

    Railsが時代に合わなくなってきた - Qiita
  • GoogleのHTTPロードバランサーの破壊力があり過ぎる #gcpja - Qiita

    そもそもGoogle Compute Engineのロードバランサー、GCE LBは、1インスタンス・1グローバルIP・ウォームアップなしでいきなり100万リクエスト/秒を捌けてしまう謎性能を備えていて、既存の他社クラウドのLBだけこれで置き換えたい! という声もちらほら聞かれるほどの強力LBサービスであった。 From Compute Engine Load Balancing hits 1 million requests per second! そして今回、正式公開ではないLimited Preview版ではあるものの、GCE LBの新機能としてHTTP Load Balancingが発表された。その性能と機能の破壊力があり過ぎるので、GCPブログ記事のリンクをシェアするだけではあまりにもったいない! と思い、要点を訳してみた。 DNSに頼らない、1グローバルIPによるUS、EU、A

    GoogleのHTTPロードバランサーの破壊力があり過ぎる #gcpja - Qiita
  • Mountain Lionでのシステムワイド環境変数の設定方法 - Qiita

    Moutain Lionでenviroment.plistのサポートがなくなったので 設定方法をメモ なにが問題か 従前、環境変数の指定に~/.MacOSX/enviroment.plistを使用しているとMounteain Lionへアップデートした場合、eviroment.plistは参照されない(サポート終了とのこと http://www.mobileread.com/forums/showthread.php?t=186069 ) 環境変数PATHをenviroment.plistで設定していた場合アプリケーションバンドル形式のアプリ例えばEmacs.appから/usr/local/binが見えなくなったよってemacs起動時にwgetが見つからないと怒られるハメに… コンソール上のプログラムは.bash_profile等で環境変数を指定すれば問題はないが、普通にアイコンクリックし

    Mountain Lionでのシステムワイド環境変数の設定方法 - Qiita
  • モデルやメソッドに名前を付けるときは英語の品詞に気をつけよう - Qiita

    はじめに 他の人が書いたコードを読んでいるときに時々気になるのが、英語の間違いです。 特に動詞、名詞、形容詞の使い分けが間違っていたりすると、かなり違和感を感じます。 そこで今回はモデル(=クラス)やメソッドに名前を付けるときの基的な原則をまとめてみます。 また、英文法的に正しい品詞が選べるようになるための習慣についても最後に説明します。 想定する言語/フレームワーク この記事の説明ではRuby/Ruby on Railsを想定しています。 ただし、基的な考え方は他の言語でも同じように使えるはずです。 モデルの名前は名詞にする 例: 「支払い情報」を表すモデルを作りたい場合 × Pay ○ Payment 「支払う = payか。よし。」でモデルを作ってはいけません! payは動詞で、payの名詞形がpaymentです。 Payモデルではなく、Paymentモデルを作りましょう。 例:

    モデルやメソッドに名前を付けるときは英語の品詞に気をつけよう - Qiita
    kamatama_41
    kamatama_41 2014/05/28
    モデルに動詞は使わない。困ったら辞書を引く
  • Googleの虎の子「BigQuery」をFluentdユーザーが使わない理由がなくなった理由 #gcpja - Qiita

    「BigQueryは120億行を5秒でフルスキャン可能」は当か? 先日、kaheiさんがGoogle BigQuery(Googleクラウドの大規模クエリサービス)について、こんなエントリを書いていた。 とにかくパフォーマンスがすごい。(Fluentd Meetupでの)プレゼン中のデモで、ディスクに収められた5億件のデータをSQLでフルスキャンするのに3秒しかかからない。9億件のデータを正規表現を含んだSQLでスキャンしても、7秒で終わる(これ、記憶がちょっとあいまい。もう少しかかったかも)。これには驚いた。佐藤さんがGoogleに入社して一番驚いた技術が、一般公開される前のBigQueryだったと言っていたが、その気持ちはわかる。 From Fluentd Meetupに行ってきました これを読んだ時、BigQueryの検索スピードについてちょっと補足したくなった。確かにFluent

    Googleの虎の子「BigQuery」をFluentdユーザーが使わない理由がなくなった理由 #gcpja - Qiita
  • 新言語Hackで最強PHPerになろう! - Qiita

    新言語 Hack とは こんにちは、新言語 Hack が Facebook より OSS としてリリースされましたね。 詳細は以下の通り。 https://code.facebook.com/posts/264544830379293/hack-a-new-programming-language-for-hhvm/ 新言語 Hack は HHVM 向けの開発言語で静的型付き言語の性質を取り入れ PHP での素早い開発を実施し、PHPとの互換性があります http://hacklang.org/ http://hhvm.com/ HHVM (HipHop Virtual Machine for PHP) とは、Facebook が OSS で開発している PHP 用の JIT コンパイラです。 HHVM は PHP のコードをダイナミックにバイナリコードへと変換することで高速実行の実現を目

    新言語Hackで最強PHPerになろう! - Qiita
  • JUnit(Java)でJavaScriptをテストする。 - Qiita

    JUnit上でJavaScriptのテストを行う方法をご紹介します。 JavaScriptのfunctionも、テストしたい! 画面を作るのはJavaScriptCSSで任せて、サーバサイドはデータのコントロールに専念するのが、最近のはやりのアーキテクチャのような気がしたり、しなかったり。 そんなこんなで、JavaScriptの重要性はますます上がって、JavaScriptがいろいろなロジックを持つことが多くなってきました。 だから、JavaScriptのfunctionも、テストしたい。 Javaなら、できる。JavaScriptのテスト。 Javaは、JavaScriptエンジンを持っているのです。JREに入っているので、別途テスト用にライブラリを取り込む必要はありません。 JUnit上でJavaScriptをテストしてみましょう。 テスト対象のJavaScriptは以下の様なコード

    JUnit(Java)でJavaScriptをテストする。 - Qiita
    kamatama_41
    kamatama_41 2014/03/04
    “ScriptEngineManagerクラス”