2021年3月8日月曜日

iMovie9.09のインストール

 旧いiMovieを使いたいなーと思ってたらアップデートファイルから取れるらしいとのこと。

旧バージョンのiMovieを入れる方法

iMovie ver 10って、テキストのフェードインフェードアウトが調整できないんですよね。 ver 9にしたいなあ。 と思ったら、なかなかダウングレードする方法が見つからない。 最終的に、以下の方法でうまくいきました。 (環境:mac OS X El Capitan 10....

Install iMovie 9 or iTunes 12.6.2 on El Capitan – OS X 10.11

We had a student needing to get iMovie on her Mid 2012 MacBook Pro running El Capitain 10.11.6. Apple makes it hard to get older apps running on old OSes, but we have a workaround. NOTE: this metho…

ざっくり書くとこんな感じ

  1. アップルのサイトからアップデートファイルをダウンロードする
  2. pkgutil コマンドを使って解凍
  3. pkgファイルを開いてpayloadをpayload.zipへリネーム。
  4. payload.zipを解凍
  5. その中のApplicationフォルダにiMovie.appがあるので、適当に配置

試したら上手くいった。バンザイ。

2021年2月9日火曜日

またまたMac mini買いました

 懲りもせずまたまたマックをメルカリで買いました。

もう終わりにしなくては・・・。

Mac mini 2010

2021年1月1日金曜日

いらっしゃ2021年、バイバイ2020年

激動の年が終わりましたね。今生きている人にとっては人生最大の出来事だったのかなーって思ってしまいます。

2021年はワクチンもできて一般に接種できるのでしょうか。

少なくとも去年よりはマシになってくれるといいのですが…。

2020年7月15日水曜日

2013年11月28日木曜日

vbaでbase64エンコード

勉強を兼ねて作ってみました。

いろいろなページをみましたが、下記が分かりやすかったです。
http://www.kumei.ne.jp/c_lang/sdk3/sdk_235.htm
http://www.kumei.ne.jp/c_lang/sdk3/sdk_237.htm

Public Function Base64Encode(b() As Byte) As String
  Dim bytBase64() As Byte '変換テーブル
  Dim bytSTR() As Byte    'エンコード後の文字列を格納する変数
  Dim lngSize As Long     '元のサイズを入れておく変数
  Dim i As Integer, j As Integer

  If Not IsArray(b) Then Exit Function

  '変換テーブル
  bytBase64 = StrConv("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", vbFromUnicode)

  '引数のサイズを調べておく
  lngSize = UBound(b)

  'とりあえず4倍は確保して多く
  ReDim bytSTR((UBound(b) + 1) * 4 + 1)

  '3バイトの倍数になるように足りないバイト数を ReDim Preserve する(ゼロ埋めしなくていいのかな?)
  If (lngSize + 1 + 3) Mod 3 = 1 Then
    ReDim Preserve b(lngSize + 2) '2バイト増やす
  End If
  If (lngSize + 1 + 3) Mod 3 = 2 Then
    ReDim Preserve b(lngSize + 1) '1バイト増やす
  End If

  '3バイトずつエンコード
  j = 0
  For i = 0 To UBound(b) Step 3
    '10進数 = 16進数 = 2進数 : 3 = &H03 = 00000011, 15 = &H0F = 00001111, 63 = &H3F = 00111111
    bytSTR(j) = bytBase64(Int(b(i) / (2 ^ 2)))                                              '右に2ビットシフト
    bytSTR(j + 1) = bytBase64(Int((b(i) And &H3) * (2 ^ 4)) + Int(b(i + 1) / (2 ^ 4)))      '上位6ビットを0にしてこれを4ビット左シフトして、次の要素を右に4ビットシフトして足す
    bytSTR(j + 2) = bytBase64(Int((b(i + 1) And &HF) * (2 ^ 2)) + Int(b(i + 2) / (2 ^ 6)))  '上位4ビットを0にしてこれを2ビット左シフトして、次の要素を右に6ビットシフトして足す
    bytSTR(j + 3) = bytBase64(Int(b(i + 2) And &H3F))                                       '上位2ビットを0にする
    j = j + 4 'エンコードは4バイトずつ進む
  Next

  'pad処理(足りない部分は'='で埋める)
  If (lngSize + 1) Mod 3 = 1 Then
    bytSTR(j - 2) = AscB("=")
    bytSTR(j - 1) = AscB("=")
  End If
  If (lngSize + 1) Mod 3 = 2 Then
    bytSTR(j - 1) = AscB("=")
  End If

  'いらない部分は削除
  ReDim Preserve bytSTR(j - 1)

  Base64Encode = StrConv(bytSTR, vbUnicode)
End Function