Hatena::ブログ(Diary)

くらげのChangeLog

2018-04-11

[]漫画コマ割り記法

テキストで書いた記法により、漫画のネーム的なものが生成される記法漫画の台詞コラよりも1段階上程度の自由度しか与えないことで品質が保証された漫画のページを作る。

・コマ割り

・吹き出し:種類、位置、テキスト

人物配置:距離、位置

・背景:集中線、気付き等の効果、色、テキスト

[]SQL Server で、複数行のデータをカンマ区切りの文字列として1つにまとめる方法

http://sql55.com/query/generate-csv-string.php

http://www.dbsheetclient.jp/blog/?p=229

SELECT A.地域CD
     , A.地域名
     , REPLACE( SELECT 都道府県名
                  FROM dbo.府県マスタ
                 WHERE 地域CD = A.地域CD
                 ORDER BY 府県CD
               FOR XML PATH('')
       , ' ', ',') AS 地域内都道府県リスト
  FROM dbo.地域マスタ A
 ORDER BY A.地域CD

[]旧約聖書 ホセア書

読了。

神の教えに従わなかったイスラエルの民はこんなに酷い神の罰を受けた、という詩。

そして神はそれを許してやるから、自分の信仰に帰ってこいという主張で終わる。

[]旧約聖書 ダニエル

読了。

エレミヤ書でも語られた、捕虜としてバビロニアに連れて行かれた預言者ダニエルに様々な予言がされる話。

予言は、バビロン王やダニエル本人に見せられる不明瞭な内容の夢として啓示され、それをダニエルが読み解く、後半は神の使徒が内容を説明するというような内容になっている。

2018-04-10

[]PHPExcelで出力したExcelの数式で再計算が実行できなくなった時の対処法

https://qiita.com/makasn/items/98b4995266661ec1659f

最近のWindows Updateに伴ってOffice365がアップデートされ、

恐らくそれが原因でPHPExcelで出力したExcelの数式が再計算できなくなってしまったようです。

PHPExcelの中を直に変更してしまうことになりますが、下記対応で一旦解消しました。

PHPExcel/Classes/PHPExcel/Writer/Excel2007.php

protected $preCalculateFormulas = false;

protected $preCalculateFormulas = true;

phpExcelで出力したExcelファイルの数式セルが、ファイルを開いた時「0」と表示されてしまい、そのセルを再編集してEnterを押さないと数式が適用されないという問題。

どうもアップデートexcel側の挙動が変わったらしい。

PHPExcelの書き出しロジックを修正することでとりあえず対応できるようだ。

2018-04-05

[]HashtableとDictionaryとHashSetの違い

                |保存内容                                       |既に存在するキーを追加             |存在しないキーのデータを取得
----------------|-----------------------------------------------|-----------------------------------|------------------------------------------
HashTable       |キーをstringで、データをobject型を保存         |ArgumentException例外が発生        |nullが取得される
Dictionay       |キー、データを指定した型で保存                 |ArgumentException例外が発生        |KeyNotFoundException例外が発生
HashSet         |キーのみを指定した型で保存※1                  |falseが戻る                        |- (そもそもキーに対応するデータを持たない)

※1:つまりHashSetは、重複なしアイテムを保存

HashTableはDictionayの下位互換だと思っていたが、存在しないキーのデータを取得したとき例外が発生しないという動作の差があった。

あと自分はHashSet知らんかったのがバカすぎる。

[]Windows 10環境において、SPREADやMultiRowなどの日本語入力が変になるバグ

http://devlog.grapecity.co.jp/entry/2017/12/27/windows10_fallcreators_gridview_ime_kb

Windows 10環境で、日本語アルファベットを入力すると1文字目が英数のままになってしまうバグが発生した。

原因は、Windows 10の動作。Fall Creators Updateを適用した場合に発生する。

対策は、基本的にはOSアップデートを待つ必要がある。しかし、PreviewKeyDownイベントでセルを編集状態にしてやるという対策コードを組み込むことで一応正しい動作にすることはできる。

MultiRow for Windows Formsの場合、以下のようなコードを基底クラスに組み込んでやることで解決した。

Public Class GcMultiRowEx
    Inherits GcMultiRow

...

    Protected Overrides Sub OnPreviewKeyDown(e As PreviewKeyDownEventArgs)
        MyBase.OnPreviewKeyDown(e)

        If Not Me.IsCurrentCellInEditMode AndAlso e.KeyCode = Keys.ProcessKey Then
            Me.BeginEdit(True)
        End If

    End Sub

2018-03-30

[]変数に英語を使うべきか、日本語を使うべきか

日本語のほうが読みやすい、英語の方が読みやすいって理由以外で思いついたのは以下。

英語を使うべき理由

・理由a1. 日本語がまったく読めない人がコードを読むことを考慮するため

・理由a2. 慣習的に英語で表現されるものがあるため ( 例: var obj = factory.create(); // 工場.生成()と書くと逆に分かりづらい )

・理由a3. マルチバイト文字を使うことで発生する意図せぬ不具合を避けるため

日本語を使うべき理由

・理由b1. 問題領域に日本語にしか存在しない概念が含まれている事があるため ( 業務系だとわりとある )

・理由b2. 表示される名前と、プログラム内に登場するシンボル名の差を小さくするため

・理由b3. ローマ字表記の表記ゆれを発生させないため (例えば「庄原」をローマ字で書くと、"shoubara"、"shouBara"、"syoubara"、"shobara"、"syobara"などの表記ゆれが発生しうる)

[]カーゴ・カルト

https://ja.wikipedia.org/wiki/%E3%82%AB%E3%83%BC%E3%82%B4%E3%83%BB%E3%82%AB%E3%83%AB%E3%83%88

近代まで文明の利器を知らなかったミクロネシア現地人が、西洋人が持ち込んできた工業製品に対して、これは当地の先住民のために神が作ったものであり、白人は神と特別な繋がりを持って不当にそれらを占有したのだ、と考えたといった信仰

カーゴ・カルトは西洋人の偏見が作り出した虚構メラネシア文化であり、現実にはそのような文化は存在しないという主張もある。

2018-03-29

[]C#VB.NET クラスで利用するキーワード対応表

https://dobon.net/vb/dotnet/vb2cs/vb2cstable.html

上記URLから抜粋。

VB.NET            C#
------------------------------
Friend            internal
Shared            static
Overridable       virtual
Overrides         override
MustOverride      abstract