パスワードを忘れた? アカウント作成

最新から新しい日記やタレこみを確認できますよ。

12849786 story
インターネット

「HTTP_PROXY」環境変数に不適切な値が与えられる脆弱性、多くの環境で影響 18

ストーリー by hylom
なるほど 部門より
あるAnonymous Coward曰く、

JPCERT/CCが、CGI等を利用するWebサーバの脆弱性(CVE-2016-5385等)に関する注意喚起を行っている。

UNIX/Linux系環境で動作するHTTPクライアントの多くは、通信を行う際に「HTTP_PROXY」環境変数を参照し、もしこの環境変数が設定されていればここで指定されているホストをプロクシとして使用するという動作を行う。このHTTP_PROXY環境は本来はサーバーやアプリケーションを実行する側が設定するものであるが、HTTPリクエストヘッダを利用してこれを外部から任意の値に書き換えることができるという(INTERNET WatchITmediaJPCERT/CC)。

kb.cert.orgの説明が分かりやすいが、CGIの動作について記述したRFC3875の4.1.18.では、HTTPヘッダの形でサーバーに渡されたメタ変数について、その変数名を大文字にし、「-」を「_」に置換し、先頭に「HTTP_」を付ける、というルールが明記されている。もしサーバーに対して送信されるリクエストヘッダ内に「proxy:」というヘッダが存在した場合、このルールに従うと「HTTP_PROXY」という変数名に送信されたヘッダの内容が格納されることになる。CGIの多くではこのような変数を環境変数に格納するため、結果としてHTTP_PROXY環境変数が外部から送信された値に書き換えられてしまうことになる。

また、同様にして「HTTP_」で始まるHTTP_PROXY以外の環境変数についても外部から書き換えることが可能になり、これを悪用することで攻撃者は中間者攻撃やサーバーに対し意図しない挙動を実行させることが可能になる可能性がある。

現時点ではApache HTTP ServerやPHP、GO、Pythonなど多くのソフトウェアが影響を受けるとのこと。対策としてはリクエストヘッダ内の「proxy:」ヘッダを無視するよう設定する、HTTP_PROXYや「HTTP_」で始まる環境変数を使用しない、などが挙げられている。

12822916 story
Java

リクルートの「2016年おすすめプログラミング言語」、1位はJava 108

ストーリー by hylom
下手に手を出してはいけない話題に 部門より
あるAnonymous Coward 曰く、

リクルートテクノロジーズは17日、ITエンジニアを対象に行った「2016年おすすめプログラミング言語」のアンケート結果を発表、2項目のうちいずれもJavaが最多を獲得し首位という結果となった(CodeZineの記事)。

このアンケートは、3言語以上を勉強したことがある全国の20代~40代のITエンジニア507名を対象にインターネット調査で取得されたもの。「初めて習得する人に一番おすすめのプログラミング言語」と「これから最も重要になりそうなプログラミング言語」の2項目について、ランキングが公開された。

まず「初めて習得する人に一番おすすめのプログラミング言語」では、1位がJava (17.4%)、2位がC (14.4%) で、以下VB.NET、C#、VB、PHP、VBA、HTML、C++ JavaScriptと続いている。

次に「これから最も重要になりそうなプログラミング言語」だが、1位は同じくJava(26.9%)、2位は変わってJavaScript(8.7%)となり、以下C#、Ruby、HTML、Python、PHP、VB.NET、Objective-C、Cとなっている。 Javaの評価が高い理由としては、利用頻度の高さや情報の充実さ、比較的シンプルな言語であることなどが挙げられている。またVB系が初心者におすすめとされる一方、重要度ランキングでは姿を消し、代わってRubyやPythonが入っているところも興味深い。

なお、その後リクルートテクノロジーズはこの結果について「内容に一部不適切と思われる表現が含まれておりました」としてこのプレスリリースを撤回、代わりに「お詫びとお知らせ」という文章を出している。Javaに対し「Android, iPhone の開発で使用されるため」というコメントが付いていたり、C#に対し「ブラウザを問わず使えるから」というコメントが付いていたり、HTMLがプログラミング言語として挙げられているなど、内容について色々とツッコミが入っていることを受けての対応ではないかと思われる。

12815880 story
Python

RubyがPythonのようなポジションを得られなかったのはなぜか 209

ストーリー by hylom
華麗か質実剛健か 部門より
あるAnonymous Coward 曰く、

Rubyが今のPythonの地位にいない理由」という話が話題になっている

