デブサミ2014での発表時背景画像。 http://event.shoeisha.jp/devsumi/20140213/ Read less
デブサミ2014での発表時背景画像。 http://event.shoeisha.jp/devsumi/20140213/ Read less
JavaScriptのプログラミングに関するTips集。 主に中級レベルの話題とノウハウを掲載する。 なお,JavaScript初級〜中級をクイズ形式で網羅的に学習するためには,下記のエントリを参照。 JavaScriptの動かないコード (JavaScriptエラー集) http://language-and-engineering.hatenablog.jp/entry/20080912/1221297779 ※JavaScript以外のプログラミングについては,こちらを参照。 ピュアJSを極める: JavaScriptで,クラスを継承する方法 (複数のサブクラスから共通クラスのプロトタイプを参照する) JavaScriptでの例外設計 (throw,try-catch-finally構文のイメージと利用パターン) JavaScriptで,動的に追加されたイベントリスナの実行順序を保
SVGをちょっと始めてみたいな、という人にもちょうどよさそうなテキストの周りに表示するボーダーをアニメーションで表示するデモを紹介します。 SVG Border Animation コードは簡単、コピペで利用できます。 HTML <div class="svg-wrapper"> <svg height="60" width="320" xmlns="http://www.w3.org/2000/svg"> <rect class="shape" height="60" width="320" /> <div class="text">coliss</div> </svg> </div> CSS html, body { background: rgb(20,20,20); text-align: center; height: 100%; overflow: hidden; } .svg
はじめに 先日お伝えしました通り、ELBのアクセスログが取得出来るようになったのですが、すぐさまfluent-plugin-elb-logというfluentプラグインがリリースされました。さすがfluentd界隈、対応が早いです。 ということで、今回はELBのアクセスログをfluentd経由でElasticsearchに取り込み、それをKibanaで表示したいと思います! セットアップ Elasticsearch Elasticsearchは最新のrpmパッケージを更新サイトから取得し、rpmコマンドでインストールします。 $ wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.0.0.noarch.rpm $ sudo rpm -ivh ./elasticsearch-1.
JaSST'Tokyo 2014で、"システムテスト自動化による大規模分散検索プラットフォームの開発行程改善"という題目で事例発表をした。下記は当日発表に用いたスライド。 【JaSST'14 Tokyo】システムテストの自動化による 大規模分散検索プラットフォームの 開発工程改善 from Kotaro Ogino ここでは、この発表に入りきらなかったコンセプトや、口頭でしか説明していないためスライドを読んでも分からない部分について補足する。 背景:開発スタイルの変化 -継続的テストについてリーンとDevOpsから考えてみる リーンは、顧客目線でソフトウェアの価値を定義し、それらをエンドツーエンドで細く速く流れるように開発するスタイルだ[1]。小さい要件を要求分析から品質保証まで流れるように実行し、少しずつリリースして行く。ウォーターフォールでは、重厚長大にそれぞれの工程を実施していたのに
Twitter / ymmt2005: むう、mime/multipart の ... むう、mime/multipart の CreateFormFile の Content-Type は application/octet-stream 固定になっている。泣ける。。#golang https://code.google.com/p/go/source/browse/src/pkg/mime/multipart/writer.go#128 https://twitter.com/ymmt2005/status/431143170659717120 ファイルから multipart.CreateFormFile を呼ぶと io.Writer が返ります。この writer は隠ぺいされているのでパートのヘッダを書き換える事は出来ません。 この場合は multipart.CreatePart
こんにちは、@oko_changです。 伊藤直也さんのブログにあるこちらの記事は読んでいたのですが、自分でもう少し整理したかったので今回はその内容を残しておきます。 構成 OSXに以下のツールをインストールしてありま、レシピの適用とテスト先のサーバがAWS上のEC2インスタンスといって感じです。 Packer Vagrant Chef SoloやJenkins また、今回の内容はこちらのリポジトリにまとめておきました。 環境構築 Packer 今回の環境はAWS Market Placeで配布されているCentOS公式のAMIを使う予定です。 このAMIはsudo実行時にttyが必要となるので、Packerを使ってこの辺の設定や最低限の設定をします。 Packerの使い方はとても簡単ですし、少し前のエントリで簡単な使い方をまとめましたのでこちらでは省略します。 Vagrant 次はVagr
はじめに 自分でも整理が出来ていないがとりあえずのメモ 検証の環境は Amazon Linux 参考 モニカジ京都に参加して、SensuとGraphiteの話をしました #monitoringcasual graphiteのインストール Graphite をとりあえずはじめる Graphite って? こちらを参考にさせて頂いて個人的に整理。 django*1 アプリのフロントエンド(graphite-web)と carbon というバックエンドで構成される graphite-web は Graphite のフロントエンドで django によるウェブアプリ carbon は Graphite のバックエンド whisper は DB ライブラリ Graphite の導入(パッケージのインストール) sudo yum remove httpd24* sudo yum --enablerep
本日iOS SDK 7.1 / Xcode 5.1にアップグレードを行った際にぶつかった所々の問題とTipsをまとめておきたいと思います。 arm64対応とCocoaPods Xcode 5.1からデフォルトのビルド設定$(ARCHS_STANDARD_32_BIT)がarm64、要するに64bit対応を含むようになり、arm64 armv7 armv7sの3つのアーキテクチャに対してビルドを行うようになりました。ソースコードからビルドを行っている場合は大抵問題ないと思うのですが、以下の様なケースでarm64対応を切りたい場合があります。 プロジェクト内にarm64アーキテクチャに対応していないstaticライブラリが含まれている場合。 64bitになると危険なバグが発生するおそれがあるコードが含まれている場合、例えばCGFloatやNSIntegerのサイズが変化したり、各種ポインタのサ
elasticsearchに、このへん入れるときっと幸せになれるはず・たぶん。 elasticsearch/elasticsearch-analysis-kuromoji/1.6.0 oyrusso/elasticsearch-HQ mobz/elasticsearch-head — toshi_miura (@toshi_miura) 2014, 3月 5 こんなツイートを見かけたので、普段入れてるプラグインを簡単に紹介してみようかと。 ローカルの環境に普段入れているプラグインの紹介です。 ちゃんとクラスタを管理しているというよりは、最新版の動作などを確認するための環境になります。なので、ちょっと視点が異なるかもしれませんが参考になればと。 elasticsearch-analysis-kuromoji URL : elasticsearch-analysis-kuromoji Kuro
武蔵野美術大学・デザイン情報学科の学生だった時、「デザインの解剖」というカリキュラムがあった。 デザインの解剖とは、グラフィックデザイナーの佐藤卓さんが独自に行ったプロジェクトで、コンビニやスーパーで売っているような日用品を題材に、ひとつの商品の構成要素を約20項目に分解、それぞれの項目で「どうしてこの部分はこうなっているのか」を、企業の担当者に直接取材して調査するというもの。この基本フォーマットを崩さぬまま、大学の授業としてアレンジしたのが、ムサビ版「デザインの解剖」だった。もちろん客員教授として佐藤卓さんを招いている。 今までに佐藤卓さんが「解剖」した商品は、ロッテ・キシリトールガム、富士フイルム・写ルンです、タカラ・リカちゃん、明治乳業・明治おいしい牛乳など、馴染みのある商品ばかりだ。このプロジェクトは、普段私達が「よく知っている」と思っているものが、実は「よく知らない」ことに気づく
Linux Network Namespace を使うと 1 つの Linux ホストの中に仮想的なネットワーク環境を複数作れる。今回はサーバ、ゲートウェイ、クライアントの 3 つのネームスペースを作って通信させてみる。この機能を使うには新しめの Linux カーネルとツール群が必要みたいなのでディストリビューションには Ubuntu 13.04 を使った。 まずは各ネームスペースを作る。 $ sudo ip netns add server $ sudo ip netns add gateway $ sudo ip netns add client $ ip netns list client gateway server ネームスペース gateway をルータにしたいので IP 転送を有効にする。 ip netns exec コマンドを使うことで各ネームスペース上でコマンドを実行でき
RPM のビルド環境を整えるとき、先日紹介した rpmdevtools を使うと、とても簡単に RPM のビルド環境を作ることができます。 具体的には、rpmdevtools に含まれている rpmdev-setuptree というコマンドを実行するだけです。 $ /usr/bin/rpmdev-setuptree そうすると、$HOME/rpmbuild ディレクトリが作成され、次のような $HOME/.rpmmacros ファイルが作成されます。 次のファイルは、CentOS 5.3 x86_64 のときに作成される .rpmmacros です。 %_topdir %(echo $HOME)/rpmbuild %_smp_mflags -j3 %__arch_install_post /usr/lib/rpm/check-rpaths /usr/lib/rpm/ch
なんかすごい無茶してますね。 HTML5で普通に読めるので、適当に読んでみた。都合が悪ければ言ってください > Cygamesさん 大雑把にコールしてるライブラリは "jquery","underscore","backbone","easeljs","tweenjs","soundjs","movieclip","preloadjs","loadmanager","pex","typist", "flexslider","finger","socketio","subroute","uaparser" require.js 全体的にrequire.jsに強く依存している。require.jsは r.js使ってまとめてminifyできるんだけど、今回はそれをしていなくて、uglifyか何かで難読化されているだけ。なんだけど、圧縮できない文字列ベースで依存関係を表現しているため、外部から非常
MD5が脆弱と言われていて、もう使っちゃダメと烙印を押されていても、さすがにハッシュ値から逆算して解析するアルゴリズムが存在するわけもなく、解析にはレインボーテーブルを使っています。レインボーテーブルというのは、平文とそのハッシュ値をDBのテーブルに格納しておいて、ハッシュ値で検索するというテクニックです。(この場合はレインボーテーブルじゃなくて、ただの平文とハッシュ値のテーブルかも。 参照レインボーテーブル - Wikipedia) たとえば、「password」という平文をMD5でハッシュ化すると「5f4dcc3b5aa765d61d8327deb882cf99」となります。こういった対応を表にたくさん入れておくことで、MD5のハッシュ値で検索すると元の平文が見つかるというわけです。 MD5のレインボーテーブルがWeb上から使えるサイトは結構あるようで、いくつかをピックアップ。どのサイ
なぜ SQL_CALC_FOUND_ROWS や LIMIT OFFSET のページングが良く無いのか ここ最近の大規模サービス関連したデータページング考です。 mysql 5.5.34 で試して記事書いてます。 bigdata テーブルは id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, PRIMARY KEY (id) なカラムがある前提です。もちろん InnoDB です。 2014年なんだからCOUNT(*)とかSQL_CALC_FOUND_ROWSとかLIMIT OFFSETのページングはやめようぜ - Togetterまとめが発端にみえるけど、わりと昔から話されてる事なんだけど、「nippondanji SQL_CALC_FOUND_ROWS」でググっても有用な情報ないし文書化されてないからしとく。 ページング処理で使われがちな機能です。 S
Apache HTTP Server情報 Apache HTTP Server とは 主な特徴 導入事例 類似プロダクト こんなお客さまにApache HTTP Serverの導入をオススメ Apache HTTP Serverのライセンス 製品ダウンロード オープンソース年間サポートサービス Apache HTTP Server とは Apache HTTP Server(アパッチ エイチティーティーピーサーバ)は、世界でもっとも広く使われているサーバソフトウェアのひとつで、大規模な商用サイトから、個人レベルの自宅サーバまで状況に応じた汎用性を発揮できるところが最大の魅力です。 普及率の高さは、多様なモジュール開発による柔軟な機能拡張や、技術者の確保、引き継ぎの容易さを実現しており、多言語からの移行もスムーズです。サービスの発展過程に合わせた、きめ細やかな運用が可能となりますので、あらか
Grails 2.3のRest機能のドキュメントを読んでいたら、拡張の一つとして「8.1.7 Hypermedia as the Engine of Application State」というのが書いてあって、調べると面白かったので、この資料(REST: From GET to HATEOAS)を読んだだけでの、私の理解する限りのメモを記しておきます。 一言でいうと、HATEOASとは、Restfulパターンを拡張するアーキテクチャパターンで、Restful原則に対する追加的な制約。どういうものかというと、HTMLアプリの画面遷移を抽象化した、状態遷移を表現するRestful API(=Restful WebアプリのWebインターフェース)を設計するための具体的な方法論になってる。 もちろんGrailsに特化したものではなく、Restと同じレベルのWebアプリケーション一般概念でありRes
Rails Console Shortcuts, Tips, and Tricks March 11, 2019 As a Rails developer, you’ll end up spending a lot of time in the Rails console. It’s like a back door to your application. Using the console lets you interact with parts of your app directly from a command-line interface without going through a browser. And once you’re comfortable using the console during development, it feels quite pedestr
Captcha security check iosjp.com is for sale Please prove you're not a robot View Price Processing
APIのバージョニングは限局分岐でやるのが良い - Hidden in Plain Sightにはブコメしたのですが、Rebuild: 35: You Don't Need API Version 2 (Kenn Ejima)でも本件に言及があったようなので、少し一般論を書いておきたいと思います。 ■Web APIの設計原則について そもそも、良いAPIとはどのような特性をもつものでしょうか? 一般的に、以下の2点が挙げられると思います。 拡張が容易である 拡張時に後方互換性を破壊しない ウェブの場合は、これに加え、 スケーラブルである HTTPに起因する問題に上手に対処できる ことが求められます。 前2者はウェブに限らない要件です。これを満たす設計手法としては、 リクエストおよびレスポンスのパラメータを拡張可能に 互換性を壊す拡張が必要な場合は、関数名を変える 古い関数は従来と同じ機能を
"The guest additions on this VM do not match the installed version of VirtualBox!"と表示される VirtualBoxとゲストOS内のVirtualBox Guest Additionsがアンマッチしているときに表示される。VirtualBox Guest Additionsのバージョンを認識して、自動的にインストールを行ってくれるvagrant-vbguestプラグインを使って解消する。 Provisioning時に"The expanded run list includes nonexistent roles"と表示される Vagrantfile内のrole_pathが誤っている場合に出力される。手元の環境はマルチVMで使用しているので、chef_solo実行部分にrole_path指定を挟む。 web.
こんちは。開発2部の吉岡です。 オーツー社内には様々なサーバーがあります。ファイルサーバーや、バックアップ用サーバー、Jenkins、Jenkinsのスレーブ、Redmineなど… サーバーが増えていくのは良いのですが、どのサーバーはどんな状況なのかさっぱり把握出来ていません。 そこでサーバー状況を一括で管理するために、Zabbixを導入してみました。 Zabbixについて Zabbixは死活監視+負荷監視なオールインワンな感じのサーバー管理ツールです。 Webブラウザ上で設定を行うことが出来、項目や画面が多く、かなり高機能な印象です。 インストールしてみた インストールはマニュアルを参考に行ったのですが、意外と簡単で躓くこともなかったです。 被監視サーバーにはzabbix-agentをインストールするのですが、とりあえず使うにはzabbix-serverのIPアドレスを設定するぐらいでし
これは、2014/03/06に大阪のコワーキングスペース「Osakan Space」で行われた「iBeacon 勉強会(入門編)」のレジュメです。 iBeaconについてのとっかかりとして、最低限知っておくべきこと、目を通しておくべき情報源、などについておはなししました。 事前準備として 勉強会後半の体験コーナーで使いますので、 Estimoteのアプリをインストールしておいてください https://itunes.apple.com/jp/app/id686915066 自分でビルドできる環境がある方は下記アプリをビルドしておいてください https://github.com/reinforce-lab/iBeaconMonitor https://github.com/calmscape/iBeaconInfo https://github.com/calmscape/iBeaconN
Android書いてますか? これなに 2013年10月13日あたりに流行ってそうな,Android非同期通信処理方法のススメを,Android非同期通信何それ?な人に向けて簡単に情報をまとめる Android普段全く書いてないけどここ数日少し調べた自分が知識の共有のために残す また将来的には流行りは変わるので今しか使えない 転用ばかりで申し訳ない感じなので日常的にAndroid開発してる方はお帰りください 最低限動かすための,すぐに動かすための情報しか書いてないので良くない情報もある Androidでの非同期通信処理 サーバとの通信を行う際に記述しなければならない処理.Androidではメインスレッド上で通信を行う事が出来ないため,サーバとの通信を行うには非同期スレッドを立てなければならない. 昔の処理 Android2.x時代はメインスレッドに直接処理を書けたらしい 非同期処理にしなけ
FuzzyAutocompletePlugin Xcodeのコード補完機能がファジー(曖昧)になり、かなり使いやすいです。 GitHub:https://github.com/chendo/FuzzyAutocompletePlugin 導入方法 初めてプラグイン導入手順はこちらを参照してください。 初めてのXcodeプラグイン導入手順 $ git clone https://github.com/chendo/FuzzyAutocompletePlugin.git $ cd FuzzyAutocompletePlugin $ xcodebuild -project FuzzyAutocomplete.xcodeproj build これだけです。 あとはXcodeを再起動すれば、導入完了です。 実際に使ってみると、こんな感じです。 self.view asと入力すると addSubvie
こんにちは、イギリス生まれ・東京在住、英語教師で作家のLukeです。今週、僕が書いたオノマトペ(擬態語・語音後)についての本 が出版されました。是非チェックしてみて下さい! 自分のキッチンを実験室に 化学の実験が好きな方に朗報です。このコースでは、自宅のキッチンを実験室代わりにして、様々な面白い実験を行ないます。皆さん、前髪を焦がさないように気を付けて下さいね。 4月14日からスタート ー University of East Anglia HTML5でゲーム開発 次は、自分でインターネット上のゲームを作りたい方にはもってこいのコースです。 こちらでは、Googleの社員がHTML5のゲーム開発のいろはを教えてくれます。あなたの作ったゲームがAngry Birdsのように大ヒットしたら、一攫千金も夢じゃないかもしれませんね。 今からスタート ー Google The Fab Four ー
Javaトラブルでは『情報がなくて、再現もなかなかしません』といった状況に陥ることがある。このような状況を回避するために、以下の3つの代表的なトラブルを例に、アプリケーションサーバを再起動する前に何を取得すれば良いのかをまとめてみる。 アプリケーションから応答がない アプリケーションが遅い ヒープメモリが足りない(OutOfMemoryErrorの発生) アプリケーションから応答がない 取得する情報 スレッドダンプ データ取得方法 スレッドダンプとは、コマンド実行時点でのJavaスレッド実行状態を出力したものである。応答がない場合、何らかの要因によりどこかで処理が止まっていることが想定される。スレッドダンプは『どこで止まっているのか?』を切り分けるのに大切な情報である。 取得方法はJDKのバージョンによって色々ある。 kill -3 <pid> (少なくとも1.4.2にはある〜JDK7でも
YahooAPIを使ってみる その2 さて、前回はコードと結果の紹介、それからif __name__ …を考えてみました。 今回も参考にさせてい頂いたサイトはこちら http://bty.sakura.ne.jp/wp/archives/787 ソースの引用をさせてい頂きますが、どうやらコメントを受けてつけておられないようで、いずれ気づいて頂けたらと思います。 では今回から本格的に中身を見ていきます。 pythonの勉強を続けてきて、JSONも何となく分かるようになってきました。 では続きをいきましょう。 その前に今回のファイルは二つの関数に別れています。 def yapi_topics(): def do_json(s): このうちのyapi_topics()を取り上げたいと思います。 urllibって何?? import sys import urllib import json いき
Vagrant 1.5がリリースされたと思ったら、Vagrant Cloudなんてのが登場してますね! で、Vagrant Cloudの中にVagrant Shareってのがあるんだけど、試してみたらとんでもなかったので、早速やり方をシェアするよ! Vagrant Cloudにユーザ登録 Vagrant Cloudのページにアクセスして、まずはユーザ登録しよう。 迷うことはないと思うけど、「JOIN VAGRANT CLOUD」ってボタンをクリックすれば登録ページに飛べる。 次に、ユーザ名、メールアドレス、パスワードを入力したらユーザ登録は完了だ。 Vagrant1.5のインストール Macの場合は普通にダウンロードページからdmgファイルを落として、ダブルクリックでインストール。 念のため、確認。 $ vagrant -v Vagrant 1.5.0 Vagrantfile作成&仮想マシ
最近必要に迫られて、ようやくRedisをインストールして触ってみました。(Redis童貞からの脱却) 色々と、基本部分ではあるけど、せっかく実際に触りながら勉強したので、このエントリにメモしておこうと思います。 尚、使ってみたRedisのバージョンは、stableの最新版である2.8.7です。(OSは、LinuxのCentOS 6.5) ちなみに、このエントリに書いていないような、Redisの基本的なアレコレについては、WEB+DB Press Vol.73のRedis特集(2.6向けではありますが)にほとんど書いてあるので読むべし。 WEB+DB PRESS Vol.73 作者: 設樂洋爾,白土慧,はまちや2,大和田純,松田明,後藤大輔,ひろせまさあき,小林篤,近藤宇智朗,まかまか般若波羅蜜,Mr. O,川添貴生,重国和宏,柳澤建太郎,奥野幹也,佐藤鉄平,後藤秀宣,mala,中島聡,堤智
自分の担当したWebアプリケーションを引き継ぐ際に、予備知識として説明したことのまとめ 注意事項 もともと明確に定義されていない概念や、簡単に説明するため正確さを犠牲にした部分が多い 間違っていることを前提に、疑いながら読むのがベター アプリケーションの層構造 アプリケーションを構成するオブジェクトには非常の多くの種類がある アプリケーションの(より良い)構成をオブジェクト単位で考えるのは難しいので、もっと粒度の大きい単位で考えたい アプリケーションをいくつかの層(オブジェクトの所属するグループ)に分割し、層単位でアプリケーションの構成を考える View層(ビュー層) レスポンスをクライアントにとって都合のいい形(i.e. 画面)に変換する層 View層のオブジェクトは Controller層のオブジェクトから利用される DomainModel層のオブジェクトを利用して、ユーザーに表示した
これなにしてんの? 1つ目の例は以下2つのコマンドの組み合わせです。 :bufdo 後続コマンドをすべてのバッファに対して実行します。 :tab split 現在のバッファを新しいタブで開きます。 もうひとつの例はballコマンドの機能です。 :sba[ll] もしくは :ba[ll] もしくは :sun[hide] バッファリストにあって、メモリにロードされているもの全てにウィンドウを割り当てます。 tabをつけると新しいウィンドウがそれぞれタブで開きます。 ballとunhideは、ballの場合Buf/Win Enter/Leaveオートコマンドを実際に該当タブを表示した時に実行する点が違うようです。 単純に:baすると、以下のようにすべてのバッファが表示されるように:splitされます。 指定したバッファを新しいタブで開きたい場合
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く