ファイルの中身を文字列で検索することができるユーティリティ「grep」は、コンピューターを扱う上で、なくてはならないツールといっても過言ではないかもしれません。grepは長い歴史を持つツールで、それ自体少しづつ改良さてきていますが、最近はもっと積極的に高速性を追求したgrep的なツールも開発されてきています。 今回紹介する「grab」もその中の一つ。複数コアを使った検索の並列化や(ただしほとんどの場合遅くなるらしい)、mmapとMAP_POPULATEの使用、PCREのJIT機能などを使った高速化の技法を組合せ、SSD上で100%の劇的なパフォーマンスの向上を成し遂げたということです。 しかしさらに上手が… Hacker Newsで「grab」の話題が取り上げられた後、高速化grepの先駆者、「The Silver Searcher」(コマンド名ag)の作者が自らベンチマークを行い、gra
この記事はPHPアドベントカレンダー2014の22日目の記事です 。 2002年3月に公開されたIPAの人気コンテンツ「セキュアプログラミング講座」が2007年6月に大幅に更新されました。そして、その一節がPHPerたちを激しく刺激することになります。 (1) プログラミング言語の選択 1) 例えば、PHPを避ける 短時日で素早くサイトを立ち上げることのみに着目するのであれば、PHPは悪い処理系ではない。しかし、これまで多くの脆弱性を生んできた経緯があり、改善が進んでいるとはいえまだ十分堅固とは言えない。 セキュアプログラミング講座(アーカイブ)より引用 「PHPを避ける」とまで言われてしまったわけで、当然ながらネット界隈では炎上を起こし、現在はもう少しマイルドな表現に変わっています(参照)。 本稿では、当時のPHPの状況を振り返る手段として、この後PHPのセキュリティ機能がどのように変化
【追記】 @naoya_ito @oranie v0.2.6 だしました 2014-12-22 19:53:09 via YoruFukurou to @naoya_ito https://twitter.com/tagomoris/status/546981761385639937 との事で直りました。このエントリの寿命1時間くらいでした! - もうISSUE上がっているけど、同様のエラーが出た。 https://github.com/kaizenplatform/fluent-plugin-bigquery/pull/31 要するにgoogle-api-clientが古い。ただ、 /opt/td-agent/usr/sbin/td-agent-gem update google-api-clientでやってもfluent-plugin-bigqueryが使うのが https://git
本出します!!! cocos2d-xではじめるスマートフォンゲーム開発 [cocos2d-x Ver.3対応] for iOS/Android 作者:三木 康暉技術評論社Amazon 先月告知しましたが、この度「cocos2d-xではじめるスマートフォンゲーム開発 [cocos2d-x Ver.3対応] for iOS/Android 」という本を出させて頂くことになりました!!! 『cocos2d-xではじめるスマートフォンゲーム開発』という本を出版します - 5.1さらうどん Amazonからの発送はまだなのですが、すでに先行販売しているお店に並んでいたり、僕の手元にも見本が届きました。 12/18 先行販売『cocos2d-xではじめる スマートフォンゲーム開発 [cocos2d-x Ver.3対応]for iOS/Android』 技術評論社 (978-4-7741-7055-8)
久しぶりの更新 GitHubの <URL:http://github.com/matz/streem> を公開したら驚くべき反響の大きさなので、本人もびっくりしている。 ので、ここでちょっとまとめておく。 もともとは日経Linuxの自作言語入門の連載のネタ 時系列的には2015年1月号で言語仕様を決めた(原稿提出は11月中旬) 2015年2月号で実装について解説(原稿提出は12月初旬) 2月号原稿には「github.com/matz/streemを参照のこと」と書いた 提出したその日に1月号発売 原稿提出後、原稿で解説した部分を実装し(300行程度)、githubにアップロード だれかが見つける hackernews, redditなどでバズる github issues, pull requestなどいっぱいくる 私が実装する前に Go で実装しちゃう人が出る (mattn/streee
この投稿は AWS Advent Calendar 2014 の 22日目の記事です。 RDS で MySQL を運用中に、想定外の CPU スパイクに悩まされたことがありましたので纏めておきます。 まずは、CloudWatch のグラフを見てみましょう。 所々で CPU スパイクが発生しているのがわかるかと思います。一見すると法則性がないようにも見えます。一般的には CPU リソースを消費する要因としては、アクセス過多やバッチ処理などで負荷をかけたケースが殆どです。しかし、今回のケースはユーザー側では何も負荷をかけておらず、RDS へのアクセスがゼロのサーバーでも同様の CPU スパイクが発生することがわかりました。 CPU スパイクの原因は? では、CPU スパイクの原因は何だったのでしょう?その後の調査で「RDS の定期メンテナンスジョブ」が原因であることがわかりました。 以下、メン
こんにちは。今日は、 XAML Advent Calendar 2014 - Qiita の22日目の記事です。 昨晩はかなりアレな記事を書きましたが、今日はそんなことないので落ち着いて下さい。 XAML Advent Calendar の昨日は oika さんのバリデーションルールの話でしたね。 [WPF]自作ValidationRuleのプロパティにバインディング | OITA: Oika's Information Technological Activities 正直このあたりよくわかってないんですよね…ううむ、全然XAMLを活用できていない… Dispatcherとマルチスレッドの話をしようかと思いましたが、予定を変更してお送りします(時間がない) Windows Store Apps 向けのMVVMライブラリ "Skylight" ということで、Windows Store向けの
メソッド名などをネーミングする際に、知っておくと便利な、接頭辞と接尾辞をリストアップしてみました。どのように元の単語の意味が変わるかのルールを知っておくと、よく使う単語をベースにボキャブラリーを増やすことができるので、覚えておいて損はないと思います。 使う場合は、当たりを付けて実際の使用がないか、Googleなどで調べてみてください。 1. pre-, post- / 事前〜、事後〜 per-は、元の意味に “事前に、前に”、post-は “事後に”という意味が付け加わえます。汎用性が高いのでとても便利です。afterやbeforeの代替になるかもしれません。 // 事前テストする function testBefore(); ↓ function pretest(); // 事後処理する function executeAfter(); ↓ function postexecute();
若手が(ry・・・シリーズ。次から他の人にやってほしいのでw 共有用のメモを残してしておきます。 Linuxのサーバで、ソフトウェアRAID(ストライピング)を組んでいたときに、片方のデバイスが不調で外れてしまったんだけど、デバイス内のデータは無事で、復旧(RAID0再構成)させたい場合のオペレーション。 ちなみに、たまたまなんだけど、ちょうど8年くらい前に似たようなエントリを書いていた。参考までに。 ソフトウェアRAIDのデグレード(縮退)モードからの復旧 - 元RX-7乗りの適当な日々 RAIDデバイスの確認と試行錯誤 外れてしまったデバイスは、問題なさそうってのは確認済み(本エントリでは割愛)で、あとは正常なRAIDデバイスに戻したいフェーズ、ってのが前提。 (自分が作ったサーバではないので、アレやコレやと確認しながら手探りになってしまっていますがw) # cat /proc/mds
2014年12月22日追記 4年も前の記事が今更伸びるとは…またちょっと捕捉しとく。 多かったのは、恒星を覆う技術があったとして、全天に信号を送る動機がない、侵略されるかもしれないじゃないか、という話。これは、タイトルのつけ方が悪かった。「恒星を覆う程度の技術があって、他の知的生命体と積極的に交信する意図を持つ文明は地球の近くにいなさそう」という意味だった。例えば侵略を恐れるなどして、交信の意図を持たない知的生命体がいて、逆に他の知的生命体に見つからないように技術を発展させる可能性も、当然あると思う。が、そういう、自分達を秘匿する技術を発展させた文明は、もとから地球の技術じゃ探知しようがないと思う。仮に、彼らの存在を示唆する現象を地球が探査したとしても、交信意図のない知的生命体とは交信できないので、探知した現象が自然現象なのか人工的な現象なのかなのか確認しようががない。だから、最初から交信
シスコ技術者認定試験 公式ガイドブック Cisco CCENT/CCNA ICND1 100-101J 新CCENT/CCNA対応の公式ガイドブック 米国ベストセラーシリーズの翻訳書! この記事は、書籍『シスコ技術者認定試験 公式ガイドブック Cisco CCENT/CCNA ICND1 100-101J』の内容を、Think IT向けに特別公開しているものです。 IPアドレッシングとIPルーティングにおける役割 IPは、ネットワーク層のアドレスを定義します。このアドレスにより、TCP/IPネットワークに接続しているホストまたはルータのインターフェイスが識別されます。このアドレスは、基本的には郵便の宛名と同じです。郵便サービスに手紙を配達してもらうためには住所が必要であるのと同じように、IPパケットを受信する必要があるインターフェイスにはIPアドレスが必要です。 TCP/IPは、同じ物理ネ
はじめに メール送信によりデータを投稿してみたいことあると思います。 mandrillを利用すれば簡単に実現できたので今回はサンプルプロジェクトを作りつつ覚書がてら綴っておこうと思います。 サンプルプロジェクトの概要 ユーザー登録が必要なコメントが出来る掲示板アプリ 特定のメールに送信すると新しい掲示板を作成できる 自分の作成した掲示板にコメント通知メールが届く コメント通知メールに返信すると該当の掲示板にコメントできる サンプルプロジェクトのER図 boardにもったtokenはコメント通知返信時にどのboardか特定するのに利用する感じ。 まずはメール関連以外を作成 deviseとbootstrapを利用してサクっと作成。 この時点のコードはこちら。 メールを受信して掲示板を作成できるようにする mandrillのgemを追加
今回のサンプルは、画面上に置かれた太鼓とドラムをセンサーで映し出されたプレイヤーがたたくと、それぞれの音が奏でられるというものです。 まずはプロジェクトの作成から始めます。 プロジェクトを作成する VS2013メニューの[ファイル]ー[新しいプロジェクト]と選択し、表示される画面から、「テンプレート」に「Visual Basic」を指定し、「WPF アプリケーション」を選択します。名前に「TaikoSound」と指定し、「OK」ボタンをクリックします。 画像やサウンドの追加 ソリューションエクスプローラー内の「TaikoSound」を選択し、マウスの右クリックで表示されるメニューから、[追加]ー[新しいフォルダー]と選択し、「Images」というフォルダーを作成します。作成した「Images」フォルダーを選択し、マウスの右クリックで表示されるメニューから、[追加]−[既存の項目]と選択して
この記事は「Java EE Advent Calendar 2014」の22日目のエントリーです。 昨日は@suke_masaさんの「続・JPQLでハマった話」でした。明日は@kikutaro_さんです。 今日はJSFのバリデーションについて整理したいと思います。 JSF1.*時代のバリデーション JSF1.*の時代にはFaceletsのValidateタグを使用してバリデーションを行っていました。例えば5文字以上10文字以下の文字数のチェックを行うプログラムは以下です。 ・facelets <h:form> <div> <h:inputText id="msg" value="#{hogeBean.msg}"> <f:validateLength minimum="5" maximum="10" /> </h:inputText> <h:message for="msg" /> </di
2016.12 追記: 本記事はGAEのGo SDKに特化した内容です。 GAE全般については↓に記事を書きました。 GAEでハマったこと(´・ω・`) 2014年は半年くらいGoogle App Engine(GAE)/Goのアプリを書く事に費やすことが出来て、とても幸せな一年でした(^^) GAE/Goはご存知の通りずっとbeta(or experimental) (2015/7に正式リリースされました!\(^o^)/)ですが、個人的にはGAEランタイムの中で最強だと思っています。 何よりspin-upが早い!リクエストの処理もgoroutineでシンプルに高速化出来る!GAEアプリ書くならGoを選ばない理由はない!と思っています。 とは言え書籍や情報の少ないGAE/Goの開発、少なからずハマった箇所もありましたのでそれを技術不足露呈も覚悟の上で共有したいと思います。 あ、GAEに興味
こんにちは、落合です。 この記事は、TECHSCORE Advent Calendar の22日目の記事です。 2014年も終わろうとしていますね。 PostgreSQL8.x系は、今年EOLを迎えました。いままでありがとうございました。 (ですので9.x系で実施した記事内容となっています。) そして、いまどきはMysqlというよりMariaDBにしたほうが刺さるんですかね? そもそも、AWSでポチッとバックアップ&リカバリなんてしちゃうので、あんまり興味がなかったりでしょうか?(笑) さて、、、記事タイトルのことをダラダラと・・・ オンラインバックアップのおさらい まず、PostgreSQLとMysqlでみなさんが最初に実施したであろうバックアップ、 全データベースのオンラインバックアップをおさらいをしてみようとおもいます。 ○PostgreSQL編 簡単ですね。
qt quickで音げー この記事はQt Advent Calendar 2014 - Qiitaの20日目のエントリーです。 高校生がソフトからハードまで音ゲー自作した - YouTube 10/4(土)及び10/5(日)東京工業大学附属科学技術高等学校にて開催された、文化祭にてマイコン制御部で、qt quickを使用して作った某オトゲーを本日は紹介します。 ハードウェアは@BLUE4z ソフトウェアは@latte_zero が担当しました。ゲームの概要は動画をご覧ください。 こちらでは主にqt-quickの細かい技術面、参考url、書籍などをカバーしていきます。 qt quick/qmlを選択した理由 部室にはクロスプラットフォーム信者が多く、単に私もqtが好きだったからです。もともとc++で作成したいたのですが一ヶ月前になり、どう考えても間に合わないのでqmlの勉強も含めて作成しまし
このエントリはAWS Lambda Advent Calendar 2014 - Qiitaの(本当は9日目の)記事です。 (ちょっとAWS Lambdaのアカウント取得に手間取ってしまって遅刻してしまいました。。すいません。。) AWS Lambda とは AWS LambdaはAmazonが作った新サービスであり、S3の変更やDynamoDBの変更をフックしてNode.jsの関数を実行するという仕組みになっています。これを使うと、例えばデータが変更された後にPush Notificationを出したり、S3にアップロードされた画像のサムネイル画像を作成したりといったことが可能になります。 今回はこのAWS Lambdaを使ってS3でPUTされた画像から文字認識をしてみようという試みです。文字認識した結果をDynamoDBとかに置いて検索に利用すれば、画像内に書かれた文字で検索できるよう
日経ソフトウェア2015年2月号からScalaの連載をやらせていただくことになりました。 日経ソフトウエア 2015年 02月号 作者: 日経ソフトウエア出版社/メーカー: 日経BP社発売日: 2014/12/24メディア: 雑誌この商品を含むブログを見る これまで様々な方が執筆されたScalaの記事や書籍、ブログ等を拝読してきましたし、自分でもScalaの普及のためにと記事や書籍を書いたりしてきました。しかし、Scalaには何かが足りないような気がしてなりませんでした。RubyやPHPにあってScalaにないもの…。そう、それは実際に動く身近なアプリケーションを作って楽しむという体験なのではないかと。 そんなわけで関数型プログラミングが云々という話はいったん置いておいて、実際に実用的なアプリケーションを作っていく中でScalaの機能を学んでいこうというのがこの連載のコンセプトとなっていま
こんにちは!エンジニアの内藤 (@kakipo) です。 ディレクター 1 名、デザイナー 1 名、エンジニア 1 名の小さなチームでYknot(ワイノット)というサービスの開発、運用を行っています。 この記事では Yknot(ワイノット)で利用している技術やサービスについてお話いたします。 前半は技術的な内容を中心に、後半は運用が楽しくなる便利なサービスをご紹介いたします。 基本に忠実に、そして良い外部サービスは積極的に利用することを心がけています。 小規模チーム開発におけるシステム構成の参考になれば幸いです。 はじめに: Yknot(ワイノット)とは 企業向けサービスのクチコミサイトです。 食べログの BtoB サービス版です。 「今年はやたらと Slack っていうチャットの記事を目にしたけど、実際どうなんだろ。」 「サーバ監視のサービスって色々あるみたいだけど、なにがいいんだろう。
id:kazeburo さんが Gazelle という高速な Perl 用の Web アプリケーションサーバーを公開されました。 Gazelle - Plack Handler for performance freaks #yokohamapm from Masahiro Nagano Gazelle の特徴のうち幾つかは、 id:mopemope 作の Meinheld と同じです。 IO周りは全てCで書かれている accept4 や writev などの Linux 独自のシステムコールを利用している 一方で異なる点もあります。 Meinheld は HTTP/1.1 に対応していて、 keep-alive が利用できる。 Meinheld は greenlet というコルーチンを利用して、 long polling や SSE に対応している。 Meinheld が http-pa
Alfred の Google Suggest 言わずと知れた Mac の ランチャーアプリ Alfred 。 (公式では "Alfred is a keyboard-driven productivity application," と書かれている) このアプリの Powerpack を購入することで利用できる Workflows の中には Google Suggest の Example が存在します。 しかしこの Google Suggest はデフォルト設定でアメリカ用になっているため、検索ワードを入力しても日本の Google ホームページでの入力時と同じ入力候補が返ってきません。 というわけで、この Google Suggest の設定を日本用にカスタマイズします。 実行画面 Before After 設定 以下のコードを Script: に記述します。 require_onc
2014年アドベントカレンダー『Tableau Software Tips&Viz(全部俺) Advent Calendar 2014』22日目です。Tableau Softwareに関する機能紹介、便利ネタや可視化ネタ等を毎日1本ずつ計25本、『1人(全部俺)』で担当してお届けしています。 Tableau Software Tips&Viz(全部俺) Advent Calendar 2014 - Qiita 昨日21日目の投稿ネタは『Tableau成果物の共有方法について』でした。 Tableau成果物の共有方法について|Tableau Software Tips&Viz Advent Calendar 2014 #21 #tableau | Developers.IO 本日22日目は『Treasure DataのデータをTableau Serverに直接Publishする』です。Tre
MARANTZが遂にハイレゾに対応した初のUSB DAC HD-DAC1をリリース、開発の背景に迫る。 この回からsoundropeに寄稿させていただくことになりましたOTAIRECORDようすけ管理人です。 今後音楽機材屋という仕事柄も含め色々なニュースをお届けしたいと思う。 過熱しているPCオーディオ業界 昨今PCオーディオブームで、パソコンが音楽のプラットフォームの中心になっているのはご存じの事だろうと思う。 パッケージメディアとしての音楽は、アナログレコード、カセットテープ、CD、など様々な変遷をたどってきているが、昨今はそのプラットフォームはパソコンやモバイルなどデジタルデバイスに移行して久しい。 新しいメディアが登場するとそれは驚きをもって迎えられ、それが普及、成熟してくると、そのメディアの楽しみ方も深化したり差別化が行われたりする。 デジタル音楽の楽しみ方として定着しつつある
(video of these slides available here http://fsharpforfunandprofit.com/fppatterns/) In object-oriented development, we are all familiar with design patterns such as the Strategy pattern and Decorator pattern, and design principles such as SOLID. The functional programming community has design patterns and principles as well. This talk will provide an overview of some of these, and present some dem
『Bluetooth Accessory Design Guideline for Apple Products』という、Appleによる公式ドキュメントがあります。Mac や iOS デバイス、iPod 等の Apple 製品の Bluetooth アクセサリの設計についてのガイドラインです。 本記事では、このドキュメントから iOS エンジニアも知っておいた方が良さそうな部分 を抜粋していきたいと思います。 ※本記事は、Bluetooth Low Energy Advent Calendar 2014 - Qiita 9日目の記事です。 アドバタイズ間隔 「アドバタイズ開始から少なくとも30秒間は、推奨アドバタイズ間隔である 20 ms を使用すべき」と明記されています。 To be discovered by the Apple product, the accessory shou
Bootstrapの登場以降、管理画面テンプレートと言った類のものが数多く登場しています。Bootstrapをサービスにそのまま組み込むのには躊躇してしまっても、運営者側の管理画面であれば十分すぎる品質と言えます。 今回紹介するFlakesもその一つですが、管理画面のUIに特化したテンプレートであるというのが特徴的です。 Flakesの使い方 Flakesは管理画面特化型とあって、管理画面上で必要そうな機能が揃っています。 Flakesはダッシュボード的な機能からデータメンテナンスまで幅広い管理画面テンプレートとなっています。カラーリングも最近のフラット系にあるほどカラフルではなく落ち着いた雰囲気なのが良いですね。 FlakesはHTML5/JavaScript製のオープンソース・ソフトウェア(MIT License)です。 Flakes • An Admin UI & Template
こんにちは、ツカノ(@snuffkin)です。 この記事はElasticsearch Advent Calendar 2014の21日目です。 20日目はjtodoさんの「Spark on elasticsearch-hadoop トライアル」でした。 さて、以前、「Elasticsearchソースコードリーディング~内部構造把握の第一歩~」と題してElasticsearchのスレッド構成といった内部構造の話を書きましたが、今回もまた、似たような話です。 今回はElasticsearchの設定ファイルについてです。 1.ノード名について Elasticsearchのデフォルトのログフォーマットでは、ノード名が出力されます。クラスタで運用することも考えると、ノード名って重要ですよね。ノード名の設定方法については、公式ページに記載があります。 ここで面白いのが、設定を省略した場合の動きです。M
Railsで定時処理をやろうと思って色々トライしました。Sidekiq+Sidetiqを使ってHerokuの無料分で動作させることができたのでその手順を紹介します。 Railsでの非同期処理 古いものから新しいものまでいろいろ選択肢があります。 collectiveidea/delayed_job resque/resque mperham/sidekiq そしてRails4.2で実装される(された)ActiveJobというアダプタのような仕組みがあります。 以前開発したのアプリケーションではResqueを使っていたことと、3つのgemのなかではSidekiqが一番新しいということでSidekiqを使いました。 Sidekiqでの定時処理 本来Sidekiqは非同期処理のためのgemなので、Sidekiq単体では定期的に処理を実行するような仕組みはありません。X時間後に実行とかはありますが
研修向け。0からAWS上に基本的なWEBアプリケーションの環境構築していく。 前提 ・一般的なLAMPのWEBアプリケーション向け(※1)に環境を構築しますが、それらミドルウェアのインストール・設定等はあまり対象にしてません。 ・すでにAWSのアカウントを取得しているものとします。サインアップはこちら ちなみに、新規登録であれば無料枠があるため、この研修向け内容をやったとしても$3ぐらいに収まります。 ※1 アプリケーションの要件・内容には触れませが、一般的なLAMPアプリケーションでも同様になるかと思います。 構築する環境 今回のシリーズで目指す環境は、下記の通り。 簡単に各AWSサービス紹介 Elastic Compute Cloud (EC2) 一般的に言う仮想サーバー。スケーラブルに展開可能。 今回はここにアプリケーションを配置する。 詳細はこちら Relational Datab
「開発組織のマネジメント」のスライド資料が素晴らしいのでメモ。 資料の内容を理解したレベルで書く。 【1】問題意識としては、最近15年でWeb開発は従来よりすごく難しくなり、重要度が増している。 付け焼刃で簡単にプロダクトを作れるレベルではなくなった。 その理由はいくつかある。 一つは、開発基盤やシステムがレガシーであるため、ビジネスの変化に追いつけないこと。 2つ目は、企画チーム・開発チーム・運用チームのそれぞれで異なるやり方が根付いており、押し問答の状態になっていること。 サイロ型組織故に、開発組織の行動が局所最適化されてしまい、全体最適になっていない点に問題がある。 本来解決されるべき姿は、レガシー化を防ぐ作業に継続的に取り組むことと、サイロ型組織から自己組織化されたチーム構造へ組織を変化させること。 チームが都合で解散されるようでは、習熟度はいつまで経っても向上しない。 【2】一番
AWS LambdaからIAM RoleのCredential情報を取得し、RedshiftのCOPY処理に利用する 小ネタです。 先日投稿した以下AWS LambdaのエントリにてRedshiftへのCOPY処理を行う際のコード記述を行いましたが、この時はCredential情報(AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY,AWS_SESSION_TOKEN)を別途用意したIAM Roleの情報を直打ちして処理していました。 S3にアップロードしたCSVファイルをLambda経由でAmazon RedshiftにCOPYする – AWS Lambda Advent Calendar 2014:2日目 | Developers.IO 何か方法があるはずよね、でもどうやるんだろう?とこの時は保留事項としていましたが、先日ブログのコメント欄に、片山 暁雄 a
現在のインターネットに欠かすことができない技術としてHTMLが挙げられと思います。Webブラウザは大抵のHTMLを解釈してくれるので、普段はあまり厳密な書き方を意識していない方もいるかもしれませんが、開発者やデザイナならば仕様にのっとった正確なHTMLを書きたいところですよね。 そんなときに役立つ情報が「HTML Best Practices」です。スケーラブルでメンテナンス可能なHTMLドキュメントの書き方を解説したドキュメントで、どういう書き方が望ましいのかざっと確認することができます。 悪い例と良い例がタグごとに比較可能で分かりやすいです。なぜ悪いのか、なぜ良いのかという理由が書かれていないのが残念ですが、確認用には使えそうです。
これは、マイナー言語 Advent Calendar 2014の記事であり、拙作記事「Flappy Birdを作る」シリーズ3作目でもあります。かつてのMacintoshに無償同梱されていたHyperCardを使ってFlappy Bird風ゲームを作りながら、スクリプト言語HyperTalkを紹介します。 Sprite KitでFlappy Birdを作る Sprite KitでFlappy Birdを作る(Swift版) HyperCard(HyperTalk)とは HyperCardは"ハイパーテキストを実現した最初の商用ソフトウェア"です(HyperCard(Wikipedia))。HyperTalkはその上で動いたスクリプト言語です。 コンピューターの歴史上におけるHyperCardの存在意義、立ち位置についてはこの記事をどうぞ。実際の使用感について、あえて雑なたとえで説明すると、
JavaScriptは移り変わりの早い言語です。 もう1年以上経っていますし、記事のメンテもちゃんとできていないので、消し線を入れることにしました。 参考程度のために記事は一応残しますが、より新しい情報を読まれることをお勧めいたします。 はじめに --- 最近では JavaScript の実行環境はブラウザに限りません。(node.js, Web Workers) また、旧来のような <script> 経由でのロードもとうに古くなっています。今は CommonJS スタイルで、require を用いたモジュールのロードを行なうことがより良いとされています。 ですから、次のようなことは改める必要があります。 - var YourModule = {}; などとして、外部から YourModule.hoge(); などと呼び出す書き方 - this === window だと思うこと 今回は、
主な手順 自作のテーマに更新通知機能&アップデート機能をつける主な手順は以下の3手順です。 ライブラリのダウンロードと設置 更新情報となるJSONファイルを作成 functions.phpにコードを記述 「更新通知機能を実装」というだけで、かなり難しいものを想像していたのですが、ライブラリがとても扱いやすいものになっています。 ですので、Wordpressコードの編集に慣れている方ならば、10分ほどでできるほど簡単な方法です。 ライブラリのダウンロードと設置 まずは、更新通知機能のライブラリをダウンロードします。 ダウンロードは、Automatic Updates For Private And Commercial Themesの「Client library」リンクから行ってください。 ダウンロードすると「theme-updates.zip」というファイルになります。 解凍すると中には
この記事は、「C# Advent Calendar 2014」の21日目の記事です。 WPFやWindows Phoneやストアアプリでは、Windows Formsのような「コードビハインド」による実装の他に、「データバインディング」を積極的に使う実装を行う事が出来ます。というよりも、データバインディングという手法を使わないと、複雑なUIを表現するのが困難です。この記事では、その辺りと非同期がどう関係するのかを書いてみたいと思います。 (なお、例はWPFですが、ストアアプリでもほぼ同様です) データバインディングって何? そもそもデータバインディングとは、どういう手法でしょうか? Windows Formsの時代、データバインディングと言うと「DataSet」クラスの内容を、「DataGridView」コントロールを使って表示させるという用途が一般的でした。 詳しい解説は「Windows
この記事はQiitaのGit Advent Calendar 2014 24日目の記事です。 GitHubEnterprise(以下GHE)を導入するにあたり、技術的なことで気をつけたいところ、技術的でないところで気をつけたいところをつらつらまとめます。 GitHubといえばこの本ですが、Enterpriseのことは1、2ページくらいしか書かれていなくてあまり参考になりませんでしたので、つらつらまとめることにした次第です。 そもそもEnterpriseを使う必要があるのか ソースコード管理をしたいのであれば、GitHubEnterpriseを使う以外にもいろいろと選択肢があると思います。具体的な例を挙げると、 GitLab、GitBucketなどのオープンソース系ソースコード管理システム GitHubやCodeBreakのプライベートリポジトリ GHEは20アカウントで年間5000ドル、以
はじめに このエントリーは Node.js Advent Calendar 2014 - Qiita と h2o Advent Calendar 2014 - Qiita の 21 日目の記事です。 現時点の node.js の安定版は v0.10.34、開発版は v0.11.14 で、v8 のバージョンはそれぞれ 3.14.5、3.26.33 です。 nan (Native Abstractions for Node.js) のバージョンは 1.4.1 です。 Motivation 以前も Node.js の http_parser の実装を追ってみたことがあって興味があったし、HTTP/2 を追うことでやはり parser に触れてきました。自分は普段は Rails のアプリケーションエンジニアをやっているので Ruby にも興味があります。そして以前は Perl も書いていました。な
Vlad Krasnov recently joined CloudFlare to work on low level optimization of CloudFlare's servers. This is the first of a number of blog posts that will include code he's optimized and open sourced. In a recent post, Kazuho's Weblog describes an improvement to PicoHTTPParser. This improvement utilizes the SSE4.2 instruction PCMPESTRI in order to find the delimiters in a HTTP request/response and p
こんにちは。この記事は、 Windows Phone Advent Calendar 2014 - Adventar の 21 日目の記事です。 注意: 記事タイトルから分かる通り、 Windows Phoneを褒める記事では決してございません。 僕はいかにしてWindows Phoneを見捨てたか ,, _ / ` 、 / (_ノL_) ヽ / ´・ ・` l Windows Phoneは死んだんだ (l し l) いくら呼んでも帰っては来ないんだ . l __ l もうあの時間は終わって、君も人生と向き合う時なんだ > 、 _ ィ /  ̄ ヽ / | iヽ |\| |/| | ||/\/\/\/| | この記事は、僕から見て Windows Phone とは何だっ
はじめに このエントリはFrontrend Advent Calendar 2014の21日目のエントリです。 あまりいいネタが思いつかなかったので、こつこつ作ってたものを発表するという感じで( ˘ω˘) 情報収集と永続化を一元化したかった そもそものきっかけはFrontrend in Kanazawaに参加した時の@Layzieさんの発表なのですが、毎日大量の情報が流れてくる中で、それらをどのように収集して、蓄積していくかは自分の課題でした。 そんな中で聞いたこのセッションはとても刺さるものがあり、「あ、これ早いうちになんとかしないとマズイな」ってなった次第です。とてもおもしろいセッションなので、スライドを共有しておきますね(許可いただきました) スライドの中でははてブ、Pinboard、Feedlyなんかを使われているようで。複数サービスの合わせ技という感じですね。 同じことしてても先
iPhoneで使えるiMovieという動画編集アプリは凄く便利なんですが…シンプルなアイコンで操作するので使い方が微妙に分かりにくかったりします。 今回は動画の中にもう一つ動画を配置する「ピクチャ・イン・ピクチャ」という機能を紹介していきます。動画の上に写真を配置する事も出来るし便利な機能なんですよ。 ※画像や文章を2018年の最新バージョン版に差し替えました。 iPhoneのiMovieで動画の中に動画を入れる方法 ポイント:iPhoneを横位置にして編集するのがオススメ 今回は何も動画を読み込んでいない状態からスタートします。+をタップしてプロジェクトを作成します。 新規プロジェクトから「ムービー」を選択してベースになる動画を選びます。 動画を選択してムービーを作成をタップすると…こんな画面になります。 この画面で左に表示されている「+」をタップすると動画を追加する事が出来ます。 追加
まず、年賀状プロジェクトの関係で時間が想像以上に割けず現時点で記事がheader level 2以下を書けなかったことを謝罪します!!! header level 2以下の内容は年明けに更新します。 共通ライブラリのSNAPSHOTを更新してpublishLocalすると依存しているプロジェクトの実行前にproguardが走る ProguardがScalaのコンパイルより遅い というかdexも遅い AndroidのCPUが遅くJSONのパースが遅い Dispatch rebootはhttpsでどうしようもないエラーが出る AndroidのAPIがUnitしか返さない ContextとLifecycleがやばい 素直にvarを使う android-sdk-pluginのproguardCacheが難解 apklibはAndroidStudioで読めない android-sdk-pluginで
こんにちは、シニアアプリケーションエンジニアのid:taraoです。はてなエンジニアアドベントカレンダー2014の21日目として、依存先のファイルが更新されたらコンパイルしなおす処理をgulpで実現する方法について、とくにLessを例にとって紹介します。 はてなでは、JavaScriptやCSSなどの静的ファイルをTypeScriptやLessなどからコンパイルして生成することが増えています。CSS(Less)は主にデザイナが書くため、コンパイル手順はできる限り簡単にする必要があります。多くのチームでは、サーバアプリケーションをローカル環境で実行している最中はファイルの変更に応じて自動的にコンパイルしなおすようになっています。 ファイルの更新監視からコンパイルまでの処理にはGruntなどを使ってきましたが、コンパイル対象のファイルに依存関係がある場合、依存先のファイルの変更に応じて依存元の
イケてると思う dotfiles の管理方法 この記事は、今年もやります!KMCアドベントカレンダー!! - KMC活動ブログの21日目の記事です。 昨日の20日目の記事はReturn Value Optimization (RVO)の話 【KMCアドベントカレンダー20日目】 - KMC活動ブログでした。 KMC5回生の wacky です。今日は dotfiles の管理方法についての話をします。 dotfiles を管理していないと 何らかの UNIX を長いこと使っていると、ホームディレクトリには自分の書いた .zshrc や .tmux.conf などの設定ファイルがたくさん転がっていると思います。そして、長いこと UNIX を使っている人であれば、自分が単一のサーバにしかログインしない、というのは稀でしょう。当然、自分のログインするサーバ全てのホームディレクトリには .zshrc
まえがき Excel Advent Calendar 2014 に空きがあったので、 前々からやりたかった「xlwings」の記事を書いた。 ちなみに僕はBlogあるので、Qiitaに何もなかったからいい機会だ。 xlwingsとは? VBAでマクロなんて書きたくない人用にPythonでマクロが書けるモジュール。 公式サイトはここですね。 xlwings インストール virtualenvでインストールすると上手く実行できないようだ(多分)。 OSのPythonにインストールした方がいい。 サンプルの実行 ここにクイックスタートが有る。 しかし、僕は少しハマったのでクイックではなくなったが・・。 まず、Excel自体をどこかに保存しておく。 僕はMac OS Xを使ってるので、 /Users/shinriyo/Documentsへ、「ブック1.xlsx」の名前でExcelファイルを保存した
はじめに ActionScript Thread Library 1.0 (そうめん)をHaxe/OpenFLに移植しました。 HxThread (https://github.com/utibenkei/hxthread) この記事ではAS3のライブラリをHaxeへ移植した際に行った作業を手順を追って説明したいと思います。 ActionScript Thread Library(そうめん)とは yossy氏が開発された、非常に便利なライブラリです。 ActionScript Thread Library 1.0 (そうめん) は、タスクシステムと Java のスレッドモデルをベースとした疑似スレッドライブラリです。 複雑で冗長になりがちな、イベント処理や非同期処理、リアルタイム処理を、分かりやすくスマートに記述することを可能にします。 もちろん、割り込みやキャンセル、例外処理もバッチリで
ホームディレクトリにrpmbuildという名前のディレクトリと.rpmmacrosという名前のファイルが作成される。 .rpmmacrosの%_smp_mflagsは、rpmをビルドする際のmakeの並列数を指定するマクロであり、環境に応じて適宜編集する。 SPECファイルの作成 作成したいパッケージのspecファイルを $HOME/rpmbuild/SPECS ディレクトリに配置する。 作成したパッケージの旧バージョンなどが既に存在する場合は、ソースRPMをダウンロードして、それに含まれるspecファイルを編集するのが簡単だろう。 ソースRPMを提供するリポジトリはデフォルトでは登録されていないので、以下のような内容のファイルを/etc/yum.repos.d/CentOS-Source.repo というファイル名で保存する。 (CentOSのバージョンは適宜変更する) [base-so
Golang の勉強がてらちょっとしたツールを作ろうと思って、まず websocket サーバーを書いてみた。 書いてみたと言っても go の websocket chat は golang-samples/websocket · GitHub ここにサンプルがあって、これをそのまま使っても良かったのだけれどいくつか気になったのでよりシンプルに書き直してみた。 hatz48/go-websocket-sample · GitHub 気になったのは二つあって、一個は client id が競合しそうに見えた点。 https://github.com/golang-samples/websocket/blob/master/websocket-chat/src/chat/client.go#L35 ここで maxId をインクリメントしている. この NewClient 関数は https:/
これは Heroku Advent Calendar 2014 の21日目(12/21)の投稿です。 最近はクライアント(ネィティブアプリ、JavaScriptベースのWEBアプリ)とサーバを RESTful な WEB API でつなぐパターンが増えてきてる気がしています。エンドユーザ向けのサービスだけでなく、管理画面やツールなどでも。 今回は AngularJS Full-Stack(generator-angular-fullstack) を利用して Node.js(Express) と MongoDB ベースの RESTful な API サーバ を作り Heroku へデプロイするまでやってみます。(AngularJS の環境は、今回は使いません。フロントエンドは AngularJS をそのまま使ってもいいし、それ以外にしてもOK。) 『AngularJS Full-Stack』
はじめに どうもです。@akachochinです。Advent calendarの記事になります。 この間Linuxのデバドラのコードにかかわる仕事をしていて、include/linux/fs.hを見ました。で、file_operations構造体を見たら、ioctlを呼び出す関数ポインタが long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long); long (*compat_ioctl) (struct file *, unsigned int, unsigned long); というメンバになっていました。Linux Device Drivers 3rd editionを見る限り、このようなメンバは載っていません。(ioctlに関するメンバはioctlのみ掲載されていました) せっかくの機会なので、この場を
ここ数年盛り上がっている"プログラミング学習"。 無料または安価で学べるサービスが国内でも少しずつ増えてきている事や、従来よりも安価でプログラミングを学べる講座が登場してきていることから、小中学生から大人まで幅広い世代の人がプログラミングに挑戦している。 一方で、挑戦してみたものの結局挫折してしまったという人も一定数いるのが現状。特に平日の夜や休日などの空いた時間に独学で学んでいるという方の中には、苦労している人も多いのではないか? そこで今回は、プログラミング学習に挫折してしまった経験がある人や、これから独学でプログラミングを学ぼうと思っている方には是非一度試してみてほしい、無料のプログラミング学習サービス「Progate」を紹介する。 スライドと演習を中心とした無理のない実践的なスタイル 「Progate」の特徴は無料であることはもちろん、学習の進め方と非常に使いやすいサービス設計にあ
この記事は、Spark, SQL on Hadoop etc. Advent Calendar 2014 - Qiitaの21日目の記事です。 なぜ GraphX を推すのか 私は、GraphX Advent Calendar 2014 - Adventarを立ち上げて「全部俺」状態で頑張っています(だいぶ遅延を見せていますが…)。もしやと思っていましたが、誰も参加してきてくれる人がおらず、ブログのアクセスも全く伸びません(笑)ブログに限らず、GraphXの情報自体、非常に少ないです。そのため、ブログを書いて、情報量自体を増やしていこうとしているわけですが、なぜ誰もろくに見向きもしない GraphX という技術に、私はここまで熱くなっているのでしょうか。この記事は GraphX のアドベントカレンダーではないので、一度、改めて、私が GraphX に感じる魅力、それをどうしてみんなに知って
LPATHBench/writeup.md at master · logicchains/LPATHBench 同じ箇所に二回訪れずに最も長い経路を見つけるコードで。各言語の実装を、ARMv7とx86-84においてベンチマークしてみた結果が公開されている。 記事に書いてあるように、これは、ARMv7とx86-64のプロセッサーのベンチマーク比較ではなく、各言語の実装が、ARMとx86-64でどれだけ効率的に実装されているのかを比較している。 たとえば、C++はARMにおいてはx86-64の74%のパフォーマンスを出している。しかし、ARM版OpenJDKはなんと29%の速度しか出ていない。OracleによるJava実装は、40%ぐらいのパフォーマンスを出している。 コードはとても短いが、パフォーマンス改善のためのpull requestがどんどんよせられたらしく、その結果が興味深い。Ja
はじめに こんにちは、Go界のコリン・ファースです。この記事はGo Advent Calendar 2014の21日目の記事です。昨日初サバゲーしたら、左手の薬指の爪のどまんなか含め、ピンポイントに左手の薬指3箇所を撃たれて、めっちゃ痛いです。 ところで今年のGo Advent Calendarではすでに2本の記事が正規表現に関する記事が上がっています。 Go で Language Benchmark Game に挑戦して惨敗した - Qiita by @methane Go - Luceneで使われてるFSTを実装してみた(正規表現マッチ:VMアプローチへの招待) - Qiita by @ikawaha @methane さんの記事の中では「Goの正規表現エンジンが遅い」という話が出ていました。また @ikawaha さんの記事では丁寧にVirtual Machine Approachな
どうも、僕です。 ザムルってもうワクワクしますよね。 ということで、Qiita XAML Advent Calendar 2014 21日目のエントリーになります。 WPFではコントロールのプロパティにバインドされた値が不正値でないかどうか 評価する仕組みとして、Validationというのを持っています。 例えば、TextBoxのTextプロパティにint型のプロパティをTwoWayでバインドして、 画面から整数でない文字を入れると赤い枠が表示されます。 これが標準装備のValidation。 このルールをもっと細かくしたい、たとえば、 入力できる数値の範囲を制限したいとします。0~100とか。 そういうときはValidationRuleを自作する。 public class IntRangeRule : ValidationRule { public int MinValue { ge
はじめに この記事は milkcocoa Advent Calender 2014 の記事です。同時に WebRTC Advent Calendar 2014 の記事でもあります。milkcocoaから来た人には「WebRTC とはなんぞや?」という感じだと思います。そんな場合は、WebRTCぼ1日目の記事を先ずご覧ください。 WebRTCコトハジメ http://qiita.com/Tukimikage/items/286f569d110daede721e シグナリング、シグナリング、シグナリング しつこく、WebRTCのシグナリングねたを続けます。 「そこにメッセージングの仕組みがある」ならば、シグナリングをやりたくなるのが人情です。 milkcocoa 登場 milkcocoa は、リアルタイムメッセージングのためのBaaSです。Socket.IOを使っていて、docker上に構築さ
Googleアナリティクスは、Googleが無料で提供しているウェブサイト分析ツールであり、多くの企業や個人が導入しています。 しかし、Googleアナリティクスは、簡単に導入できるということもあり、最初にトラッキングコードだけ設置して設定などは特にしていない、となっているサイトも多いのではないでしょか。 Googleアナリティクスをうまく活用すれば、他の有料の分析ツールに負けないくらいの機能を利用することができます。 今回は、トラッキングコードを設置した後、一番最初に設定しておくべき4つの基本設定をご紹介します。 Googleウェブマスターツールと連携する サイトに関する様々な情報を知ることができるGoogleウェブマスターツールですが、Googleアナリティクスと連携すると非常に便利です。 【Googleウェブマスターツールについては下記参照】 【保存版】Googleウェブマスターツー
はじめに この記事は WebRTC Advent Calendar 2014 の記事です。無謀なことに同時に milkcocoa Advent Calender 2014 にもクロスポストしてみました。milkcocoaから来たかたには「WebRTC とはなんぞや?」という感じだと思います。そんな場合は、1日目の記事をまずはご覧ください。 WebRTCコトハジメ http://qiita.com/Tukimikage/items/286f569d110daede721e シグナリング、シグナリング、シグナリング しつこく、WebRTCのシグナリングねたを続けます。 「そこにメッセージングの仕組みがある」ならば、シグナリングをやりたくなるのが人情です。 milkcocoa 登場 milkcocoa は、リアルタイムメッセージングのためのBaaSです。Socket.IOを使っていて、docke
Linux(ARMv7系)のメモリ管理を追ってみる Linux Advent Calendar 2014の21日目の記事です。 kernel sourceの追いかけかた 前回のcopy_to_user()のfault処理実装を見たときに、__do_kernel_fault()あたりから先はちらっと見たので、そもそもメモリ管理全般はどうなっているのだろう、と気になって仕方が無くなる。 とりあえず下から覗いていくのが低レイヤー民(そんなものはない)のたしなみだろう、ということで、最近メジャーなARMv7アーキテクチャをターゲットとして調査する。 kernelのメモリ管理の基本と、ARMアーキテクチャでの実装を確認し、faultハンドラを追いかけていこう。 追いかけ方は人それぞれかもしれないけれど、Makefileにtagsがターゲットとして存在しているので、マクロやプリプロセッサが多いので、適
Docker Advent Calender 22日目の記事です。 Dockerfileを書くのってだるいですよね。今日は他人のDockerfileを利用して楽をする方法を紹介します。ちなみに全然大したことしてません。 あるミドルウェアやアプリケーションを使いたい場合、apt-get installやbrew installではなくdocker pull ***でミドルウェアやアプリケーションを立ちあげられるのは"""時代"""を感じさせるのですが、docker repositoryにイメージがない場合ってありますよね。 自分の場合elasticsearchのイメージはあるけど、kuromojiやtwitter-riverのプラグインが最初から入っているイメージはありませんでした。 そこでおすすめなのは既存のdocker imageを再利用して自分好みのdocker imageを作る方法で
カスタマーストーリー 弊社では、販売データ(POS)やモバイルログを始めとする、企業に存在する様々なデータを集約し、様々な角度から顧客理解を深める、ビックデータ分析基盤を提供しています。 カスタマーストーリー AWSのビックデータ関連サービス ビックデータサービスに関連する基本的なAWSサービスのおさらいと注目の新サービスについてご紹介しました。中でも注目の新サービスは以下の3つです。 AWS Lambda AWS上のイベントをトリガーに、独自のコードを実行させることができるComputeサービスです。S3へのPUT、Kinesisのストリーム入力、CLI呼び出しなどをトリガに独自のコードを実行できます。 LambdaはAWSサービスをより簡潔に連携させる手段として有効ですが、条件によってリトライさせる場合はフルマネージメントサービスであるData
Android 5.0がリリースされアプリケーション開発を行う際に、改めて Android アプリの基本である Activity について再確認してみようと思いライフサイクルを調査してみました。 標準的なライフサイクル Android Developers では Activity Lifecycle は以下のように説明されています。 この図では基本的な Activity のライフサイクルを示し、ライフサイクルが変化するタイミングで呼び出される Activity のメソッドを示しています。 ただ最新の Android 5.0 (API Level:21) で示されているメソッドを見ていくと、図の中で省略されているメソッドがいくつかあります。 Activity の launchMode など状態遷移を変化させる属性を指定されている場合から、実際に動作確認しながらライフサイクルの内容を整理・確認
Reactを触ってみた経緯 ReactのJSXについて凄く恥ずかしい誤解をしていた事に今週の月曜に気が付いた。 えっ、ReactのJSXってDeNAのJSXじゃなくてJavascript XMLって意味だったの…(今更) — 野生の男 (@yasei_no_otoko) December 15, 2014 のでメインで使っているCoffeeScriptでReactを初体験してみることにした。 環境構築 npmコマンドでCoffeeScript用のReact/JSXトランスレータをインストール /Users/yasei_no_otoko/.nodebrew/node/v0.10.34/bin/cjsx -> /Users/yasei_no_otoko/.nodebrew/node/v0.10.34/lib/node_modules/coffee-react/bin/cjsx coffee-r
Zsh では、たいていのものは補完できるのだが、場合によって補完が行われるまでに時間が掛かるという問題に遭遇する。たとえば補完候補リストを生成するのに、ネットワークを通じてリモートのリソースにアクセスする場合など、コストのかかる処理が必要なときだ。 補完の重要な目的のひとつはコマンドライン編集を加速させることだが、補完自体に時間が掛かって編集が待たされてしまっては本末転倒である。そこで Zsh には、コストのかかる補完データをキャッシングして、その後の補完を高速に行うための機能が用意されている。今回は、私が補完スクリプトを実装する際に、キャッシュ機能を利用する必要が生じた実際例に基づいて、その使い方と得られた知見を説明したい。 実際に使った例 キャッシュ機能を利用する必要が生じたのは、jhbuild コマンド用の補完スクリプトを作成したときだ。jhbuild とは、GNOME デスクトップ
Explorer の詳細表示で確認できるファイルの日付は分までしか表示しない。また、秒によって +1 分されることもあるので秒までサクッと確認できないものかどうか調べてみた。 が、どうもバッチスクリプトだけでは無理っぽい。 forfiles というコマンドも存在するけどうちの Windows XP には入っていないし、リソースキットっていうのを入れなきゃいけないものなのかもわからない(Microsoft の FTP サーバからコマンド単体をダウンロードしてくることはできるけど)。 とりあえず入れてみた forfiles コマンドを試してみたところ確かに秒は表示するのだけどコロンも入らなければゼロパッドもしない。ファイル検索には向いているけど stat コマンドみたいなのは無理そうだ。 というわけで VBScript を使うことになった。とりあえずユーザプロファイルディレクトリ以下を再帰的に
Ansibleとテスト - Ansible Meetup in Tokyo LTの追加です。 このLTではAnsibleとServerspecを組み合わせて使うためのrubygemについて紹介しました。 一方で、AnsibleにはAssertなどのテストモジュールがあるので、Serverspecを使わずにテストまで行えるのでは、と考えていました。 この記事では、Assertを使ってテストを書いてみた感想と注意点について述べます。 結論から言えば、Ansible単独で構築からテストまで行うよりは、テスト系ツール(serverspec, envassert)と組み合わせて活用した方が良いです。 [前提]Ansibleの思想とテスト Ansibleはあるべき状態(desired-state)を宣言し、サーバを構成します。 例えば、OS起動時にあるサービスが開始されるための手順を書くのではなく、O
Visual Studio Advent Calendar 2014の22日目です。 みなさん、はじめまして! 窓辺ありにゃん(まどべ ありにゃん)です。アドベントカレンダー自体も初めてです。C#や.NETやVisual Studioが大好きで、プログラミングをやっています。 本来は自サイトで公開する予定でしたが、自サイト開設が間に合わなかったので、Qiitaで公開することにしました。自サイトを開設したら、この記事も移管する予定です。 自分で作ったVisual Studioの拡張機能を海外でも使ってもらいたいですよね? 拡張機能のマニフェスト自体を英語で記述するのも手ですが、逆に日本人にとって使いづらくなってしまいます。 Visual Studioの拡張機能には言語に応じて拡張機能のタイトル、説明、ライセンスを表示する機能があるんですよ! しかし、現時点ではVSIX Language Pa
イントロ こちらは、WebRTC Advent Calendar 2014の21日目のエントリーです。 実現すること PC に USB で有線接続された Android端末を用い、その Android端末のカメラ映像を PC のブラウザ上に表示させる、というものを実現します。PC に USB接続された Android端末を、Webカメラ的に使うイメージです。 このようなことをやろうとした経緯は「以前の投稿(Android端末をプレゼン用途でWebカメラ的に使おうとした話【設計編】)」をご覧ください。 実装や設定の概要 上記の内容を実現する方法は、おおまかにはこのようになります。 ※ PC でも Android端末上でも、Chrome を利用 概要 getUserMedia を使い、カメラ映像をブラウザ上に表示するページを実装@ローカルPC。 Android端末の USBデバッグを有効にし、
2014年終盤、もしかしたら皆さんはObjective-Cなんて使わずにSwiftでアプリ開発をしているかもしれませんが、自分が利用しているコーディング時のガイドになるスタイルガイドを公開したいと思います。 新しくプロジェクトが始まった際など何かしらの議論のベースとなれば幸いです。 前提 あくまでスタイルガイドであってルールじゃない もしガイド通りでなくてもレビュー時に指摘するほどではない 複数ある方法を選ぶ際の参考にすればいい MUSTな項目はなくレビュー時に気づいたら気づいた誰かが直せばいい 項目それぞれに理由があるが、その理由が当てはまらなければ当然他の方法が適している 開発メンバーによってそれぞれ合う合わないがあるのは当然 プロジェクトによってガイドの内容は調整されてもいい スタイルガイドは言語仕様や開発環境の気付きになる場合が多く、それも目的としている Blocksを引数にとるメ
この記事はC++ Advent Calendar 2014の21日目にエントリしています。 内容はC++メモリモデルと逐次一貫性についての概説記事となっています。 flickr / nomadic_lass もくじ 忙しい人のための「C++メモリモデル」 C++メモリモデル一問一答 ソフトウェアからみた「C++メモリモデル」 “メモリ”という共有リソース C++ソースコードが実行されるまで メモリの一貫性と整合性 逐次一貫性モデル is Easy ハードウェアからみた「C++メモリモデル」 ハードウェア・メモリ一貫性モデル C++コンパイラの責任と自由 強いメモリモデル vs. 弱いメモリモデル 逐次一貫性モデル is Hard (本文のみ約9600字) まえがき When your hammer is C++, everything begins to look like a thumb
この記事はAWS Advent Calandarの21日目の記事です。 これは個人のメモ/意見であり、私の所属する組織を代表するものではありません。また、記事中のコード片はすべてMITライセンスにて提供されるものとします。 サマリと背景 テーマとしては、Amazon Kinesisとのプログラマとしての付き合い方について考えてみたという話。「Kinesisでリアルタイム分析だ!」とか「IoTだ!」とか「ストリーム処理だ!」みたいな感じにマジックワードが飛び交っていて、実際の実装の話があまり世に出てこないのに違和感を感じたのがこの記事を書こうと思った発端。 違和感を書き連ねるだけだとアレなので、Kinesisをもっとプログラマフレンドリにするにはどうしたらいいんだろう、というのを考えてみた。 あと、RxJSを触りたかったというのもある笑 2013年のRe:Inventで発表されたサービスで、
この記事は OS X Advent Calendar 2014 の22日目の記事です。 はじめに Ruby のインタプリタをアプリケーションに組み込もうとした場合、現在だと mruby があります。CocoaPods にも登録されているので実際に利用するのも簡単かも知れません。 それでも色々あって mruby ではなく CRuby を組み込んで使いたい事情があったため、難儀しながら x86_64 や ARM で動く libruby-static.a を作ったりしていました。 それで折角なのでそれをなんやかんやして CocoaPods の Pod として公開してみましたので紹介します。 使い方 使い方は簡単です。Pod をインストールしたらあとは ObjC のメソッドを一つ呼ぶだけでスクリプトが実行出来るようになります。 Pod のインストール 他の CocoaPods のライブラリの利用と
と言うわけで、このブログはC# Advent Calendar 2014の22日目の記事です。昨日はkekyoさんでした(実はつい最近お知り合いになりましたー)。今日はintについてゆるめに書こうと思いますー。 intの言語仕様 C#のintは、言語仕様*1に「–2147483648 から 2147483647 までの値を持つ、32 ビットの符号付き整数を表します」と書いてあります。また「System 名前空間で定義済みの構造体型に対する単なるエイリアス」とも書いてあります。 intの定義 それではこの内容を自分の目で見るために、Visual Studio上のintを定義しているところで、右クリックして「定義へ移動」を押しましょう。 ハイ。intの定義に移動しました。 intの名前 まず見るのは名前です。intの定義へ移動したはずなのにInt32になっています。これが言語仕様に書いてある単
概要 Ruboty の Plugin のつくりかたについて説明します ※今回説明するのは Handler の Plugin です。Adapter の Plugin を作成する方は少数だと思いますので。 前提 下記記事で、 Ruboty の 基本構成と Handler + Action について理解してから読み進めてください。 Ruboty の基本構成 Ruboty Handlers と Actions 作成する前に・・・ Ruboty の Plugin 作成を支援するツール類を使わずに、あえて手動で Plugin を作成してみます。 特に、 Ruboty 未経験者は最初に 1 回手動で作成しておくことで、 自動生成ツールがどういった部分をカバーしてくれているのか理解しやすくなります。 また、Ruboty の Plugin は Handler のみでも作成できますが、 構成の統一、テスタビリ
はじめに 私はPHP経験はほとんどなかったのですが、ひょんなことからYii2Frameworkを使うことになりました。 あまり色々なフレームワークを知っている方ではないですが(特にPHPは全然知らない)、Yii2は初期テンプレートやCRUD生成、各種ウィジットの力で、綺麗なUIのシステムがさくさく開発できてよいなぁと思っています。 というわけで今日はその中から、便利ウィジットの一つであるGridViewについて書いてみます。 GridViewとは GridViewとは、Yii2で用意されているData widgetsのひとつです。 DataProviderを用意して紐づけるだけで、いい感じの表(ソート、ページング機能付き)を出力してくれます。 例:Newsモデルの内容を表出力する <?php use app\models\News; use yii\grid\GridView; use y
地方の中小システム開発会社で勤務している、MeguMegu1978といいます。こんにちは。 さて、システム開発の現場で各種メッセージサービスを使うことも珍しくなくなりましたが、そんなメッセージサービス上でのやりとりの中で、"はい"の代わりに"ほい"とその亜種を使っているうちに「役職の数に応じて、"ほ"の数が決まる」という謎の仕様が策定されて、社内のエンジニアが役職に応じた"ほい"は何なのか、がわかるJavascriptを作ってくれました。 仕様 担当:ほい 主任:ほほい 係長:ほほほい 課長:ほほほほい 部長:ほほほほほい …なんのこっちゃ。 最初はSwiftのFizzBuzzでも…と思っていたんですが、"swift fizzbuzz"で検索すると既に先駆者がたくさんヒットして新鮮味がないので、この地方の小さな会社で策定された仕様とJavascriptのコードをSwiftに移植する事にしま
CREATE TABLE `office` ( `officeCode` varchar(10) NOT NULL, `city` varchar(50) NOT NULL, `phone` varchar(50) NOT NULL, PRIMARY KEY (`officeCode`) ) ENGINE=InnoDB DEFAULT; CREATE TABLE `employee` ( `employeeNumber` int(11) NOT NULL, `lastName` varchar(50) NOT NULL, `firstName` varchar(50) NOT NULL, `officeCode` varchar(10) NOT NULL, PRIMARY KEY (`employeeNumber`), KEY `officeCode` (`officeCode`), CO
This blog post is outdated. Please read chapter “New OOP features besides classes” in “Exploring ES6”. Classes [1] are the major new OOP feature in ECMAScript 6 [2]. However, it also includes new features for object literals and new utility methods in Object. This blog post describes them. New features of object literals # Method definitions # In ECMAScript 5, methods are properties whose values
こんにちわーお。最近見ているTVの影響でこんな挨拶が頭から離れないせーのです。 さて今日は先日行われましたクラスメソッド主催のイベント「re:Growth 2014 Sapporo」「re:Growth 2014 Tokyo」での発表のお話をしたいと思います。 こんな発表をした さて、私のスライドはこちらになります。 簡単に言うとLeapMotionのセンサーデータをLambdaを使って整形し、そのデータを使ってベートーベンの第九という曲の音量を変えたり左右にパンさせたりする、というデモをしました。 スライドではなんのこっちゃわからないと思いますので、TOKYOでのデモの様子をしんやさんが動画に撮ってくれたのでこちらをどうぞ。 こんなことをしていました。 どうしてこうなった とりあえず今年最後の勉強会をするのでAWSネタを何か、というお話を聞いた時に「今年のAWSならLambdaかな」と思
この記事を書いたきっかけ 1, 2年くらい前からD言語で式テンプレートを使った行列ライブラリを書いてきまして、 その時に「式テンプレートとモナドって似てるよなあ」と思ったのがきっかけです。 そこで、今回は式テンプレートを使って純粋関数型プログラミングを行ってみたいと思います。 純粋関数型プログラミング on D言語 かの有名なHaskellでは、モナドというものを用いて非純粋な計算でも純粋性を確保しているようですが、モナドとは「手続き命令書」らしいので、D言語では式テンプレートで表せます。 式テンプレートとは、次のように式の計算手順を型として保持しているようなものです。 大きな特徴としては遅延評価があり、式の値は必要になってからしか計算されません。 また非純粋な計算であっても、その計算をしなければ純粋だと言えます(ここ重要)。 つまり、式テンプレートで遅延評価さえできれば純粋関数型プログラ
はじめに AWSチームのすずきです。 先日12月16日、クラスメソッドの勉強会としてre:Growth 2014 Tokyoを開催しました。 鈴木からスシローさんの「Kinesushi」構築に関わった実経験を元に、Amazon Kinesisの紹介をさせて頂きました。 その内容を報告させて頂きます。 CM re:Growth 2014 TOKYO 発表スライド 発表内容 スケール性 Kinesushiの対象店舗、約200倍の拡張を数日で実現した実例を紹介させて頂きました。 従来のオンプレミスのDCで同規模の拡張を実施する場合、 回線やサーバなどのインフラ確保に早くて数週間、在庫状況によっては数ヶ月単位の時間を必要としました。 IaaSの利用によりインフラの手配時間の短縮出来るようになりましたが、 Amazon Kinesisを採用した基盤では、アプリの改修も抑制でき、より一層のスピード感を
これはWatchKit Advent Calendar 2014の20日目の記事です。 Apple Watchの画面レイアウトはiOSアプリと少し違います。 簡単にまとめてみました。 Apple Watchの画面レイアウト Apple Watchでは、画面に様々な画面パーツを置くことができます。 ただ、iOSと大きく違う点は、その画面パーツの位置とサイズをCGRectで指定することができないということです。 では、Apple Watchでは、画面パーツの位置やサイズをどのように指定するのでしょうか。 画面パーツのサイズ指定 まず、画面パーツのサイズ(幅、高さ)は下記の3通りの方法で指定することができます。 Size to fit Content(親アイテムをFillする指定) Relative to Container(親アイテムに対する比率で指定) Fixed(ピクセル値指定) 「Siz
(このエントリーはKotlin Advent Calendar 2014 - Adventarの21日目の記事です!) 24歳、このままKotlinをやらずに20代後半に足を踏み入れていいのか自問し、 ついにKotlin童貞を捨てる事にしました。 あと、ついでにAndroid童貞も捨てます。 しょぼちむ Advent Calendar 2014 - Adventarの12日目、[twitter:@grimrose]さんの open build/reports/life/index.html: しょぼちむさんがKotlinをやらない理由を考えてみたの記事に、こう↓かいてあったので、とりあえずGitHub - JetBrains/kotlin: The Kotlin Programming Languageにスターつけるとこから始めた。 よし。いい滑り出しです。 宿題はぎりぎりまでやらないタイ
Download the free, public domain, 64-bit operating system, Temple Operating System. Downloads Archive: Archive.org | Odysee (invite) | Latest Torrent | Magnet Video Streams: Odysee (NSFW) | Telegram (NSFW) Communities: Reddit | Discord | Discord | Revolt | Matrix | #templeos on Rizon (IRC) | Steam AppStore: SupStore Merch: D3VUR | Maximum Comfy | Temple OS Store | RedBubble | AliExpress Support NO
どうもハンサムクロジです。 iPhoneの操作を自動化してくれるiPhoneアプリ『Workflow』をご存知でしょうか。 撮影した写真をTwitterとFacebookに一気にシェアしたり、開いているページの画像を一括でダウンロードしたり……。そういった複雑な操作を自動化してワンタップで実行できるアプリということで、ちまたで話題になっております! 今回は、そんな『Workflow』の基本的な使い方と、同アプリで使える便利な自動化”レシピ”をいくつかご紹介したいと思います!! 『Workflow』の基本的な使い方 アプリを起動してチュートリアルが終了すると、以下のようなメイン画面が表示されます。ここで”レシピ”と呼ばれる、「自動化された一連の流れ」を設定していきますよ。 まずは右上の「+」をタップしてレシピを作成してみましょう。 次の画面で下部にある「Action」をタップすると、様々な操
お、キタキタキタ。 TextwellからWorkflow経由でEvernoteを取得する EvernoteOpener例によって、ユーザーを選ぶアクションです。WorkflowではEvernoteのタイトル検索ができる。ところが、これが日本語だと文字化けするんです。検索はうまくいくけど、返ってくるのがPDF形式で、そ... PDF形式で返ってくると思ったらRichTextでした。なら、なんとかなる! Workflow: Powerful Automation Made Simple 1.0.1 分類: 仕事効率化, ユーティリティ 価格:¥300 (DeskConnect LLC) Workflow側は下記スクリプトを使います。RichTextを一度HTMLに変換し、それをもとに整形をする。brタグも、ちょっと特殊な書き方をしてくれていて、あまりバッティングを起こさずテキストに還元できまし
How to make Perl faster Measure, don't guessRegexpsFunctionsMiscellaneousThe biggest tuning gains will usually come from algorithmic improvements. But while these can be hard to find, there is also a lot you can do mechanically. Makepp is a big heavy-duty program, where speed is a must. A lot of effort has been put into optimizing it. This documents some general things we have found. Currently the
あらすじ 八百屋で100円のりんごを100個買うといくら? 1万円では、ない。への対策をPharo Smalltalkで実装してみました。 1万円ではない、だとう? 八百屋で100円のりんごを100個買うと10,000円だという計算には心がないのだそうだ。 八百屋ならおばちゃん(あるいはおじちゃん)が1,000円ぐらいまけてくれるから、答えは9,000円なのだそうだ。 なんという後出しジャンケン! っていうか、オレ、八百屋で1,000円もまけてもらったことないです。orz しかし、ビジネスをする上でこの手の後出しジャンケンは日常茶飯事。後出しジャンケンされてもニッコリと微笑んでその上をいってやろうではないか。それがビジネスSmalltalkerの生きる道である。キリリ 八百屋さんのビジネスロジック まずは価格をオブジェクトで表現してみよう。ここではPharo3.0を使う。Heartful-
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く