定期的にこういう内容を書いて公開している気がする。昔の記事もあるのでそちらを読めばいいのだが、また書く必要性が生じてきたのであらためて書きます。 現代では AWS のようなクラウドや VPS など格安で手軽にインターネット上にサーバーを持てるようになった。しかしインターネットで誰でもアクセスできる環境でサーバーを稼働させるということは、常に人間やロボットの攻撃に晒されるということを同時に意味している。したがって初心者だからだとか、会社の中ではこうやって仕事をしているからといった言い訳は一切通用しない。セキュリティ設定をきちんとしなければ内部への侵入をたやすく許し、思わぬデータの漏洩につながるのである。とはいえセキュリティというのはトレードオフを考慮しなければいくらでも強化できるものでありキリがない。ここでは最低限これだけはやっておこうという現実的な落とし所を提示し、人々への啓蒙をはかるもの
Internet Explorer 11 で、contenteditable 属性を有効にした div 要素や maxlength 属性を設定した input 要素のあるページを IE9 標準モード以上のドキュメントモードで表示した場合、日本語入力が期待通りに行えない問題が発生することがあります。 シナリオ 1: Internet Explorer 11 で、Contenteditable 属性を有効にした要素内で IMG 要素や display:inline-block 属性を指定した A 要素を配置し日本語入力をオンにし、文字を変換、確定するとすべての文字が表示されないことがあります なおこの現象は、Windows 10 の Internet Explorer 11 および Microsoft Edge では発生しません。 - 再現手順 1 .以下のようなサイトにアクセスします。 <!
HaskellにおけるIOモナド(IO a型)とSTモナド(ST s a型)について整理してみました。 IOの定義から知るST IOモナドの考え方についての原論文に相当する「Lazy Functional State Threads」においては、IOの定義は newtype IO a = ST RealWorld aのようにST型を直接使用して定義されるものとして説明されています。ただ、「IO inside」によれば、GHCのライブラリ実装においてIO aの定義は newtype IO a = IO (State# RealWorld -> (# State# RealWorld, a #))だそうで直接STを使ってはいません。後者のは正格タプル非ボックス化タプルを使ってます(知らん!)。 まあ、Haskell仕様ではIO aと関数仕様が定義されているだけで=の右側は実装依存というわけなの
対し、今回紹介するBDD(behavior driven development:振舞駆動開発)では、テスト対象の振る舞いに対してのテストを記述します。BDDでは、要求仕様にフォーカスし、よりWhatを意識したテストケースを作成できます。これにより、TDD以上に設計から実装へのトレーサビリティを確保できるようになります。 対象読者 Java開発者 必要な環境 JDK 7 Maven 3 JBehaveとは JBehaveを利用することにより、JavaでBDDを実践できるようになります。具体的には、storyファイルに記述した要求仕様をベースに検証ロジックを実装し、テストを行います。 事前準備 まずは、Mavenで空のJavaプロジェクトを作成します。以下のようにコマンドプロンプトでmvnコマンドを実行します。 <project xmlns="http://maven.apache.org/
一昨日のエントリ『書籍「気づけばプロ並みPHP」にリモートスクリプト実行の脆弱性』にて、ファイル送信フォームに対するCSRF攻撃の文脈で、私は以下のように書きました。 通常のHTMLフォームを使ったCSRF攻撃では、Content-Typeをmultipart/form-dataにすることまでは可能ですが、ファイルの中身とファイル名を指定する方法がありません。従って、HTMLフォームによる攻撃経路はありません。 大半の方は、「ああ、そうだよね」という感じでお読みいただいたように思いますが、昨日サイバーディフェンス研究所の福森大喜さんから、「それIE8以前ならできるよ」と教えていただきました。福森さんの許可を得て、以下にPoCを公開します。 <form enctype="multipart/form-data" action="pro_add_check.php" method="POST"
AngularJS概要 前回はAngularJSを学ぶ際に参考になるサイトの紹介をしました。 それらを見ればいくらでも書いてあるのですが、今回はAngularJSについての解説や基本的な機能等の解説をします。 Angular JSとは 前回もいったように、AngularJSはWebアプリケーションのためのMVC(MVW)フレームワークです。 ※MVW:Model-View-Whatever AngularJSでは次にあるような、いくつかの特徴をもっています。 Angular JSの持つ機能 1.テンプレート言語としてHTMLを使用する AngularJSは、HTMLファイルを使用します。その中で「Directive」という仕組みを利用し、 HTMLの属性や要素に対して特殊な振る舞いを適用します。 Directiveとは、HTMLの属性と要素を独自に拡張した新しいマークアップです。 ngMo
はじめに アウトプットの場としてもインプットの場としても活躍する、マイクロブログサービス・Tumblr(タンブラー)。その手軽さに利用している方も多いですよね。ここでは、そんなTumblrをより有効に楽しむべく「とりあえずフォローしておきたい!クリエイティブなTumblrアカウント」をまとめました。 グラフィック、ロゴ、イラストにプロダクトデザインまで。アイディアのヒントになること間違いなしの独創的なアカウントばかり。ちょっとお洒落な気分になりたい時の目の保養にもピッタリですよ。是非参考にしてみてください。 ロゴ・プロダクトデザインがメイン!クリエイティブなTumblr5選 ロゴやプロダクトデザイン、パッケージのアイディアなど。「ブランディング」にまつわる情報が詰まったTumblr上のブログをご紹介。「モノのデザイン」についてのヒントの数々、是非参考にしてみてください。 Consider
1.Goの環境設定 1.1. Goのインストール 1.2. GOPATHとワーキングディレクトリ 1.3. Goのコマンド 1.4. Goの開発ツール 1.5. 概要 2.Go言語の基礎 2.1. こんにちは、Go 2.2. Goの基礎 2.3. フローと関数 2.4. struct型 2.5. オブジェクト指向 2.6. interface 2.7. マルチスレッド 2.8. 概要 3.Webの基礎 3.1 webでの作業方法 3.2 Goで簡単なwebサーバを立てる 3.3 Goはどのようにしてweb作業を行うか 3.4 Goのhttpパッケージ詳細 3.5 概要 4.フォーム 4.1 フォームの入力を処理する 4.2 フォームに入力された内容の検証 4.3 クロスサイトスクリプティングの予防 4.4 フォームの複数回送信の防止 4.5 ファイルのアップロード処理 4.6 概要 5.デ
このエントリーでは、(2)で触れた「ラムダ式」「メソッド参照」以外の新しい言語機能についてまとめています。 「ラムダ式」「メソッド参照」については、(2)を参照してください。 (2014-03-21追記)APIドキュメントのリンクを差し替えました。 目次 仮想拡張メソッド 実行時のパラメーター名へのアクセス 型への注釈 一般化されたターゲット型付けの型推論 繰り返しアノテーション 仮想拡張メソッド 仮想拡張メソッドは、インターフェイスの仮想メソッドに、デフォルトの実装を与えることができる機能です。 これまでは、インターフェイスを実装する場合、インターフェイスで宣言されたメソッドを必ず実装する必要がありましたが、Java8ではインターフェイスの仮想メソッドに、デフォルトの実装を施すことが可能になりました。 デフォルト実装があれば、必ずしもオーバーライドをする必要がなくなり、デフォルト実装のま
https://shellycloud.com/blog/2013/10/how-to-integrate-angularjs-with-rails-4 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約4時間前 Railsアプリのホスティングサービスを提供しているShelly Cloudがブログで、フロントでAngularJS、バックエンドでRails 4を採用するときの留意点について、まとめています。使用しているコードサンプルはこちらになります。 1) Building a JSON API in Rails RailsでAPIをいちから作ってみる。angularjs-rails-resourceのようなライブラリを使うときは詳細が違ってくるが、考え方は概ね同じ。 Routing namespace :api
自分にはもう必要ないかもと思いながら積読状態だった Linux標準教科書 を読みました。 以外と知らないこともあり勉強になりました。 基礎大事。 shellのデバッグ(sh -x) : 9.8 デバッグ(P.177) 新人の頃shellを書きまくって、print debugしまくってた自分に教えてあげたい。 例として分かりにくいかもしれませんが、 -x をつけて実行すると コマンドや変数の中身を表示しながら実行してくれます。 sampleとしては若干見にくいかもしれないですが $ cat samle.sh while true do echo "Continue? (y/n)" read input case $input in n) break ;; y) continue ;; *) echo "Please input y or n." ;; esac done これを -x 付きで
1月が終わろうとしているのに今年初めてのエントリになる。今年初めてのエントリは、やはりこの1年で予定されている、IT業界にとってインパクトが大きいであろうできごとについて語ってみたいと思う。 1. XPの終焉今年最も大きいインパクトがあるイベントと言えば、やはりWindows XPのサポート終了ではないだろうか。毎度おなじみNet Applicationsによると、Windows XPのシェアは28.09%となり、Windows 7に次ぐシェアとなっている。(2014年1月現在) シェアの3割を占めるOSが突然利用不可能になってしまうのだから、このインパクトは目を見張るものがあるだろう。おそらくはより新しいWindowsへの移行が最も多いのだろうが、他の種類のOSへの移行も皆無ではないだろう。多くの人はWindowsに次いでシェアの高いOSXを選択するだろうが、ベンダーロックインを嫌う人々
by Flickr: David Blackwell.'s Photostream 何十年・何百年と1冊の本が読み続けられることは非常にまれなことですが、一方で今もなお読まれている本も存在します。「軽い読書にオススメ」とは言えませんが、聖書やシェイクスピアから「ベルゼバブの孫への話」といった聞き慣れないものまで、「人類の歴史に大きな影響を与えた」という観点で選ばれた本&文書をまとめたのがマーティン・セイモア・スミスのThe 100 Most Influential Books Ever Written(世界を変えた100冊)です。海外での書評としては、このリスト自体が人文学のイントロ・入り口としてはよくできているので、原著に当たるべしとなっているものが多くなっており、これら100冊を入手して読破すればある種の達成感が得られるだけでなく、もっと違う価値を自分自身にもたらしてくれるはずです。
はじめに もはや現代のインフラとなった感のあるTwitter。「毎日つぶやいている」「公式アカウントをフォローして情報収集に使っている」なんて方も多いと思いますが、その利点とはなんでしょうか? とにかく情報が素早く流通するのであらゆるニュースをタイムリーに見られること、ユーザー同士の距離が近く色々な人とフレンドリーに繋がれること、様々な生の意見を探せること…。 Twitterが持つそうした多様な可能性と利点のひとつに、「著名人の呟きを気軽に見ることができる」ということが挙げられます。 普通はエッセイ集や自伝といったものを購入しないと見られない、実感のこもった金言や、新鮮な発想の数々が、Twitterには溢れているんですね。 海外の発想とニュースで新鮮なアイデアを そんな利点があるTwitterですが、海外ユーザーをフォローしている方はあまり多くないのでは? 多くの著名人や成功者たちが使用し
3台くらいのLinuxサーバで、Akka Clusterをちらっと試してみるメモです。 akka (http://akka.io/) は、分散システムを作るためのツールキット(ライブラリと小さいプログラム)です。分散は、ロバストとかスケールとかのために。かけ声は、Let it crash (http://letitcrash.com/)。(1台のサーバでちょっとためす例は、こっちを。) akka 2.2.3 + Java 7(OpenJDK) + SBT(scala 2.10)を使います。 OSは、ここでは、CentOS6かUbuntu12.04ですが、Javaさえ動けば、わりとなんでもよいはずです。 3台(4台)のクラスタを動かします。サンプルのプログラムは、モンテカルロ法での円周率の計算です。重めになるかなと思ってBigIntegerにしてみましたが、πの精度は目指していません。計算を
http://engineering.linkedin.com/mobile/mobile-ab-testing-linkedin-how-members-shape-our-apps 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約4時間前 LinkedInがエンジニアブログで、iOS/AndroidアプリのA/Bテストの仕組みについて紹介してます。クライアント側を都度いじらなくても済むように、すっきりわけた構造になってるのがよいと思います。 View based JASON LinkedInのモバイルクライアントは、JSONベースのstructured viewでコンテンツをレンダリングしている。つまり、あらかじめ定義されたviewがJSONデータを受け取るかたちである。ユーザ画面のトップに位置するストリー
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く