What we talk about when we talk about Technology

技術について語ります。

2段階認証後にcommand lineでgitコマンドを使う時に認証失敗したときのメモ

2段階認証設定後にCommand Lineでgit cloneしようとしたら、ログインを求められ、正しい名前とパスワードを入れてもAuthエラーになるのでなんでだろうと思って調べたところ、 githubで2段階認証を設定したらpushできなくなった - Qiita [Git][GitHub]GitHub…

VB Code

整数列を圧縮する方法にVB Codeというアルゴリズムがあります。 整数の型がUInt32であった場合、整数列の長さは32 * 配列のサイズとなります。 このとき、この32桁(232)に対し小さな値、例えば6は00000000 00000000 00000000 00000110という32桁の数字になり…

【2016】読書リスト

年の瀬を感じる今日この頃。 備忘録を兼ねて、2016年に読んだ技術書・参考書を一覧にまとめました。 参考にしたサイト 読む本は主に以下の二つのQiitaエントリーを参考にしています。 qiita.com qiita.com エントリの筆者の二人に感謝申し上げます 2016読書…

FrenchKit

先週末9/23,24にフランスのパリで行われたFrenchKitに参加して来ました。 2日間のうち1日目の23日はトークのみ、2日目24日はライブコーディング及びクラスルーム、クロージングというコンテンツでした。 コンテンツ 全てを見つけることはできませんでした。…

音にまつわる英単語

1.bang (v) hit violently and noisily (n) Did you hear that bang? It sounded like a gun. 2.buzz (v) 1.make the noise that bees make 2.call someone with an electrical signalling apparatus (n) 1.noise of buzzing 2.telephone call 3.pleasant fe…

一般的な再帰に対するデザインレシピ

前回の再帰に対するデザインレシピはさらっとした書き方であった。 データの構造自体が再帰を含む場合(リスト等)であれば、 その書き方で十分対応できることが多いが、 一般的なデータ構造の場合はもう少し掘り下げたガイドラインがないと、 再帰を含む関数…

デザインレシピ実例