PythonもRubyも、Perlの後に出てきた言語ではあるが、Pythonはさまざまなシステムで使われている一方、Rubyの使われ方は限定的である。なぜこういった状況になったのかさまざまな意見が出ているが、皆様のご意見はいかがだろうか。

12758696 story
PHP

コードを書くと美少女をゲットできるゲーム「コードガールこれくしょん」 60

ストーリー by hylom
課金要素はないのですか 部門より
kawakazu 曰く、

ギノ株式会社が運営するIT/Webエンジニアに特化したプログラミング転職サイトpaiza(パイザ)のサービスからPC向けプログラミング学習ゲーム「コードガールこれくしょん」が無料公開された(CNET JapanCodeZineGAME Watch)。

プログラム初心者向けにプログラミング学習ゲームで、PHPやRubyで実際にコードを書いてクエストをクリアしていくというもの。クエスト報酬やログインボーナスで手に入る「コイン」「ダイヤ」でガチャを行い、「コードガール」を入手できる。また、ストーリーを進めるうちに、ナビキャラとの関係が親密になっていくらしい。

2016年6月にはPythonも実装予定ということで初心者向けプログラミング学習の定番の一つになるかもしれない。

12663097 story
プログラミング

ドナルド・トランプ氏をイメージしたプログラミング言語「TrumpScript」 48

ストーリー by headless
~ 部門より
ドナルド・トランプ氏をイメージしたプログラミング言語「TrumpScript」が公開されている(GitHub — TrumpScriptThe Vergeの記事)。

TrumpScriptはPythonベースで、米ライス大学のハッカソンのために学生が24時間以内で作成したものだという。ハッカソンで優勝することはできなかったが、よりトランプ氏らしくするためのさまざまな提案がGitHubのIssuesに寄せられており、改良も進められているようだ。

TrumpScriptの主な特徴は以下のようなもの
  • 浮動小数点値は半端なので使用できない
  • 100万未満の数値は使用できない
  • インポートは絶対に認めない
  • True/Falseではなくfact/lieを使用する
  • プログラムは「America is great.」で終わる必要がある
  • 45億は100億に修正される

除算により数値が浮動小数点値となった場合にはそのまま処理されていたが、指摘を受けて小数点以下を切り捨てるように修正された。一方、除算の結果100万未満の数値になった場合は、現在のところそのまま処理されている。

変数名として使用が認められるのは、最も一般的な英単語、トランプ氏の好きな単語、現在の政治家の名前のみで、計2,164個の単語がallowed_words.pyに定義されている。大文字小文字は一切区別しない。余分な単語はコンパイル時に自動で削除されるため、任意の位置にコメントを入れることが可能だ。ただし、認められない単語を使用するとエラーメッセージで批判される。また、「is/are」が代入演算子/比較演算子として定義されているので、コメントに入れる場合は注意が必要だ。

12643218 story
アナウンス

ゲームAIプログラミングコンテストSamurAI Coding「侍3x3 軍団バトル」予選受付中 12

ストーリー by hylom
挑戦してみてはいかがでしょうか 部門より
washizaki 曰く、

今年度も情報処理学会により国際AIプログラミングコンテストSamurAI Coding 2015-16が開催されます。ゲームをテーマにプログラミングスキルを競う国際的なコンテストであり、学会主催の形では3年目になります(前回2014-15の紹介記事)。

予選応募チャンスは日本時間1月13日20:59締切の1次募集と2月9日20:59締切の2次募集の計2回。1次募集で選抜されなかった場合も2次募集に再チャレンジできます。予選を勝ち抜いたチームは2016年3月に第78回全国大会・慶應義塾大学にて併設される決勝に進出でき、旅費補助等の特典も予定されています。

今回のゲームは「SamurAI 3x3 (サムライ スリー オン スリー)」。それぞれ異なるAIプログラムで制御される3名のサムライで軍団を組み、二つの軍団で領地獲得を競います。競技参加者のAIプログラムは1名のサムライを制御する点がポイント。その場で決まる味方のAIプログラムとの協調が勝利のカギといえます。1人でもチームでも、学生も社会人も、誰でも楽しく参加できます。プログラミング言語として現時点でC++、Java、Pythonに対応しています。

12556219 story
iOS

10月のTIOBE Index、Objective-Cがトップ10落ち 51

ストーリー by hylom
Swiftどうなの 部門より
headless 曰く、

プログラミング言語の人気度を調査してランキング化した10月のTIOBE Indexでは、Objective-Cのレーティングが前月から0.402ポイント減の1.419%で14位となり、トップ10から落ちている(TNWSlashdot)。

