カイワレの大冒険 Third

技術的なことや他愛もないことをたまに書いてます

GitHub pages+Octopressの運用をやめて、はてなブログに移行した

元々はてなダイアリーでブログを書いていたのですが、自分で管理したほうが融通が効くんではないかと思い、3,4年前にGitHub pages+Octopressに変えました。 ドメインも自分で決められたり、ソースはmarkdownで、GitHubに残るので、いいなーとは思っていたの…

サイバーエージェントを退職します

2016年04月15日退職なので、もう少しありますが、有給消化中ということで。 2011年12月に入社したので、約4年半勤めたことになります。 この4年半のあいだに本当に色々ありまして、入社早々トップクラスのエンジニア達と一緒に1年がかりのプロジェクトをやっ…

確定申告に行ってきた2016

去年に続き、今年も確定申告に行ってきました。去年とは違い、ふるさと納税や配当があるので、そのあたりの備忘録も兼ねて、記録に残しておきます。 なぜやるのか 確定申告するまではなんでそんな面倒そうなことやるんだろうと思ってました。確かにめんどい…

15年ぶりぐらいにTOEICを受けてきた

学生時代に受けて以来、久々に受けてきました。この歳になって、2時間のテストを受ける機会もなかなかないので、新鮮でした。 ひとまず結果はこちら。 点数: リスニング分析: リーディング分析: リスニング Abilities measured: リーディング Abilities meas…

英語チャットでネイティブが使う表現(3)

英語チャットでネイティブが使う表現 (1) 英語チャットでネイティブが使う表現 (2) の続きです。前回の記事を投稿したところ、Facebookで他にもよく見る表現色々あると言われ、表現を勧められたので、それらをまとめてみます。 pls 「please」の略語ですね。…

英語チャットでネイティブが使う表現(2)

英語チャットでネイティブが使う表現 (1) の続きです。 外国の方とちょくちょくチャットするのですが、真似したい表現があったので、書いてみる。 ひとつ目は、これ。 Hang on 「ちょっと待ってね」という意味で使うようです。◯◯するから、ちょっと待ってね…

自作OSSにプルリクをもらったので、やったこと

ありがたいことに、拙作constants_managerにプルリクをもらったので、自分がやったことをまとめておきます。 まず確認 Githubからプルリクが届いたというメールが来るので、確認。ページにいって、コメントや修正内容を確認しましょう。 ローカルに再現 @stu…

英単語をアプリで学ぶならzuknowがオススメ

2016年ですね。年末年始はテレビを見ながら、本を読んでぶらぶら過ごしています。 今月末にTOEICを控えているので、単語を大量に覚えてまして、いいアプリがあったので紹介します。 TOEIC対策として、有名な本があるのご存知でしょうか。その名も「新TOEIC T…

2015年振り返り

