タグ

ブックマーク / postd.cc (24)

  • Webサイト開発にCSS in JavaScriptを使うのはやめよう | POSTD

    9つのおとぎ話 CSSは迷走しています。JavaScriptでドキュメントをスタイリングしているプロジェクトでは、多くの場合誤った理由からその方式を選択しています。稿では、よくある誤解(神話)を列挙し、そうした問題に対するCSSソリューションを紹介します。 稿は、特定のプロジェクトや人物への攻撃を意図するものではありません。ここでは、“CSS in JavaScript”(CSS in JS)を styled-components を使用することと定義します。これは、Reactのコンポーネントをスタイリングする最近のトレンドとなっています。 styled-components の作者である Max Stoiber と Glen Maddern 、また彼らに協力した人々は皆、卓越したアイデアと善意にあふれる優秀な人々です。 完全な透明性のために断っておくと、私は react-css-mo

    Webサイト開発にCSS in JavaScriptを使うのはやめよう | POSTD
    y-kawaz
    y-kawaz 2017/06/16
    つまり今までCSSで飯を食ってきたが俺の知見が蔑ろにされつつあって激おこプンプン丸と言うことか。
  • Gitのスケーリング(と、その背景) | POSTD

    数年前、Microsoftは、社内全体のエンジニアリングシステムを活性化させるため、数年間にわたる投資を行う決定をしました。私たちは山のような数のチームを抱える大企業です。チームはそれぞれ、担当のプロダクト、独自の優先順位、プロセス、ツールを持っています。”共通の”ツールもありますが、チームによって様々に異なる点も多く、内部で開発した単発のツールも数え切れないほどあります(「チーム」とは社の部門のようなもので、数千のエンジニアの集まりです)。 この状況にはたくさんのマイナス面があります。 似たようなツールを構築しているチームがいくつもあり、巨額の冗長な投資が生まれている 「クリティカルマス(損益分岐点を超える生産量、普及率)」に向けた設備投資ができない 皆がバラバラのツールやプロセスを用いているため、従業員が異動しにくい 組織の垣根を越えてのコード共有が難しい “MS限定”ツールの過多のた

    Gitのスケーリング(と、その背景) | POSTD
    y-kawaz
    y-kawaz 2017/03/11
    LFSよりセンス良い感じ。FUSEでの実装が待たれる。
  • JVMはそんなに重くない | POSTD

    Clojureに反対する大きな理由がJVMです。この役立たずは重いですからね。 これは、数週間前に ZA TechSlackで見た投稿です。休暇中にClojureの話題を何件か見たのですが、投稿者はJVMについても繰り返し言及していました。 私はこの投稿について Slack上で少しつぶやいていました が、もっと広く理解され議論されるように、稿を書くことを決めました。 背景 以前は、私もJVMは重いと思っていました。2000年代の初めにJVMとPHPと比べていた頃の話です。当時は、.NETやColdFusionなど、別の重い製品が他にもありました。また、PerlPythonという軽めの製品もありましたが、私はWindowsを使っていたのでActivePerlやActivePythonはやはり少し重めでした。 私が初めてJVMに対する“恐れ”を克服したのは、小規模な製品アプリを、JRu

    JVMはそんなに重くない | POSTD
    y-kawaz
    y-kawaz 2017/03/05
    何でJVM重くない勢は起動の遅さを無視or軽視したがるんかね?JVM使ったプロダクトってCLIツールとかもJVM使わせられるから基本ストレスしかたまらないんだよな。そこに文句言うとJVMm速いよとか言われるから余計に腹立つ。
  • H.264の秘密 | POSTD

    (編注:2020/08/18、いただいたフィードバックをもとに記事を修正いたしました。) (2016/12/11、いただきましたフィードバックをもとに翻訳を修正いたしました。) H.264は、動画圧縮コーデックの標準規格です。ネット上の動画、Blu-ray、スマホ、セキュリティカメラ、ドローンなどなど、今やあらゆるところでH.264が使われています。 H.264は注目すべき技術のひとつです。たったひとつの目標、つまりフルモーションビデオの送信に要するネットワーク帯域を削減することを目指した30年以上の努力の結晶なのです。 技術的な面でも、H.264はとても興味深い規格です。この記事では、その一部について概要レベルでの知識を得られることでしょう。あまり複雑だと感じさせないようにするつもりです。今回おはなしする概念の多くは動画圧縮全般にあてはまるものであり、H.264に限ったものではありません

    H.264の秘密 | POSTD
    y-kawaz
    y-kawaz 2016/12/02
    いきなりPNGと比較始めた時点で帰ろうかと思ったわ。
  • 暗号化と圧縮、どちらを先にするべきか? | POSTD

    こんなことを想像してみてください。 あなたは大企業で働いています。仕事はかなり退屈です。端的に言えば、あなたの顔も見たくないという経理担当の3人しか使わないようなアプリケーションのために定型的なコードを書いて、才能を無駄にしているという状況です。 あなたが当に情熱を注げるのはセキュリティです。毎日、 r/netsec を読み、仕事の後にはバグ報奨金プログラムに参加しています。ここ3カ月間は手の込んだ株式取引ゲームをプレイし、報奨金を得ています。ヒープベースのバッファオーバーフローを発見し、優良株を選ぶ手助けとなるAVRシェルコードをいくつか書いたからです。 あなたが取り組んできたビデオゲームが、実は巧妙な偽装のリクルートツールであったと判明し、全てが変わります。世界最高のセキュリティコンサルタント会社、Mont Piperが人材を募集していて、あなたは面接に行くことになったのです! 飛行

    暗号化と圧縮、どちらを先にするべきか? | POSTD
    y-kawaz
    y-kawaz 2016/08/18
    コンテキストの説明なしにいきなり暗号化と圧縮をどっちを先にするかって聞かれたら、圧縮を先と答えるかどうしても気になるならコンテキストの説明を求めるかしかなくね?いきなりCRIMEを語り出すタイプはちと困る。
  • 人間らしいGitのエイリアス | POSTD

    断固としてコンピュータ言語を拒絶する 私の知っている最も一般的な .gitconfig は、ユーザ名の設定だけが記されたものです。そして、その次に一般的なものはこれです。 [alias] ci = commit cia = commit -a cam = commit --amend cama = commit --amend -a cl = clean cldf = clean -df res = reset resa = reset HEAD ... # 82 more 4-character aliases このコンフィグは、要するにあなたの頭の中のスペースをキーストロークに置き換えます。短縮コマンドのエイリアスを覚えれば、タイピング数の節約が可能です。しかし私はこれが好きではありません。私はタイプミスをしますし、睡眠不足なこともたまにあるので、このエイリアスではやりづらくなってしま

    人間らしいGitのエイリアス | POSTD
    y-kawaz
    y-kawaz 2016/05/23
    わからいでもないが他人と会話する際に困るからやらない。st=status、co=checkout程度だ。特にstは似たサブコマンドのせいで補完しにくいから重要。あとgraph(僕はtreeのイメージでtrだが)は必要なのに長すぎるから使う。
  • curlとWgetの比較 | POSTD

    curlとWgetの主な違いについて著者(Daniel Stenberg)の私見を述べています。自分の子どもとも言える curl をひいきしていますが、 Wget にも携わっているので、思い入れがないわけではありません。 この記事に関するご感想やご意見をお寄せください。 問題点や改善点があると思われる場合は、 Issueやpull-requestを発行 してください。 共通点 FTPやHTTP、HTTPSからコンテンツをダウンロードできるコマンドラインツールです。 HTTP POSTリクエストを送信できます。 HTTPクッキーをサポートしています。 スクリプトの中で使用したりできるよう、ユーザインタラクションがなくても動作するようにデザインされています。 完全なオープンソースで、無料のソフトウェアです。 開発プロジェクトとして90年代に立ち上げられました。 metalink をサポートして

    curlとWgetの比較 | POSTD
    y-kawaz
    y-kawaz 2016/03/25
    curlと比較して、デフォで入ってないディストリビューション多いからwget使わなくなった派。管理用スクリプトとかで見つけると書き換えたくなる。
  • HTTPステータスコードを適切に選ぶためのフローチャート : 難しく考えるのをやめよう | POSTD

    HTTPステータスコードを返すというのはとても単純なことです。ページがレンダリングできた?よし、それなら 200 を返しましょう。ページが存在しない?それなら 404 です。他のページにユーザをリダイレクトしたい? 302 、あるいは 301 かもしれません。 I like to imagine that HTTP status codes are like CB 10 codes. "Breaker breaker, this is White Chocolate Thunder. We've got a 200 OK here." — Aaron Patterson (@tenderlove) 2015, 10月 7 訳:HTTPのステータスコードのことは、市民ラジオの10コードみたいなものだと考えるのが好きです。「ブレーカー、ブレーカー、こちらホワイト・チョコレート・サンダー。200

    HTTPステータスコードを適切に選ぶためのフローチャート : 難しく考えるのをやめよう | POSTD
    y-kawaz
    y-kawaz 2016/02/17
    素晴らしい!/しかし惜しい事に403/404の分岐点『このリソースは秘密?』のYes/Noが逆だと思う。/ id:ekushok あーなるほど!意図を理解。あれであってるのか。
  • Railsの基本理念 : Railsの生みの親が掲げる8つの原則 | POSTD

    (訳注: 2016/3/2、頂いたフィードバックをもとに記事を修正いたしました。) Ruby on Railsは最近、急激に注目を集めていますが、その原因はほとんど、この言語が斬新なテクノロジーとしてもてはやされたことと、タイミングにあります。技術的な優位性は時間の経過とともに失われますから、タイミングがよかっただけでは、一過性のブームに終わり、このムーブメントの隆盛は長続きしません。従って、「Railsがいかにして、適切な技術としての位置を維持し続けるるだけでなく、影響力とコミュニティを拡大し続けてきたのか」をより多くの人に説明していく必要があります。そして、その維持・拡大を可能にした/していく要因は、物議を醸すことさえあるRailsの基原則にあると考えています。 この基原則はここ10年ほどの間に進化を続けてきましたが、最も強固な柱となっているルールはやはり、公開当初から制定されてい

    Railsの基本理念 : Railsの生みの親が掲げる8つの原則 | POSTD
    y-kawaz
    y-kawaz 2016/02/17
    ここで『美しい』って言われてるコード全部が『DSLなのかどうかも分からん、どこに実装があってどうして動くのか、ドキュメントは何処見れば良いのか、分からんだらけの難解な黒魔術的コード』なんだよなぁ…。
  • アプリケーションの設定はごめんだ! : アプリケーションのユーザビリティを考える | POSTD

    (訳注:2016/3/2、頂いたフィードバックをもとに記事を修正いたしました。) 注 このブログ投稿は不満をぶちまけています。かなりのものです。自説は曲げません。長いです。そして、頭に血が上っています。かなり暴言です。 目次 アプリケーションの中身は? アプリケーションについての考え方が間違っている アプリケーションは 体験 のようなもの この問題の解決策 1. 設定より規約 2. アプリケーションを使いながらユーザを丁寧に導く 3. 失敗は起こる。その直し方を知りたい 4. ドキュメンテーションについて考えるのは、やめよう まとめ 参考文献 最近、ソフトウェア開発において復活しつつあるとても 興味深い 傾向があるようです。おそらくNode.jsの哲学に影響を受けているのでしょう。何かを使うためには、まず大量の「依存パッケージ」をインストールする必要があり、さらにそのコンフィギュレーション

    アプリケーションの設定はごめんだ! : アプリケーションのユーザビリティを考える | POSTD
    y-kawaz
    y-kawaz 2016/02/13
    良い。
  • Web開発者が恐らく知らない、SSLについて知っておくべきこと | POSTD

    2015年、Web開発者は以前よりもSSLに関する理解を深めています。そうしたWeb開発者たちがHacker Newsを読むなら知っておくべきことを以下に挙げてみます。 ドメイン認証(DV)証明書は Let’s Encrypt から無料で取得することが可能。 拡張認証(EV)証明書 は CertSimple かいくつかのチェックののちの支払いで取得することが可能。これが我々のやり方。 Mozilla SSL Config Generator を使用すれば、サポートしたいブラウザに対して、サーバを可能な限り安全に設定することが可能。 完了後に SSL Labs を使って全てをチェックし、A評価獲得を確認しましょう。そうでなければ人に小言を言われます。 その他はどうでしょうか。我々の顧客から寄せられる最も多い質問について、回答を紹介していきましょう。 1. Chromeで”古い暗号スイート”を

    Web開発者が恐らく知らない、SSLについて知っておくべきこと | POSTD
    y-kawaz
    y-kawaz 2016/01/23
    良い
  • 100Mにスケーリング:Key-ValueストアとしてMySQLを使い、NoSQL以上のパフォーマンスを出す | POSTD

    100Mにスケーリング:Key-ValueストアとしてMySQLを使い、NoSQL以上のパフォーマンスを出す MySQLはNoSQLよりも優れています。Key-ValueストアといったNoSQLのユースケースを考えてみると、パフォーマンスや使いやすさ、安定性の点でMySQLの方が合理的です。MySQLには、オペレーションや障害に関することからレプリケーションや異なる使用パターンまでと、多くのオンラインマテリアルが用意されおり、堅実なエンジンです。こういった理由から、比較するまでもなく、MySQLは最近のNoSQLエンジンよりも優れていると言えます。 ここ最近では、NoSQLエンジンが主流になってきています。多くの開発者が、MongoDBやCassandra、Redis、HadoopといったNoSQLエンジンをアプリケーション構築の第一候補としており、それらが全て昔からのSQLエンジンを上回

    100Mにスケーリング:Key-ValueストアとしてMySQLを使い、NoSQL以上のパフォーマンスを出す | POSTD
    y-kawaz
    y-kawaz 2016/01/12
    まず100Mって何の単位だよ!?
  • JavaScriptフレームワークの寿命 | POSTD

    (注記:9/13、いただいた翻訳フィードバックを元に記事を修正いたしました。) 半年ごとに”今一番ホットな”フレームワークが新たに登場しては、私たちは興奮に沸き返ります。 誇大広告を信じてはいけません。 フレームワークの寿命 はプロジェクトの成功を左右するほど重要な要素です。フレームワークを選ぶ際、テクノロジにおける多くの意思決定者は納得のいく選択をするために、コミュニティの大きさ、人気、大企業によるサポートの有無などを基準にしています。しかし実際は、こうした要素によって寿命が決まるわけではありません。 最初は勢いがあったのに、徐々に弱まり、最終的には線香花火のごとく儚く消えてしまうようなフレームワークを選んでしまうと、書き直しに無駄な時間を費やしたり、チームの士気を下げたりする原因となります。記事は、そうした残念な結果を回避するヒントをまとめたものです。 記事では以下のことを示したい

    JavaScriptフレームワークの寿命 | POSTD
    y-kawaz
    y-kawaz 2015/11/29
    全く同意できないエントリだった。旧世代の遺産を後生大事にとっとくことが果たして美徳か?と。若い開発者確保という視点も欲しい。フレームワークと一緒に年老いた人材のみでメンテとか絶対嫌だわ。
  • Gitを学んでいて「なるほど!」となる瞬間 | POSTD

    Gitは速く柔軟性がありますが、理解に時間のかかる分散型バージョン管理システムです。Gitを始める前に次を理解しておきましょう。 通常のバージョン管理 分散型バージョン管理 や 学習書 、 指南書 はGitを理解するのに役に立ちました。しかし、その他にもGitの理解に至ったきっかけがありますのでご紹介します。 ステージング・エリアがある Gitにはステージング・エリアがあります。繰り返しますが、 ステージング・エリアがあるのです 。 これには混乱しました。リポジトリ(「オブジェクトデータベース」)とステージング・エリア(「インデックス」と呼ばれる)の両方がGitにはあります。チェックインには2段階あります。 git add foo.txt インデックスにfoo.txtを追加します。これだけでは、チェックインは完了していません。 git commit -m "message" リポジトリ

    Gitを学んでいて「なるほど!」となる瞬間 | POSTD
    y-kawaz
    y-kawaz 2015/10/14
    GUID?SHA1だよね、ランダムぽい一意値って点は似てるけど全然別物。同内容のファイルやコミットは誰が作っても同じになるのがハッシュの強みでそれがgitの根幹なのに、GUIDじゃ都度別の値が生まれてID管理がヤバイだろw
  • JavaScriptにおける継承のパターン4種類の概要と対比 | POSTD

    JavaScriptはとても強力な言語です。強力がゆえ、実はプロトタイプをデザインしたり、オブジェクトのインスタンスを生成したりするのに何種類もやり方があります。それぞれの方法には長所も短所もあります。そこでJavaScript初心者の皆さんのために私がそのあたりを整理して説明したいと思います。今回の投稿は、以前私が書いた 「JavaScriptを分類するな」 の続編です。前回の投稿でたくさんのコメントをいただき、コードの例を出してほしいをいう反応をいただいたので、今回はそれらにお応えします。 JavaScriptはプロトタイプを使って継承 つまり、JavaScriptでは、オブジェクトは別のオブジェクトを継承することができます。 { } 波括弧を使って生成されるJavaScriptの基的なオブジェクトは、唯一のプロトタイプとして Object.prototype をプロトタイプに持ちま

    JavaScriptにおける継承のパターン4種類の概要と対比 | POSTD
    y-kawaz
    y-kawaz 2015/08/26
    全部忘れてES6のclass使うのが正解だろ。バベればいいだけだし。記事主はプロトタイプを過剰にありがたがりすぎだと思う。今の時代に書かれた記事と思えなくて日付確認てしまった。
  • 私がsystemdを嫌う理由 | POSTD

    (訳注:7/24、いただいた翻訳フィードバックを元に記事を修正いたしました。) (訳注2:8/4、いただいた翻訳フィードバックを元に記事を再修正いたしました。) この2010年代にLinuxシステムの管理者をしていれば、systemdに関して何かしら思うところがあるでしょう。そして私は管理者たちの意見が両極端に分かれていることに驚きました。ほとんどの人(少なくとも意見を表明している人達)はsystemdが「大好き」か「大嫌い」かのどちらかのようです。私の場合、systemdをきっかけに昨年OpenBSDを使うことになったのですが、これを話したことで私がsystemdを「大嫌い」だと思われたようです。でも、それは違います。 当は、systemd自体は私がOpenBSDに移った理由のほんの一部にすぎません。しかし、この経験によって2つの重要な点に気付きました。まず、最近のLinuxの設計の問

    私がsystemdを嫌う理由 | POSTD
    y-kawaz
    y-kawaz 2015/07/22
    フォークしないプログラムを常駐させる方法だけは覚えた、それだけならsysinitより簡単。ただNICの認識とUPに時間かかってfirewalldの起動が追い越しちゃってsshのポートが開かないとかのトラブル時の調査が凄くしんどい…。
  • Vimの生産性を高める12の方法 | POSTD

    1. LeaderをSpaceキーにする Leader は素晴らしい概念です。キーの 組み合わせ ではなく 並び によって、操作を行えるようにするものです。私はこれを使っているので、操作のために” Ctrl -何らかのキー”の組み合わせを押す必要はめったにありません。 私は長い間、 , を Leader キーとして使っていました。ですがある時、キーボードの中で一番目立つキーにマップすることを思い付いたのです。Space(スペース)キーです。 これで私のVim生活は激変しました。今や、私は Leader をどちらの親指でも押すことができ、他の指は常にホームポジションにあります。 Leader がとても使いやすくなったので、私が様々なキーバインドで用いるようになったことは周知の話です。 2. 自分が特によく行う操作をLeaderにマップする 私は、自分がVimで作業を行っている中で、その時間の

    Vimの生産性を高める12の方法 | POSTD
    y-kawaz
    y-kawaz 2015/06/26
    “自分で考えることが重要”
  • Gitコマンドラインショートカット | POSTD

    私は多くの時間をターミナルの前で過ごしていて、そのほとんどをGitコマンドのタイピングに費やしています。ワークフローを高速化して、毎日何百というキーストロークを節約するために、Bashのエイリアスと関数を使って1組のコマンドラインショートカットを作りました。 Git Bashエイリアスと関数 Gitではエイリアスを設定できますが限定的であり、節約できるキーストロークは、ほんの数ストロークです(例えば、”git checkout”の代わりに”git co”とタイプすることはできますが、まだ”git”とタイプしなければなりません)。Bashはターミナルのデフォルトのコマンドラインインタープリタなので、Bashエイリアスを設定して、さらにキーストロークを減らすこともできます。 これが、私のGit Bashエイリアスと関数のリストです。ご自分のエイリアスや関数の保存先ファイル(例えば、~/.bas

    Gitコマンドラインショートカット | POSTD
    y-kawaz
    y-kawaz 2015/03/25
    gitのままの方が補完効いて便利じゃね?
  • 【翻訳】AngularJSからReactへ: Isomorphicな方法 | POSTD

    先週、私たちはWebサイトを検索エンジン向けにインデックス付けできるようにしようとしていました。この記事では、私たちがWebサイトを書き直していて学んだことの要約を紹介したいと思います。 背景 2ヵ月前に RisingStack.com を作成した時、私たちはそのWebサイトでどんなテクノロジを使うか決めなくてはなりませんでした。イベントを追跡する静的なページが数ページあるだけだったので、とても簡単でしたが、私たちはWebサイトをスケーラブルでできるだけ高速なままにしておきたいと考えていました。 私たちのチームは AngularJS の経験が豊富なので、フロントエンドAngularを選ぶのは妥当だと思われました。 この記事はReactAngularJSがどちらか一方より優れている理由について述べているわけではないので注意してください。どちらがいいかは常にユースケース次第です。 “Ang

    【翻訳】AngularJSからReactへ: Isomorphicな方法 | POSTD
    y-kawaz
    y-kawaz 2015/03/18
    ”私たちが求めていたのは、最初にロードした時はサーバサイドでコンテンツをレンダリングするが、その後はシングルページアプリケーションとしての体験を提供するものです。”<僕もこの為に色々試してReact始めた。
  • Angularとの2年間 ー これからAngularを使う人への薦め | POSTD

    判決: まあまあ(でもないか) 一体何の話なのか? 私は2年間、Angularにのめり込んでいました。 それぞれの考えを持つさまざまなチームによる、10以上のAngularベースのプロジェクトを見守り、関わってきました。 1年目はフレームワークの採用、APIの変更、ドキュメントの改良、コミュニティの形成を注視して過ごし、徹底的に習得しました。 2年目は実務に全面的に携わり、チームメンバーの意見を聞きました。 私の意見は、 Angular.jsは大多数のプロジェクトには“まあまあ”だが、格的なWeb アプリ開発には不十分である ということです。 “格的なWebアプリ”とは? “格的なWebアプリ”というのは、長期の 保守が可能 で、最新の一般的なブラウザで 実行できる 、 スムーズなUX を備えた、 モバイルフレンドリー なアプリのことです。 専門家が開発したWebアプリは単なるアプリ

    Angularとの2年間 ー これからAngularを使う人への薦め | POSTD
    y-kawaz
    y-kawaz 2015/01/19
    タイトル見てAngularとの2年間でPTSD発症したのかとww>“Angularとの2年間 ーこれからAngularを使う人への薦め | POSTD”