2016年の最初に組むプログラムは何でしょうか? 58
year++ 部門より
ここ数年,毎年同じタレコミをさせていただいておりますが,2016年も同じお題を出したいと思います(2015年1月1日の同じお題のストーリー)。
スラド読者の皆様におかれましては,毛筆で字をしたためるよりもキーボードでプログラムなどを書くほうがなじみ深いと思われますが,年が明けて最初に書く(書いた)プログラムはどのようなものでしょうか?
アナウンス:スラドとOSDNは受け入れ先を募集中です。
ここ数年,毎年同じタレコミをさせていただいておりますが,2016年も同じお題を出したいと思います(2015年1月1日の同じお題のストーリー)。
スラド読者の皆様におかれましては,毛筆で字をしたためるよりもキーボードでプログラムなどを書くほうがなじみ深いと思われますが,年が明けて最初に書く(書いた)プログラムはどのようなものでしょうか?
Javaにはたびたびセキュリティホールが見つかっており、古いバージョンのJavaランタイムは削除することが推奨されている。しかし、Javaのアップデートを行った際、古いバージョンのランタイムが適切に削除されないことがあったという。そのため米連邦取引員会(FTC)とOracleが協議を行い、Oracleがユーザーに対し警告を出すことで合意したそうだ(CNET Japan)。
FTCの発表によると、OracleはTwitterとFacebook上にJavaのセキュリティに関する説明を行う文書へのリンクを掲載するといった方法で、ユーザーに対し問題点を周知させるとのこと。
現時点でWindows用のインストールパッケージは提供されておらず、ソースからビルドする必要がある。タレコミ子の環境ではpanda (Perl 6のCPAN的なもの)によるモジュールのインストールがエラーになってしまった。
MicrosoftがアドウェアによるWebページへの広告埋め込みからユーザーエクスペリエンスを守るため、アドウェアの評価基準を更新している(Microsoft Malware Protection Center、Guardian、Softpedia、Register)。
Microsoftでは昨年4月、プログラムの外でそのプログラム自体を除く製品やサービスの広告を表示するプログラムに対する評価基準を発表。同年7月からは、評価基準に合致しないプログラムをMicrosoftのセキュリティ製品がアドウェアとして検出し、ユーザーへの通知に加え、プログラムの無効化措置も開始した。
昨年4月に発表された評価基準は以下のようなもの。
- 広告内で明確に広告を閉じる方法を提示
- 広告内で広告を生成したプログラム名を明示
- 広告に表示されるプログラム名を明記した標準的なアンインストール方法を提供
しかし、広告を埋め込むソフトウェアは進化しており、今年はLenovoが「Superfish」と呼ばれるアドウェアをプリインストールしていたことが問題になるなど、さまざまな中間者攻撃(MiTM)の手法を用いるアドウェアが登場している。これに伴い、MicrosoftではWebページに広告を埋め込むプログラムに対する評価基準を追加。新たな評価基準では、Webブラウザのサポートする拡張性モデルに従い、インストールや実行、無効化、削除が可能であることが必須となる。
Microsoftでは新たな評価基準に準拠することを開発者に求め、2016年3月31日以降、評価基準を満たさないプログラムの検出および削除を開始するとのこと。なお、Microsoftは広告の必要性については認めており、ユーザーによる選択とコントロールを可能にすることを重視しているようだ。
他人の書いたコードを読む能力はプログラマーにとって重要とされており、コードリーディングに関する書籍も出版されている。
しかし、オープンソースプロジェクトは数多く、読み慣れない素人には良いコードの選定すら難しい。プログラマーごとにターゲットが異なるため、読んで役立つコードも人それぞれだろう。今年はGoogleのAIやAppleのSwift、MicrosoftのVisual Studio Codeなど、新たにオープンソース化された注目すべきプロジェクトもある。
そこで、あなたの知っている領域において「今年はこのコンパイラのコードがすごかった」「このJavaScriptフレームワークはコードが綺麗」「これはモダンなCコードを書くためにぜひ読むべき」と思うコード・プロジェクトについて語っていただきたい。
2015年と銘打ってはいるが、今年に限らず、少し早めの年末大掃除のつもりで記憶をさかのぼっていただければ幸いである。
Microsoftの元CEO スティーブ・バルマー氏が、Windowsスマートフォンを成功に導くにはAndroidアプリを実行できるようにする必要があるとの考えを示したそうだ(The Verge、Bloomberg Business、WinBeta、Neowin)。
Microsoftが先日開催した年次株主総会でアプリの不足について出席者から質問を受けたCEOのサティア・ナデラ氏が、Windowsユニバーサルアプリを推進する方針を強調したことに対するもの。バルマー氏はユニバーサルアプリの推進だけでは十分なアプリが揃わないと考えているようだ。
Microsoftは他のプラットフォームからユニバーサルアプリへの移植を容易にする4つの「Windows Birdge」プロジェクトを4月に発表したが、Windows Bridge for Android(Project Astoria)の開発は計画通り進んでいないとも報じられている。現在は復活しているが、Windows Bridge for Androidのページも一時削除されていた。
PHP開発チームは3日、ついに10年以上にわたるPHP 5の時代に終止符を打ち、「PHP 7.0.0」の公式リリースをアナウンスした(アナウンス、OSDN Magazine)。
PHP 7ではメジャーバージョンが上がっただけのことはあり、大幅な改造が図られている。まず最も恩恵を受けやすいのが実行エンジンの見直しによる性能向上である。内部のデータ構造の見直しなどが図られた結果、その性能はPHP 5.6と比較して2倍高速になり、メモリ使用量も50%改善したという。これによりJITコンパイラを用いるHHVMにも匹敵するパフォーマンスとなっている。
言語仕様にも手が加えられており、Fatal Errorなどの致命的エラーの数々が例外として扱われるようになった他、無名クラスの導入や以前にも話題になったスカラー型宣言、戻り値の型宣言にNull合体演算子の導入など、多数の機能追加が行われている。また廃止予定とされてきたeregなど古いモジュールの削除も実施された。変更点の詳細については「PHP 5.6.x から PHP 7.0.x への移行」ページを参照されたし。
Microsoftは11月30日、開発者としてのスキルがなくてもビジネスアプリケーションを作成できるという「PowerApps」を発表した(PowerAppsブログ、Register、VentureBeat、TNW News、V3.co.uk)。
PowerAppsではMicrosoft Officeのような画面上でアプリ開発が行える。テンプレートを使用することも可能で、簡単な操作でアプリを作成できるという。クラウドサービスやデータベースへの接続機能も組み込まれており、作成したアプリはメールアドレスを指定するだけで共有可能だ。作成したアプリはAndroidやiOS、Windowsの専用クライアント上で実行するほか、PowerApps Webサイトでの直接実行にも対応するとのこと。
PowerAppsは今後予測されているモバイル開発者の不足に備え、業務内容を把握している人なら誰でも業務に必要なアプリを作成できるようにするためのツールだ。一方、開発者やITプロフェッショナルはAzure App Serviceを利用することもでき、データ接続やAPIを追加することも可能とのこと。現在のところPowerAppsの提供は招待制となっており、Webサイトでメールアドレスを登録しておけば、利用可能になった時点で招待される。
C++コンパイラの元祖とされている「Cfront」がリリースされてから30年が過ぎたことを記念して、Cfrontのソースコードをコード静的解析ツールであるPVS-Studioで解析したという話が公開されている(本の虫)。
この記事自体も大変興味深いのだが、タレコミ主が特に惹かれたのが、「パラノイアテスト」だ。引用されていたツイートによると、Google Chromeには通常ではありえないビット異常をチェックしてアプリケーションのバグと区別するために「パラノイアテスト」が搭載されているらしい。
タレコミ主は不勉強故か、パラノイアテストの確立された標準的な手法について書かれた書籍や文献に心当たりがない。また、Chrome以外で参考になるオープンソースプロジェクトを探すのも骨が折れそうだ。
そこで聞きたいのだが、スラドの諸兄は自分の関わったプロジェクトで、パラノイアテストを見かけたり、実装したことがおありだろうか。
心当たりや実際の知見、あるいは又聞きで聞いた根も葉もない噂などでも構わない。パラノイアテストについて思うがままに語り合って頂ければ幸いである。
私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson