今年の漢字

早いもので、もう年末が近づいてきましたね。

毎年この時期になると、「今年の漢字」が発表されます。
何だろうと予想して、意外と楽しみにしていたりするんです。

昨年(2014年)の「税」には、ちょっとがっかりしましたけどね。
さて今年の漢字はなんでしょうか?
ちなみに、毎年12月12日の漢字の日に、京都の清水寺で発表されます。
昔からやっていたように思ってましたが、1995年から始まったみたいです。

私の予想としては、
「上」  日本郵便上場、株価上昇、物価上昇…
「雨」  鬼怒川の反乱など、各地で豪雨被害
という感じだと予想しておりました。

そして今年の漢字発表されました。 「安」だそうです。
「異常気象やテロの不安」と、「安心して下さい」 からノミネートだそうです。

何だかここ数年はしっくり来ないですね。

研修旅行 in ○○○

閲覧ありがとうございます。Armadaです。
先日、研修旅行で日本有数の温泉地を訪れました。
さて、○○○に入る文字は何でしょう??

DSC_0206宿にチェックイン後、散策に出発。
紅葉のピークは過ぎていましたが、それでも山は綺麗でした。

 

 

 

 

 
DSC_0209散策後は名物の「湯もみショー」。
ショーが開始する前の風景ですが、開始してからは御姉様方の草津節に合わせた「湯もみ」に魅了されてしまい、写真を撮るのすっかりを忘れてしまいました。

 

 

 

 

DSC_0210夕暮れ時の「湯畑」。建物に灯された明かりと湯けむりがなんとも言えない雰囲気を醸し出していました。冬場になると「湯畑」を挟んだ反対側が見えなくなるほどの湯けむりになるとか。次は冬に来ようと思います。

 

 

 

 

もうおわかりですね。○○○に入る文字は『くさつ』です。
(2枚目の画像をよく見ると「湯もみ板」に”くさつ”と書いてありますね)
湯もみショーで御姉様方に癒されたあとは、宿に戻り温泉・食事を満喫。
もちろん夜の草津を散策したことは言うまでもありません。

DSC_02152日目は「草津ガイドツアー」。赤いジャンパーの方がガイドさんです。
推定70歳オーバーですが、バイタリティ溢れる元気な方でした。
ちょいちょい草津から脱線するのですが、いろいろと勉強させて頂きました。
 
DSC_0216「湯畑」の湯量は毎分4,000リットル。何気なく歩いていた遊歩道は岡本太郎氏デザインの煉瓦をモチーフにしたものです。ガイドさんの話を聞かなければ気付かないところでした。

 

 

 

 

DSC_0222ガイドツアー終了後は各自お土産を買って「長野原草津口駅」に移動。とても綺麗な駅でした。これで研修旅行も終わりです。

 

 
人生初の草津でしたが、宿泊した宿、温泉は最高でした。
また、プライベートで来てみたいと思います。
その時は6代源泉を制覇するぞ!

ChartDirector

こんにちは。こんばんは。おはようございます。
Q-39です。お世話になっております。

最近ChartDirectorをはじめました。
なかなかネットに情報がないので、
コメント付きサンプルソースを
備忘録的な感じで残しておきます。



#include "chartdir.h"

void Test(void)
{
  // データの定義
  double Data[] = { 9.5, 8.7, 5.9, 3.7, 1.1, -0.2, -1.6, 1.8, 3.0, 5.6 };

  // 作成するビットマップのサイズを決める
  XYChart *graph = new XYChart(500, 300);

  // ビットマップとプロットエリア(グラフ)の位置関係を決める
  // (プロットエリアのサイズは400×200)
  graph->setPlotArea(50, 50, 400, 200);

  // Y軸のスケール(-5~15で5刻み)
  graph->yAxis()->setLinearScale(-5, 15, 5, 0);

  // X軸のスケール(1~12で2刻み)
  graph->xAxis()->setLinearScale(0, 12, 2, 0);

  // グラフ作成レイヤの作成
  LineLayer *layer = graph->addLineLayer();

  // X軸のデータ範囲を決める(データが10個なので1~10とした)
  layer->setXData(1, 10);

  // グラフのデータを設定(色は赤(RGB))
  layer->addDataSet(10, Data, 0xff0000);

  // ファイルに出力(拡張子で自動判別してくれる)
  graph->makeChart("c:\\temp\\test.png");

  return;
}


こんなグラフが出来上がりです。
グラフの出来上がり

入社のごあいさつ

皆様はじめまして、今年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を
インストールしたところ、特に問題は発生しなかったです。
先にもう少し調べてからインストールすればよかったです。

Salesforceで気を付けたい全角/半角の扱い

閲覧ありがとうございます。Armadaです。
今回はSalesforceネタです。

クライアントアプリからSalesfoceにデータを登録する際、キー重複を避けるために事前にSOQL(Salesforce独自のクエリ言語)でデータを抽出→重複キーの存在チェックという流れでアプリ側でチェックを行うわけですが、ここで全角/半角問題が出てきます。

どんな問題かというと、文字によってSOQLとデータ登録時では全角/半角の区別が異なるため、SOQLでは重複なしとなってもデータ登録時に重複ありでエラーとなるのです。

文字による全角/半角の扱いをまとめると以下のとおりです。

文字 SOQL 登録時
アルファベット 区別なし 区別なし
数字 区別なし 区別なし
カタカナ 区別あり 区別なし
記号
※文字により異なる
区別なし 区別なし

アルファベット、数字は全て同じで「区別なし」、カタカナはSOQLでは「区別あり」、登録時は「区別なし」となります。

記号は、というと文字によって異なります。
基本的には上記の表のとおりですが、一部の記号は区別ありだったり、なしだったり。
扱いが異なる記号について調査した結果は以下のとおりでした。

