タグ

ブックマーク / yakst.com (20)

  • こんなコーディングは退屈だ! | Yakst

    Enkiのco-founderで最高技術責任者(CTO)であるBruno Marnetteが、エンジニア仕事に飽きて転職してしまわないよう、社内文化をどのように構築しているのかを紹介します。 開発者として、私は2年以上同じ仕事を続けた事がありません。 転職することは私にとって良いキャリアとなりました。私達の業界では転職を繰り返す事はごく一般的なことです。ところが、以前私が働いていた会社は、私の離職に難色をしめしました。中には、私を必死で引きとめようとする人もいました。しかし、私は仕事に飽きてしまっていたため、残ることはできませんでした。 (免責事項:私は多くのプログラマーよりも楽しいプログラミングの仕事をしていたと思います。仕事を変えることが常に最善の選択とは限りません。) 現在私はEnkiのco-founderで最高技術責任者(CTO)です。会社ではエンジニア文化の構築も行っています。

    こんなコーディングは退屈だ! | Yakst
  • Kapacitor: オープンソースのストリーミングとバッチの時系列プロセッサ(InfluxDB Blogより) | Yakst

    InfluxDB社が掲げていたTICKスタックのうち、未発表だったK(Kapacitor)についてご紹介します。 KapacitorはGo言語で書かれた時系列データ向けデータ処理エンジンで、TICKscriptと呼ばれる簡単なDSLによるタスク定義で、アラートの設定、ETLジョブの実行などが制御できます。 出典について この記事はInfluxDB BlogのNathaniel Cook氏によるAnnouncing Kapacitor, an open source streaming and batch time series processor(2015/12/1)を翻訳したものです。 日、Goで書かれたオープンソースの時系列データ向けデータ処理エンジンであるKapacitorを発表できたことを嬉しく思います。Kapacitorによって次のことができるようになります。 複雑で動的な基準

    Kapacitor: オープンソースのストリーミングとバッチの時系列プロセッサ(InfluxDB Blogより) | Yakst
  • Amazon Aurora : パラメーターから見るその詳細(Percona Data Performance Blogより) | Yakst

    Amazon Aurora : パラメーターから見るその詳細(Percona Data Performance Blogより) 出典について この記事はPercona Data Performance Blog内のVadim Tkachenko氏によるAmazon Aurora – Looking Deeper(2015/11/16)を翻訳したものです。 最近、私のPerconaの同僚であるYves Trudeauと業界の仲間であるMarco TusaAmazon Auroraに関する記事を発表しました。実際のところ、Amazon Auroraは最近のホットな話題で、お客様からもAurora技術に関して多くの質問をいただいています。私は自分の意見を明らかにすることを決心しました。個人の実際に手を動かした経験に勝るものはありませんし、それを共有しようと思います。 私がこれから言及する資料

    Amazon Aurora : パラメーターから見るその詳細(Percona Data Performance Blogより) | Yakst
  • sha256_pluginでMySQLのパスワードを保護する(MySQL Server Blogより) | Yakst

    MySQLのパスワード保存およびネットワーク通信を安全にするための方法について、歴史的な手法とともに整理した。パスワード保護に関しては、MySQL 5.6で導入されたsha256_pluginが推奨でありその理由を述べる。 免責事項 この記事はTodd Farmer氏によるMySQL Server Blogの記事「Protecting MySQL Passwords With the sha256_password Plugin」(2015/9/16)をユーザが翻訳したものであり、Oracle公式の文書ではありません。 長年にわたって、MySQLはパスワードの保存およびネットワーク通信の両者をセキュアにするのに3種類の方法を使ってきました。このブログ投稿では様々な方法の簡単な歴史をご紹介し、MySQLサーバー5.6で導入されたsha256_passwordを使うように移行すべき理由について

    sha256_pluginでMySQLのパスワードを保護する(MySQL Server Blogより) | Yakst
  • MySQLのためのLinuxチューニングヒント | Yakst

    LinuxMySQLサーバで最低限やっておかなくてはならないファイルシステム、メモリ、CPUに関する設定のメモ。 December 7, 2013 By Alexander Rubin 恐らくほとんどのMySQL番環境はLinux上で動いていることだろう。なので、MySQLのパフォーマンスを上げるのに有用な、最も重要なLinuxのチューニングのためのヒントについて書こうと決めた。特に新しい情報はなくて、どれもよく知られているものではあるが、ブログ記事にまとめてみる。 ファイルシステム ext4 (またはxfs) をnoatimeオプション付きでマウント スケジューラはdeadlineかnoop # echo deadline >/sys/block/sda/queue/scheduler grub.confに"elevator=deadline"を追加 (詳細はLinuxスケジューラと

    MySQLのためのLinuxチューニングヒント | Yakst
  • オブジェクト指向プログラミングとは? : スティーブ・ジョブズの答え | Yakst

    スティーブ・ジョブズによる、オブジェクト指向プログラミングとは何かという非常に平易な言葉でのわかりやすい説明。 オブジェクト指向プログラミングに関するいい説明にはなかなか出会えていませんでした。正式なエンジニアリングの教育を受けたわけではないけれど、いつも技術やデザイン、芸術といったやることすべてに明確なアイディアを持って説明する、ある人の言うことを聞くまでは。 ここに挙げるのは1994年の「ローリングストーン」のインタビューの引用で、スティーブ・ジョブスがオブジェクト指向プログラミングとは何かを説明しているものです。 Jeff Goodell : そもそもオブジェクト指向ソフトウェアとは何か、簡単な用語で説明していただけますか? Steve Jobs : オブジェクトとは人間のようなものだ。生きていて、何をどうすべきかという知識を自分の中に取り込み、物事を覚えていられるようにメモリーを持

  • Bashのよくある間違い | Yakst

    原文は2015年8月22日時点のものを利用しており、それ以降に追記、更新されている可能性があります。 翻訳は原作者の許可を得て公開されています。 Thanks for GreyCat! このページはBashプログラマーが陥りがちなよくあるエラーについてまとめました。以下の例は全てなんらかの欠陥があります。 クオートをいつも使い、どんな理由があっても単語分割を使わなければ、多くの落とし穴からあなた自身を守ることができます!単語分割はクオート表現をしない場合にはデフォルトでオンになっている、Bourneシェルから継承された壊れたレガシーな設計ミスです。落とし穴の大半はクオートされていない展開になんらか関連し、単語分割しその結果をグロブします。 1. for i in $(ls *.mp3) BASHプログラマーたちがループを書く際にもっとも犯しがちなよくあるミスは以下のような感じです。: f

    Bashのよくある間違い | Yakst
  • Engineering at Monsanto: AWS上でのetcdのクラスタリング | Yakst

    バイオ化学メーカーのモンサントはAWS上にetcdのクラスタを展開している。興味があったので読んでみた。 概要 数ヶ月の間、我々のチームはAWS上で自動化されたDockerコンテナを構築することにフォーカスしている。我々はCoreOSを基盤として使おうと決めた。CoreOSはコンテナをコアとした軽量なOSだ。 各マシンのコンテナのスケジューリングとしてfleetを使っている。fleetはホストがターミネートされたとしてもコンテナを稼働させ続ける。 CoreOSとfleetはクラスタ内のすべてのマシンと、稼働しているコンテナの状態を共有する必要がある。 これにはetcdが効果的だ。etcdはクラスタの情報と共通のコンフィグを保存する分散キーバリューストアとして使われる。 巨大なプロダクション環境にて、etcdは3つもしくは5つのホストで稼働するよう設計されている。 Bootstrapの問題

  • MySQL 5.7の重要機能まとめ | Yakst

    MySQL Performance Blogの翻訳。MySQL 5.7にはたくさんの改善や新機能が盛り込まれていますが、その中でも特に重要なものについてのまとめ。 ある日、Percona Supportの顧客とMySQL 5.7の新機能について議論する機会があったのですが、その後、重要な機能をまとめたリストがあったらいいんじゃないかと考えました。最新のMySQL 5.7.6 リリース予定版(RC)が、素晴らしい機能を詰め込んで公開されたばかり。これがMySQL 5.7の重要機能一覧です。 レプリケーション機能の拡充 MySQL 5.7の最重要機能の1つは、マルチソースレプリケーションでしょう。この機能では、スレーブに対して複数のマスタを指定でき、これまでのマスタが1台のみという制限がなくなります。同僚が書いたマルチソースレプリケーションについてのいいブログ記事(日語訳)が役に立つはずです

    MySQL 5.7の重要機能まとめ | Yakst
  • mysqldiffでテーブル定義の違いをチェックする | Yakst

    MySQL Performance Blogの翻訳。MySQL Utilitiesに含まれるmysqldiffコマンドを使うと、サーバ間あるいは同一サーバ内でのテーブル定義の違いをチェックし、一致させるにはどうするべきかが分かる。使い方と簡単な仕組みの解説。 レプリケーション環境でデータの不整合が発生するのはよくあることでしょう。pt-table-checksumやpt-table-syncを使ってそういった問題を解決する方法を解説した記事はたくさんあります。多くの場合、データの整合性には気を使うと思いますが、サポート窓口では、以下のような質問を受けることもよくあります。 サーバ間でテーブル定義が一致しているか調べる方法は? レプリケーションをしていても、マスタスレーブ間で異なったテーブル定義にしておくことは可能です。例えば、スレーブでは参照クエリのためにインデックスが必要だけれども、マス

    mysqldiffでテーブル定義の違いをチェックする | Yakst
  • bashで素晴らしく生産性を上げるための10のテクニック | Yakst

    よく使うコマンドの組み合わせを関数として.bashrcに書いておく事で、色々な操作が簡単になる。筆者の.bashrcとそこに書かれた実用的な関数のサンプル、使用例。 (訳者注) 原文タイトルが「Ten tips for wonderful bash productivity」なので、10のテクニックというタイトルにしていますが、実際には9つしかありません。原文筆者に指摘したところ人も自覚されていなかった模様?です。悪しからず。 私はいつも自分のbashの環境をいじったり直したりしています。同じような問題に何度も遭遇しては、その度に解決策を探さねばなりません。うんざりして座り込んでしまうまでそれは続きます。お前いつも座って仕事してるだろって? ええ、でももう皆さんお分かりでしょう。そういう場合は、カスタム関数を作って、それを.bashrcに書き込んで、ログインする可能性のあるマシン全部に入

    bashで素晴らしく生産性を上げるための10のテクニック | Yakst
  • バグを増やさないためにコードレビューのチェックリストを使う | Yakst

    チーム内で良くある間違いなどをチェックリストにし、それをコードレビュー時に使う事で、コード自体のレベルを上げつつコードレビューの品質のばらつきをなくす取り組みについて。Trelloなどを開発するFog Creek社のブログの翻訳。 効果的なコードレビューについて書いた我々のブログ記事の中で、チェックリストを使う事を推奨した。チェックリストを使う事で、レビューが継続的にチーム全体でうまくはたらくようにできる。また、ありがちな問題を見つけたり解決したりするのを確実にする、簡単な方法でもある。 ソフトウェア工学研究所の研究によると、プログラマは15から20の良くある間違いをしてしまいがちだという。そういった間違いをチェックリストに追加しておく事で、問題が起こった時にそれを特定し、確実に駆逐するようにできる。 チェックリスト作りに取り掛かるに当たって、一般的な項目は以下のリストのようになるだろう。

    バグを増やさないためにコードレビューのチェックリストを使う | Yakst
  • MySQLのレプリケーションでありがちな10の問題 | Yakst

    レプリケーションの問題でよくある10パターン。 1) セッションのみで有効なバイナリログ sql_log_bin = 0を設定すると、そのセッション内でバイナリログを無効にできる。つまり、マスタのセッション内で実行したDMLやDDLは、スレーブにはレプリケーションされない。 マスタでバイナリログをオフにする。 mysql> set sql_log_bin = 0 ; Query OK, 0 rows affected (0.00 sec) reptestデータベースにテーブルを作成してみる(マスタ上で実行)。 mysql> create table reptest(ID int) ; Query OK, 0 rows affected (0.01 sec) mysql> show tables ; +-------------------+ | Tables_in_reptest | +-

    MySQLのレプリケーションでありがちな10の問題 | Yakst
  • 大規模環境でMySQLのGTIDを適用して得られた教訓 | Yakst

    MySQL 5.6からの機能であるGTIDを、Facebookの環境に適用した際の流れと主な不具合、そしてそれらの修正点について、Facebookのエンジニアによるまとめ。 by Evan Elias and Santosh Praneeth Banda Global Transaction ID (GTID)は、MySQL 5.6の新機能の中でも最も使わずにはいられない機能の一つだ。このおかげで、フェイルオーバやポイントインタイムリカバリ、階層を持ったレプリケーションなどに非常に有益だし、クラッシュセーフなマルチスレッドレプリケーションの必須条件にもなっている。この数ヶ月で、我々はFacebookの全ての番用MySQLインスタンスで、GTIDを有効にした。その中で、この機能の適用方法や操作について、たくさんの知見が得られた。たくさんのサーバサイドの修正事項については、WebScaleS

    大規模環境でMySQLのGTIDを適用して得られた教訓 | Yakst
  • 私のプログラミングの始め方 : Go | Yakst

    プログラミング言語の最初の1歩を解説するサイト「How I Start」から、Peter Bourgon氏によるGo言語(golang)の始め方について。Goのシンプルさと標準ライブラリの使いやすさに焦点を当てた、分かりやすい解説。 Goは、信頼に値するスマートな人達によってデザインされ、大規模かつ成長を続けるオープンソースコミュニティによって継続的に改善されている、愛すべき小さなプログラミング言語である。 Goはシンプルであることを標榜しているが、時にはそのしきたりが少々分かりにくくなる時もある。ここでは、私がGoプロジェクトをどのように始めたか、そしてどのようにGoの慣習に従うようになったかをお見せしようと思う。Webサービスのバックエンドを構築してみよう。 環境設定 もちろん、最初のステップはGoのインストールだ。オフィシャルサイトで、使用しているOSのバイナリディストリビューショ

    私のプログラミングの始め方 : Go | Yakst
  • MariaDBの監査プラグインの導入 | Yakst

    MariaDB監査プラグインのインストール方法、設定パラメータ、使い方について紹介。プラグインはMariaDBだけでなくMySQLにも監査機能を提供。 WED, 2014/09/03 07:48 ANATOLIYDIMITROV データベースの環境を監視する上で監査は必須のタスクである。監査の情報はパフォーマンスやアプリケションの問題をトラブルシュートしたり、どのようなSQLクエリが処理されているのか正確に知るのに役立つ。 MariaDBの監査プラグインは、MariaDBだけでなく、MySQLにも監査機能を提供する。 MariaDBを公式のパッケージからインストールした場合は、標準でインストール済みでも有効化されているわけでもないがプラグインはシステム上にある。 server_audit.so(Linux)かserver_audit.dll(Windows)をプラグインディレクトリ(Ce

    MariaDBの監査プラグインの導入 | Yakst
  • 色んなログ、読む時間のある人いる? MariaDBのログ概要 | Yakst

    MariaDBプロジェクトの創設者Monty氏による、MariaDBおよびMySQLの各種ログの概要と設定についてのまとめ。 MariaDB 10.1の新機能を触っている時、(馬鹿げていると思うことの1つだが)一般ユーザはスロークエリログを無効にする方法が分からないのではないかと気づいた。 この機能を実装したりドキュメントを書いていて、色々なログの情報がバラバラになっていて、それらを有効にしたり無効にするのが意外と難しいのではないかとも思った。 これを解決するため、MariaDBのドキュメント(KB)に、MariaDBにもMySQLにも役立つだろうと思って「Overview of the MariaDB logs」というエントリを作った。 そのコピーがこの記事だ。コメントや追加して欲しい内容があれば、KBのエントリの方に意見を寄せて欲しい。たくさんの人の役に立つようにね! MariaDB

  • MySQLを使ったアプリケーションを作るエンジニアが知るべきMySQLの内部構造とは? | Yakst

    MySQLを使ったアプリケーションを作るエンジニアが知るべきMySQLの内部構造について、データベースコンサルティング会社PalominoDBを経営するLaine Campbell氏による回答。MySQLを知るためには何をポイントに学習すればよいのかがよくわかる、DBAや開発者にとっても役立つ内容。 1. ストレージエンジン ストレージエンジンと、永続性、ロック機構、トランザクション処理の振る舞いや分離レベルといったストレージエンジンの基礎となる動きについての理解なしに、MySQL自体やモデルデータのコードをいじるべきでない。それに加えて、InnoDBのクラスタ化されたプライマリキーや、MyISAMの全文検索インデックスのようなコア要素も、極めて重要な情報だ。 2. インデックスのコンセプト 特に以下のような点について。 カバリングインデックス 連結インデックス インデックスを使ったソート

  • コマンドラインでデータを扱う方法の色々 | Yakst

    headやgrepなど基的なコマンドから、CSVのためのcsvtoolやJSONを扱うjqコマンドまで、テキストデータを処理する時に使う各種ツールを例とともに解説する。 RやPythonのような成熟したコンピューティング環境は、詳しくデータを分析するのには素晴らしいものだ。しかし、素早くシンプルにデータの調査や捜査をしたいときには、UNIXのコマンドラインツールはものすごく効率的だ。この記事では、自分で見つけ日々使っているいくつかのツールに光を当ててみようと思う。新しいツールをあなたのレパートリーに加えられたらうれしい。 ファイルをのぞき見る( head tail less ) NASAのサンプルWebログデータをダウンロードするところから始めよう。 $ wget ftp://ita.ee.lbl.gov/traces/NASA_access_log_Jul95.gz ダウンロードされた

    コマンドラインでデータを扱う方法の色々 | Yakst
  • MySQLのメモリ使用量に関するトラブルシューティングTips | Yakst

    MySQLが確保する各種メモリに関するパラメータの概要から、それらがどのように割り当てられるのかを知るための様々な手法まで、Perconaのサポートエンジニアが詳しく解説する。 January 24, 2014 By Nilnandan Joshi 「MySQLサーバのメモリ使用量」に関連するトピックスを書いたブログ記事は既にたくさんあるにも関わらず、MySQLのメモリ関連の問題のトラブルシューティングで混乱しなかった人はいないだろう。Perconaサポートのエンジニアとして、高負荷のサーバに関することや、メモリ使用量高騰でOOM killerが発動してMySQLサーバが停止したこと、あるいは「MySQLがどうしてこんなにメモリをうのか分からない。どうやったら何にメモリが使われてるか分かるんだ?助けてくれ!」と言った問題を数多く見ている。 MySQLのメモリ使用量をチェックする方法はたく

    MySQLのメモリ使用量に関するトラブルシューティングTips | Yakst
  • 1