タグ

ブックマーク / wazanova.jp (108)

  • Rustを学びシステムレベル言語を理解すること - ワザノバ | wazanova

    https://www.youtube.com/watch?v=ySW6Yk_DerY Rustについては「Rustのあれこれ」で少し触れましたが、Yehuda Katzが、Skylightの一連のブログとGoGaRuCo2014の講演で、「ハイレベル言語のプログラマーがシステムレベルの言語を学ぶチャンス」という観点で紹介しています。 主なポイントとしては、 プログラミング言語の特性は変わることがないとか、プログラミング言語のパフォーマンスと生産性は常にトレードオフであるという考え方は、JavaScriptにおいて、生産性が少し改善されつつ同時にパフォーマンスが大きく向上してきたという事実から、必ずしも正しくはない。 Rustは、セグメンテーション違反が起きないという意味での安全性と、どこにメモリを置くか直接コントロールできる仕様を両方兼ね備える。 Rustを学ぶということは、ハイレベル言

  • 何をしたかより何ができそうか - ワザノバ | wazanova

    今や飛ぶ鳥を落とす勢いのSlackCEOであるStewart ButterfieldがSarah Lacyのインタビューに答えて、40代エンジニアを積極的に採用して、夕方6時半にはオフィスが閑散としていると語ってます。記事のとおり、父親母親になった世代の働く環境を重視し、サステナブルな企業をつくりあげることを目指しいている面もあるかもしれません。しかし実際には、20代に極端に偏っているベイエリアのスタートアップの熾烈なエンジニア採用競争に対して、優秀な人材確保のためにリモートワークを戦略的に選択する企業のように、能力の高いベテランを活用する工夫をして、相対的に人材競争力のアップを狙っているのかなと思いました。 ベテランの採用を躊躇する理由は、物事を決めつけたり、フィードバックに耳を傾けなくなったり、新しいことに挑戦しなくなったり、要は、変わりゆく環境に適応できなそうで、伸びしろがなさそ

  • RailsとGoのアプリでセッションを共有する - ワザノバ | wazanova

    http://matt.aimonetti.net/posts/2013/11/30/sharing-rails-sessions-with-non-ruby-apps/1 comment | 0 pointsSpliceのFounderのMatt Aimonettiが、Railsアプリとセッションが共有できる仕組みをGoアプリ用に提供しています。他の言語への移植にも利用できるようです。 RailsGoのアプリでセッションを共有、具体的には、認証されたRailsのユーザがGoで書かれたエンドポイントにJavaScript APIでコールすることを試してみた。まとめると、 実現可能。こちらのGoパッケージを参照されたし。 Rails 4.0以降にアップグレードすべし。 Railsセキュリティには批判があるが、最近のソリューションではエキスパートが工夫をこらしている。 RailsはRub

  • よく考慮したコーディングとパフォーマンスの関係 - ワザノバ | wazanova

    http://hacksoflife.blogspot.com.au/2015/01/the-four-horsemen-of-performance.html 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約4時間前 Benjamin Supnik曰く、高いパフォーマンスをだせるソフトウェアは、高いパフォーマンスを目指したデザインプロセスが大切。「当にひどい状態になったら、プロファイラで調べて直すから。」といっても色々積み重なると簡単には直せなくなると指摘しています。そして、ゲーム開発において遅いコードを生み出すパターンを挙げてくれてます。 1. 無駄なことをする テーブルを再描画する際、ユーザが見える部分だけでなく、テーブル全体のデータを取得していないか? 同じ値が計算されて何度も使われるケースで、都度計

  • Prometheus: Go言語で書かれたモニタリングシステム - ワザノバ | wazanova

    https://developers.soundcloud.com/blog/prometheus-monitoring-at-soundcloud 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 Prometheusは、SoundCloudが中心となって開発を進めているオープンソースのプロジェクトDockerの社内でもメインのモニタリングシステムとして利用されているようです。 各社のブログのエントリーから、その特徴をまとめると。 多元データモデルとそれを活かす柔軟なクエリ言語 全てのデータにタイムスタンプのある、OpenTSDBに準じたデータモデル。 http_response_500_totalやhttp_response_403_totalなどHTTPレスポンスのステータスごとに用意しなくても

  • 相手の立場にたつ意識と無意識 - ワザノバ | wazanova

    http://css-tricks.com/web-devvy-ways-practice-gratitude-empathy/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約2時間前 CSS-Tricksのエントリー。Chris Coyierが、「相手を思いやること、相手の立場にたって考えることが一番大切なスキルの一つ。」と語っています。 相手の立場にたつと、自分がつくったプロダクトをユーザがどのように使うのか理解でき、そのおかげでUXスキルを磨くことができる。サポートメールを書くときも文面を工夫できるようになる。ミーティングも意味のあるものにできる。コミュニケーションを受け取る相手がどう感じるかを考えれば、明確に相手に伝えることができるようになる。 それを実践するために、 相手への感謝を忘れないこと。相手

  • 分散システム設計のチェックリスト - ワザノバ | wazanova

    http://monkey.org/~marius/checklist.pdf 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 TwitterのMarius Eriksenは分散システムのエキスパートであり、モジュール化され、安全でかつ効率よく機能するサーバソフトの構築のノウハウは、「Your Server as a Function」という論文にまとめられています。 また、分散システム設計における留意点も、下記の内容のチェックリストというかたちで紹介してくれています。 1. 障害耐性 もし依存先が障害を起こしたらどうなるか?その障害がゆっくりと起きたらどうか? システムをどのようにスムーズにデグレードさせることができるか? システムは想定以上の負荷にどう対処するようになっているか? 大きな障害が起き

  • 開発現場における並行処理の留意点 - ワザノバ | wazanova

    https://www.youtube.com/watch?v=RR62KqHEVfM 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 Squareが主催した並行処理システムに関するパネルディスカッション。 まずは、並行処理理論で博士号を取得し、Sqaureで分析システムを担当するGian Perroneがハイレベルでの留意点を挙げています。 システム全体で起きていることを自分の頭で完璧に把握しようという姿勢は、正確な並行処理システムをつくる妨げになる。テクノロジーやツールをうまく利用すべき。 並行処理システムを漏れなくテストするというのは相当難しい。 自分で考えて、注意深く対処するというのでは不十分。うまく抽象化に頼るべき。 続いて同社のTamir Dubersteinが、以前データセンタを移行させ

  • 能動的な姿勢に比例して学びの効果は上がっていく - ワザノバ | wazanova

    http://lemire.me/blog/archives/2014/12/30/how-to-learn-efficiently/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約7時間前 TELUQ(ケベック大)のコンピュータサイエンスの教授であるDaniel Lemireが語る、効果的な学び方の話。 教室に座って教授の講義を聞いていると学んでいる気になる。新しい話題についてのを読むと学んでいる気になる。しかし、相当受け身な学び方ゆえに、それでは非効率。ある意味非効率よりももっと始末が悪い。理解できたような誤った錯覚を覚えるので、非生産的である。… その内、その話題や専門用語などに慣れてくる。(理解してないのに理解しているように感じて)自分を欺いてしまうので、何も学ばないよりももっとよくない状況になる。

  • エンジニアと非エンジニアの境界 - ワザノバ | wazanova

    http://techcrunch.com/2015/01/01/everyone-in-management-is-a-programmer/ 1 comment | 1 point | by WazanovaNews ■ comment by Jshiike | 約1時間前 この先、ソフトウェアの力でビジネスの競争力に格段の差がついてくる産業がどんどん増えてくることに備えて、プログラミング教育の必須化の議論も盛んですが、その必須化の是非はさておき、将来的には社会人になるうえで、ある程度コードを理解できる素養があることがもっと当然のことになってくるのではないかと期待してます。 そうなると、今の世の中の人が漠然と持っている、「エンジニア」と「非エンジニア」という言葉から連想してしまう偏見、両極端なイメージは、いずれの側に属する人々にとっても将来はもっと不利益になるかと。相互理解が必要です

  • 立て直しのケーススタディ - ワザノバ | wazanova

    http://jacquesmattheij.com/saving-a-project-and-a-company 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約4時間前 日次のアクセスが1万人以下なのにサイトパフォーマンスが悪いシステムの立て直しを頼まれたJacques Mattheijjが、5週間で行った対応を紹介してくれているケーススタディです。 システム構成 Rails + PostgreSQL + Redis + AnguarJS + Symfony2 CentOS / HPブレード8台 (128G RAMと複数のVMware)、大型HPストレージアレー、Windowsマシン、Javaアプリ専用マシン 全体所見 アプリは概ね問題なし。システムレベルで非効率が散見され、開発の期限が近づいた時点で、雑な

  • 気づかぬうちに増える仕事を減らす取組み - ワザノバ | wazanova

    https://codeascraft.com/2014/12/22/engineering-rotation/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約2時間前 「このタスク、思ったより時間がかかったな。」となるのはよくあることですが、仲間と仕事をするということは皆で大きなことを成し遂げているということなのだというそもそものメリットは空気のように忘れがちで、ある程度の非効率は避け難く生じるし、それが目につくのでストレスの元。どう解消するか? 元Quoraのリードエンジニアで、現在Quipに勤務するEdmond Lauは、"Hidden costs that engineers ignore”"と題したブログのエントリーにおいて、 コードの修正だけでなく、別のメンバへの説明の時間はかかる。 単純に分量で

  • Javaのせいではなく使い方の問題だという意見 - ワザノバ | wazanova

    http://www.jamesward.com/2014/12/03/java-doesnt-suck-youre-just-using-it-wrong 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約3時間前 Salesforce.comのJames Wardが、エンタープライズ向けのJava webアプリに長く携わってきた経験からまとめた、「Javaが悪いんじゃなくて、使い方が間違ってる。」というブログのエントリー。 開発環境のセットアップのWikiが10ページもある JDKインストール、SCMレポをクローン/チェックアウト、ビルドを実行/アプリ起動の3ステップであるべき。 一貫してないデプロイ環境 ビルドを、開発 -> ステージング -> 番と進めるにあたりリスクを最小化するために、各環境で変わるの

  • Googleのテスト自動化の進化 - ワザノバ | wazanova

    https://www.youtube.com/watch?v=6ZvCU0dht50 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 Google Test Automation Conferenceが今年はSeattleで開催されたようです。その中で興味深いと感じた話題をいくつか拾ってみました。 1) 成長を続けるGoogle 会社の規模が大きくなり、歴史を重ねてくると、何事も非効率になりがちですが、Ankit Mehtaが紹介してくれた数字によると、Googleの開発ペースは依然として右肩あがりのようです。 コードのコミットは、1日3万チェックイン。約3秒に1回。グラフを目測した限りでは昨年から約20%増。 リリース数もこの1年でほぼ倍増。 2) テストクローラーを利用してのモバイル実機テストの

  • npmとクライアント側でのパッケージ管理の議論 - ワザノバ | wazanova

    npmに登録されているパッケージ数は10万、月間ダウンロード数も5億を超えました。7月の段階で月間3億程度ですから、こちらのグラフで見てもわかるように、かなり成長が加速してきていますね。 EdgeConf4において、パッケージ管理をテーマにしたディスカッションに、npmのCTOであるLaurie Vossと、npmのpeer dependencyをつくったGoogle Chrome TeamのDomenic Denicola(ES6のPromiseの取組みでも知られた人ですね。)が参加しています。この二人と、BowerのJosh Peekを中心に議論が進んでいます。ちなみにJoshはGitHubの社員で、最近では、左右に並べてdiffを比較できる便利な機能をつくった人でもあります。 「サーバサイドのパッケージマネジャとしては、CPANやRubygem、npmのように開発言語ごとにプレーヤー

  • CSSパフォーマンスツールを使いこなす - ワザノバ | wazanova

    https://www.youtube.com/watch?v=FEs2jgZBaQA 1 comment | 1 point | by WazanovaNews ■ comment by Jshiike | 約1時間前 CSSconf EU 2014におけるGoogleのAddy Osmaniの講演です。CSSのパフォーマンス向上に役立つツールを40個+ 紹介してくれてます。 背景 パフォーマンスの最適化において、 ベースラインとしてやること 最小化(minification) 結合(concatenation) 画像の最適化 圧縮(GZip, Zopfli) 非同期スクリプト キャッシュの利用 WOFF2フォント CSSスプライトを使う リダイレクトをしないこと スピードアップ パフォーマンス向上に重要なCSSのインライン化 レンダリングをブロックしないように、急ぎでないアセットの取

  • APIの後方互換性を保つ工夫 - ワザノバ | wazanova

    Stripeの決済サービスの成長は、APIが使いやすいというエンジニアの間での評判がかなり寄与したと記憶しています。 同社のAPIは現在、 エンドポイント: 106 バージョン: 65 APIクライアント: 6 ユーザ企業を煩わせることなく後方互換性をしっかり担保したいという方針を守るための工夫を、Amber Fengが紹介してくれています。 1) ユーザが利用するバージョン情報の把握 ユーザ企業が最初にAPIコールをしたときのバージョン情報をStripe側で保管している。それ以降、ユーザ企業はバージョンのことを意識することなく、最初のバージョンのAPIを利用し続けることができるようにしている。ユーザ企業側でバージョンの変更をしたい場合は、ダッシュボードでの設定や、リクエストヘッダーに情報を付加することで可能。 2) バージョンと機能の整合性 YAMLファイルでバージョンとその振舞いの情報

  • CDNの挙動を検証する取組み - ワザノバ | wazanova

    https://gdstechnology.blog.gov.uk/2014/10/01/cdn-acceptance-testing/ 1 comment | 1 point | by WazanovaNews ■ comment by Jshiike | 約2時間前 Code for Americaなど、ネットの力で政府機関を改善していく取組みがここ数年増えていますが、中でもGOV.UKは、英国政府のwebサービスのあるべき仕様をサービスデザインマニュアルに詳細にまとめ、政府関連のウェブサイトを取りまとめています。その活動は、3分ほどのビデオにまとめらてますが、技術関連の情報発信にも力を入れてきています。 さて今回のGOV.UKのエンジニアブログは、受け入れテストを充実させてCDNの挙動を検証した取組み。実装の詳細から、バグのケースまで網羅されていて、かなり詳しく紹介されています。合

  • エンジニアマネージャー論と学びを抽出する努力を続けること - ワザノバ | wazanova

    https://news.ycombinator.com/item?id=8406507 1 comment | 1 point | by WazanovaNews ■ comment by Jshiike | 約1時間前 真剣にものごとに取組むと、やらなくてはいけないことはそのうち次から次へと気づく and/or 嫌でも湧き出てくるもの。なので、アドバイスを求められれば、やるべきことは最小限、できれば三つ以内に絞って、何をやめることができるかを探す手伝いをするようにしています。やるべきことを毎日洗い直して、絞り込むことが大切。 情報の収集は自動化されてきますが、自分にとって何がポイントなのか、どう活かすべきかという抽出作業は、自らを鍛え続けなくてはいけない人力作業ですね。 RethinkDBのFounderであるSalva Akhmechetが、エンジニア組織のマネージャーのあるべき姿

  • 「失敗を活かす」を実現する仕組みづくり - ワザノバ | wazanova

    http://vimeo.com/94950270 1 comment | 2 points | by WazanovaNews ■ comment by Jshiike | 約2時間前 ミスを許さない組織って嫌ですよね。月曜日の朝に会社に行くのがとにかく苦痛だった時期があります。しつけ的な規律をもたらすという一定の効果はあったかもしれませんが、ミスをしないように、しかられないようにするために仕事の進め方が最適化されていって、顧客がどう思うかよりは、上司の顔を伺うところに皆が全力を注ぎはじめます。 そんな会社は反面教師に。また最近は、blameless postmortem(個人批判をしない建設的な障害の振返りミーティング)というのも流行言葉。「そうだそうだ、もっと前向きであるべきだ。」と思いつつ、しかし難しいのは、ユーザに悪影響を与えるものを減らそうとする気持ち。その気持ちを持つことが