Objective-Cの前月からの減少はわずかだが、6月には4.339%で5位だった。特に8月から9月では3.195%から1.821%に大きく減少している。1年前には10.096%で3位だったObjective-Cは、この1年でもっとも変動の大きいプログラミング言語となっている。

1~6位の順位に前月からの変動はなく、Java、C、C++、C#、Python、PHPの順となっている。7位は前月の8位から上昇したVisual Basic .NETが入り、JavaScriptが1ランクダウンして8位、Perlは前月と変わらず9位。RubyがObjective-Cに代わって10位に入っている。

Objective-Cが減少したことで注目されるSwiftだが、前月から0.089ポイント増の1.277%で15位にとどまる。Swiftは6月に1.44%まで増加して14位となったのがピークで、7月と8月には減少。9月から上昇に転じたところだ。

PYPLでもSwiftはObjective-Cに続く9位に上昇しているが、シェアはObjective-Cの5.3%に対し、2.8%に過ぎない。今後はどうなるだろうか。

追記 2015/10/21 by headless:
9月のPerlのレーティングを10月分と誤って順位をつけていたため、順位の変動に関する記述を修正した。

12269433 story
オープンソース

人気オープンソースプロジェクトは何人欠員が出たら破綻するのか 24

ストーリー by hylom
個人の活躍が大きいプロジェクト、という指標 部門より
taraiok 曰く、

Marco Tulio Valentemtov氏は、GitHub上にある人気の高い133本のオープンソースプロジェクトにおけるトラック係数(Truck-Factor)を調査したそうだ(Marco Tulio ValentemtovSlashdot)。

トラック係数は不意の事故などによってメンバーに何人欠員が出るとプロジェクトが破たんするかを表す係数で、バス係数とも呼ばれる。プロジェクトの進行で理想的なのは、メンバーが欠けても被害が最小になるように均等に負担することだ。しかし、多くのプロジェクトは一人の実力者に支えられていることが多い。

先のMarco Tulio Valentemtov氏の調査によると、6種類の言語系プロジェクトにおけるトラック係数はJavaScriptとPythonが22、Rubyが33 、C/C++が18、Javaが21、PHPが17という結果だった。BitcoinでのTruck-Factorはたったの3で、 Androidでは12。なおLinuxは90と上位の数字になっている。

なお、Linuxの開発を主導するLinus Torvalds氏は「俺が死んでもLinux開発は問題なく続くだろう」と述べている

12249714 story
プログラミング

プログラミング言語をロード・オブ・ザ・リングにたとえると? 59

ストーリー by headless
特徴 部門より
テクノロジー系ブログのCarlCheo.comが、プログラミング言語をロード・オブ・ザ・リングの登場人物などにたとえた初心者向け言語選択フローチャートを公開している(CarlCheo.comの記事ITworldの記事)。

全部で9種類のプログラミング言語が取り上げられており、JavaScriptはホビット(その力が過小評価されていることが多い)、Cは一つの指輪(その力は誰もが知っている)、Objective-Cはスマウグ(孤独で黄金を愛する)などとなっている。ただし、プログラミング言語の特徴を説明するのにロード・オブ・ザ・リングを使用しているだけで、フローチャート自体にエピソードが使われているわけではない。初心者向けということでPythonにたどり着く選択肢が多いようだが、内容としてはごく普通のものとなっている。

このほかのプログラミング言語と登場人物の組み合わせは以下の通り。皆さんのご意見はいかがだろう。他にも追加すべきプログラミング言語と登場人物の組み合わせがあるだろうか。
  • Python — エント
  • Java — ガンダルフ
  • C++ — サルマン
  • C# — エルフ
  • Ruby — (ミドル・アースの)人間
  • PHP — オーク
12054028 story
プログラミング

GitHubで最も「醜いハック」が使われているのはC言語 84

ストーリー by headless
正直 部門より
開発者の皆さんの中には、時間や知識が足りない場合や、ちょっと面倒だからといった理由で、間に合わせに自分でも最良とは思えない(が、目的は達せられる)コードを書いたことがある方もいるだろう。ITworldのPhil Johnson氏がGitHubのデータを調査したところ、このようなコードを書いている(少なくとも自らそれを認めている)開発者が最も多かったのはC言語の開発者だったそうだ(ITworldの記事本家/.)。

調査方法は、GitHubの検索機能を使って「ugly hack(醜いハック)」という文字列を含むコードファイルを検索するというもの。その結果、C言語では181,000ファイルがこの文字列を含んでいたという。これにPHP(79,000ファイル)、JavaScript(38,000ファイル)、C++(22,000ファイル)、Python(19,000ファイル)が続く。