文字コード 記号 SOQL 登録時
0x22 区別あり 区別あり
0x27 区別なし 区別あり
0x5c \ 区別あり 区別あり
0x5e ^ 区別あり 区別なし
0x60 ` 区別なし 区別あり
0x7e ~ 区別あり 区別なし
0xa1 区別あり 区別なし
0xa2 区別あり 区別なし
0xa3 区別あり 区別なし
0xa4 区別あり 区別なし
0xa5 区別あり 区別なし
0xb0 区別あり 区別なし
0xde 区別あり 区別あり
0xdf 区別あり 区別なし

これらの記号やカタカナは基本的にキー項目の値としては利用しないため、登録時の入力チェックでエラーとするなど、登録しない仕組みを考えた方が良さそうです。
是非、参考にしてください。

OnePlus One / BALMUDA AirEngine

昨今、ハードウェアの世界で色々なベンチャーが誕生し、特色のあるスマートフォンや家電を手に入れる機会が増えてきました。私は、人と違ったものを欲しがるところがあるので、気になった製品を勢いで購入してしまいます。その中で私が気に入っている製品として OnePlus One と BALMUDA AirEngine があります。

1. OnePlus One

composition-main-aw@2x

こちらは、中国の新興メーカーOnePlus社が販売しているスマートフォンで、THE FLAGSHIP KILLER と謳っており、他の大手メーカーのフラッグシップ機を超えるようなスペックを誇っています。購入するためにはInvitationを受ける必要があり、購入までのハードルが非常に高かったのですが、現在は自由に購入することができます。

OSはCyanogen 11S というAndroid 4.4をベースにしたカスタムOSを搭載していますが、OxygenOSというAndroid 5.0.2をベースとしたカスタムOSをOnePlus社が開発しており、そちらへ載せ替えることもできます(ただしRoot化が必要)。

16GBのSILK WHITE と、64GB SANDSTONE BLACK の2種類が販売されており、2015/6/15現在、それぞれ249ドルと299ドルとスペックに対して非常に低価格に設定されています。私が購入した当初はそれぞれ299ドル、349ドルだったので円安の影響を含めても非常に安く手に入れることができます。ただし、直接日本への発送はしていないため、海外転送サービスを利用するなどの必要があり、配送料を含めて考えると100ドル以上高くなると考えたほうがよいです。

もちろんSIMフリー端末なので、私はOCNモバイルONEを契約し格安運用しています。

2. BALMUDA AirEngine

001

BALMUDA社は2003年に設立された日本の家電メーカーで、デザイン性の高い白物家電をメインで販売しています。いわゆる大手家電メーカーの製品と比べるとやや高めですが、従来の製品には見られないスタイリッシュなデザインでインテリアコーディネートするときに一役買ってくれます。

私は、AirEngineという空気清浄機を利用しています。購入当時は花粉の季節だったので、花粉を除去したいという思いが非常に強かったのですが、購入後は大分楽になった記憶があります。ただ、上部の大きなファンで空気を天井から循環させ、下部のフィルターで集塵するというコンセプトで、花粉等の小さな粒子には非常に効果的なのですが、どうも猫の毛などの大きめのハウスダストに関しては、ダイキン社の空気清浄機に分があるように感じています。ですので、我が家ではAirEngineのJETモードで空気を循環させつつ、ダイキン社の空気清浄機を併用して大きなハウスダストを取り除くというソリューションを展開しています。

最後に

もともと半導体設計エンジニアで、ハードウェア寄り仕事をしていたことから「ものづくり」に対するこだわりについてはわかっているつもりです。今はゲーム開発を行っていますが、ハードウェアベンチャーも最近盛り上がりつつあるので、いずれはそちらの分野にも強いエンジニアになりたいです。

Macの画面を頑張って広げる

MacBookをはじめとするLaptop型のMacは、単体で開発に使用するとどうしても画面が狭くて辛いです。
特にAirの場合Retinaがないので、コーディング中に:vsplit等すると幅が足りず作業効率が落ちてしまいます。。。
そこで表示領域を広げる方法をいくつか考えてみました。

1. Duet Display

http://www.duetdisplay.com/
iOSデバイスを外部モニタとして使用できるアプリです。手軽に物理的に表示領域が増やせるので、モニタを用意できないとき等とても重宝します。
導入はアプリをiOSとMacにそれぞれインストールして、ケーブルで接続するだけなのでとても簡単です。
似たような他のアプリと比べると、有線の為レイテンシが比較的低いですが、Unityのゲームビュー等ではさすがに表示が追いつきませんでした・・・。自分の環境では、UnityのConsole表示にちょうど良いです。

2. AirServer

http://www.airserver.com/
別のPCをAirPlayのサーバにできるソフトです。サーバとしてはWindows/Mac両方対応していますが、そもそもクライアントとなるMacと別にそれらが一台必要なので、活用できるケースは限られそうです。
Wi-Fiですがなかなかレイテンシが低く、コーディング程度ならさくさくこなせます。そもそも本来の用途と若干違う気もしますが・・・。

3. QuickRes

http://www.quickresapp.com/
1, 2と違って、外部デバイス無しで広げられます。
Macの解像度を設定するツールです。パネルの解像度以上に無理やり上げることができます。
単純な表示領域は広げることができますが、当然パネル自体の画素数は変わらないので、精細さは損なわれます。
文字が読みづらくなるので、場合によっては逆に作業効率がおちてしまいますが、Mac単体で画面が広くなるので気に入っています。

私は最終的に安定性と使いやすさでDuet Displayのみ使用に落ち着きました。
捗ります。

CStringのFormat()が浮動小数点の桁指定で四捨五入する問題

こんにちは。こんばんは。おはようございます。
Q-39です。お世話になっております。

最近Visual studioでC++を始めました。

MSのCStringのFormat()は浮動小数点の小数の桁指定をすると
四捨五入になります。
ネットで調べてみたら、浮動小数点の難しい問題と混同している
サイトが見受けられました。

この手の問題は、数字で考えずに、文字で考えれば楽勝です。

小数点以下第4位まである場合に
小数点以下第3位を切り捨てるなら、

double a;
CString s;
だとして、

s.Format(“%.4f”, a)
s = s.Left(s.GetLength() – 2);

で終わり。

0.005を引いてみるとか、そういうのは桁によって浮動小数点の難しい問題にぶち当たります。

ウィルス検知

おつかれさまです。tomです。

ここ最近 Vistual Studio 2012 を使用して、C#にてGUIのプログラムを作成していたのですが、
ある時から、ノートンが
「プログラムがコンピュータ上で疑わしい動作をしていました。このプログラムは削除されました。」
とウィルス検知とされてしまうようになってしまいました。
信頼できるプログラムとして登録すれば問題ないのですが、
特に特別な処理はしていないのに、と思い原因を調査しました。

二重起動防止のため、Mutexクラスを作成している時に、発生していることが解かりました。

static class Program
{
///
/// アプリケーションのメイン エントリ ポイントです。
/// 

[STAThread]
static void Main()
{
// Mutexクラス作成
//using (System.Threading.Mutex hMutex

// A: 問題なし
// = new System.Threading.Mutex(false, Application.ProductName))
// B: こちらだとウィルス検知される
// = new System.Threading.Mutex(false, g_mtx_name))
// C: 問題なし
// = new System.Threading.Mutex(false, ”ProgramName”))
{
…

///
アプリ名
public const string g_mtx_name = "ProgramName";

上記のソース上だと、「B」だけがウィルス検知されます。

どうやら、Mutexクラスの作成時の名称を 外部からの変数を使用すると、
「疑わしい動き」
と扱われてしまうようです。
変数ですが、const指定しているので固定値なんですが、
ノートンもそこまでは見てくれてないみたいです。

とりあえず原因が解かって良かったです。

今年3ヶ月を振り返って

お疲れ様です。beerです。
最近beer飲んでません。もっぱら日本酒であります。
予定より1ヶ月遅れの投稿です。申し訳ありません。

さて、新年が明けたと思ったら、あっという間に3ヶ月が過ぎてしまいました。
そんなわけで、自分がこの3ヶ月どんな仕事をしていたのか振り返ってみたいと思います。

1月
ある気象システムの装置間テストの要員として1ヶ月過ごしました。
開発メンバーの仕様理解が足りないため、かなり手戻りがありました。

2月
防災無線関連のテスト要員として1ヶ月過ごしました。
なんと夜勤でした。
このプロジェクトではTracというツールを使ってバグ管理をしていました。
バグ1つ1つについて、現在誰がボールを持った状態なのかはっきり分かるので良いなと思いました。

3月
交通情報関連の基本設計フェーズに参加しました。
と言っても突然入った人間が設計など出来るわけでもなく、
設計書に対してレビューで指摘された内容が、
適切に修正されているかのチェックを主に行いました。
基本設計では、機能設計・インターフェース設計・データ設計・運用設計・保守設計・移行設計
など、それぞれにどのようなことを記載していくのか大変に参考になりました。

と、こんな感じの3ヶ月でした。
3ヶ月で毎月プロジェクトが変わったのは人生で初めてでした。
4月からはまた別のプロジェクトに入ります。

春の訪れ@新宿御苑

閲覧ありがとうございます。Armadaです。

だいぶ寒さが和らいで冬の終わりが近づいていることを感じます。

最近、新宿御苑でプチピクニックをしてきました。
天気が良く、日差しが暖かいピクニック日和でした。

そんな新宿御苑で春の訪れを感じました。
DSC_0057
ぱらぱらですが、梅の花が咲き始めていました。

さらに2枚。

写真2 写真

なかなか良く撮れました。

ちなみに撮影はXPREIA Z3。
最近のスマフォに搭載されているカメラは高性能ですね。
その辺のコンデジよりも性能が良い気がします。

今度は桜の季節に入ってみようと思います。

Vimを全ての開発で利用する

最近、Unityを使ったゲーム案件を担当しているのですが、
クライアントでのC#開発だったり、サーバサイドのPHP, Ruby開発だったりと、
色々な言語を使って同時に開発することが多くなってきています。

◆開発環境の選定問題
Windows開発では、Visual Studio、
Android開発ではAndroid Studio, IntelliJ IDEA, Eclipse、
iOS開発では、xcode、
Unity開発ではMono Develop、
PHP開発ではPHP Stormなどなど、
各種便利なIDEが存在しているのですが、
IDEを行き来した場合の「操作性のズレ」ということに悩まされることが多くなると多います。

そこで、私は以前から「Vim」を開発環境の軸にすることに決めて、Vimのみを使って開発するという一点突破を行っています。

◆統一開発環境Vimにする利点
統一開発環境をVimにする利点として、以下の点が上げられると思います。
・Vimの操作のみ覚えればよい
・クライアントコード↔サーバサイドコードの移動がシームレスに行える
・開発環境を継続的に改善していくことによって、「エンジニアの資産」にできる
・Pluginが多く公開されており、また必要な物は自分で作成することができる

◆私のvim環境
私がどのようにVim環境を改善してきたかは、dotfilesとしてGitHubに軌跡を残してきました。
PHP開発を案件があれば、PHP環境の最適化を行い、
Unity案件があれば、C#の開発環境を最適化してきています。
技術者界隈では、Vimにかぎらずdotfilesのように環境設定を公開することによって、
効率のよい開発環境を共有していくということが最近の主流になっているようです。

以下が私のdotfilesとなっており、シェルスクリプトを実行することによって
新しいマシンや開発サーバを導入したとしても、簡単に最新の開発環境を再現できるようにしています。
https://github.com/akinama/dotfiles

◆おすすめのPlugins
Pluginが入っていない、デフォルトのVimでも問題無く開発できるのですが、
Pluginを入れることによって圧倒的に開発効率を向上できます。
その中から、特に便利だと思われるものを紹介します。
また、Plugin管理にはNeoBundleという仕組みを利用しています。
https://github.com/Shougo/neobundle.vim

・Unite : https://github.com/Shougo/unite.vim
主流のVimの統合インターフェース。
Unite Pluginとして、各種Pluginを導入ことによって、
統合開発環境として利用できるようになります。

・neocomplete : https://github.com/Shougo/neocomplete.vim
コード補完機能。
インテリセンスを利用するためにも利用しています。

・unite-gtags : https://github.com/hewes/unite-gtags
GNU GlobalのタグをUniteから参照する。
GNU Global+Exubarent Ctagsでタグ付けをして開発していますが、
クラス・メソッド・変数をdef/refでジャンプしたりするために利用しています。

・Git-Grutter : https://github.com/airblade/vim-gitgutter
Git管理下のファイルをVim上で変更内容を確認する。
Git管理下のファイルを追加・削除・更新がビジュアル的に常に確認できるようになります。
一瞬でそのファイルのどの部分が現在へ変更されているかを確認するのに便利です。

上記は、よく使うPluginですが、
https://github.com/akinama/dotfiles/blob/master/.vimrc
から、現在利用しているPluginを参照できるので、よければ参考にして下さい。

EXCELを使用しないで簡単に相関グラフを作成

こんにちは。こんばんは。おはようございます。
Q-39です。お世話になっております。

最近業務で相関関係をよく扱います。
CSVからデータを取得して相関グラフを表示したり
相関係数を求めたりしています。
グラフならEXCELですぐに表示できますが、
プログラムからコントロールすることができません。
そこでRを使用しています。
このRですが簡単に言うと、統計学に特化したスクリプトです。

例えば、XとYの2カラムのCSVファイルで相関グラフを表示するには、

dat <- read.csv("dat.csv", header=T, sep=",") cor(dat$x, dat$y) plot(dat) の3行でできてしまいます。 今回の例は相関グラフですが、EXCELでは実装されていないような 科学や統計学を扱う場合はRをお勧めします。

mPDFで作成したPDFのファイル名がおかしい

PHPで簡単にPDFが作成できる「mPDF」では、作成したPDFをAcrobat readerまたはFirefox等のビューアでブラウザ上に表示させることもできるが、ダウンロードダイアログを表示してPDFファイルをダウンロードさせることもできる。
もちろんPDFファイルのファイル名は指定できるが、場合によってはおかしくなる。

基本的な使い方と問題

mPDFを使用するには、mPDFを任意のディレクトリに設置し、呼び出し元でincludeして下記の様に処理する。

include('./MPDF57/mpdf.php'); // パスは環境に応じて変える

$mpdf = new mPDF('ja', 'A4'); // 出力ファイル設定
$mpdf->writeHTML($data);      // pdf内容をhtmlで突っ込む

// 'sample.pdf'というファイル名でダウンロードさせる
$mpdf->Output('sample.pdf', 'D');

このとき、$mpdf->Output();で指定するファイル名が一時ファイルのパスとなる為、同一ディレクトリのpermissionによって上手くいかないことがある(特に何らかのフレームワークを使用している場合)。
その為フルパス指定で任意のディレクトリに書き出すと安全だが・・・

$mpdf->Output('/var/www/html/pdf/sample.pdf', 'D');

などとした場合、ダウンロードされるpdfのファイル名は、
_var_www_html_pdf_sample.pdf
の様にパスを含んだものになってしまう。

原因

mpdf.phpの7480行付近(※バージョンによる)に、ファイル名の設定(レスポンスヘッダ)がある。

			if (!isset($_SERVER['HTTP_ACCEPT_ENCODING']) OR empty($_SERVER['HTTP_ACCEPT_ENCODING'])) {
				// don't use length if server using compression
				header('Content-Length: '.strlen($this->buffer));
			}
			header('Content-disposition: attachment; filename="'.$name.'"');
 			echo $this->buffer;
			break;

この$nameは$mpdf->Output();の第一引数をそのまま使用している為、ファイル名にパスが含まれてしまう。
ファイル名に関するオプションなどは無さそうなので、この部分の処理を変更するしかない。

パスを含まないように修正する

ヘッダのfilenameに期待するファイル名を記述すればいいので、次のようにした。

			if (!isset($_SERVER['HTTP_ACCEPT_ENCODING']) OR empty($_SERVER['HTTP_ACCEPT_ENCODING'])) {
				// don't use length if server using compression
				header('Content-Length: '.strlen($this->buffer));
			}
			/* --- ここから --- */
			$wk_name = explode('/', $name);
			if (count($wk_name) > 1) {
				$name = $wk_name[count($wk_name) - 1];
			}
			/* --- ここまで --- */
			header('Content-disposition: attachment; filename="'.$name.'"');
 			echo $this->buffer;
			break;

入力されたパスを’/’でexplodeし、末尾の文字列をファイル名としている。
これでどの階層にあってもフルパス指定でダウンロードできる。

クラウドワークス

こんにちは、tomです。

弊社でも使用したクラウドソーシングサービスの 「クラウドゲート」ですが、
それと同様の 「クラウドワークス」が、12/12に東京マザーズ に上場します。

最近ようやくクラウドソーシングサービスも浸透してきたみたいで、
テレビでも取り上げられてきてますね。
契約額が急激に大きく伸びて来ているみたいですが、まだ少し損という状態みたいです。

上場するとかなりの資金を使用できるようになるので、サービス向上に使うのでしょうか?
よりクラウドソーシングサービスが広まっていけばと思います。

ちなみにIPOを申込してみましたが落選でした…

sixcoreのcronでphpを実行する

root権限がもらえずsshも使えないレンタルサーバで一体何にcronを使用するのか以前から不思議だったが、使う機会があった。詰まったのでそのときのメモ。

phpが叩けない

一定時間毎にphpスクリプトをcronで実行しようとしたところ、動作しなかった。
動作しないというのは、phpコマンドの後に>でリダイレクトしてもブランクファイルが出力され、sixcoreのcron通知機能(結果をメール送信)もメールが送信されないという状況。
そしてsixcoreのcronに関するマニュアルは物凄く簡素で情報が少ない。

今回書いたcron設定はこれ。

* * * * * php /home/<アカウント名>/advpro.co.jp/public_html/hoge/test.php

※どのユーザで実行されているかは不明な為省略

ちなみに実際のphpスクリプトでは、一定時間毎にIMAPでメールを取得し、内容をDBに蓄積するというようなことをしようとしていた。

wgetかcurlを使うと動く

phpが何らかの原因により実行できないことが確認できたので、次に試したのはwgetとcron。apacheを介してphpは実行できるので、任意のパスにphpを設置し、次のようなcronを書けば良い。

* * * * * wget http://advpro.co.jp/hoge/test.php

または、

* * * * * curl http://advpro.co.jp/hoge/test.php

出力が必要なときはリダイレクトする(要らなくても多分>/dev/nullしたほうがいい)。
あとは外部から実行されないように、.htaccessで制御しておけばとりあえず要件は満たせる。

実はコマンドが違った

調べたところ、「php53」としておけば普通に動く事がわかった。
cronで ls -la /usr/bin した結果、

-rwxr-xr-x  1 root root    2866944 Mar 24  2014 php
-rwxr-xr-x  1 root root    2878552 Mar 24  2014 php-cgi
-rwxr-xr-x  1 root root       1123 Mar 24  2014 php-config
lrwxrwxrwx  1 root root         27 Aug 28  2013 php5.2 -> /usr/bin/org/php5.2/php-cgi
lrwxrwxrwx  1 root root         26 Aug 28  2013 php5.3 -> /usr/bin/org/php53/php-cgi
lrwxrwxrwx  1 root root         27 Mar 28  2014 php5.4 -> /opt/php-5.4.26/bin/php-cgi
lrwxrwxrwx  1 root root         27 Mar 28  2014 php5.5 -> /opt/php-5.5.10/bin/php-cgi
lrwxrwxrwx  1 root root         26 Aug 28  2013 php53 -> /usr/bin/org/php53/php-cgi

となっていたので、必要なバージョンのリンクを叩けば良い。
今回の例では、

* * * * * php53 /home/<アカウント名>/advpro.co.jp/public_html/hoge/test.php

上記のように変更したところ動作した。
sshログインできないんだからこれくらいはマニュアルに書いて欲しい。

その他

cron設定について色々いじっていたところ、時刻指定は通常のcronと同様に設定できることがわかった。「*」は当然使えるし、「*/n」も使える。恐らく入力値をそのままファイルに追記しているんだろうと思う。
ちなみに、sixcoreのcron設定では分に「*」を指定すると、負荷掛けたら利用制限するという旨のメッセージが表示されるが、「*/1」としておけば表示されない。どっちにしても負荷掛けたら怒られるだろうけど。

研修旅行

DSC_0876

 

さて、ここはどこでしょう?

左に見えるのは、東京湾に浮かぶ唯一の自然島、猿島です。
右側の陸地は三浦半島の馬堀海岸~走水辺りでしょうか。

今年の会社の研修旅行は「三浦半島満喫の旅」。
やたらと観光船に乗りました。
・YOKOSUKA 軍港めぐり(汐入桟橋)
・猿島(三笠桟橋)
・にじいろさかな号(三崎港)

調査したところ、三浦半島の主立った観光船をすべて制覇したようです。

DSC_0887

 

天気が良く、暑いくらいの日差しでした。

フォルダが削除できない!そんな時は。。。

閲覧ありがとうございます。Armadaです。

最近Windows7でフォルダが削除できないという現象が発生しました。
原因はフォルダ名の末尾に「半角スペース」が入ってしまったことでした。
01
このフォルダを削除しようとすると以下のエラーが表示されます。
02
ファイル名を変更しようとしても。。。
03
削除の時と同じエラーが表示され変更できません。
04
特に実害はないのですが、気持ち悪いので削除する方法を探しました。
削除方法は以外と簡単です。
まず、削除したいフォルダの「ショートネーム」を調べます。
これはコマンドプロンプトで確認できます。手順は以下のとおりです。

まず、親フォルダで「Shift+右クリック」でコンテキストメニューを表示します。
すると「コマンドウィンドウをここで開く(W)」が出てきます。
05
「コマンドウィンドウをここで開く(W)」をクリックするとその名のとおり親フォルダがカレントディレクトリの状態でコマンドプロンプトが開きます。
そこで
①”dir /x“を実行してショートネームを確認
②”ren [ショートネーム] [任意]“でフォルダ名を変更
※この時末尾に半角スペースを入れると元の木阿弥です
06
無事にフォルダ名の変更ができました。
07
これで何も考えずに削除できるようになります。
08

結構はまっている方がいるようなので参考にしてください。

※フォルダ名、ファイル名など機密情報はモザイク処理しているため見にくいかもしれませんがご容赦くださいませ。

東京メトロオープンデータ活用コンテスト

こんにちは、jkです。
妻の分娩予定日が決まり、とうとう再来月には人の親になってしまいます。
いろいろと大変そうですが、楽しみながら子育てに取り組みたいと思います。

さて、今回のブログ記事のテーマですが、
東京メトロオープンデータ活用コンテスト
について取り上げてみたいと思います。

オープンデータ活用コンテスト___未来とメトロ___東京メトロ 10th anniversary

これって何のコンテスト?

簡単にいえば、東京メトロさんが『東京メトロ全線』の『列車位置や遅延時間』といった今までクローズに扱ってきたデータをオープン化し、それを使ったアプリケーション開発コンテストを開催しているということです。
グランプリを取ると100万円!ですので、お小遣い制のお父さんは是非参加したくなる企画だと思います。

具体的にどのようなデータが公開されているかというと、
オープンデータ活用コンテスト___未来とメトロ___東京メトロ 10th anniversary
のように、
・1分毎の列車の運行情報
に加えて、
・列車情報(列車時刻表、運賃表、駅間所要時間、各駅の乗降人員数、女性専用車両)
・施設情報(バリアフリー情報、駅出入口情報、車両ごとの最寄り施設・出入口案内)
といった、何やら面白そうなデータまで取得することができます。

どうやって参加するの?

公式の開発者用サイトがありますので、簡単なユーザ登録をすればすぐに使用できます…

といいたいところですが、登録完了まで最大2営業日かかるようです。
しかし登録完了後は発行されるconsumerKeyを使用して、すぐに東京メトロのオープンデータにアクセスすることができます。

どうやってデータを取得するの?

リクルートWEBサービスや楽天WEBサービスのように、
登録後に発行されるconsumerKeyをURLに付与し、RESTful APIのエンドポイントにアクセスすることによってデータを取得できます。

Web APIのデータ形式として『JSON-LD(Linked Data)』をとっています。
JSON-LDはw3cによって今年の1月に標準仕様として承認されたようですが、
私はLinked Dataの利点や仕様を全然理解していないので、これを期に勉強して理解したいと思います。

さあ早速アクセスしてみよう!

と思いましたが、私も登録がまだ完了していないので、実際にWeb APIでオープンデータにアクセスできるようになってから改めてご報告します。

今後の方針

何やら私の友人界隈でコンテストへの参加熱が強まっているようなので、土日や帰宅後の時間を利用して少し取り組んで見たいと思います。

勉強すべきことなど

・JSON-LD
・どんなアプリケーションにするか

はじめまして

はじめまして。

80年代…から、この業界で食べさせていただいてます。今回は初投稿ということで簡単な経歴を。

【1985年】 メインフレーム上でPL/Iによるプログラム開発を担当。

(当時は、パンチカードを作ってプログラムをコンピュータに登録してました。懐かしい)

【1990年】 オープン化の流れに乗って、SunOS,Solaris,HP-UX,AIX等、主にUnixでC言語による開発を担当。Oracle,Sybase等のRDBMSについて学習する機会を頂き、設計・管理・チューニングなどの経験を積む。

(クライアントサーバモデルなんかがもてはやされはじめた頃でした)

【1995年】 少しずつ、UnixからWindowsへと開発環境がシフト。GUIプログラミングを初体験。

(UI設計のセンスが無いと指摘されたのを覚えてます。今でも非常に苦手)

【2000年】 徐々にWebシステム系の開発機会が増加。Javaの経験を積む。

(JSPのデバックで苦労した記憶があります。HTTPサーバの開発と携帯電話用Webシステムの開発なんかが楽しかったですね)

【2005年】 データベースエンジンの機能拡張・保守。再び、C/C++へ。

(ある種の天才(だと思う)のコードを読むのは難しかったのですが、良い勉強をさせて頂きました)

【2010年】 社内C/C++ライブラリの開発等。

直近では、C++で組込み系のアプリケーション開発などを主に担当しておりました。長年…の経験を生かして、少しは貢献できるよう力を尽くしたいと思います。

高校野球

こんにちわ、tomです。

高校野球をやっていた訳ではないですが、
好きで毎年見てしまうんですよね。

今年も甲子園が終わってしまいました。
決勝戦は、「三重」対「大阪桐蔭」の対決でしたが、
あいにく休日ではなかったため、
ライヴでの観戦はできなかったは残念ですが、
一進一退でとても見ごたえがある決勝でした。
主将がタイムリーを打って逆転し、「大阪桐蔭」が見事優勝しました。
秋にコールドで負けて悔しさ思いをしてここまで来れたと
コメントしてたのが印象的でした。

少し前までは、
投手力のあるチームが勝ち抜いてくる事が多かった気がしますが、
今年は打撃力のあるチームが強かった印象です。
今年は度重なる雨で集中力が切れたりなどの影響があったのか?
良いピッチングをしてても7回以降に、
一気に打線につかまり逆転という試合が多かった気がします。
9回裏で一気に8点を逆転なんて試合もありましたからね。
まあ見てる側としては、試合終了まで何が起こるか分からないので、
最後の最後まで楽しめましたけどね。

最後に、個人的にはタイブレーク制には反対です。
それより、もう少し3回戦以降の日程間隔を空けてあげて欲しいです。
プロ野球の試合を間に入れても良いと思いますし、
ほぼ連日連戦はちょっとピッチャーがかわいそうです。
高野連の方お願いします。。。

スクールライフメモリーズ

こんにちは。こんばんは。おはようございます。
Q-39です。お世話になっております。

弊社がmobageとGREEで公開しているソーシャルゲーム『スクールライフメモリーズ』に関してのまとめです。

mobage版
 http://g12018774.sp.pf.mbga.jp/

GREE版
 http://pf.gree.net/60543

運営Twitter
 @ScMem_Staff

そして、いろいろなサイトで記事が掲載されています。

Social Game Info
 http://gamebiz.jp/?p=132894

SGマニアクス
 http://www.sgmaniax.net/2014/07/30/schoolm_01.html

ゲーム攻略完全図鑑
 http://www.dopr.net/_ureview/5729803311251456

以上、まとめでした。

ギークなステッカーを貼ろう

最近Macの天板にステッカーをべたべた貼りまくるのがマイブームです。
技術系のイベント等で(行かないのでレポート見るだけですが)貼ってる人がよくいるので、真似をしていろいろ貼っています。

幾つか日本から購入できるサイトを紹介します。

・Unixstickers(http://www.unixstickers.com/)
Unix系(Linuxディストリビューションのロゴ等)や、ソフトウェア、プログラミング言語のロゴ等、種類が多いです。ここではVimステッカーを買いました。全体的に少し高いです。

・GitHub Shop(https://github.myshopify.com/)
GitHubの公式ショップのようです。ステッカー以外にもグラス等グッズを扱っています。

・Raspberry Pi Swag(http://swag.raspberrypi.org/)
RaspberryPiの公式ショップのようです。ここもステッカー以外に色々なグッズやPi本体が買えます。

次は何を貼ろうかと考えていますが、探すと色々出てくるので迷います。
海外発送で結構お金がかかるのと、時間もかかるのですこし躊躇してしまいますが、満足感は得られるのでまた何か買おうと思います。

「どうぶつ顔判定」のその後

最近桜木町に出没するbeerであります。

以前ご紹介したAndroidアプリ「どうぶつ顔判定」のその後についてご紹介します。

今日現在のインストール数は630端末。
延べインストール数にすると1600以上になります。

6月にAndronaviさんで紹介されてから一気にインストール数が増加し、
7月に入ってからも微増していました。
ここ最近は微増微減を繰り返しています。

それにしても、
延べ1600人もの人が自分の作ったアプリに興味を持ってくれた
ということはありがたいことです。

4年に一度のサッカーの祭典、W杯

閲覧ありがとうございます。Armadaです。
今回は旬なネタでいきます。

いよいよ決勝トーナメントが開始されたブラジルワールドカップ。私の予想ではスペインの2連覇だったのですが、予選リーグで既に結果が出てしまいました。。。

今大会もスペイン、イングランド、ポルトガルと強豪が予選敗退しています。
これもワールドカップの醍醐味でしょうか。

そろそろ我らが日本代表について触れたいと思います。

今大会は0勝2敗1分けの勝ち点1でグループC最下位。
とても残念な結果となってしまいました。

色々と課題はあったと思いますが、一つ挙げるとしたら「エースの差」です。
日本は本田選手、香川選手の二枚看板で今大会に臨みました。
どちらもとても素晴らしい選手ですが、試合の流れを変える(引き込む)力が
足りなかったように思います。

コートジボワールのドログバ選手、コロンビアのハメス・ロドリゲス選手。
各々の試合で試合の流れを劇的に変えて、勝利を呼び込んだ選手です。
この選手たちとの差が「エースの差」として現れたように思います。

代表監督も変わるようなので、気が早いですが、4年後のロシアワールドカップに
期待です。

ちなみに元日本代表の北澤さんも某番組でエースの差について語っていたので
そう外れてはいないと思います。

入社のご挨拶

はじめまして、jkと申します。今年4月に正式に入社しました。
大分遅れてのご挨拶となってしまいますが、よろしくお願い致します。
前職では、スマートフォン向けのブラウザゲームを開発を行っておりました。
アドバンスト・プロでは、独自サービス(ソーシャルゲーム)の展開に関する業務に携わっております。

技術ブログに関しては、業務で使っている言語・フレームワーク・サーバ構築方法などのTipsをメインに投稿できればと考えております。

現在、開発環境としては、

  • Ruby
  • Ruby on Rails
  • MySQL
  • Redis
  • AWS (本番環境)
  • Git + GitHub

といった割とモダンな形で開発を進めております。
実際に技術の採用や環境構築の際はつまづきやすい内容が多く、
特に、AWSに関しては日々新しいアップデートが行われており、
2年前に欲しくてたまらなかった機能が、現在使えるようになっていたりします。
そういった内容を実際に使える形で情報共有できればと思います。

今後とも、よろしくお願い申し上げます。

突然ですが、Androidアプリを作りました

突然ですが、Androidアプリを作ってみました。
2タイトルリリースしましたが、
いずれもOpenCVという画像処理ライブラリを使用しています。
アプリのサイズが異常に大きいのは、OpenCVライブラリをアプリ内で持っているためです。本来なら、OpenCVライブラリを別にインストールする方が開発側からすると楽なのですが、それだとユーザが2つのアプリをインストールすることになり、不親切なのでこのやり方にしています。

どうぶつ顔判定

screen_shot1

カメラのプレビューを使い、顔認識した画像から似ている動物を判定します。
似ているような、似ていないような、微妙な判定です。

判定結果はこんな感じ。
screen_shot2
ネコは2種類入っています。こっちのネコは、滅多に出ない方のネコです。

白目カメラ

shot1

これも顔認識を使ったアプリです。
顔(目、鼻)を認識すると、選んだイラストがいたずら書きのように表示されます。

こんな感じ。
shot2

諸般の事情で顔出しせずに画像を投稿する時は、ぜひ活用してください。

旅の思い出2

こんにちわ、tomです。
だいぶ暖かくというか暑くなってきましたね。

今回はプライベートネタでいきます。
先月に初の北海道にスノーボード行ってきました。

前日は結構な雪が降ったらしく、
除雪のため、空港上空で40分位待たされましたが、
着いた日からはずっと晴れてました。

DSC06885
雪質は良くて滑りやすかったです。
山頂付近はまだ300㎝ありました。
ただ一番積もった時は、580㎝あったみたいです。

DSC06935
スノーボードでは、これより上に行けませんが、
ここから雪山登山していく人がかなりいましたね。
本格的な登山のため大荷物背負っている人や
クロスカントリースキーの人など色々いました。

DSC06942
人が少ないので凄い滑りやすかったですね。
景色もとても良かったです。

DSC06936
富士山に似ている事から、
蝦夷富士
(えぞふじ)と呼ばれている羊蹄山です。
手前の山で山頂付近しか見えなかったのが残念です。

DSC06986
夕方の小樽港です。
展望台に寄れなかったのが残念ですが、
何とか撮れました。

また来シーズンも北海道行きたいです。
でわまた。

SNSゲームとAndroidアプリとクラウドゲート

こんにちは。こんばんは。おはようございます。
Q-39です。お世話になっております。

弊社ではこのたび、SNSゲームとAndroidアプリを提供することになりました。

まずSNSゲームですが、萌え系のRPGです。きっと^^;
Androidアプリはタイトル『どうぶつ顔判定』。
詳しいことはまだ描けませんが、飲み会などを盛り上がるツールになるのかなって感じのアプリです。

で、いろいろイラストだったりロゴだったりが必要になるんですが、
弊社にはデザイナーはいません。
そんな時に役に立ったのが「クラウドゲート」です。

これはクリエイターの方とクライアントの橋渡しをしてくれるサイトです。
こんなのが欲しいと依頼を出しておけば、いろいろな提案が集まります。
気軽に使えるので、ちょっとデザインに凝りたい場合など使ってみてください。

電気工作のすすめ

こんにちは。

car and dreamerです。

今回のテーマは、電気工作のすすめです。

実は私は小学生の頃、カマボコ板の上にAMラジオを作ったのが最初でそれ以来○○年電気工作を続けてきました。
電気工作と聞いて、何だか難しくて良くわからないし無理と思っているのではないでしょうか。
いきなり、市販の電気製品レベルの物を作ることは難しいですが最近は良いものがあるのです。

例えば、はやりの雑誌の付録モノ。「大人の科学」「電子工作マガジン」などがあります。また秋葉原のパーツショップで販売している「キット」。これは組み立てに必要な部品一式(専用基板付き)と説明書がセットになっています。
これは専用基板付きという点がミソで、ケーブルなどで配線をする必要がなく図解入りの説明書を元に部品を取り付けて半田付けするというものです。

それでも半田ゴテを持っていなかったり、半田付けが難しいという方には半田付け不要の「電子ブロック」があります。これはブロックの中に部品が入っていて、そのブロックをカチャカチャと組み立てるだけで電子回路ができてしまうというモノです。
ブロックですから、ある電子回路が完成したら、バラバラにしてまた別の回路をつくることができます。そういった意味で、電気部品や回路動作を理解するのも良いでしょう。
また電子ブロックはちょっと子供ぽくてという方には、ブレッドボードをお勧めします。ブレッドボートとはボートの上に縦横等間隔に穴が開いています。そこに部品と挿し、それに両端が接続ピンになっているハーネスを使い部品と部品の接続するのです。

市販の完成品を買って使えば良いし、何もそんな手間を掛けて失敗するかもしれないものを作る必要があるのかという考えもあるでしょう。お金を出しさえすれば、何でも手に入れることができる世の中ですが、手間と時間を掛けて多少見てくれが悪いものでも自分で作り、完成させたものは愛着が生まれ、全く同じ機能であったとしてもそれは自分に取って唯一無二のモノになると思います。

最初から高機能・高性能なものではなく、簡単なモノからスタートして、徐々にレベルを上げていけば良いのです。

自分で作ったアンプで聴く音楽はこれまでとは違う良い音を奏でるとは思いませんか。

CUIでCPUベンチ

自宅で趣味に使用していたサーバが壊れたので、Celeron G1820で一台組みました。せっかくなのでπ焼きをしようとしたら、次のようなメッセージが表示され起動できませんでした・・・。

$ ./super_pi
./super_pi: line 1: 11961 Segmentation fault (core dumped) ./pi $1

解決しそうになかったので、代替案を調べました。
timeでpiの処理時間を取るのが良さそうです。piはaptで入ります。

$ sudo apt-get install pi
$ time pi 1048576 >/dev/null

real    0m3.576s
user    0m3.528s
sys     0m0.044s

5,000円でこれなら良いんじゃないでしょうか。
(比較対象がないので正直よくわかりませんが・・・)

ちなみに社内で開発に使用しているサーバ(E2160)はこんな感じでした。

real    0m4.029s
user    0m3.960s
sys     0m0.046s

もうちょっと速いのが欲しいですね・・・。

幾何の問題

こんにちは
最近ビールより日本酒の消費量の方が多いbeerです。
複素数型を使った幾何の問題の解き方を最近知りました。

線分の長さを求める(C++で書いてみる)

点a⇒点bの長さを求めるには、
complex<double> a(1.0,2.0);
complex<double> b(3.0,4.0);
double length = abs(b-a);

なんとすっきりしたコードでしょう。
実際にはこれだけではなく、内積や外積を求めることで線分の交差判定や平行判定等もできます。ですが、まだ人に説明できるほど理解できているわけではないので、いずれ機会のある時にとっておきます。

旅の思い出

閲覧ありがとうございます。Armadaです。
今回も技術ネタから離れてプライベートネタでいきます。

つい先日、2度目の海外旅行に行ってきました。
渡航先はハワイ(オアフ島)。
一生に一度は行ってみたいと思っていた島です。

今の時期は雨期のため、突然のスコールに見舞われることが
多かったのですが、気温は20~28℃くらいで良い気候でした。

到着早々驚かされたのがハワイのカタツムリ。
IMG_20140307_175627688
なんと巻貝の形をしているのです。
カタツムリとはアンモナイトのような形と思っていた固定概念が
いとも簡単に崩されました。

続いては、ハワイといえば「この木なんの木(日立の木)」。
つい歌を口ずさんでしまいます。
ちなみに画像の木は二代目だそうです。周りには次世代候補たちもいました。
IMG_20140309_13233259
下からの景色も格別でした。
IMG_20140309_132516776

最後はホノルルフェスティバルの目玉だった長岡花火。
日本で見る花火よりも鮮やかで綺麗な印象を受けました。
おそらく澄んだ空気と、山から海に向かう風の影響で煙が花火と
かぶることがなかったからだと思います。
IMG_20140309_203359819

ハワイはリピート率が高いと聞いていましたが、納得です。
今回は海で過ごした時間が30分くらいしかなかったので、
次の機会があったら、ビーチを満喫したいと思います。

以上、旅の思い出でした。

SQLにて計算処理

こんにちわ。tomです。

関東にも雪が降りましたね。
皆さん怪我等なかったでしょうか?

さてさて、SQLの簡単な使い方編です。

前に、データベースはOracleを使用し、
プログラム言語はCOBOLの環境で、
複雑な計算処理があった時に、
この言語は昔からある言語なので、
複雑な計算時の場合、一度にできないので、
途中で切り捨てられないように変数作る必要があり、
後でメンテナンスが大変になりそうだったので、
どう作ろうか考えていたところ、
「SQLで計算してしまえば?」
とアドバイスを頂き、
SQLで計算することにし、
更に小数点以下の切り捨てまでやってしまう事にしました。

 SELECT TRUNC
 (  ( ( :WK-TANKA  *  :WK-SURYO )
 + :WK-TESURYO + :WK-KEIHI + :WK-SYOHIYO )
 / :WK-SURYO * :WK-BUY-SURYO )
 INTO  :WK-KINGAKU
 FROM   DUAL

(※先頭の”:”は変数)

まあこんな感じでしたね。
SQLでこんなこともできるんだと、当時結構衝撃を受けました。
まあ最近の言語ではこんな使い方しなくても思いますが?

ではまた。

過去ネタ1

こんにちは。こんばんは。おはようございます。
Q-39です。お世話になっております。

ブログが新しくなりました。
で、過去のブログはどこかにあるかと言うとどこにもないので※1、同じ内容でもOKという事で、使えそうで使えないテクニックを書こうと思います。

MS-DOSのバッチファイルなんてまだ使われているのか不明ですけど、バッチファイル内で数秒待つ必要がある場合の待ち処理の書き方です。
例えば5秒待ちたいときは、

ping -n 6 localhost > nul

って書きます。5秒なのに6って書くのは、1回目は待たないからです。
今回はこれにて終りとさせていただきます。

※1googleのキャッシュにはあるかも

はじめまして

はじめまして、car_and_Dreamer と申します。
ご縁が合って、2013年9月から新メンバーとして参加させて頂くことになりました。
ブログの投稿も初めてということで、自己紹介をさせて下さい。
前職は、メーカーの情報システム部門に所属し社内情報システムの企画立案、構築、運用、保守を担当。情報システム部門以前は、機器の電気設計及び組込ソフトを開発していました。今回諸事情により、これまでの経験を活かし次のステージを目指すために転職をしました。
初回ということもあり仕事の話はこの辺で終わりにして、趣味の話をします。
私、実は多趣味な人間で今日はその中のひとつである「歩くこと」について紹介します。
抑もなぜ「歩くこと」が趣味になったのか。その最大の理由はハードルが低い事にあります。ジョギングはそれなりのウェアが必要だったり、息が辛かったり。自転車では、この時期寒さが辛かったり。しかし、「歩くこと」は日常的なことで、敷居は低いはずなのです。
自分は平日は難しいので主に休日にしています。多少増減しますが大体行き帰りの全行程3時間ほどに調整しています。大まかな方角は決めますが、明確な目的地は決めずに歩きます。街行く風景や人々を眺め、季節の移り変わりを感じたり、地域の日常を知ることができます。
また、その時々の流れに身を任せて、気になった場所に立寄るなど意外性も楽しみな点です。
足腰のトレーニングになることは当然として、それ以外に仕事で疲れた脳を休めたり、アイディアに煮詰まった時の気分転換にも最適なのです。
靴底の減りが早くなる以外には特別なコストも掛かりません。始めるのでしたら夏の暑い時期ではなく、歩き出すとポカポカと体が温かくなる今の時期がお勧めです。
最後に、告知を。
下記の日程で「DODA転職フェア」に出展します。
2/14(金) 14:00~21:00 DODA転職フェア
転職を検討されている方、就職活動中の方は是非お越し下さい。
当日ご都合が悪く会場に来られない方は、応募フォームからコンタクトをお願いします。
応募フォーム
ではお会いできることを楽しみにしております。

【WordPress】プラグインを追加する(SyntaxHighlighter)

当ブログにSyntaxHighlighterというプラグインを導入したので、ついでに導入方法の解説をします。
SyntaxHighlighterは、その名の通りプログラムの特定の語句をハイライトして見やすくしてくれます。(有名なので説明するまでもないと思いますが・・・。)

1.ダウンロード
プラグイン(zipファイル)を下記URLからダウンロードします。
http://wordpress.org/plugins/syntaxhighlighter/

2.解凍
ダウンロードしたzipファイルを解凍します。
01

3.アップロード
解凍したファイルをディレクトリごとアップロードします。
アップロード先:./wp-content/plugins
02

4.有効化
Wordpress管理画面のプラグインのページで、SyntaxHighlighterの「有効化」リンクを押下します。
03

5.使用方法
プログラムとして表示したい部分を、[[php]~[/php]]の様に言語名で囲みます。
次の様に表示されます。

<?php
if(!empty($hoge)){
	echo 'hoge';
}else{
	echo 'hogehoge';
}
?>

大抵のプラグインは同様の方法で導入できるので試してみてください。

 

今年もお世話になりました

リニューアル後、初の投稿。beerです。

プライベートなことを書いてもOKになったので、自己紹介を。
そもそも、「beer」はビールが好きだという理由でつけた名前です。
今年はビールの祭典、横浜オクトーバーフェストにも行ってきました。
そういうときは比較的空いている早い時間、11時くらい(昼です)からビールを飲み始めるわけです。
オクトーバーフェストにはいくつも店が出ていて、食べ物・飲み物を好きなところで買ってその辺にあるテーブルで飲み食いできるようになっていました。
私はドイツビールを何種類か飲んだのは覚えていますが、種類が多すぎて何を飲んだのかは覚えられません。赤レンガ倉庫脇の日陰で(まだ陽が当たると暑い時期でした)のんびりビールを飲むのはなかなかいい気分でした。

なんだか、自己紹介というよりビールの祭典の体験記になってしまいましたが、それくらいビールが好きだということを言いたいわけであります。
平日は仕事を頑張り、休みの日にはビールを飲みに行ったり、温泉に行ったりするのが私の生き甲斐だったりするわけです。

そんなわけで、今日は12月26日。明日が仕事納めとなります。
今年一年お世話になりました。来年もがんばりましょう。

今年も年末ジャンボ宝くじを買いそびれてしまいました。

開発者ブログ リニューアル!

閲覧ありがとうございます。Armadaです。

この度「開発者ブログ」をリニューアルしました。
これまでは技術ネタに限定したブログとしていましたが、より弊社プロパーのこと知っていただくためにプライベートに関する内容も投稿できるようになりました。

リニューアル後の一発目ということで、これまでとは路線を変更して技術ネタ以外でいきたいと思います。

2013年も残り1ヶ月を切りました。
12月は弊社の決算月でもありますので、2013年度も1ヶ月を切ったことになります。
今年【2013年】はアドバンスト・プロのターニングポイントとなる年でした。良くも悪くもです。

そんな年を終えて迎える2014年。
後ろばかり振り返っているわけには行かないので、代表を筆頭に社員一丸となって前を向いて進んで行きたいと思います。
必ずや良い結果が付いてくると信じて。

これからも当ブログを通じて、積極的に情報を発信していきたいと思います。
今後ともよろしくお願い申し上げます。