2016あけましておめでとうございます!このたび6年くらいぶりに、このアプリをアップデートしました。https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=371256064&mt=8iOS9で原因不明のクラッシュがあったので、ビルドしなおしました。前のアプリなので、今の環境で動かすのにいろいろと時間がかかりました。C言語のプログラムを習い始めたころ、「intは使うな」という教えがありましたが、今回はそれを痛感しました。当時16bitと32bitのはざまでいろんな問題がおきましたが、今は32bitと64bit間です。教訓は守らないといけませんね。これ以外の過去のアプリもできるだけアップデートしていきたいと思っています。あとこれに先駆けて新しいアプリもリリースしました。Learning”https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=1063098601&mt=8(あまり一般的ではない特定用途向けのアプリですが・・)今年は、新規のアプリもリリースしていく予定です。http://iphone.iiv.jp/教育用途向けのアプリとか作ってみたいです。コメントを受け付けていません。2015Swiftの関数型言語の特徴についてのメモです。私の好みの部分だけビックアップしています。https://gist.github.com/systemsblue/526eb360ec2ffc57a8a9・Generator無限の数列を生成するクラスです。引数により有限も可能です。・Curry関数のカリー化です。Swift自身対応しているのですが(f2)、f1の方がいろいろと応用がききそうです。コメントのf1は、簡略化した表記です。Haskellみたいです。・PipeF#のパイプ演算子のように記述できます。(便利なのでいろいろと使えます。gカリー化の部分適合の考え方を参考にすると、引数を与えられます。Objective-Cの相互呼び出しのテストをしましたが、CからSwiftの呼び出しについては、Objective-C経由で十分と考えていました。CとSwiftの「近さ」を実感するために、ここをもう少し踏み込んでテストしてみたいと思います。Objc");}主に上記二つのメソッド追加しました。前回からSwiftもバージョンアップしたので、OSもXcodeもアップグレードして、再びビルドしました。プログでは初めて、コードをgithubにアップしました。関連プログでもこれから活用していくつもりです。https://github.com/systemsblue/CBridgecallSwift3で、Cの関数のようにSwiftのメソッドを呼び出しているところがポイントです。Pythonのctypesを使って、Swiftのメソッドをダイナミックライブラリにして無理やり呼び出してみました。dyld_stub_binding_helperメソッド_TF4addf3addFTSiSi_Siをpython(REPL)から呼び出す。so(Linux)にアクセスするときによく使われます。(前回やったようにSwiftも構造体にアクセス可という点で似ています)オブジェクト指向を取り入れたのが、Objective-Cなら、関数型言語の特徴を取り入れたSwiftは、Functional-Cと呼んでもいいくらい、Cに「近い」と感じました。2015しばらくご無沙汰していましたiOS開発を再び始めることになりました。新しい言語のSwiftを使っていろいろと作っていますが、C言語との「距離」が意外と近い、という印象を強くうけます。「わさび抜きわさビーフ」ではないですが、C抜きの(Cにみえない)C言語みたいな感じでしょうか。相互やりとりは簡単にできるようになっています。そこで、相互呼び出しのテストをしてみました。st;}SwiftからCの呼び出しは、UnsafeMutablePointerを使うところとC構造体がそのままSwift側で使えてしまうところが、ポイントです。構造体は3とおりの呼び出しを試しました。SwiftとObjective-Cとの相互呼び出しは、簡単にできてしまいます。CBridge-Bridgeing-Header.hは、コードを追加するときに作成するか聞いてきます。ここにはC,Objective-Cのヘッダを読み込みます。CBridge-Swift.hは、見えないのですが、暗黙のルールとして記述するようです。実は、このCとの相互呼び出しは、Swiftに少し慣れてからテストしました。Optional型、関数型の特徴に興味があり、そちらを先に学習したので、(モダンなのに)Cとここまで近いとは気づいていませんでした。Swiftが最初に発表されたき、Objective-CでCのオープンソースをよくリンクして使っていたので、これがやりづらくなるのでは、という心配もありましたが、ダイレクトに呼び出せる(Objective-Cを経由せずの意味)のことでその懸念はなくなりました。この言語、かなりパワフルです。2015Objective-Cといえば、Apple製品の開発言語ですが、Xcode上でiPhoneの開発をするときしか使ったことがありませんでした。LinuxでObjective-Cによる開発をする環境のGNUstepというものがあると知って、試してみました。NeXTstepというOS、このOSのアプリケーションの記述言語だったものを、Linux上に移したのがGNUstepということになります。./PanelTest.app最近は、Swiftという言語が新しくあらわれ、以前から難解と言われているObjective-Cに変わろうとしていますが、個人的には、この言語とても好きです。C言語に追加される形でモダンの機能が使えるようになっているからです。コードを混在させるという面でもC++より柔軟です。混在をきらう人もいますが、文法の差異が大きいので、混在しても識別は容易です。Cベースのキャリアの人は、好きになりやすいと思うのですが、とっつきにくさと使う機会の少なさから正しく評価させていないような気がします。いう私も使う機会がiPhone以外ないので、このGNUstepによって広がれば面白いかもしれません。Pythonを書きましたが、Scheme(Lisp)でやってみました。最近、データ処理には「やはりLispが向いているかも」という気まぐれから、Schemeに再びはまっています。Schemeといえば、call/ccによる「継続」が有名ですが、ならばコルーチンでしょう、ということになりました。しくみがわかりやすいようにシンプルなものにしました。value)))))))今回使ったこのDrRacketというツールは、初めて使ったのですが、とても高機能で使いやすいです。はまったのも、このツールによるところが大です。2014前回の流れで、今回はClojureを呼び出してみました。clojuresubを実行の後、以下のようにプログラムコード、プロジェクトファイルを記述します。JavaMainを実行します。clojre-1.6.0.jarは、leiningenインストール時の.m2フォルダリポジトリ内の深いところからカレントにコピーしておきます。uberjarを実行してjarを作成し、下記のように実行することもできます。2014JavaからScalaを呼び出すときのメモです。arg);}}PowerShellでコンパイル。2014RedisサーバでメッセージのPublish/Subscribeをやってみた。LTSまずはRedisサーバのインストールから。redis-serverこれだけでサーバも起動します。(http://redisdesktop.com/)を使いたかったたので、サーバをリモートからアクセスできるようにします。startSubscribe用のクライアントを開きます。passwordテスト用に値もセット。まとめてしまいましたが、subcribeをして下のpublishを待ち、publish実行後subscribeでmessageを受信します。設定した値は、次のように確認できます。以上、簡単ですがメモでした。2014超簡単にPythonでコルーチンを表現するのにす、わかりやすいと思われる例をメモしておきます。i2.next()1101210231034104今度は、コルーチンが得意なLuaでもっといろいろなテストをしてみたいと思います。