2016年11月29日火曜日

Delphi10.1 Berlin

開発の小ネタが思いつかないので、
Delphiの新しいのって出てたっけ?と
調べてみたら、とっくに出てましたね、Delphi 10.1 Berlinが。

今年4月発表で前のバージョンSeattleから7ヶ月。
相変わらず早い。。

ていうか、サイクル的には次が出そうな気が・・・


あとBerlinってやっぱりドイツのベルリンですかね。

前回はSeattle(シアトル)だったし、
なぜか都市名が続きます。

由来は判りませんでしたが、
代わりにwikiで仕入れた情報によると
FireMonkeyフレームワークの由来が
2016年の干支である「丙申 (ひのえさる) 」だとか。

ただFireMonkeyは2011年から導入されるのに
なぜ?という感じですが。。


まぁそんなことはともかく、驚きは

”無償版”があるじゃないですか!!

遙か昔に出て以来、ずっと無償版はなかったですが、
ここに来て無償版。
他に押され放しなので、奮発したんでしょうか(笑)

最近新しいDelphiを触ってないし、
落ち着いたらちょっと試してみたいですね。





2016年7月5日火曜日

Horizontalってどっちだっけ?

スクロールバーなどの設定で「horizontal」「vertical」というのがあるが、
いつも、どっちがどっちだっけ?とよく判らなくなる。

何か覚えるきっかけは無いかとググったら、

horizonは地平線って意味だった。
あーなるほどみたいな。


そういえば、昔、英語の教科書は「New Horizon」だったけど、
つまり、あれって「新しい地平線」って意味?


でも、なんか変だ。
さらに調べると「展望」とか「視野」という意味もあるらしい。


ってことは「新しい展望」「新しい視野」とかいう意味なのか。
なるほど、なるほど。


というわけで、単なる豆知識。
でも、これでhorizon=水平線というのはなんとなく頭に入った気がしたり?


まぁこうやって何かに紐付けたり、語源を知ったりするのは
覚えるのに大事って話ですね。

では。


2016年6月15日水曜日

ファイル名偽装

大阪 M・Tです。

今回はファイル名偽装について
なんですが、その前に余談を。

この前、大阪で迷惑メールの話で盛り上がってまして
そのメールというのが、宛先とは別にCcに他の社員のメールアドレスが入っているものでした。

ドメインが一緒の有効な別のアドレスをCcに入れて送信してくるんですよ。
知ってる人のアドレスがCcに入ってたら信用してしまいそうですよね。


さて、そして話はそのメールの添付ファイルについてなんですが、
悪い人はあの手この手で添付ファイルを開かせようとしてくるわけです。
その技術?の一つとしてRLOを使用するものがありますというのが今日の本題です。

RLOはUnicodeの制御文字Right-to-Left Overrideの頭文字です。
どういうものかというと、本来は、右から左に文字を読む文化圏(アラビア語とか)のために
入力文字を左右逆転させて表示するものです。
例えば、
「私は日本人です。」 だったら
‮「私は日本人です。」
みたいな感じです。
(↑実際に行頭に制御文字を入力して逆転させてます。文字コードはU+202E)

これをどういう風に悪用するかというと
例えばこんなファイル名のファイルがあったとします。ランサムウェアのインストーラーとか。
Sampletxt.exe

U+202Eを下のカッコの位置に入れると…
Sample(U+202E)txt.exe

あら不思議、ファイル名が
Sample‮txt.exe
となってしまったではありませんか!!(またまた実際に制御文字で逆転させてます。)
これだとtxtファイルに見えます。ところがどっこい、そう見えるだけで実行ファイルです。
このファイルのアイコンがメモ帳のアイコンだったら完璧です。

まあわれわれは絶対にメモ帳以外のエディタを使ってるので、
txtファイルのアイコンがメモ帳のアイコンってことはないでしょうから
これには騙されませんよと。

しかし拡張子に「見える」部分がxlsxとかpdfだったらどうでしょうか。
騙されて実行してしまいそうですねー。
Samplefdp.exe

Sample‮fdp.exe

Samplexslx.exe

Sample‮xslx.exe


じゃあ対策しましょうってことで。
皆さん、以下の設定をしましょう。

①system32にあるsecpol.mscを実行
 (Professional以上じゃないと入ってないっぽい。)

②ローカルセキュリティポリシーの画面が開いたら、
 左側「ソフトウェアの制限のポリシー」の右クリックメニューから
 「新しいソフトウェアの制限のポリシー」をクリック

③右側「追加の規則」の右クリックメニューから「新しいパスの規則…」をクリック

④「新しいパスの規則」画面のパス欄に「**」と入力

⑤「**」の*と*の間にカーソルを持ってきて右クリック

⑥メニューから「Unicode制御文字の挿入」でRLO Start of right-to-left overrideを選択