整数のリストから要素の合計値を求める関数を例に、 デザインレシピの実例を示す。 1.データ定義 (* int list は - [] 空リスト、あるいは - first :: rest 最初の要素が first で残りのリストが rest (rest が自己参照のケース) という形 *) 2.目的 (* 目的…

デザインレシピ完全版

これまでのデザインレシピに再帰関数の場合を加えた、 完全版のデザインレシピは以下の通り。 1.データ定義<<extension: 入出力にデータ定義を伴う場合>> 入力または出力で使用するデータを定義する。 再帰的なデータ型(リストなど)である場合、自己参照のケースを付記する。 2.目的 作成する関数の目</extension:>…

データ定義に対するデザインレシピ

関数の入出力にレコードを必要とする場合、これまでの項目の先頭にデータ定義の項目が入る。 1.データ定義 入力データ、出力データに必要なレコードの型を定義する。 2.目的 3.例 4.テンプレート 5.本体 6.テスト

構造データに対するデザインレシピ

関数が構造(組やレコードやリスト等)を含む場合、 テンプレート項目を本体の前に加える。 1.目的 2.例 3.テンプレート 構造の中身を取り出すmatch文を作成する。 4.本体 5.テスト

条件分岐を伴う場合のデザインレシピ

関数に条件分岐が伴う場合、拡張として条件分岐のデザインレシピを使う。 例 場合分けのパターンを列挙し、すべての場合について例を作成する。 特に境界値の周辺の例に気をつける。 本体(1) 本体作成の前に、場合分けの条件を特定する。 条件をもとに関数の…

関数作成のデザインレシピ

1.目的 関数の役割、関数の型(引数・返り値)、関数名を決定する。 2.例 具体的な入力と、それに対する出力の期待値の組を(幾つか)作成する。 3.本体 関数の本体を実装する。 4.テスト 例をもとにテストを作成し、成功することを確認する。

2015-2016書籍目録

去年の5月にキャリアスタートしたエンジニア2年生です。 備忘録を兼ねて、一年間で読んだ書籍を赤裸々に列挙したいと思います。 気づけば7月も後半で、タイミングは謎ですがご容赦ください iOS・Objective-C・Swift 世界一わかりやすいObjective‐Cプログラミ…

ReSwiftに挫折する日曜日。

iOS

エンジニアをやっていると「今日はダメだ。。」という日が(しょっちゅう)ある。 今日は気になっていたReSwiftを調べてみた。 github.com きっかけは以下のブログ。 in.fablic.co.jp 他にも、 qiita.com や、 qiita.com を見て、Reduxへの興味が積もっていた…

論理結合子

矛盾(Contradiction) 恒真式(Tautology) 論理積(Conjunction) 否定論理積(Alternative Denial) 非含意(Material non implication) 含意(Material implication) 命題P(Proposition P) 否定P(Negation of P) 逆非合意(Converse non implication) 逆合意(Conver…

巡回せぇるすまん

P:入力のサイズの多項式で表せる時間で解決できる問題。 証拠:問題に対する解。 NP:入力のサイズと証拠のサイズの多項式で表せる時間で証拠が解であることを確かめることのできる問題。 NP困難:その問題を多項式時間に解決できるアルゴリズムがあれば、N…

変調指数と音量の時間変化(エンベロープ)

音の減衰は、 音量の減衰 変調指数の減衰 の二つがある。 この二つを時間変化の仕方を変えることで、 音の減衰を調節できる。 この時間変化の様子をエンベロープといい、 横軸に時間、縦軸に音量・変調指数をとったグラフがよく使われる。 allabout.co.jp

Frequency Modulation

FMは異なる2つの周波数を組み合わせることで、 いろんな音色を生み出す変調の方式のこと。 2つの周波数(それぞれキャリア周波数Cとモジュレーター周波数M)の比のことを C:M比といい、C:M比により生じる周波数成分(側帯波)を調整する。 音色=(側帯波の数)は …

Speech Frameworkに触れてみた。

社内のWWDCキャッチアップイベントで調査した、SpeechFrameworkについてまとめました。 qiita.com まだ実際の利用方法が思いつきませんが、 実装方法は理解できました。

実機の動作をmacにミラーリングする方法

プレゼン等人前で話す時に、 実機で動作している様子をスクリーンに映したいことがある。 そんなときは、 QuickTimePlayerを起動 ↓ ファイル->新規ムービー収録 ↓ start・stopボタンの横の下矢印を押す ↓ カメラ欄の実機を選択 で、mac上に実機の動作をミラ…

Audio Unit Types一覧

Audio Unit Types kAudioUnitType_Output kAudioUnitType_MusicDevice kAudioUnitType_MusicEffect kAudioUnitType_FormatConverter kAudioUnitType_Effect kAudioUnitType_Mixer kAudioUnitType_Panner kAUdioUnitType_OfflineEffect kAudioUnitType_Genera…

初potatetips

potatotips.connpass.com オーディエンス枠ではありますが、初potatotips行ってきました。 この感じなら自分にも発表できそうだな、という感覚と同時に、 やっぱまだまだすごい人はいっぱいいるな、ということで もっと頑張ろうと思った次第です。 次は発表…

マイクの入力をそのまま再生する

RemoteIOのinputとoutputを直接つなぐと、 入力をそのまま出力することができる。 var remoteIONode: AUNode = 0 var remoteIOUnit: AudioUnit = nil NewAUGraph(&mAuGraph) AUGraphOpen(mAuGraph) var cd = AudioComponentDescription(componentType: kAudi…

iPod Equalizer 一覧

CFArrayRefの取り扱いに苦労しました。。 import Foundation import AudioToolbox var cd = AudioComponentDescription(componentType: kAudioUnitType_Effect, componentSubType: kAudioUnitSubType_AUiPodEQ, componentManufacturer: kAudioUnitManufactur…

AudioUnitのキー一覧

Converter unit kAudioUnitType_FormatConverter kAudioUnitSubType_AUConverter kAudioUnitManufacturer_Apple iPod Equalizer unit kAudioUnitType_Effect kAudioUnitSubType_AUiPodEQ kAudioUnitManufacturer_Apple 3D Mixer unit kAudioUnitType_Mixer k…

Firebaseでプッシュ通知

Apple Developer Programに登録してしまったので、 話題のfirebaseを試してみました。 qiita.com 大分ネタ記事&自己満記事になってしまいましたが、 本当に簡単にプッシュ通知を送ることができてビックリしました。

ラ!

結局ほとんどQiitanの記事のまんま let renderCallback: AURenderCallback = { inRefCon, ioActionFlags, inTimeStamp, inBusNumber, inNumberFrames, ioData in var def: SineWaveDef = UnsafeMutablePointer(inRefCon).memory let freq = 440 * 2.0 * M_PI…

音は出るが...

以下の形にして、再生してみたところ、音は出るも、ただのノイズ。。。 おそらくAudioUnitに設定するASBDがおかしいのだと思うが、 deprecateな値が多く、解決方法はまだみつかってません。 let renderCallback: AURenderCallback = { inRefCon, ioActionFla…

AudioUnitのAURenderCallbackで2チャンネル分取り出す

swiftだとAudioBufferListが配列として取り出せず、困っていたらこの記事を発見 qiita.com 以下のようにして配列として取り出し、2チャンネル取得しました。 サインカーブが鳴らせるか、明日やってみます。 let renderCallback: AURenderCallback = { inRefC…

Extended Audio File Service でリニアPCM→AppleLossless

Extended Audio File Serviceを使えばお手軽にリニアPCMファイルを圧縮ファイルに変換することができる。 1.読み出すファイルを開く var error: OSStatus var infile : ExtAudioFileRef = nil error = ExtAudioFileOpenURL(fromURL, &infile) 2.クライアント…

赤魔道士か黒魔道士か

先日赤魔道士より黒魔道士というプレゼンを聞きました。 概要は、 FFにおいて、オールラウンダーである赤魔道士は序盤で使い物にならなくなるけれども、 黒魔法に特化した黒魔道士は終盤までパーティーメンバーとして役に立つ これはエンジニアにも当てはま…

AudioConverterServiceでリニアPCM→AppleLossless

基本的にはMP3→リニアPCMの変換と同様だが、以下の変更点がある。 ・マジッククッキーに対応する。 AppleLossless形式のファイルからの伸展、AppleLossless形式のファイルへの圧縮にはマジッククッキーと呼ばれるものが必要となる。 伸展の場合にはオーディ…

AudioConverterServiceでMP3→リニアPCM②

1.変換前のデータを受け渡すためのバッファを用意する 2.受け渡すパケット数を計算する 3.受け取るパケット数を計算する 4.変換後のデータを受け取るためのバッファを用意する 5.ループ内でAudioConverterFillComplexBufferを呼び出す 6.変換されたパケット…

実行時間のオーダーの表記法

関数fがあったときに、 すべての場合において、入力のサイズnに比例して実行時間が変化する場合 実行時間は f(n) = Θ(n) と表される。 入力の中身によってはオーダーに差がでるとき、 これ以上は実行時間が大きくならないオーダーがnであれば f(n) = Ω(n) と…

DDDについてLTしました。

本日社内LTで発表した資料です。 DDD from Kenta Kudo www.slideshare.net 「エリックエバンスのドメイン駆動開発」を読んだので発表してみました。 まだまだ理解できてない部分が多いので、いろんな人の意見を聞けたら嬉しいです。

【SOFT SKILLS】読了。

d.hatena.ne.jp 前々から気になっていたのですが、英語かーと思って後回しにしていたら、 日本語版が出版されたので、早速読みました。 いい時代ですね。 控えめに言って、必読本でした。 確かに、う〜んという部分もいくつかありましたが(筆者も全てに納得…

AudioConverterServiceでMP3→リニアPCM➀

変換したいファイルのパスを取得 let fromPath = NSBundle.mainBundle().pathForResource("loop", ofType: "mp3")! let fromURL = NSURL(fileURLWithPath: fromPath) 2.書き出す先のパスを作成 let filePaths = NSSearchPathForDirectoriesInDomains(.Docume…

音の高さと周波数の関係

人が感じる音の高さが1オクターブ上がるのに、 周波数は2倍になる必要があり、線形ではありません。 よって音の高さをUI部品等で変換するときは、そのことを考慮し、 変化量を音の高さと線形に対応させなければならないでしょう。 音の高さと周波数は以下の…

Swiftのクラス⇄UnsafeMutablePointer<Void>

C言語APIを触っていると、UnsafeMutablePointerにselfを入れたりすることがあって、 これどうするんだ。。。となることがある。 そんなときは以下のメソッドでブリッジしてあげる。 func bridge<T: AnyObject>(obj: T) -> UnsafeMutablePointer<Void> { return UnsafeMutablePoin</void></t:>…

CIFilterを簡単に選択するライブラリを公開しました。

try!swift登壇者SimonGladmanさん(@FlexMonkey)の著書「Core Image for Swift」を読んで、CoreImage面白いなーと思ったので、 CIFilterを簡単に呼び出せるライブラリを公開しました。 github.com 名前のSmeargleはこれです。 これもtry!swiftの github.com …

Swiftでライブラリを公開する@Haskellもくもく会

haskellmokumoku.connpass.com GWにHaskellを触ってみたので、今度はもくもく会に参加してみました。 祝!初ライブラリ公開です。 github.com 元ネタは qiita.com 今回作成したのは、Haskellの標準ライブラリであるPrelude.hsをSwiftで書いたものです。 実用…

Audio Unitのインスタンス化と初期化

Audio Unit を使える状態にするには以下のとおり。 import AudioUnit var cd = AudioComponentDescription(componentType: kAudioUnitType_Output, componentSubType: kAudioUnitSubType_RemoteIO, componentManufacturer: kAudioUnitManufacturer_Apple, co…