wataメモ

日々のメモをつらつらと書くだけ

SwiftでHimotokiの使い方メモ

iOSのアプリを開発している時にSwiftでHimotokiを使った時のメモ。 執筆時点のHimotokiのバージョンは2.0.1。 自分が使うときにいい感じにまとまった情報が見つからなかったので誰かの為になればと書くことにした。 Himotokiとは Himotoki (紐解き) is a typ…

ゴロム・ライス符号を試してみた

前回のKazuhoさんのブログでブルームフィルタがソート済の整数列として表現できるという記載があった。 「ブルームフィルタを試してみた」のやり方ではソート済の整数列として扱ってはいない。 では「ソート済みの整数列として扱える」ということはどういう…

ブルームフィルタを試してみた

最近、H2Oの開発者であるKazuhoさんのブログでブルームフィルタという単語があったので調べてみた。 Kazuho's Weblog: ソート済の整数列を圧縮する件 以下はKazuhoさんのブログを読んだ前提で書いています。 特徴 Wikipediaより引用。 空間効率の良い確立的…

踏み台サーバ立ち上げAPIを作成してみた

踏み台サーバは以前の記事でも書いたようにbastionが立ち上がっていて、SecurityGroupを更新してssh出来るようにしている。 その都合上ずっとインスタンスを立ち上げっぱなしにしていた。 それは勿体無いのでAmazon API GatewayとAWS Lambdaで、単純なhttpア…

Amazon Web Services クラウドデザインパターン 設計ガイド読了

Amazon Web Services クラウドデザインパターン設計ガイド 改訂版を読んだ。 www.amazon.co.jp 57種の設計パターンについてまとめた書籍である。 これらのパターンはCloud Design Patternにまとめられているものであり基本的には書籍を読ま…

なるほどUnixプロセス ― Rubyで学ぶUnixの基礎読了

なるほどUnixプロセス ― Rubyで学ぶUnixの基礎を読んだ。 tatsu-zine.com お勧め対象者 基本的にはUNIXのプロセスの話がわかりやすくまとまっている。 なぜRubyが絡んで来るかというと、C言語で理解を進めようとすると色々煩雑なことが多いがRubyなら簡潔に…

nginx1.9.5のHTTP/2の機能を使ってみた

次世代Web カンファレンスでも話題になっていたHTTP/2でnginxも1.9.5でサポートということで使ってみた。 サポートしたと言ってもnginxのページには以下の注意書きが書かれていた。 もしアプリでWAFを使っていて、nginxの前にあるならHTTP/2に対応しているか…

次世代 Web カンファレンスを見てみた

次世代 Web カンファレンスを見ての感想。 nextwebconf.connpass.com セッションについて 資料は一切なし、単なるトークのみ。企業の宣伝とかもない。 今回見たのは以下のセッション。 server_perf server_arch security http2 monitoring どれも登壇者が一…

メタプログラミングRuby第2版読了

タイトルから面白そうとメタプログラミングRuby第2版を読んだ。 www.amazon.co.jp お勧め対象者 読んでみると非常に丁寧にRubyの言語仕様を解説してくれていた。 なんとなくで理解していた事や、ちゃんと調べていなかった部分が色々と晴れた。 Rubyを勉強し…

踏み台サーバを作ってみた

まだ全然足りないが、踏み台サーバを構築するプロビジョニングを作り始めてみた。 最初はbastionを作っていて、そこからサーバのプロビジョニングもあった方が良いなと始めて見た。 basionについてはRuby on Railsでサービスを作ってみたpart6で「踏み台サー…

rails_best_practicesの指摘を修正してみた

今回はrails_best_practicesの指摘を修正してみる。 survey!に掛けてみたところ23個の警告が出た。 インストール developmentグループのところにgemを追加してbundle install。 Gemfile gem 'rails_best_practices' 実行 今回はhtmlに出力させたいので以下で…

AWS LambdaのScheduled EventでEC2インスタンスの定期停止、起動してみた

AWS Lambdaで「Scheduled Functions (Cron)」というのが増えてcronのように定時実行が追加された。 試してみようと思って、題材としてはちょうどインスタンスを定期的起動、停止をする必要があったのでそれにしてみた。 今まではJenkinsで行っていたが、それ…

起動時にELBに再登録するシェルを簡単にインストール出来るようにしてみた