⑦カーソルを動かして、見えないけど制御文字が入力されていることを確認。
 
⑧セキュリティレベル「許可しない」を選択してOK

以上で文字コードU+202Eが含まれるファイルが実行できなくなります。
日本語環境で上記設定を行っても何も困ることは無いので念のため設定しておきましょう。

では。


2016年6月10日金曜日

タスクスケジューラ実行は重い?

タスクスケジューラは便利ですが、
常々気になってたことがありました。

タスクから実行すると処理が遅い(重い)気がする。。

今までタスクから実行したときの処理時間を
気にしたことは無かったんですが、、


あるエクセルファイルを毎日タスクスケジューラで起動して
編集しようとするとあまりにも重い。。

初めはPC起動直後だからかと思ってましたが、
直後以外に変えても重い。

どう考えてもおかしい、何か違いがあるのか?
と調べたらちゃんと理由がありました。

なんと、タスクスケジューラで実行するとプロセスの優先度が低く設定される。

基本的にバックグラウンドで動作するものだから、
既定値が低く設定されているっぽい。

しかも困った事に優先度はタスクスケジューラから変更できない。


どないすんねん!と思いましたが、調べたら、
タスクをエクスポートして、優先度(Priority)を書き換えてインポートだけで
いけました。

これで毎日のストレスがひとつ解消です。


タスク実行が重い場合は優先度を変えてみましょう。

2016年5月13日金曜日

暗号技術入門

どうも、大阪M・T(若い方)です。

最近買った本で非常にためになる本があったので紹介します。

結城 浩 著「暗号技術入門 第3版 秘密の国のアリス」(ISBN978-4-7973-8222-8)

過去から最新、さらに未来までの、人類の英知の結晶「暗号技術」が
とてもわかりやすく解説されています。
情報セキュリティの重要性が高まっていく昨今(といっても昔から重要ですが)
技術者は一度は読んでおいて損は無い内容だと思います。

¥3,000と少しお高いですが後悔はしないと思います。

というか会社で買って一冊置いといても良いんじゃないでしょうか。




2016年4月19日火曜日

Booleanの変数名

どうも、大阪M・Tです。

今日はBooleanの変数名について

皆さんBooleanの変数にはどういった名前を付けていますか。

一般的に言われているのは以下のような感じでしょうか。

 ・3人称単数現在
  exists
  etc....

 ・is + 過去分詞
  isOpened
  isChanged
  etc....

 ・is + 形容詞
  isNull
  isEmpty
  etc....

・has + 名詞
  hasValue
  etc....

 ・can + 動詞
  canUpdate
  etc....

 ・should + 動詞
  shouldContinue
  etc....

It is true that you can update.とかいうふうに
これらはすべて"It is true that ~"で表せるって考えると納得できます。

まあそれはそれでいいんですが、

常々頭をなやませるのが、
「~しなければならない」をBoolean変数の名前にしたい時に
どうするかということです。

Booleanの変数名のつけ方をネットで調べると、
上記に挙げたものは簡単に見つかるのですが、
「~しなければならない」というのがなかなか見つかりません。

should + 動詞の「~すべき」が近いように感じますが、
なんとなくshouldは「~するほうが良い(けどするかどうかは自由)」みたいな
ニュアンスの気がしてしっくりこないんですよね。
shouldは、I should be there on time. = たぶん時間通りに着くと思う。
みたいな不確実性を表現するので。

助動詞 + 動詞がOKなんだったらmust + 動詞かなと思うんですが、
そういう例はなかなか見つからないのです。
皆さんいったいどうされているんでしょうか。気になります。

実は私、大学では比較言語学を専攻しまして
こういうのが気になって仕方がありません。
この前、「~しなければならない」の変数名のつけ方で1時間ほど悩みました。

その時はupdateするかしないかの判断だったので、
結局悩んだ挙句、canUpdateとしました。
canはニュアンスとしては「~できる(し、実際にする)」なので。

はい。そこまで考えんでもよろしいというお話でした。

2016年2月8日月曜日

「紐付け」はIT用語?

”紐付ける”


この業界であれば、なんの疑問も持たない言葉ですが、
”ひもづける”で変換できないので、アレ?と思って調べてみたら
これってIT用語?

最近は一般にも浸透してきてるらしくググったら
一部のウェブ辞書にも載ってるようですが、
どうやら昔からの言葉じゃなさそう。

同じように疑問に思った人が他にもいるようで、
調べてる記事もあるものの、明確な答えはなし。

10年前にはすでに存在していた言葉のようですが、
誰が言い出したかも判らず・・・


どっかの会社の社員が、テーブルとテーブルを結ぶ線を”紐”と
言い出したのが広がったとか?


そう思うとちょっと面白いですね。