さらに、Google BigQueryを用いてGitHub Archiveから2013年1月1日~2015年5月1日までに作成されたフォークされていないリポジトリの数を言語ごとに抽出。同期間で「ugly hack」を含むファイルを検索し、各言語でリポジトリ1件あたりの「ugly hack」出現回数を計算したところ、やはりC言語が圧倒的に多い0.4232回。2位のPHPの3倍以上、12位のJavaの50倍近い結果になったという。

ただし、修正された部分に「Fixed an ugly hack」といったコメントが付けられている場合や、1ファイルに複数の「ugly hack」が含まれている場合にも1回としてカウントされてしまう点が今回の調査方法の問題点だという。どちらにしても、C言語の開発者が最も多くugly hackを行っているか、C言語の開発者に正直者が多いかのどちらかだとしている。皆さんの場合はいかがだろうか。
12039129 story
プログラミング

MS、LinuxやMac OS Xでも動作する「Visual Studio Code」プレビュー版を公開 23

ストーリー by hylom
コードエディタ群雄割拠時代 部門より
insiderman 曰く、

Microsoftが開発者向けイベント「Build 2015」にて、WindowsだけでなくMac OS XやLinuxでも動作するコードエディタ「Visual Studio Code」を発表した(SourceForge.JPTechCrunch)。

ASP.NETやNode.jsアプリケーション開発向けとのことで、入力補完機能IntelliSenceや変数/プロパティの定義のポップアップ表示、ビルトインのデバッグ機能、Gitによるソースコード管理サポートなどを備えている模様。

デバッグ機能が使えるのはASP.NET 5とNode.jsのみのようで、またドキュメントの「Languages」ページを見ると、リファクタリングや定義の参照機能を利用できるのはC#とTypeScriptのみ。IntelliSenseについてはJavaScriptやJSON、HTML、CSS、LESS、SASSで利用でき、C++やObjective-C、Java、PHP、Python、XMLなどについてはSyntax Coloringおよび括弧の対応付けがサポートされるとのこと。Markdownのプレビュー機能もあるようだ。事前定義したビルドコマンドを実行する「Tasks」機能もあるとのことで、汎用のコードエディタとしても使えそうである(あれ、Perl対応は?)。

11982168 story
プログラミング

メモリー上で処理するよりもディスクに直接書き込む方が高速? 86

ストーリー by headless
効率 部門より
ソフトウェア開発者の間では一般的に、ディスクアクセスを避けてできるだけメモリー上で処理することが実行時間の短縮につながると考えられているが、これに逆行する研究結果をカナダ・カルガリー大学とブリティッシュコロンビア大学の研究チームが発表した(論文: PDFITworldの記事本家/.)。

実験はJavaおよびPythonを使い、WindowsおよびLinux上で1バイト、10バイト、1,000バイトの文字列をそれぞれ100万バイトになるまで繰り返し結合し、結果をディスクに書き込むというもの。比較対象としては同じく1バイト、10バイト、1,000バイトの文字列を結合せずに計100万バイトになるまで直接ディスクに書き込んでいる。また、同じコードにより100万バイトの文字列を処理する実験も行っている。

その結果、Javaで1バイトの文字列を結合処理してからディスクに書き込んだ場合、ディスクへの直接書き込みと比べて約9,000倍の時間がかかったという。PythonではJavaほどの速度低下は見られなかったものの、直接書き込みの方がメモリー上での処理よりも数百倍高速だったとのこと。また、Linux上で実行したPythonのコードでは、元の文字列に新しい文字列を結合する方が新しい文字列に元の文字列を結合するよりも高速だったとしている。

論文ではこのような結果になった原因として、OSによるバッファリングがあるためにディスクへ直接書き込んでも速度がそれほど低下しないと指摘。また、OSのメモリー管理がメモリー上での処理を低下させる原因になる可能性もあるとし、開発者はOSやライブラリーなどについてより多くの知識を持つことでパフォーマンスを改善できるなどと結論付けている。ただし、論文の最後に掲載されているコードを見ればわかるように、文字列の結合には「+=」または「+」を使用しており、効率の良い処理を選択しているとはいえない。論文には「JavaではStringBuilderやStringBufferといったミュータブルなデータ型を使用すれば結果が大幅に改善する」といった記述もある。本家/.では結論に合わせた結果が出るように実験したのではないかとの指摘もみられるが、皆さんはどう思われるだろうか。
11934927 story
Google

ドイツの音楽レーベル、SkypeやJavaなどのダウンロードページに対し権利侵害を訴える 28

