軽量htmlエディタ Brackets

Webによる、Webのための次世代エディタ
Brackets自身がHTML・CSS・Javascriptで出来ており、まさに「Webによる、Webのためのエディタ」

オープンソースなのにAdobe製。

起動も結構軽くて いい感じ。

はてなブログのバックアップ方法

はてなさんのスパムブログ一斉削除に巻き込まれ、一瞬ブログが消えるという恐怖を味わいました。

サポートに問い合わせたらすぐ復旧したので良かったです。ありがとうございます。

駄文とは言え約15年分あるので、バックアップ取ってみました。画像は無理ですけどね。

1.設定→詳細設定

はてなブログの管理画面にログイン後、左メニューから「設定」、そしてタブの「詳細設定」の順にクリック

2.記事のバックアップと製本サービス

詳細設定画面を下にスクロールしていくと"エクスポート"という項目があるので、その横に表示されている「記事のバックアップと製本サービス」のリンクをクリック。

3.エクスポートファイルの生成

"※※(ブログ名)をエクスポートする"ボタンをクリックしてエクスポートファイルを生成。

4.エクスポートファイルをダウンロード

数秒〜数分でエクスポートが完了。
完了したらエクスポートファイルを"ダウンロードする"ボタンをクリックしてダウンロード。

バッチ(bat)ファイルでyyyymmddhhmmssの日付/時間を使ったファイル名にして7zipでzip圧縮

c:\backupfilesフォルダを圧縮するイメージ

a は追加の意味

set FName=C:\test_%date:~-10,4%%date:~-5,2%%date:~-2,2%%time:~-11,2%%time:~-8,2%%time:~-5,2%.zip

"C:\Program Files\7-Zip\7z.exe" a %FName% c:\backupfiles\

MFC エディットコントロールの高さを、文字列や横幅にあわせて自動的に変更する

GetWindowRect()で情報を得る

void ChangeEdit2Height(){
    // 文字列の取得
    CString strBuff;
    int nstrLen = ce2.GetWindowTextLength() + 2;
    ce2.GetWindowText(strBuff.GetBuffer(nstrLen), nstrLen);
    strBuff.ReleaseBuffer();

    // IDC_Edit2のサイズ変更
    CDCHandle cdcE2(ce2.GetDC());   // デストラクタでリリースされない
    cdcE2.SelectFont(ce2.GetFont());    // フォントをコントロールに会わせる

    CRect rc2W, rc2R;   // ウィンドウRectと、フォーマット領域Rect
    ce2.GetWindowRect(&rc2W);   this->ScreenToClient(&rc2W);
    ce2.GetRect(&rc2R);
    rc2W.bottom += -rc2R.Height() + cdcE2.DrawText(strBuff, -1, &rc2R, DT_EDITCONTROL | DT_WORDBREAK | DT_NOPREFIX | DT_CALCRECT);
    if(rc2R.Height() != 0) ce2.MoveWindow(&rc2W); // 0pxで更新すると、rc2Rの高さがあるのでおかしくなる

    ce2.ReleaseDC(cdcE2);
    return;
}

高DPI対策 OS任せにする方法

Windows Vista以降だとDPI仮想化機能がありますので、未対応アプリケーションでもとりあえず使用できる。

いざとなれば、ファイルのプロパティから「高DPI設定では画面のスケーリングを無効にする」を選択することでDPI仮想化をキャンセルすることが可能。
f:id:shikaku:20170926130804p:plain

Windows 10 Creator's Updateでは仮想DPIが賢くなったのでOS任せでもある程度解決します。

高DPI対応調査 96 DPI ピクセルを想定しているデザインをどれだけスケーリングするか調べる

// 96 DPI ピクセルを想定しているデザインをどれだけスケーリングするか
double scaleX;
double scaleY;
#define SCALEX(argX) ((int) ((argX) * scaleX))
#define SCALEY(argY) ((int) ((argY) * scaleY))

void InitScaling() {
   HDC screen = GetDC(0);
   scaleX = GetDeviceCaps(screen, LOGPIXELSX) / 96.0;
   scaleY = GetDeviceCaps(screen, LOGPIXELSY) / 96.0;
   ReleaseDC(0, screen);
}

Excel VBA(エクセル マクロ) 外部データの取り込みのマクロ化 Webデータ(ホームページファイル)の取得。 Excelツールで外部データの取り込みがある。 VBAでマクロ化して、Excelにファイル名を変更して読み込むようにする。

QueryTablesを使う

  With Sheets("取り込みデータ").QueryTables.Add(Connection:="URL;" & url, Destination:=Sheets("取り込みデータ").Range("A1"))
    .Name = "test"
    .FieldNames = True
    .RowNumbers = False
    .Refresh BackgroundQuery:=False
    .RefreshPeriod = 0
    .RefreshOnFileOpen = False
    .PreserveFormatting = True
    .AdjustColumnWidth = True
    .FillAdjacentFormulas = False
    .RefreshStyle = xlInsertEntireRows
    .SavePassword = False
    .SaveData = True
    .WebSelectionType = xlAllTables
    .WebFormatting = xlWebFormattingNone
    .WebPreFormattedTextToColumns = True
    .WebConsecutiveDelimitersAsOne = True
    .WebSingleBlockTextImport = False
    .WebDisableDateRecognition = False
    .WebDisableRedirections = True
    .Refresh
    .Parent.Names(.Name).Delete
    .Delete
  End With

64bit Windowsを前提とした32bitアプリケーション延命法 ~ LAAオプションで32bitアプリケーションのメモリ不足問題を解消

32bitアプリは普通2Gしかメモリ割り当てられない。

VisualStudioで
構成プロパティ → リンカー → システム → 大きいサイズのアドレス
を「はい」を選ぶと64bitOSの場合、アプリで4Gのメモリが利用できるようになる。

32bitOSの場合は3GBスイッチを使ってもらうしかない。