AWS

別に大したことではないのだが、最近設定することになって面倒だったので一発で出来るようにしたかった。元ネタはクラスメソッド株式会社のブログの「EC2を停止して開始した時はELBに再登録する」。 開発環境など、夜中はインスタンスを落としておきたい場合…

クックパッドのインターンシップ講義資料のプログラミングパラダイム編をやってみた

今回はクックパッドの「夏の技術職インターンシップ講義資料公開」を見て「五日目 プログラミングパラダイム編(青木峰郎)」をやってみた。 開発者ブログで見て、非常に面白そうだったからだ。 techlife.cookpad.com 合間を見つけてちょこちょこ3,4時間ほ…

paizaでSランク獲得した

まとまった時間を作らないと挑戦が出来なかったが、今回時間を作ってpaizaのSランク問題に挑戦してSランクを獲得した。毎度の事ながら、一発勝負というのは提出時に緊張する。

CarrierWaveでSTI(Single Table Inheritance)した時のstore_dirについて

またSTI系のネタになってしまったが、CarrierWaveでmountするモデルをSTIにしていると、generateしたままのstore_dirだとtypeが変わった時にパスが変わってしまう。 def store_dir "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" end …

ActiveRecordでSTI(Single Table Inheritance)時に自動でenum定義されるようにした

