入社のごあいさつ

皆様はじめまして、今年6月に入社しました kmrmshk ともうします。

これまでは主にウェブサイトのコンテンツ制作にかかわることが多く、今は懐かしいフルフラッシュサイトであったり、JavaScriptとCSSを駆使してステートフルなウェブサイト、ウェブアプリの開発に携わらせていただきました。
また、ネイティブアプリ開発にも興味があり、Objective-CやAIRによるiOS/Androidのアプリ開発も行って参りました。

最近は自宅サーバーにてインフラまわりの環境構築や、Node.js、Jenkinsなどを活用した自動化をいろいろ試すのが趣味となっています。さらには、dockerやvagrantによる仮想化技術を活用して効率の良い環境構築方法を探るのも楽しみの一つです。

好きなCMSはMODX、好きなLinuxディストリビューションはDebianです!
最近SublimeText3をメインエディタに鞍替えしました。Sublimergeは神ツールです!
なにとぞよろしくお願い致します!

さて、早速なのですが普段の生活で配列やオブジェクトを操作するとき、処理が地味に面倒なときがあるかと思います。
例えば連想配列に対して、要素だけを取り出してから配列として扱いたい!など・・・

// こんな連想配列を・・・
hash = {
  1: {hoge: "hello"}, 
  2: {hoge: "world"},
  3: {hoge: "!"}
};

// 必要な要素だけ抽出して配列として宣言したり・・・
var props = [];
for(var item in hash){
  var obj = {};
  obj[item] = hash[item];
  props.push(obj);
}
/*
// propsの中身
props = [
  {hoge: "hello"},
  {hoge: "world"},
  {hoge: "!"}
];
*/

// 配列要素を取り出して文字列として操作したいとき
var props = [];
for(var item in hash){
  props.push(hash[item]['hoge']);
}
console.log(props.join(" "));
// [output] hello world !

と、いうことがお料理を作っている最中や、洗濯物を干すときについつい出てくるかと思います。
でも、毎回 for…in でまわすのはちょっと・・・、とか、「hoge」というキー文字列で指定して値取り出すのはイケてないなんて思ってらっしゃることでしょう。

そんな時に、手軽に扱えるユーティリティライブラリ「Lodash.js」というのがあります。
もともとは JavaScript のライブラリとして「Underscore.js」という、これまた便利なオブジェクト操作のユーティリティライブラリがあるのですが、その派生ライブラリとして登場しました。
このライブラリを利用すると、次のように可読性があり、メンテナンス性の高いコードが書けるようになります。

hash = {
  1: {hoge: "hello"}, 
  2: {hoge: "world"},
  3: {hoge: "!"}
};
// 必要な要素だけ抽出して配列として宣言します(lodash版)
var props = _.map(hash, function(item){return item;});
/*
// propsの中身
[
  {hoge: "hello"},
  {hoge: "world"},
  {hoge: "!"}
]
*/

// 配列要素を取り出して文字列として操作したいとき(lodash版)
console.log(_.map(hash, function(item,key){
   return _.chain(item).groupBy().keys().first().value();
}).join(" "));
// [output] hello world !

実装で地味に時間のかかりがちなコレクション処理が、lodash(underscore)によってかなりシンプルで扱いやすいものになるはずです!

この便利なライブラリは、有志によってJavaScript以外の言語でも提供されています。
・PHP 「underscore.php
・Objective-C 「underscore.m
・Python 「underscore.py

RubyやSwiftでは最初からコレクションメソッドが充実しているので、導入しなくても標準で扱えます(さすがRuby・・・)
また、C++では標準テンプレライブラリとして搭載されています。

長文失礼しました。
普段の生活で何らかのご参考になりましたら幸いです。

Windows10

こんにちは、tomです。
いつまで暑い日が続くのでしょうか、夏バテ気味です。

Windows10がリリースされました。
最近ツールを作成する事が多いので、OSなどの互換性テスト等をする事が多く。
ツールでの対応等テストするために、Windows10を入れようと作業をしました。

アップデートだか実施するとエラーになり、中々進まないとの情報を得たので、
メディアを作成してから、インストール作業を開始する事にしました。
メディアから実行したからか、思ったより簡単にインストールが終わったので、
Windows10でどのように変わったのかと見ていたら、
画面が突然ブラックアウトし、ウンともスンとも言わなくなりました…
再起動してみると、Windowsの窓画像まではでるのですが、
その後ずっと黒画面のまま…

調べてみると、どうやらDellでまだ確認が取れていない機種のようで、
「Windows10へのアップグレードをテストしていない製品」 でした。

載っているのだけがWindows10のテスト済の製品みたいです。
http://www.dell.com/support/article/jp/ja/jpbsd1/SLN297954

ディスプレイドライバが原因みたいですが、とっとと諦めて、
テスト済みの製品と載っているPCがあったので、そのPCにWindows10を
インストールしたところ、特に問題は発生しなかったです。
先にもう少し調べてからインストールすればよかったです。