タグ

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

  • あまり知られていないPostgreSQLの機能 | POSTD

    あなたが知らない既存機能があるかもしれません! マイクロソフト社は2006年、Microsoft Officeの新バージョンで追加してほしい機能について、顧客調査を実施しました。驚いたことに、ユーザが希望した機能の90%以上はすでに実装されており、その存在が知られていないだけであることが判明しました。機能の「見つけにくさ」の問題の解決策として同社が考案したのが、現在のMicrosoft Office製品でおなじみの「リボンUI」です。 この問題はOfficeに限ったものではありません。日々使用するツールの機能をすべて把握している人はほとんどいません。PostgreSQLのように大規模なツールであればなおさらです。数週間前にPostgreSQL 14がリリースされたばかりなので、この機会にPostgreSQLのあまり知られていない機能に注目してみたいと思います。 この記事では、Postgre

    あまり知られていないPostgreSQLの機能 | POSTD
  • 製品ロードマップの使用をやめて、GISTプランニングを試すべき理由 | POSTD

    何年にも渡り、私は相応量の製品戦略、ロードマップ、プロジェクトガントチャートを作成しました。しかし、もうこれらの資料を作ることはありません。以下に説明する優れた代替策を見つけたからです。 まず、以前のやり方はこちらです。 注釈: 戦略 ロードマップ プロジェクトプラン 実行 アジャイル このプランニング方式だと膨大な仕事が必要です。株主全員の同意を得るだけでも大変だと言うのにROIはかなり低くなります。プランはあっという間に現実と一致しなくなり、期間が長いほど、乖離も大きくなります。私の作ったすてきなロードマップやプロジェクトガントチャートが公開する時点で既に古くなっていると気づいたのは、少し経ってからでした。このプランニングもウォーターフォールのひとつなので(有名な ウォーターフォール・モデル とは異なります)、即応性はほとんど期待できません。トップで変更があると、それが波及しボトムでの

    製品ロードマップの使用をやめて、GISTプランニングを試すべき理由 | POSTD
    takets
    takets 2019/06/05
  • ソフトウェア設計が重要である理由 | POSTD

    新しいプロジェクト始まると、開発者はいきなりプログラミングに飛びつく傾向があります。それもいいでしょう。結局、それが仕事なのですから。でも、時には飛びつく前にブレーキをかけて、ソフトウェア設計から手を付けるのもいい考えかもしれません。 “ホワイトボードを使う長袖のホワイトシャツの男性”(出典: Trent Erwin / Unsplash ) ソフトウェア設計にはいろいろな方法があります。UMLなどのモデリング言語のソフトウェアを利用することもできるし、 テキストを書いて 画像を使うこともでき、あるいはホワイトボードに描くこともできます。ここで大切なのは、ソフトウェアの開発中に設計を保存して再考できることです。設計は多少なりとも改善していかなければなりません。ですから、いつも最初からホワイトボードに描きたいというわけではないのならばデジタルデータで、設計を行うのも良さそうです。データの保存

    ソフトウェア設計が重要である理由 | POSTD
  • TwilioとAWS IoTボタンを使った子供のトイレ訓練 | POSTD

    2人の幼子の父親として、私は1日のうちの バカにならない 時間をうんちに捧げています。大量の、大量のうんちです。 上の子がトイレのトレーニングを始めた時、夜中でも、もよおしたら起きてトイレを使うようになりました。ただ、そんな時、子供はもよおしたことを大きな声で私に知らせるので、近くで寝ている下の子が起きてしまうのではないかとヒヤヒヤしたものです。そんなわけで、何らかの対策が必要だなと感じていました。 私はいつも、子供の協力を得ることができる、楽しくかつ斬新な方法はないものかと考えています。そしてそれが、自分のエンジニアリングプロジェクトをいじくり回すことで実現できるなら、なお良いでしょう。 うんちボタンを押す 笑顔のうんちキャラクターが貼られた装置は、Amazon Dash Buttonをベースにした Amazon IoTボタン です。子供がこのボタンを押すと、AWS Lambda関数が呼

    TwilioとAWS IoTボタンを使った子供のトイレ訓練 | POSTD
  • 私のURLはあなたのURLとは違う : curl作者の語る、URLの仕様にまつわる苦言 | POSTD

    1996年にcurlプロジェクトの先駆けとなるhttpgetを始めたとき、私は初めてURLパーサを書きました。当時はまだ、ユニバーサルアドレスは URL : Uniform Resource Locators と呼ばれていました。その仕様は1994年にIETFによって発行されたものでした。この”URL”という用語からインスピレーションを得てツールとプロジェクトに命名したのが curl でした。 URLという用語は後に事実上、 URI : Uniform Resource Identifiers (2005年発行)に変わりましたが、「オンラインでリソースを指定する文字列のための構文と、そのリソースを得るためのプロトコル」という、基的な点は変わりませんでした。curlでは、この構文仕様RFC 3986の定義に従う”URL”を許容するとうたっていますが、それは厳密には正しくありません。その理由

    私のURLはあなたのURLとは違う : curl作者の語る、URLの仕様にまつわる苦言 | POSTD
    takets
    takets 2018/07/09
    null
  • さあGoを始めよう!環境構築,”Hello World”から簡単なバックエンドサーバーまで | POSTD

    Goは、 信頼できる賢い人たち によって作られた愛すべきささやかなプログラミング言語で、 現在も成長中の大規模なオープンソースコミュニティ によって、継続的に改善が続けられています。 Goの基原則はシンプルであることですが、時折、約束事が分かりにくいこともありますね。以下では、私がどのようにしてGoプロジェクトを始め、どのようにGoのイディオムを使っているかを紹介したいと思います。一緒に、Webアプリケーション用のバックエンドサービスを構築しましょう。 環境の構築 新規プロジェクト Webサーバの作成 ルートの追加 複数APIへのクエリ 並列化 シンプルさ 追加演習 環境の構築 最初のステップは、もちろんGoをインストールすることです。オフィシャルサイトに用意されている、 お使いのオペレーティングシステム用のバイナリディストリビューション を使ってください。MacでHomebrewを使

    さあGoを始めよう!環境構築,”Hello World”から簡単なバックエンドサーバーまで | POSTD
    takets
    takets 2017/03/16
    golandでサーバを作るまで
  • Linuxシステムコール徹底ガイド | POSTD

    要約 この記事では、LinuxカーネルにてLinuxプログラムがどのように関数を呼び出すのかについて紹介していきます。 システムコールを行う様々な方法、システムコールを行うための独自のアセンブリの作成方法(例あり)、システムコールへのカーネルエントリポイント、システムコールからのカーネルイグジットポイント、glibcのラッパ関数、バグなど多くの点について説明します。 要約 システムコールとは? 必要条件に関する情報 ハードウェアとソフトウェア ユーザプログラム、カーネル、CPUの特権レベル 割り込み モデル固有レジスタ(MSR) アセンブリコードでシステムコールを呼び出すことの問題点 レガシーシステムコール 独自のアセンブリを用いたレガシーシステムコールの使用 カーネル側での int $0x80 エントリポイント iret を使用したレガシーシステムコールからの復帰 高速システムコール 3

    Linuxシステムコール徹底ガイド | POSTD
    takets
    takets 2016/07/29
  • ページネーションのベストプラクティス | POSTD

    takets
    takets 2016/06/22
  • 自分たちの勤務時間を可視化して学んだ、3つの生産性ハック | POSTD

    ここ数年、私はRescueTimeを使ってきました。このアプリは、ユーザが何のアプリを使っているのかをモニタリングして、コンピュータの使用時間をどれぐらい「生産的」に使えているのかを評価してくれるものです。 RescueTimeが提供してくれるグラフやレポートは素晴らしいものなのですが、それらを定期的にチェックする習慣はどうにも身につきませんでした。しかし、最近になって、ZapierがRescueTimeと連携できることに気づきました。これはつまり、RescueTimeのデータをReflectのデータ可視化プラットフォームを使って可視化することが簡単にできる、ということです。 私たちの生産性のデータをReflectに接続することで、同僚のBradと私は、自分たちでも今まで気づいていなかった全てのパターンを可視化することができました。以下に示すのは、ReflectとZapierとRescue

    自分たちの勤務時間を可視化して学んだ、3つの生産性ハック | POSTD
    takets
    takets 2016/05/19
  • 生のReactを知ろう – JSX、Flux、ES6、Webpackを使わず… | POSTD

    (編注:2016/07/29、いただいたフィードバックをもとに記事を修正いたしました。) 免責事項: 私はJSX、Flux、 ES6 、そして webpack を非常に気に入っています。これらのツールについては他のシリーズで話します。 React.jsが騒ぎを起こしているのはご存知の通りです。確かに、 XMLHttpRequest 以来の良いツールです。しかし、調査に数時間を費やした挙句、あまりに多くの用語に 圧倒された だけで終わっていないでしょうか。JSX、flux、ES6、webpackreact-routerが使える今、 *他に必要なのは React の使い方を説明してくれる人だけです。* 喜んでください、それがまさに当シリーズでやろうとしていることです。信じられませんか?大丈夫、 2分後、 初めてのReactアプリを作った後には納得いただけるでしょう。何もダウンロードせずに、で

    生のReactを知ろう – JSX、Flux、ES6、Webpackを使わず… | POSTD
    takets
    takets 2016/04/01
    いいチュートリアル
  • デバッグの技術 | POSTD

    この記事は、アムステルダムで2015年に開かれたFronteersのカンファレンスで私が行った講演、「デバッグの技術」に対応するものです。 要約:利用可能なあらゆるツールの使い方を学び、必要なときにそれを使うことで、バグの撃退を楽しみましょう。そのほうが、キーボードを無暗に叩いて6か月も費やしてしまうより、ずっと楽しいものです。 題に入る前に… この記事を終わりまでスキップしたければ…… Don’t. Write. Bugs. とはいえ…… おそらくこれを読んでいるあなたはロボットではないでしょうから、1個や2個のバグぐらいは書いてしまったことがあるでしょう。「銀の弾丸」は存在しないのです。 実際、先ほどジョークで申し上げた『バグを書くな』というのは、デバッグの仕方を学ぶことの対極にあるものです。必要なのは経験です。バグに対するアプローチを見つけられるようになるためにはバグに遭遇しなけれ

    デバッグの技術 | POSTD
    takets
    takets 2015/12/07
  • Linux ワークステーションのためのセキュリティチェックリスト | POSTD

    対象読者 これは、プロジェクトITインフラへのアクセスや管理でLinux ワークステーションを使用しているシステム管理者向けの資料です。 システム管理者が遠隔から管理をしている場合は、ワークステーションが主要なセキュリティ条件を満たしていることを確認することで、ITインフラ全体へのサイバー攻撃の進入経路となることを防ぐことができます。その際、ここに書いたガイドラインを参考にしてください。 システム管理者が遠く離れた場所にいない場合でも、携帯可能なノートパソコンを使用している可能性や緊急対応用に自宅から会社のネットワークにアクセスできるよう設定している可能性があります。いずれの場合でも、環境に合ったガイドラインの適用をお勧めします。 制約事項 これは、「ワークステーションの強化」を徹底した資料とは言えません。しかし、これが明白なセキュリティ上のエラーを起こすのを回避できる基的ガイドとなれ

    Linux ワークステーションのためのセキュリティチェックリスト | POSTD
    takets
    takets 2015/10/02
  • いかにしてGoogleは他の企業では成し得ないような驚くべきデータセンターネットワークを作り上げたか | POSTD

    Googleは最近、正当に築き上げてきた誇りを抱きつつ、次のような 発表をしました 。 Googleは、先日開催された2015 Open Network Summitで、5世代の社内ネットワーク テクノロジーの詳細を初めて公開しました。初の社内データセンターネットワークである10年前のFirehoseから最新世代のJupiterネットワークに至るまで、Googleは1つのデータセンターネットワークの能力を100倍以上に増強してきました。実際、現在のJupiterファブリックは二分割帯域幅で1ペタビット/秒を超えています。これだけの能力があれば、10万台のサーバがそれぞれ10Gb/秒で情報を交換でき、アメリカ国会図書館所蔵図書のスキャンしたコンテンツ全体を1/10秒未満の時間で読み込むことができるでしょう。 Googleのデータセンターネットワークは、目に見えるGoogleのほとんどの仕事

    いかにしてGoogleは他の企業では成し得ないような驚くべきデータセンターネットワークを作り上げたか | POSTD
    takets
    takets 2015/09/04
  • AngularJSの便利なツール20選 | POSTD

    皆さんはAngularJSに興味がありますか? この記事では、AngularJSのための最適なツールと選りすぐりの情報をリストにまとめています。Angularを使ってアプリケーションの開発をする際には役立つ内容です。 Webアプリケーションを動的に設計したいWeb開発者の多くは、 フレームワークとしてAngularJSを選択するようになってきました 。AngularJSの開発者が新たにAngularJSプロジェクトを立ち上げる場合、格的にWebサイトを開発しようとすると、非常に多くのツールが必要になります。 AngularJS初心者の場合は、まず始めに AngularJSの良書 を何冊か読むと良いでしょう。 私たちは、オンラインでAngularJSを学習するための、膨大な AngularJSのチュートリアル リストも作成しています。 AngularJSでWebアプリケーションを開発する際

    AngularJSの便利なツール20選 | POSTD
  • Vimの生産性を高める12の方法 | POSTD

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

    Vimの生産性を高める12の方法 | POSTD
    takets
    takets 2015/06/25
  • コードの可読性、ハッカビリティ、抽象化 | POSTD

    def deploy(ip): copy('code/', ip + ':~/code', recursive=True) write_template('conf/config.py', ip + ':~/config.py') write_template('conf/crontab', ip + ':~/.crontab') write_template('conf/crontab', ip + ':/etc/apache2/httpd.conf') run_as_root('service cron restart') run_as_root('service apache restart') post('https://pingdom.com/api/2.0/checks', { 'name':ip, 'host':ip, 'type':'ping' }) タスクを実行するものと

    コードの可読性、ハッカビリティ、抽象化 | POSTD
    takets
    takets 2015/05/20
    コピー&ペーストのコードは、可読性もハッカビリティも備えていますが、抽象化が不十分です。関数の大きな木は、可読性と抽象化には優れていても、ハッキングがしにくいです。ステートフルオブジェクトや仮想ディス
  • 15分で分かるGTD – 仕事を成し遂げる技術の実用的ガイド | POSTD

    GTDすなわち“Getting Things Done(仕事を成し遂げる)”とは、あなたのタスクとプロジェクトを整理して管理する仕組みです。しかしその目的は、ただ“仕事を成し遂げる”だけにはとどまりません(当ならこう呼ばれるべきでした。「物事がおこるままに身を任せていたのでは全くイケてない状況に陥ってしまうことが多いので、それよりもっといい方法で物事を成し遂げる」仕組み)。このシステムの目的はあなたが100%の信頼をおいても大丈夫なように、タスクやアイデアやプロジェクトを収集するということにあります。「過去最高の発明をする」というような曖昧なものから、「8月25日にAdaに電話してチーズケーキのレシピについて話し合う」というような具体的なものまで。つまり全てです。 ごくありふれたTo-Do リスト管理のシステムとあまり変わらない印象ですか? 確かに似ている部分は多いですね。でもそれ以上の

    15分で分かるGTD – 仕事を成し遂げる技術の実用的ガイド | POSTD
    takets
    takets 2015/01/13
  • リーダブル・コードを書く | POSTD

    ここ数年間をプログラミング的な観点で見ると、私が望んでいたほどには面白みがなかったと言わざるを得ません。このことは、恐らく他のプログラマの皆さんも同意見かと思います。そこで、私はこの期間をある意味、充電期間と捉えて、自分の開発ツールの強化に取り組んできました。そして土曜日になると、Bashを使って ワークスペース 作りに精を出していたのです。 最後にシェルを使って真剣にプログラミングに取り組んだのは、かれこれ恐竜がまだ地球を支配していた頃だったでしょうか。何年も触れていなかった言語を改めて取り上げ、その昔に自分が書いたコードを見直してみると、いかに自分が成長したかということを実感できて、なかなかに面白いものです。 14年前、私は”コンパクトなコードは優れている”という考えに随分と傾倒していました。コードが少なければ、そしてDon’t Repeat Yourself(DRY)に従えば、バグも

    リーダブル・コードを書く | POSTD
    takets
    takets 2014/09/25
  • デバッグを必修科目にするべき理由 | POSTD

    更新版: まずはここで私がコンソール ロギングでのデバッグを非難したり、無視しようとしているのではないということをはっきりさせておきたいと思います。コンソール ロギングは組み込み型プログラムやIDEがソースコードをスタックフレームに正しくマッピングできない場合、ブレークポイントが進捗を妨げてしまう場合等、様々な場合に使われます。要は他に適した方法がある時にコンソール ロギングを使うことを悪いと思っているのです。 プログラミングでは新しい機能を加える代わりに、 コードのメンテナンス と問題の解決にそのほとんどの時間を費やされるということが常識になっています。また、デバッグを通じて問題を発見できてもそのバグの解決方法がわからないということが多いのです。また ハイゼンバグやネッシーバグ のような再現できないバグに遭遇することもありますが、通常はどこを探すべきかが全くわからない状態で、大規模なコー

    デバッグを必修科目にするべき理由 | POSTD
    takets
    takets 2014/09/12
  • 「たのしい失業生活」入門 | POSTD

    僕は最近Stripeに入社するまでの5ヶ月間、全く仕事をしませんでした。この間に成し遂げたことは、いくつかのブログの投稿と「スタークラフト」のゴールドリーグへの昇格くらいですが、とても楽しい時を過ごしました。 最初に断っておきますが、これはもちろん、僕が信じられないほど多くの点で恵まれていたからこそできたことです。いくらかの貯えがあったことや、ソフトウエアエンジニアの需要が高いことの他にも、僕が思いもよらないたくさんの特典があったはずです。また、世界の雇用市場が一般的に思わしくない2014年の状況下で、働かないことの素晴らしさについて述べるのは、やや不愉快だというのも分かっています。僕の理想を言えば、誰もが長期間働かないことを享受できるようになればいいと願っています。 以上の質的な「ただし書き」を踏まえつつ、僕の独断による楽しい失業生活のススメを紹介します。 楽しい失業ライフを勧めるワケ

    「たのしい失業生活」入門 | POSTD