ストーリー by hylom
無差別テロか 部門より
insiderman 曰く、

GoogleはDMCA(米デジタルミレニアム著作権法)に基づき、著作権を侵害しているコンテンツを検索インデックスから削除するよう要求するシステムを提供しているが、ドイツの音楽レーベルであるTotal Wipes Music Groupが、同社が権利を持つコンテンツの著作権を侵害しているとして、これを使ってPythonやMySQL、Git、OpenOffice、Node.jsといった著名ソフトウェアのダウンロードページをインデックスから削除するよう要求しているそうだ(TorrentFreak)。

申し立て対象のURLはchillingeffects.orgで確認できるが、そのほかにもArch LinuxやUbuntuといったLinuxディストリビューションや、SkypeやVMware、Dropboxといった非オープンソースソフトウェアのダウンロードページも並んでいる。

侵害されている著作物のURLとして「http://www.totalwipesmusicgroup.com/releases/aborigeno-music/abmu021_wild-vol7」が掲示されているのだが、このページは単に同社の扱っているCDの紹介ページで、「侵害している」ページのコンテンツとは一切関係がなく、単純にURLに「download」という文字列が入っているURLを列挙しただけのようにも見える。

Total Wipes Musicは毎日大量のURLに対し「濫用」と言っても良いレベルで申し立てを行っているようで(Google透明性レポート)、過去には同社と提携している音楽配信サイトに対しても削除申し立てを行ったり、特定の文字列を含むページに対し無差別に削除申し立てを行ったりしていたようだ(TorrentFreakの別記事)。

不幸にもこの申し立てが通ってしまったケースもあり、たとえば「Rock」や「Coffee」という単語に関連するというだけで無関係なアーティストやIKEAのWebサイトがインデックスから削除される事態も発生している模様。

11928641 story
プログラミング

注目を集め始めるプログラミング言語「Nim」 60

ストーリー by headless
注目 部門より
本家/.「Nim Programming Language Gaining Traction」より

Nimは最近注目を集め始めている新しい静的型付けプログラミング言語だ。入門用としては「Nimの特別な点は何か」「何がNimを実用的なものにしているか」「どのように導入するか」といった記事を読んでみるといいだろう。言語的にはPythonやPascalの影響を受けた文法を使用しており、優れたパフォーマンスやC言語とのインターフェイス、そして強力なメタプログラミング能力などを提供する。「Unix in Rust」の作者がRustを捨ててNimに移行したほか、アーリーアダプターの企業でも使われ始めている。

11901264 story
プログラミング

ソフトウェアテストシンポジウム「JaSST」 '15 Tokyo、2月21~22日に開催 6

ストーリー by hylom
興味のある方はいかがでしょうか 部門より
shimashima 曰く、

すでに募集が開始されて時間が経ちますが、2015/02/21(金), 22(土)の二日間にわたり日本最大級のソフトウェアテストに関するイベントであるソフトウェエアテストシンポジウム(JaSST)'15 Tokyoが開催されます。

基調講演には、テストコンサルタントのマイケル・ボルトン氏を招いて「How To Get What You Want From Testing (for Testers, Developers, and Managers) あなたの欲しいものはどうやってテストから手に入れるか? ~テストエンジニア、開発者、マネージャのために~」というテーマでお話いただきます。

通常セッションでは、「テストコードクリニック」と題して残念なテストコードを修正していくものや、「Web.JaSST ~ウェブ開発のテスト~」としてWebサービス開発でのテストのあり方について議論を行うなど様々なものがあります。

通常セッションとは別に有償チュートリアルとしても基調講演者のマイケル・ボルトン氏によるものの他、TDDとリファクタリングについてWebDriver+Pythonによるテスト自動化入門テストモデリングに関するものと実践的なものがあります。

このほか注目すべきものとして、JAXA(宇宙航空研究開発機構)でロケット・人工衛星の推進系開発/運用に携わっている香河英史氏による「動いてくれるが当たり前 ~人工衛星の手足「推進系」確認試験の現場と信頼性確保・向上にむけて~」というタイトルでの招待講演があります。普段なかなか聞くことができないであろうロケットの推進系における品質・信頼性確保についてお話いただけます。

招待講演は二日目の土曜日ということで、業務外での参加が比較的しやすくなっていますのでご興味を持たれた方はいかがでしょうか。

なお、私は当日裏方で働いています、たぶん。

typodupeerror

「毎々お世話になっております。仕様書を頂きたく。」「拝承」 -- ある会社の日常

読み込み中...