Ruby on Railsでサービスを作ってみたのおまけでSTI時にenumを書くとDRYの原則に則さないと書いたが、まあ無いなら作ればいいじゃないかということでactiverecord-sti-enumというrubygemを作ってみた。 (プロダクトレベルで使える物ではないのであしからず…

Code ClimateでGPAを4.0にした

Code ClimateでGPAを表記上4.0にした。 静的解析ツールはリソース監視と同様に常に掛けておいて、コードの質をチェックしていかないと行けない。 前回の「Ruby on Railsでサービスを作ってみた」メモのコードを静的解析を掛けて、いくつかissueがあったので…

Ruby on Railsでサービスを作ってみた おまけ

実装周りで補足した方が良いことを思いついてしまったのでおまけとしてメモ。いつもの様に過去記事はこちらからどうぞ。(part1、part2、part3、part4、part5、part6) active_decorator 今回active_decoratorを使ってFat Modelになるのを防いでいる。active…

Ruby on Railsでサービスを作ってみたpart6

今回で6回目「Ruby on Railsでサービスを作ってみた」記事投稿。過去記事も増えてきましたが読みたい方はこちらからどうぞ。(part1、part2、part3、part4、part5)今回のインフラ周りの話でこのシリーズは一応完結。(挨拶) サーバ構成 AWSをインフラとし…

Ruby on Railsでサービスを作ってみたpart5

今回で5回目の「Ruby on Railsでサービスを作ってみた」記事投稿。いつもの様に過去記事はこちらからどうぞ。(part1、part2、part3、part4)画面や機能周りで終わりではなく、開発環境やらインフラ周りのメモも書いていくので引き続きよろしくお願いしたい…

Ruby on Railsでサービスを作ってみたpart4

さて今回も引き続きRuby on Railsでサービスを作ってみたメモを書いていく。前のpartはこちらからどうぞ。(part1、part2、part3)今回で画面の機能、開発周りとしては最後にしたい。 アンケート結果 画面キャプチャ ヘッダー周り 上部に回答人数や、質問数…

Ruby on Railsでサービスを作ってみたpart3

今回で3回目の「Ruby on Railsでサービスを作ってみた」記事投稿。part1とpart2はこちらからどうぞ。では今回も画面や機能の開発周りの続きを書いていく。詳細なのは書いてもしょうが無いかと思って掻い摘んでいると、逆にブログだけだとわからない感じにな…

Ruby on Railsでサービスを作ってみたpart2

今回は前回の続きということで、画面や機能の開発周りの事を書いていく。画面開発自体は2日ぐらいでがっと作っただけなので、そんなに複雑でもないし画面数が多いわけではない。サイトマップは以下のようにシンプルな構成だ。 アンケート一覧 画面キャプチャ…

Ruby on Railsでサービスを作ってみたpart1

Ruby on Railsでサービスを作ってみようと考えやってみた。いくつかのpartに分けて投稿して行こうと思う。まずは今回作ったサービスはアンケート作成と集計サービスだ。ソースはGithub/wata-gh/surveyに公開してある。画面イメージとしては以下。 画面イメー…

[24時間365日] サーバ/インフラを支える技術読了

[24時間365日] サーバ/インフラを支える技術を読んだ。 www.amazon.co.jp ちょっと古い本ではあるが、オンプレでもインフラ構築することもあると思い勉強の為に手を出した。「Webサーバの冗長化」や「リバースプロキシの導入」、「キャッシュサーバの導入」…

パーフェクト Ruby on Rails読了

良書と言われている「パーフェクト Ruby on Rails」を読んだ。結論としてはRailsで開発をしようと考えている人にはお勧めだ。 www.amazon.co.jp 全体として 全体としてはRailsの概要が記載されていた。詳説というわけではないのでリファレンスとして使えるも…

paizaのランク上げ

とりあえずpaizaのランクをAランクまで(最初はSランクがあるのを知らなかったので上限だと思っていた)あげようと思い、昨日、一昨日とチャレンジ。ハッカソンはやったことあっても、スキルチェックは1度もやったことなかったのでとりあえずDランクからトラ…

3. Chanko、Ridgepoleを試してみる

前回の記事でRails周りの環境が出来たので、いよいよChankoとRidgepoleを試してみる。だが、その前に画面を作らなければ行けないの適当にでっち上げる。erbとslimは試していたがhamlは初めて書く事になった。そしてやっぱりhtmlを作成するのが一番時間がかか…

2. Rails周りの環境構築

今まではPadrinoしか触っていなかったが、今回はRails 4.2でChankoとRidgepoleを試してみる。初Railsでハマる部分も有るとは思うがとりあえず環境構築から。前回のitamaeレシピに必要なpackageを追加。sqliteは多分要らないけど。 %w/epel-release sqlite sq…

1. 環境構築

まずは開発環境の構築。CentOS7には行かずCentOS6.6で一旦Vagrantを使ってセットアップ。 Vagrant init shugepad # Vagrantfile修正 vi Vagrantfile # 起動およびssh接続 vagrant up vagrant ssh 必要最小限のツールをインストール。MacBookProで作業してい…

中途採用で求められること

ここで言っているのは、採用する会社側の話。やはり「即戦力」というキーワードは一番なのかなと。そうなるとその会社の事業や技術を把握していて、ある程度は経験や実績が有ることを示す必要があるのか。また、その企業文化に合う合わないも非常に重要なん…

Chrome Extensionを作ってみた

前から1回作ってみようと考えてはいたのだが、優先順位が中々上がらず今まで着手していなかった。そんな中manifestのバージョンが上がり、Content Security Policy (CSP)が今後主流になる(したい)などを聞きいい機会だと作って見ることにした。 まずはどう…

Scalaを使ってみた

最近はPerlを使っていることもあり、スクリプト言語の良さを理解出来るようになってきた。動的な型で得られるメリットとして生産性の向上というか記述が簡潔になることが上げられると思う。duck typingの柔軟性を知ってしまうと、静的な型の言語は面倒に感じ…

MessagePackを使ってみた

HTML(画面)とサーバサイドでやり取りする形式としては、リクエストなら単純ならパラメータでも良いが、レスポンスにはJSONやXMLを使うことが多い。まあ、HTMLを返すというパターンも場合によってはある。JSONにしろXMLにしろ、データが膨らみがちで、ちょっ…

AngularJSを使ってみた

AngularJSを使って記事を書いていたら、事情により下記途中の記事が吹っ飛んでしまった・・・。再度書きなおしを行うこととなり、間がかなり空いてしまった。 AngularJSはHTMLをテンプレートとして扱う動的Webアプリケーションを作るためのフレームワークで…

Hogan.jsを使ってみた

以前にも「google-jstemplateを使ってみる」でJavaScriptのテンプレートエンジンを使ってみたを書いたが、個人的にはいまいちだったのでTwitter製ということでHogan.jsを使ってみた。 売りとしてはTwitter製の2.5kのテンプレートエンジンで、事前にコンパイ…

Spineを使って・・・と思ったらCoffeeScriptを使っていた

Backbone.jsを試したので次はSpineを試そうと考えて、ダウンロードしに行こうとしたらどうやらnode.jsがあった方がいいということが分かりインストールした。そしてSpineはCoffeeScriptで記載されている事を知る。別にSpineを使うだけならCoffeeScriptはいら…

Backbone.jsを使ってみた

JavaScriptでゴリゴリ書く時にMVCライクに色々整理できたらいいなぁと思うことがある。そんな中、巷で有名になりつつある?Backbone.jsを使ってみた。いつもの「使ってみた」の流れでライトに使って感触を掴もうと考えていたら意外と時間がかかってしまった…

SPDYを使ってみた

結構前にGoogleが提唱したSPDY。HTTPの無駄な部分を省き、できる限り改善したというのを見て、発表された当初は「どうせChrome」だけでの実装になるのかなと思っていた。しかしFirefoxでも11から実装され、13ではデフォルトでonになるとか。早くなると言って…

autoResizeを使ってみた

前回のTwitterライクな文字数カウンターを使うのは、テキストエリアが基本だろう。その場合に大量にテキストを書いた場合や、改行が多く含まれるテキストを入力するとテキストエリアが小さいとすべて表示することができなくなってしまう。最初から大きくとっ…

charCount.jsを使ってみた

Twitterの後何文字入力出来るか的な表示をするためのcharCount.jsを使ってみた。jQueryのプラグインとして実装されていて、使い方は非常に簡単。jQueryオブジェクトのval()で文字列が取れればいいので、input、textarea、selectタグに適用出来る。selectに適…

BootstrapのTypeaheadを使って入力可能なプルダウンを実装してみた

ライブラリやフレームワークを使うのもいいが、使われているだけでは一流の技術者とは言えない。自分で足りないところを改善したり、もっと良いものを創り上げてこそ一流足りえる。と、大げさに書いたが、単純にTypeaheadを見た時に、「これは入力可能なプル…

[8][Amazon EC2]Amazon EC2でWindows

完全に興味本位でAmazon EC2でWindowsを使ってみようと思った。OSは何なのかと思ったらMicrosoft Windows 2008 R1 SP2だった。クライアントOSではないのか。まあ、気にせずさくさくインスタンスを起動。とりあえず32bit番のSQL Serverが入っていないBaseを選…

[7][Perl][WWW::Mechanize][Web::Scraper]WWW::MechanizeとWeb::Scraperを使ってみた

APIを提供してくれていないサイトをAPI化する為にサーバサイドでHTTPリクエスト出して、帰ってくるHTMLを解析してしかるべきフォーマットで返すことがある。簡単な作業ならシェルで済ますことが出来るが、少し複雑になるとJavaで書いていた。Javaだと起動が…

[6][HTML][CSS][JavaScript]Bootstrapを使ってみた

社内ツール、自分用ツールを作る時に、デフォルトだとあまりにひどいデザインになるので、最近のGoogleやらTwitter等のデザインを自前で真似することがあった。しかし、GoogleのCSSやらはバイト数を少なくする為か、難読化する為なのか非常に真似しづらい。…

[5][JavaScript]Sugarを使ってみる

JavaScriptで日付を操作する時に、素のJavaScriptのAPIだと色々面倒、不便だなぁと感じる事が多かった。前はDate.jsを使っていたが、最近は更新されていないっぽいので、今は何があるのかとGoogleの期間指定検索で1年以内を指定して見つかったSugarを触って…

[4][JavaScript]google-jstemplateを使ってみる

いつもAjaxで情報を取得して、画面に出す時に、jsonでデータを返して貰った方がJavaScript上では扱いやすい。しかし、デザインを当てるためにHTMLタグに組み込む場合にJavaScriptでゴリゴリHTMLエレメントを作っていくのはメンテナンス性が悪くなってしまう…

[3][HTML][canvas]canvasで画像解析

「canvasタグとそのAPIを使って、画像のピクセルデータが取得できる」というのを知って、「それならばユーザが投稿した画像を解析してどうこうすることもJavaScriptで可能か」と思い試してみた。 やり方としては「画像ファイルをアップロード>imgタグとして…

[2][HTML]imgタグのalt属性

imgタグのalt属性は入れた方が良いという話は昔から聞いていたが理由とかは意識していなかった。Web Accessibilityで紹介されていたYouTubeを見てみたところ、その辺の話が語られていた。英語なので動画の説明内容を簡単に以下に書いてみた。 alt属性は致命…