2017年3月30日のブックマーク (16件)

  • プログラマーの三大美徳 その2

    みなさんはプログラマーの三大美徳ってご存知ですか? プログラミング言語Perlの作者である Larry Wall が http://www.perl.com/pub/1998/08/show/onion.html で述べたのが最初とされています。 三大美徳として 怠惰(laziness) 短気(impatience) 傲慢(hubris) があげられています。 怠惰(laziness)については、以前にこちらの記事でお話しました。 tech.mercari.com 今回は 短気(impatience) についてです。 短気(impatience) 優秀なプログラマーが持っている怠惰という美徳は素晴らしいのですが、その反面というか怠惰さゆえに腰が重いときがあります。 そこで短気な面をうまく刺激することでプロジェクトを円滑に進めることが可能です。 メルカリでの例 みなさんもCIにてテストを動か

    プログラマーの三大美徳 その2
    nishitki
    nishitki 2017/03/30
  • GNU make 日本語訳(Coop編) - テキスト変形関数

    関数を使えばmakefileで処理する文字列で利用するコマンドやその実行対象のファイルをコンピュータに計算させることができるようになります。関数を使うには、関数の名前と関数に与える(引数という)付随文字列からなるファンクション・コール(関数の呼び出し; function call)を使います。関数の処理結果は変数の場合と全く同じように、makefileの関数を呼び出した部分に置き換えられます。 関数の呼び出し構文 ファンクションコールは変数の参照に似ていて、このようになっています。 $(関数 引数) またはこうなります。 ${関数 引数} この関数というのが関数名になり、makeに用意された数少ない名前のリストのうちの一つを使います。新しい関数は定義できません。 引数というのが関数の引数です。引数は関数名と一つ以上のスペースかタブで区切られており、複数の引数がある場合は引数同士をコンマで区

    nishitki
    nishitki 2017/03/30
  • 低レベルアクセスへの入り口(1):io.Writer

    今回は、Go言語がOS直上の低レイヤーを扱いやすくするために提供している io.Writer インタフェースの紹介をします。Go言語がシステムプログラミングを簡単に行える言語でありつつも、それなりに少ない記述量で比較的高速で、それでいて多くのことが達成できるのは、これから説明するようなインタフェースにより、低レイヤーが扱いやすい構造になっているからです。インタフェースと、インタフェースに対して提供されるさまざまなサービス関数が、Go言語の安い、早い、うまいの秘密です。 io.WriterはOSが持つファイルのシステムコールの相似形 前回の記事では "Hello World!" プログラムの関数呼び出しをデバッガーでたどり、最後にシステムコール syscall.Write() が呼び出されているようすを見ました。OSでは、このシステムコールを、ファイルディスクリプタと呼ばれるものに対して呼び

    低レベルアクセスへの入り口(1):io.Writer
    nishitki
    nishitki 2017/03/30
  • awspec を試してみる

    ブロードバンドタワー緒方です。今回は awspec を試してみたので紹介させて頂きます。 awspec とは ? GitHub にある awspec の公式サイト によると、RSpec tests for your AWS resources. とあります。 Serverspec の AWS 版といったところですね。 日頃 Serverspec を利用しているのですが、同じことを AWS 環境に対してできないかな、と色々と検索をしていたら awspec にたどり着きました。 インストール 今回も手元の Mac にインストールをしてみました。 Mac の環境は下記のようになっています。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.11.6 BuildVersion: 15G1217 $ ruby -v ruby 2.1.10p492

    awspec を試してみる
    nishitki
    nishitki 2017/03/30
  • ブロケードのイーサネット事業、Exterme Networksが買収へ。ブロードコムによるブロケード買収のあとで

    イーサネットスイッチベンダのExtreme Networksは、ストレージエリアネットワーク(SAN)やイーサネットスイッチ製品などを提供するブロケードコミュニケーションズシステムズのイーサネット事業を買収すると発表しました。 ブロケードは昨年11月に、ネットワーク機器向け半導体ベンダのブロードコムに買収されることが発表されています。 ただしブロードコムが欲しかったのはブロケードのファイバーチャネルを中心としたSAN製品群であり、それ以外のイーサネットスイッチや無線LAN事業などは買収後に直ちに手放すことも明らかにしていました。 今回のExtreme Networksによるイーサネット事業の買収は、このブロードコムによる買収に続いて行われることが発表されています。また、ブロケードの無線LAN事業であるRuckus Wirelessは、2月にArris Internationalに買収される

    ブロケードのイーサネット事業、Exterme Networksが買収へ。ブロードコムによるブロケード買収のあとで
    nishitki
    nishitki 2017/03/30
  • 自社開発技術満載!Microsoft Azureの物理インフラを大解剖 (1/3)

    Microsoft Azureのサービスは、140カ国以上の地域に配置された100以上のデータセンターで運用されている。物理インフラを意識せずに使えるのがパブリッククラウドだが、そのデータセンターの中身にちょっと興味はないだろうか。日マイクロソフト クラウド&ソリューションビジネス統括部 クラウドソリューションアーキテクトの真壁徹氏に、Azureデータセンターの物理インフラについて教えてもらった。 真壁:こんにちは、マイクロソフトの真壁です。Azureのアーキテクトですが、前職はヒューレット・パッカード エンタープライズ(HPE)で物理のサーバーやストレージ、ネットワークも扱っていました。データセンターの中のことはチョット詳しいです。 Azureのデータセンターには、マイクロソフトが運用するものと、各国のパートナーデータセンターを借りて運用しているものの2種類があります。今回は前者、マ

    自社開発技術満載!Microsoft Azureの物理インフラを大解剖 (1/3)
    nishitki
    nishitki 2017/03/30
  • モダンなテスト管理プロセスのためにテスト管理ツール3つを比較検討したはなし | メルカリエンジニアリング

    こんにちは。メルカリのテストエンジニアとして、スマホアプリのテスト自動化をぶりぶりしている@daipresentsです。 テスト自動化をすすめるにあたり、効率のよいテストを作るために、既存のテストケースについて調べる機会がありました。その過程で現状のQAプロセスも確認したのですが、以下のようなテストケース管理の課題があることがわかりました。 それぞれのテストエンジニアが、それぞれの方法で、それぞれのテストケースを管理しているため、ナレッジが横につながりにくい。 共有されているリグレッションテスト項目の更新が追いついておらず、情報が古くて使いにくい。 人数が増えてきて、ふりかえりや改善がやりにくい。 1については、現在、職能横断的なチーム構成になっているため、プロジェクトやプロダクトに集中できる環境である反面、それぞれのチームにいるQAエンジニアどうしのつながりが薄れてしまうことが原因に感じ

    モダンなテスト管理プロセスのためにテスト管理ツール3つを比較検討したはなし | メルカリエンジニアリング
    nishitki
    nishitki 2017/03/30
  • Botを高速開発するためのフレームワーク「bot-express」の概要と使い方 - Qiita

    bot-expressはオーダーメイドのChatbotを高速に開発するためのフレームワークでNode.jsで動作します。開発者はフォーマットにしたがって「スキル」を追加するだけでChatbotの能力を拡張していくことができます。 bot-expressに含まれる主な機能 NLU(Natural Language Understanding)によるメッセージの意図解析 複数メッセンジャーへの対応 文脈の記憶 ユーザーからの情報収集・リアクション 多言語翻訳 構成 コンポーネント bot-expressをベースとしたChatbotは下記のコンポーネントで構成されます。 メッセンジャー 自然言語処理のサービス Chatbot体(bot-expressベースのNode.jsアプリ) 開発者はChatbot体に「スキル」を追加することでChatbotの能力を拡張していくことができます。丁寧で品質

    Botを高速開発するためのフレームワーク「bot-express」の概要と使い方 - Qiita
    nishitki
    nishitki 2017/03/30
  • 「Deep Learningをサービスに導入したい!」人に周囲が泣かされないために

    リクルートテクノロジーズにおける検索改善施策の事例を通じて、Deep Learningをはじめとした機械学習の強みと限界を探る連載「機械学習活用プロジェクト大解剖」。 前回は、検索改善のためのアーキテクチャ(QueryRewriter)とDeep Learningを導入する動機を紹介しました。今回は、「Deep Learningの導入のために何が必要であり、なぜQueryRewriterが開発されたのか」について解説します。 より具体的な改善事例は次回解説します。 機械学習を活用しやすくする開発・運用体制――2つのアンチパターン まず、「とにかくDeep Learningを使いたい!」というようなデータサイエンティストに周囲を泣かされないための仕組みと開発・運用体制について考えます。 新しい技術を導入する際は、何であれ慎重に進めた方がいいです。Deep Learningのような解釈可能性

    「Deep Learningをサービスに導入したい!」人に周囲が泣かされないために
    nishitki
    nishitki 2017/03/30
  • AWSとGCPのマルチクラウドインフラにおけるVPN設計のポイント| PLAID engineer blog

    AWSGCPのマルチクラウドインフラにおけるVPN設計のポイントを説明します。 マルチクラウドインフラ連載の第二回。

    AWSとGCPのマルチクラウドインフラにおけるVPN設計のポイント| PLAID engineer blog
    nishitki
    nishitki 2017/03/30
  • How to speed up your MySQL with replication to in-memory database - High Scalability -

    Original article available at https://habrahabr.ru/company/mailru/blog/323870/ I’d like to share with you an article based on my talk at Tarantool Meetup(the video is in Russian, though). It’s a short story of why Mamba, one of the biggest dating websites in the world and the largest one in Russia, started using Tarantool. Why did we decide to busy ourselves with MySQL-to-Tarantool replication? Fi

    How to speed up your MySQL with replication to in-memory database - High Scalability -
    nishitki
    nishitki 2017/03/30
  • CircleCI x SchemaSpyでER図を新しくし続ける - hatappi.blog

    こんにちは @hatappi です 今回はCircleCIネタです 以前CircleCIを使って下記のようなものを作っていました qiita.com 何かとCircleCIにはお世話になってます 業務などでER図やテーブル定義書などを書く機会あると思います Excel? Google Sheets? MySQL Workbench? Cacoo?(html5化待ち遠しい) 色んな手段がありますが基はユーザーがメンテしてあげないと腐ります 😇 最初は頑張って更新するぞ!!と用意しても、どこかのタイミングで更新しなくなって中途半端な状態になり、それを新しく入った人が見て混乱するみたいなことがありました もう人が更新するのはやめたい 私はRailsを使っているのでmigrationしてテーブルを作成したりしているので、そのタイミングで勝手に作ってほしい データベースはMySQLです gem

    CircleCI x SchemaSpyでER図を新しくし続ける - hatappi.blog
    nishitki
    nishitki 2017/03/30
  • OnCall. Simplified. Intelligent alert routing for the DevOps team. | PagerTree

    OnCall. Simplified.PagerTree empowers teams to share oncall responsibility and respond faster when incidents occur. A Better OnCall ExperienceCentralize alerts and notify the right people at the right time.

    OnCall. Simplified. Intelligent alert routing for the DevOps team. | PagerTree
    nishitki
    nishitki 2017/03/30
  • 続Dockerを使ったPHPアプリ開発とCIについて

    Dockerを使ったPHPアプリ開発と番運用で困ったこと等

    続Dockerを使ったPHPアプリ開発とCIについて
    nishitki
    nishitki 2017/03/30
  • Go言語で知るプロセス(2)

    前回の記事では、プログラムの実行単位であるプロセスについて、さまざまな属性やリソースをGo言語の視点から紹介しました。 今回は、Go言語のプログラムから、他のプロセスを実行したり属性を変更したりする方法を紹介します。 Go言語のプログラムから他のプロセスを扱うときは、プロセスを表す構造体を利用します。 そのための構造体には次の2種類があります。 osパッケージのos.Process: 低レベルな構造体 os/execパッケージのexec.Cmd: 少し高機能な構造体。内部でos.Processを持つ まず高機能で実用的なexec.Cmdの使い方を説明してから、os.Processの使い方を簡単に紹介します。 その後、プロセスに関する便利なGo言語のライブラリを紹介します。 exec.Cmdによるプロセスの起動 exec.Cmd構造体は次の2つの関数で作ることができます。 exec.Comm

    Go言語で知るプロセス(2)
    nishitki
    nishitki 2017/03/30
  • Kubernetes 1.6が登場。etcd3とgRPC採用で大幅な性能向上、チームやワークロードごとに名前空間を分離、物理ノードを考慮しデプロイ可能など

    Kubernetes 1.6が登場。etcd3とgRPC採用で大幅な性能向上、チームやワークロードごとに名前空間を分離、物理ノードを考慮しデプロイ可能など オープンソースで開発されているコンテナのオーケストレーションツール「Kubernetes」の最新版、「Kubernetes 1.6」がリリースされました。 リリース翌日の29日(日時間30日夕方)にドイツのベルリンで開催されたイベント「Cloud Native Con+KubeCon Europe 2017」では、このKubernetes 1.6の主要な新機能が紹介されました。 Kubernetes 1.6はGoogle社員以外がマネジメントした最初のリリース Kubernetes 1.6のテーマは、複数のチーム、複数のワークロードを大規模展開で実現するというものです。また、今回のリリースはGoogle社員以外の人間がマネジメントした

    Kubernetes 1.6が登場。etcd3とgRPC採用で大幅な性能向上、チームやワークロードごとに名前空間を分離、物理ノードを考慮しデプロイ可能など
    nishitki
    nishitki 2017/03/30