dots. Summit 2015
はじめに トレジャーデータはクラウドでデータマネージメントサービスを提供しています。 2015年1月,Fluentd のコミッター(弊社エンジニア)が中心となった「Embulk」というOSSが公開されました。このツールは大規模なデータセットのバルクインポートを行えるデータ収集ツールの1つに大別されるものです。 ↑ メインコミッターである当社エンジニア:古橋は Fluentd や MessagePack といったOSSを生み出してきました。そして,トレジャーデータのプラットフォームの根幹を作り上げたのも彼なのです。 Embulk とは何か? Embulkとはどのようなものなのでしょうか? バルクインポートを行うためのツールは,はるか以前からたくさん存在しますが,その中においてEmbulk の位置付けはどこにあるのでしょうか? 少しずつ紐といていきましょう。 「簡単に言うとFluentdのバッ
package main import ( "fmt" "os" "text/template" "time" ) func isotime(layout string) string { now := time.Now() return now.Format(layout) } func timestamp() string { return time.Now().Format("20060102030405") } func main() { tmplText1 := "Path is: /path/to/{{isotime `20060102030405`}}\n" tmplText2 := "Path is: /path/to/{{timestamp}}\n" funcMap := template.FuncMap{ "isotime": isotime, "timestamp":
(Last Updated On: 2018年8月13日)CasperJSやPhantomJSを使っていてシンタックスエラーがあると [yohgaki@localhost ]$ casperjs test.js SyntaxError: Parse error と表示するだけでエラー行を返してくれません。 上記のエラーは以下のスクリプトで起きています。 [yohgaki@localhost]$ cat test.js var casper = require('casper').create(); casper.start('http://casperjs.org/', function() { this.echo(this.getTitle()); }); casper.thenOpen('http://kakaku.com', function() { this.echo(this.g
phantomjs コマンドに --cookies-file オプションでいわゆる cookie_jar のようにクッキーを保存するファイルを指定できる ただこれをプログラムファイル側から扱う方法は無いみたい phantom.open はいわゆる onload のタイミングでコールバックを呼ぶが, それだと後から呼ぶ処理やサードパーティのスクリプトが動く前だったりするので, とりあえず setTimeout で逃げた phantom.exit でプロセスは終わらない? プロセスを抜けるにはどうしたらいいんだろう リクエスト・レスポンスヘッダとかステータスコードをリクエストごとに出したいけどとれないっぽい phantomjs をバックエンドにした curl って作れないかなあ
マネージャのいない組織へのチャレンジについては、一昨年から話題になっていますが、ここにきてかなり論点が絞られてきていると思います。 1) 非同期 & 可視化が進む GitHubなどのツールに親しむエンジニアが、進捗が可視化され、非同期で仕事を進めることに先に慣れてきたが、SlackのようなコミュニケーションツールやTrelloなどのタスク管理ツールの浸透で、非エンジニアにもじわじわその理解が進んでいく。 2) マネージャの役割が変わる 上記1) が進むことで、進捗を報告させて情報を集約、また逆に、全社 / 業界の情報をフィルタリングして伝えるという、情報操作ハブとしてのマネージャの役割はかなり減る。情報の透明性があがることで、情報を握っていることがマネージャのパワーの源泉である時代が終わる。 プロジェクトの進捗 / 開発のクオリティ / 売上 / 評価とフィードバック / メンバの士気の向
2018年4月25日をもちまして、 『CodeIQ』のプログラミング腕試しサービス、年収確約スカウトサービスは、 ITエンジニアのための年収確約スカウトサービス『moffers by CodeIQ』https://moffers.jp/ へ一本化いたしました。 これまで多くのITエンジニアの方に『CodeIQ』をご利用いただきまして、 改めて心より深く御礼申し上げます。 また、エンジニアのためのWebマガジン「CodeIQ MAGAZINE」は、 リクナビNEXTジャーナル( https://next.rikunabi.com/journal/ )に一部の記事の移行を予定しております。 今後は『moffers by CodeIQ』にて、 ITエンジニアの皆様のより良い転職をサポートするために、より一層努めてまいりますので、 引き続きご愛顧のほど何卒よろしくお願い申し上げます。 また、Cod
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!Jun-ichi Sakamoto
社内向け資料。自分が書いたコードを説明するために資料作る羽目になった。 昔のことはうろ覚えで雰囲気で書いてる部分もあるので、そこらへん勘弁。 古の時代(~2010) 前提としてJavaScriptは名前空間がwindowの一つしかない。 昔Prototype.jsがあった。もうみんな忘れたけどあの時期はプリミティブなオブジェクトのprototypeを生やしまくって、それが衝突しまくってprototype良くない的な雰囲気が生まれたり生まれなかったりした。 その反省があってか(歴史的に若干微妙な気がするが) jQueryは名前空間を一つに集約した。いわゆる jQueryPlugin は、jQueryのプロトタイプにヘルパを生やしまくっていた。グローバルを汚すのは駄目だけどjQueryの名前空間を汚すのはいいよね、ぐらいの考え。 jQuery非依存なライブラリは、「GoodParts」として、
HTTP Public Key Pinning Extension HPKP for Apache, NGINX and Lighttpd Published: 30-12-2014 | Author: Remy van Elst | Text only version of this article ❗ This post is over nine years old. It may no longer be up to date. Opinions may have changed. Update 2018-06-12 Chrome 68 has deprecated HPKP. Read more about it on my article Public Key Pinning means that a certificate chain must include a whitel
--- /etc/elasticsearch/elasticsearch.yml.org 2015-02-07 02:19:24.338361576 +0900 +++ /etc/elasticsearch/elasticsearch.yml 2015-02-07 02:29:39.266361349 +0900 @@ -29,7 +29,7 @@ # Cluster name identifies your cluster for auto-discovery. If you're running # multiple clusters on the same network, make sure you're using unique names. # -#cluster.name: elasticsearch +cluster.name: named.elasticsearch ##
課題 chef の include_recipe は2度呼んでも1度しか実行してくれない。深遠な理由があってなんとかして2回実行したい。 レシピサンプルはこんなかんじ
```conf:/etc/td-agent/conf.d/bind_queries.conf #---------------------------------------------------------- # 各DNSサーバーのrsyslog から のログを取得する処理 # local1.info -> syslog:42185 -> named.syslog.local1.info #---------------------------------------------------------- <source> type syslog port 42185 tag named.syslog </source> #---------------------------------------------------------- # フィルタリング処理 # /usr/lib6
どうも。 1月に入社したばかりの、データ分析担当のn_maoです。 と言いながら、最近はHTMLとjsばかりいじっております。 それはそれで楽しいです。 さて今回はデータ分析のざっくりとした仕事内容と、その分析にかかる手間を省くツールをご紹介します。 データ分析の仕事 まずは私の行っているデータ分析という仕事の内容をご紹介します。 私の主な仕事は大きく分けて4つです。 売上げ、会員登録数などの簡単な集計&自動レポーティング データベースからの知識発見(いわゆるデータ分析) 分析結果をもとにした企画立案 実施された企画の効果検証 あくまで私個人の仕事内容であり、データ分析者全員に当てはまるわけではありません。 アルゴリズムの研究開発の方や、インフラ寄りの方もいらっしゃるでしょう。 ですが、同じ職種の方で業務範囲が被っている方も少なからずいらっしゃると思います。 これら4つの業務の中で一番時間
Spark on Dockerで分散型機械学習を始める - Part2: UbuntuでIPython Notebookを使うhadoopSpark機械学習ipython_notebook sequenceiq/sparkのDockerイメージはCentOS 6.5を使っているので、そのままではIPythonのインスト-ルに失敗してしまいます。SequenceIQにはUbuntuのbaseimageもあります。これから自分でSparkのDockerfileを作ろうと思いましたが、ちょどよいイメージがLogBaseInc/docker-spark-ipythonがありました。 このシリーズ Spark on Dockerで分散型機械学習を始める - Part 1: インストール Spark on Dockerで分散型機械学習を始める - Part 2: UbuntuでIPython Note
These slides include many inappropriate graphs. If you want to tell the summary of the data correctly, you should avoid to use graphs in this presentation. They can mislead those who view them. In English, the title of presentaion is "24 slides including graphs that should not be absolutely drawn".Read less
About Swaks is a featureful, flexible, scriptable, transaction-oriented SMTP test tool written and maintained by John Jetmore. It is free to use and licensed under the GNU GPLv2. Features include: SMTP extensions including TLS, authentication, pipelining, PROXY, PRDR, and XCLIENT Protocols including SMTP, ESMTP, and LMTP Transports including UNIX-domain sockets, internet-domain sockets (IPv4 and I
The contest that I posted the other day received some very nice entries. I decided to pick multiple winners since the best entries illustrate consequences of several kinds of undefined behavior. First, here’s the runner up, submitted by Octoploid: int main (void) { int x = 1; while (x) x <<= 1; return x; } This program is undefined by C99, where signed left shifts must not push a 1 bit into or pas
今日は僕が開発しているTrusterd HTTP/2 Webサーバの一つの特徴である、「HTTP/2機能のアプリ組込み」の方法を紹介したいと思います。 Cをちょっと書けるレベルの人でも5分でCアプリにHTTP/2機能を組み込んで、自分のHTTP/2サーバを実装できます。 mrubyをGitHubからcloneしてビルド まずはmrubyをGitHubからダウンロードしましょう。 git clone https://github.com/mruby/mruby.git cd mruby そして、build_config.rbに必要なmrbgemを書きます。 ・ ・ # include the default GEMs conf.gembox 'full-core' conf.gem :github => 'iij/mruby-socket' conf.gem :github => 'iij/
class ::Chef class Definition # rsync files from a host to localhost # # HOW TO USE: # # 1) # # rsync "#{name}" do # from "#{hostname}:#{from_path}" # to "#{to_path}" # end # # rsync "#{name}" do # from "#{from_path}" # to "#{hostname}:#{to_path}" # end # # 2) notifies must specify `execute` not `rsync` # # cookbook_file "/tmp/foo" do # source "tmp/foo" # notifies :run, "execute[#{name}]" # end #
いろいろと原則論はあるんですが。昨今のアプリケーションは複雑化し、扱う情報はよりセンシティブになり、そしてより幅広く使われるようになっています。よって「安全な」アプリケーションを作るために必要な知識はますます増える傾向にあります。 よく分かってない人は以下のことにとりあえず気をつけましょう 1. なるべく自分で作らない これは最も重要なことです。検索する、他人に聞く、自分で考えない。これは重要です。大抵の問題は他人が作ってくれた解決策を適用できます。 例えばセキュアな問合せフォームを作ることにしましょう。気をつけるべきことは以下のことぐらいでしょうか。 送信内容の確認画面を表示する場合、ユーザーの入力した値は適切にエスケープするように 送信内容をアプリケーションの DB に格納する場合には SQL インジェクションを防がなければならないので、プリペアドステートメントを用いる CSRF 対策
OpenSSL supports a number of different SSL ciphersuites, which can have a huge impact on the overhead that SSL imposes on HTTP traffic. Below I approach SSL from the performance side of things. Sites deploy HTTPS for one of two reasons: Financial or highly sensitive data is involved, there are regulations mandating security policies, and it would be extremely advantageous to someone if they obtain
このエントリの結論 GitHubにpushしたコミットは、後でrebase -iなどで取り消した後に再度pushしても、コミットのハッシュがわかれば再度アクセスできる。 経緯 社内のGeekの人たちによる、Prototype Cafeというコミュニティでゆるっと活動しているのですが、そこのSlackでこんなことが話題になりました。 「git rebase -iなどで取り消されたcommitについていたGitHubのコメントは消えてなくなってしまうのだろうか?」 ということです。 具体的に言うと、Slackで飼ってるHubotにスクリプトを追加するとき、以下のようなことがあったのです。 僕が「A」というコミットをする。 「A」というコミットにtypoがあったので、typoのfixを「B」というコミットにする 僕が「A」「B」というコミットを含むブランチからPull Requestを作る 先輩
私はこの7年半、 Ronimo でプログラミングを学ぶ多くのインターン生を指導し、様々なタイプの大学生や大学院生を見てきました。彼らのほとんどには、共通して言える学ぶべきことがあります。特別なテクニック、アルゴリズム、数学、あるいは特定の形式についての話だと思う人もいるかもしれません。もちろんそれも必要ですが、中心的なものではないと私は考えます。彼らが主軸として学ぶ必要があるのは、自己統制力です。常に可能な限り読みやすいコードを書き、開発中の変更により秩序がなくなってきた時にはきちんとリファクタリングを行い、使用されていないコードを除去し、コメントを追加することができるという力です。 プログラミングのインターン生を指導する際、この話にほとんどの時間をかけます。上級のテクニックでもなければエンジンの詳細についてでもなく、概ね彼らにより良いコードを書かせることに主眼を置きます。いつもインターン
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く