今年もあと2日となりました。みなさまいかがお過ごしでしょうか。 今年も振り返りをしてみたいと思います。過去分はこちら。 2014年 2013年は特に書いてない 2012年 2011年 お仕事 今年の大きな変化としては、インフラエンジニア(海外ではSite Relaibility …

年の瀬に人生初の骨折をした

みなさま、年の瀬はいかがお過ごしでしょうか。 ちょうど先週なのですが、バスケをやっていて、ディフェンスをしていたのですが、無理やりコースに入ってしまったこともあり、膝蹴りを脇腹に喰らいました。 その後寝たり、起き上がったり、扉を開けるときな…

必ず失敗するひどい実装を晒してみる

年の瀬ですが、みなさま今年の振り返りはできていますでしょうか?この記事では今年に限らず、今までわたくしが犯した罪のある実装を晒していきたいと思います。 「愚者は経験に学び、賢者は歴史に学ぶ。」という言葉にあるように、この記事が少しでも多くの…

英語のボキャブラリーを計測できるサイトで自分のボキャブラリーを計測してみよう!

インターネット・スマホ時代の英語学習法。今どきの学び方をオススメします!で書いたように最近英語を話す知り合いを何人も作っています。 その環境のなか英語の勉強を進めているのですが、自分のボキャブラリーはどれくらいあるのだろうと気になり、調べて…

英語チャットでネイティブが使う表現 (1)

インターネット・スマホ時代の英語学習法。今どきの学び方をオススメします!で書いたように最近英語を話す知り合いを何人も作っています。 そのため、色々な表現に触れることが多いのですが、今回の記事では、この表現いい、使いこなしたらかっこいいという…

初対面で英語話すときに覚えておきたいフレーズ

インターネット・スマホ時代の英語学習法。今どきの学び方をオススメします!で紹介したように、英語を学習する上で、meetupはすごくオススメできる機会です。 生の英語を聞くことができ、外国人の知り合いもできる。無機質に英語を学ぶよりも数百倍効果的に…

インターネット・スマホ時代の英語学習法。今どきの学び方をオススメします!

英語の勉強にハマっている@masudaKです。 Readingに関してはコンピュータ系の資料などで触れてはいるものの、それ以外のスキルに関してはほとんど受験とか院時代のままになってまして、テコいれしようと10年ぶりぐらいに英語を勉強しているので、僕のやりか…

Githubにpushしてしまったパスワードを可能な限り抹消する

昔やってしまったのですが、パスワードを社内版Githubにpushしてしまったことがあり、そのときどう対応したか記録に残しておきたかったので、備忘録として残しておきます。 結論から言うと完全には消せなく、パスワード作りなおしたほうがいいので、絶対やら…

社内版ISUCON2015のメモ

社内版ISUCONに出場してきた。自分は現在サーバサイドエンジニアだけど、少し前の職種であるインフラエンジニアとして誘われ、参加。 サーバにもう繋げず、あまり痕跡残ってないけど、手元のメモ参考に記事にしてみる。 現地についてレギュレーション読んだ…

フィールドにあるリストは初期化したほうがいいという話

フィールドにリストを持つクラスがあるとします。こんなの。 public class SampleData implements Data{ private List<String> contents; . . . } そうすると、「初期化」してないと突っ込まれました。なぜだめなのか。 理由としては、nullが入ることがあり、そのケ</string>…

Enum優秀!使い方によって、すごく便利だった件

IDによって処理を分けたいことがありました。そして、僕は単純にCASE文使えばいいだろうと思い、以下のように実装。 switch (id){ case 1: hogehoge(user, array); break; case 2: hugahuga(user, array); break; default: break; } これでいいかなと思った…

Jenkinsジョブでmvn package時にmaven-war-plugin is missingエラーが出る場合の回避方法

Jenkinsジョブでmvn packageしようとしたら、方法の様なエラーがでた。「maven-war-plugin is missing」と言われている。 INFO: % mvn package -Phogehoge INFO: --- command output --- [INFO] Scanning for projects... [WARNING] [WARNING] 'build.plugin…

GCPのインスタンスで、pysparkからGCSに繋いでみた

お仕事で大量のデータをピボットテーブルのように集計処理する必要がでてきまして、色々触ってみたので、まとめてみます。 やることはこちら。 GCP(Google Cloud Platform)でgcloudとbdutilの設定を行う GCS(Google Cloud Storage)にCSVを置く pysparkをダウ…

グロ注意。洗濯槽の掃除をしてみた

たまには技術以外の話題でも。 しばらく洗濯槽の掃除をしていなかったことを思い出し、ちょうど連休で時間があったので、掃除してみました。 前に掃除したのが半年ぐらい前だと思いますが、洗濯槽はそれぐらいでもかなり汚れます。 以下に書いてある内容です…

perlのワンライナーを使えるとカッコイイという話

みなさま、perl使ってますでしょうか。 タイトルは釣りですが、結論から言うと、ワンライナーを書くならperlを使いましょうという話です。 理由は単純に、パッケージいれなくてもすぐ使えるのと、perlスクリプトを解読するのに知識が生きるからという理由か…

redis-pyが「AttributeError: 'module' object has no attribute 'StrictRedis'」エラーを吐いた件

redis-pyを動かそうと思ったら、以下の様なエラーが。 $ python redis.py Traceback (most recent call last): File "redis.py", line 1, in <module> import redis File "/var/tmp/redis.py", line 2, in <module> r = redis.StrictRedis(host='localhost', port=6379, db=0</module></module>…

Macでハイフンの含んだディレクトリをrmする

意外と簡単にできなかったので、メモ。 ハイフンを含んだようなディレクトリが間違ってできてしまって、それを削除したい場合。 「-p」というディレクトリがなぜかできてしまっている。 $ ls -p Desktop Downloads Music dotfiles work Applications Documen…

Google Analyticsで、パスではなくページタイトルを表示させる

Google Analyticsはデフォルトだと、以下のようにURLに含まれるパスが表示されてしまいます。 これだと、うちのブログの場合更新日とかからなんの記事かを推測しなければならず、わりと大変でした。 ちょっと調べたところ、解決する方法がありました。 以下…

markdownで改行をする

markdownで改行したいのにすぐ忘れるので、メモ。 以下のアンダースコアの箇所を半角スペースにすればOK。 適当な文字:__ 次の行の文字 半角スペースを2個連続すれば、改行になります。 ではでは!

ELBでクライアントのGIPが取得できるProxy Protocolを試してみた

HTTPでは簡単に取得できるクライアントのGIP(グローバルIP)。 ただ、必ずしもHTTPを使うわけではなく、色々なプロトコルを使いたいときもありまして。WebsocketとかMQTTとかソケット通信とか色々。 そういうときに、ELBではTCPだとデフォルトではGIPが取得…

brewでいれたjqが'jq not found'だったので、対応をした話

Macでjqを使おうと思ったのですが、not foundと言われてしまったので、対応をしました。 実行するとこんな感じ。 $ which jq jq not found インストールした記憶はあるのに動かない。 念のため確認してみる。 $ brew install jq Warning: jq-1.4 already ins…

僕が職場でヘッドフォンを使う理由

今の勤務先は電話に出なくてもいいため、ヘッドフォンを使えるのですが、単に音楽聴きたいというより色々理由があるので、文章にしてみました。 ゾーンに入れる 一番これが大事ですね。「ゾーンに入る」というのは集中して周りが見えなくなるような状態を指…

Cannot find module 'react-bootstrap/lib/ModalTrigger'エラーの対応

以下を実行したら、エラーが。 $ browserify -v -d --extension=.jsx client/app.jsx -o public/js/bundle.js エラーはこんな感じ。 Error: Cannot find module 'react-bootstrap/lib/ModalTrigger' from '/Users/masudak/IdeaProjects/repositories/sample/…

ターミナルを使えてプログラミングできないなら、シェルスクリプトから始めよう

「黒い画面でバリバリ作業はできるのに、プログラミングとなるとちょっと・・・」みたいな人いますでしょうか。 grepとかcurlとかコマンドラインは得意なんだけど、オブジェクト思考とかメソッドとか変数とか抽象化とかそういうのになるとちょっと苦手という…

~/.profileが読み込まれなくて困ったら、ここを見る!

先日ハマったのですが、とあるサーバで~/.profileに書かれた内容が読み込まれなくて、困ったことがありました。他のサーバでは読み込めていて、どうも何かの設定が影響をしているよう。 調べてみると、どうも~/.bash_profileや~/.bash_loginが存在していると…

続・Git中級者に送る便利なコマンド群

前回の記事「Git中級者に送る便利なコマンド群」でははてブ経由で多くのコメントを頂きました。今回の記事では、頂いたコメントのうち、いくつか取り上げて、可能な限り補足をしたいと思います。 git push origin master -f 前回の記事で最も多くご指摘頂い…

Reduxのサンプルに説明をつけてみた

最近React, fluxアーキテクチャに触れることがあり、理解にかなり苦しんだので、軽く文字にして、理解を深めてみました。 今回使ったフレームワークはReduxなので、それ以外学びたい人はごめんなさい。 レポジトリはこちら。 https://github.com/masudaK/flu…

Git中級者に送る便利なコマンド群

Gitを使っていて、ちょくちょく便利だなと思うコマンドに出会うので、メモ残しておきます。実際中級者の方には物足りないかもしれませんが、とりあえず。目次は以下。 自分がいじったファイルを一旦退避させたい ツリーが今どういう状態になっているか確認し…

Dockerを使ってプロビジョニングツールのCI環境を作った話

新サービスのたちあげで、プロビジョニングツール(ChefとかAnsibleとか)のテストを継続的にやりたいなーと思っていたので、環境を作ってみたという話です。 やりたいことは以下。 ChefなりAnsbileでサーバプロビジョニングの内容をコード化 特定のトピック…

エンジニアの僕が指を痛めた結果、どうしたか

仕事中にキーボードをよく使っているわけですが、タイトルのとおり指が痛くなりまして、どう対処したかについてまとめてみます。 1年ほど前からちょくちょく気になってはいたのですが、ガッツリコード書く日以外はそこまで痛くならなかったので、放置してい…

Vaultを試してみた

最近ブログ書いてないので、リハビリがてら書いてみる。 最近新しいプロジェクトに関わっているのですが、どうせ最初から作るなら暗号化もちゃんと検討しようということで、Vaultに触れてみました。 Vaultの概要については以下の記事などがあります。 Vault…

正規表現を使ってhostnameを抽出する

完全に自分用のメモですが、FQDNにhostnameが含まれるようなドメインがあった場合に、hostnameだけを抽出したくなったので、そのときのメモ。 Pythonで書くとこんな感じ。 def extract_hostname(fqdn): __pattern = r'([^\\.]+)' regex = re.compile(__patte…

Facebookへ特定ドメイン含む投稿をしたらスパム扱いされた話

少し前の話になるのですが、Facebookに特定ドメインを含めた投稿をすると、警告が出るようになり、その調査をしたので、書いてみます。 現象は以下のとおり。 サービスリリース 拡散のためにFacebookにそのサービスのドメインを含めた投稿をする 以下のよう…

constants manager was released!!

Now on release constants manager!!. This library helps you to manage constants for python. It recommends to see README.md to use. The features are below. use different constants with environments variables. return default constants if ther…

pypiにパッケージを登録して、setup.pyの「scripts」と「console_scripts」の違いを比較してみた

みなさま、Pythonのパッケージ化はしたことありますでしょうか?最近以下のような記事を書きましたが、ツールを作ったものの、それを配布しようとなると、Pythonのパッケージ化に関して分からないことがあり、pypiにパッケージを登録して試してみました。 Py…

SSL/TLS通信できないときのハマりポイント9選

サービスをSSL/TLS化する上で、簡単にうまくいくこともあれば、何か設定が抜けていたり、間違っていたりして、どうもうまくいかないことがあります。そういうときに、僕が確認しているポイントを書いてみたいと思います。後半の2つは少しマニアックな感じな…

Pythonでコマンドラインツールを作りたいときには、setup.pyには何を書くべきか

前回のPython製コマンドラインツールのディレクトリ構成について。その考察。の続きです。 はてブコメントやFBでのコメントでsetup.pyに関する言及がいくつかあったので、どのようなことを書いたほうがいいのか調べてみました。 setup スクリプトを書くやい…

Python製コマンドラインツールのディレクトリ構成について。その考察。

はじめに 去年ぐらいからPython製のコマンドラインのツールをいくつか作っていて、構成もだいぶ固まってきたので、まとめてみる。規模としては1ファイルでは終わらないぐらいで、関数の数も数十になってユーティリティを作ったり、クラスをいくつか作らない…

今まで作ったPython, Ruby, Bashの関数を色々晒してみる

華金なのに飲みもないので、ブログでも書こう。今日は、今までに書いた関数をいくつも晒してみようと思う。RubyとかPythonとかbashとか必要に応じて色々作った関数もそこそこあるので、誰の役に立つかわからないけど、晒してみる。 importとかまでは記してな…

touchコマンドはファイルを作成するだけではないという話

Linuxでファイルを作成するときによくお世話になるtouchコマンド。そんな使い方をするコマンドだと思ってましたが、どうも誤解をしていました。 まず普通にファイルを作ってみましょう。 $ touch 01.txt $ touch 02.txt $ touch 03.txt $ ls -l 合計 0 -rw-r…

コールバック関数

今までコールバック関数をちゃんと把握してなかったので、メモ。 今回はnode.jsを使います。加算を2段階で行う処理。 function add(a,b,callback) { console.log(a+b) callback(a+b) } function add10(base) { console.log(base + 10) } add(1,2,add10) 実行…

Rubyでリトライとか、SSH経由でコマンドとか

実家にいるとどうも時間持て余してしまうので、昔書いたスクリプトを備忘録的に残しておく。一年以上前に書いたやつだな。。。 リトライ たとえば、特定のURLに対して並列でGETしたい、ただステータスコードがおかしかったりしたら、キャッチしておきたいよ…