たまたんのぶろぐ

たまたんが時たま言いたいことを書いてます。ジャンルはめっちゃええ加減ですwソフトやプログラムのことが多いかもしれませんが。。。。。

luaをMacまたは、Linuxでコンパイル実行環境を生成スクリプト

ちわ。最近ようやく2年ぶりに自分のアプリを作ろうと動いてます。

iOSで何か作ろうかと。。。。。。

っと、思って家でごそごそっやっているたまたんです。【押入】ヾ(0_0ヽ)ゴソゴソッ

 

それはさておき、最近Luaが、5.3を最近リリースされ私のなかではホットなので、LinuxとMacで動作するMakefileとサンプルを生成するスクリプトを公開しまーすw

 


tama-jp/lua_c_Sample · GitHub

 

解説は、、、、、、

しなあかん?え〜!!面倒だなぁ。。。。。...(´З`)チェッ

とりあえず、MacとLinuxでCUIでコンパイルできるスクリプトです。

 

このスクリプトをたたく、、、、

>  sh run.sh ←こんな感じにね!!

 

・ Lua Vew5.3のソースをダウンロード&展開

・サンプル用の以下のファイル作成

 1)Makefileの作成

 2)「Hello World」と表示するスクリプト(hello.lua)

 3)「hello.lua」を起動させるためのCプログラム

 4)サンプルをコンパイルして実行

っと、これだけのことをします。

 

Luaのソースは、iOSでもAndroidでも組み込めば、動作するようになっています。

この言語は、日本語の参考書は、数冊しか出てないので今ひとつ盛り上がりに欠けますが、汎用的なものを作り、ちょっとした変更等なら、これを使うのも最適ではないかなと感じます。皆さんも、この機会にやってみてはどうですか?

iOSでZXingObjC!!for CocoaPods

※ 古いソースをアレンジしたものからのアップグレードだったので、不具合があったようです。新規で使うときは、GithubのZXingObjCを直接サンプルを見ていただく方がいいでしょう<m(__)m>

 

前回は、Androidだったけど、今回は、(_´Д`) アイーンOS

 

・・・・・・。iOSです。。。。。はい。

 

だいぶん前からやっててようやくエラーの対処が出来たんでちょいと披露。

 

てな難しい話じゃないんですけど。

 

バーコードリーダーを使うためにZXingObjCって言うのを使ったんですわ。。。。。。

最初は、普通にgitHubからダウンロードしてきて埋め込んでたんだけど。。。

 

簡単には以下のソース(`・ω・´)

これでバーコードは認識しますのだ。

ちょいと抜粋過ぎなのでアレンジしてくらはい。( ゚∀゚)アハハ八八ノヽノヽノヽノ \ / \/ \

 

ほんで、最近はどこもかしこも定番になったCocoaPodで

入れて楽になったろ〜〜〜〜〜┌┤ ̄ ̄ ̄〜〜〜 ̄ ̄ ̄├┘

って思って、導入したら!!

 

ZXCapture.cで。。。。。。

f:id:tama-jp:20150110201022p:plain

 

「あ"?エラーでるやんけぇ〜( ̄△ ̄)」

 

って、なりました。。。。。。

おどれら!!けんかうってんのけぇ〜〜〜〜 (▼⊿▼) ケッ!

 

おいおいおいおいいぃぃっぃぃぃ。。。。。

 

っで、ちゃんと調べてみたら、、、、、 

 え〜〜〜〜〜〜〜〜〜っと、わからんw

 

とりあえず、dispatchがなんかおかしいかと思い。

コメントアウトした

f:id:tama-jp:20150110202205p:plain

 ら、、、、、動いた(゜ロ゜屮)屮

うーん。

dispatch_get_global_queueってスレッドにで、

並行処理をするようにしてるんだろうけど、

なんでこんなところでエラーが出るのかなぁ。。。。。

 

元々のエラー内容は。

*** Terminating app due to uncaught exception 'NSGenericException', reason: '*** AVCaptureSession can't startRunning between calls to beginConfiguration / commitConfiguration'

 

超ええ加減な訳するとAVCaptureSessionが動いてへんからうまくいかんねんって、言われました。

 

うーむ。どこでエラーになっているのかを細かく調査してみたら

デリゲートでエラーになっている模様。。。。

 

要するに、AVCaptureSessionが生成されてもいないのに外枠に戻すようなことを

設定したので、変に戻ってきたってたことなのか(わたしゃなにいってんだろぉw)

まぁ、とりあえず、以下のようになおしたら動くことが出来たので安心っす。( =̴̶̷̤̄ .̫ =̴̶̷̤̄ )

 ふっ、なんとかブログらしき情報になったε-(´∀`*)ホッ

 

 次回は何書こうかすっごく悩み中。。。。。(V)o¥o(V)ふぉふぉふぉ

AndroidStudioでLuaを動かす(その3) <ソース作成>

おりゃー第三弾!!

これで何とか動くようになります。

 

っで、めんどくさくなってきたので(いつもの病気です。)

1)ボタンを作成

IDを「runScript」似設定

f:id:tama-jp:20150102184737p:plain

2) com.test.utilに「LuaManager」を作成

 

3)「jni」に「luaApp.c」を作成

 

4)com.test.myapplicationの「MainActivity.java」を編集

 

5)起動してみる!!

たぶんこれで、動くでしょう!!♪ d(⌒o⌒)b♪

 

AndroidStudioでLuaを動かす(その2) <アプリの作成>

前回は用意だけしかしておりませんでした。(; ̄ー ̄A アセアセ・・・

どこが、Luaの動作じゃっちゅうねん!!って感じで怒られそうですが、

とりあえず、回数を稼ぐために分けさせてもらいましたw<m(__)m>

この回が終わったら、もう少し期間をあけて投稿します。 

とりあえず、アプリケーションの外枠の作成から、再開!!

ワッショイヽ(゚∀゚)メ(゚∀゚)メ(゚∀゚)ノワッショイ

 

アプリケーションの作成

 Androidアプリの普通の作成モードで作成します。

1) NeXT押下

f:id:tama-jp:20150102184406p:plain

NDKで設定の時注意なのが「Company Domain」に、「-」等の記号を使わないように。

記号を使うとパッケージ名に「_(アンダーバー)」が使用されます。

NDKは、パッケージ名にアンダーバーがつくと認識できないようで、

ドメイン名を

「test-dayo.com」

のようにすると、例えば、testPackageというPackageを作成となると

「com.test_dayo.Package

となります。

このパッケージをNDKで一部作り、

JAVAからNDKを呼び出すと、

例えば、「runLua()」関数を呼び出すように考える。

っと、NDKでは、

jint Java_com_test_dayo_Package_runLua(JNIEnv* _env,jobject thiz) { ...

っと書きます。

っが、

com.test.dayo.Package.runLua();

っと言うように、判別されていまいます。

ですので、出来るだけ記号は使わない方がよろしいです。

(私はこれではまりましたwいいやり方があれば教えてください。)

2) NeXT押下

f:id:tama-jp:20150102184418p:plain

3) NeXT押下

f:id:tama-jp:20150102184441p:plain

3) Finishを押下

f:id:tama-jp:20150102184503p:plain

4)作成できたので左ペインで「Android」から「Project」に変更し、

フォルダーをわかりやすくする。

f:id:tama-jp:20150102200825p:plain

 

5)local.propertiesを選択し、NDKのコンパイラ位置を設定

f:id:tama-jp:20150102201025p:plain

私の場合、アプリケーション内にNDKを設置したので以下の通りになります。

 これで、NDKをコンパイルできます。

6)app/nuild.gradleを編集

f:id:tama-jp:20150102201621p:plain

 

設定値の内容は以下の通り

moduleName :ライブラリ名を作成。(出来たライブラリは、「libxxx.so」となります)
stl "gnustl_shared" <-固定です。
abiFilters "armeabi", "armeabi-v7a", "x86", "mips" <-使用できるCPUを書いておきます。
ldLibs "log" <-ログを出力したい場合これを入れておくと便利です。

 

これで、app/src/main/jni配下にCのソースをコンパイルすると自動でコンパイルされライブラリ化されます。

 7)app/src/mainの下に「jni」を作成し、luaのソースから「src」内にある「luac.c」以外をコピーまたは、移動させます。

luac.cは、動作サンプルであり、「main」関数が入っているから取り除かなければなりません。

f:id:tama-jp:20150102203831p:plain

 これでとりあえず、事前設定は終わり!!

 

次回へ続く。。。。

 

AndroidStudioでLuaを動かす(その1) <序章>

ほいほい。新春第2弾!!

掃除をしながらえっちらかいてます (。・_・。)ノ

 

さてさて、最近は、モバイル端末もあいぽんだけでなく、

ドロイド君も見過ごせなくなってきました。

 

ドロイドは、開発ツールに、JetBrains協力の下AndroidStudioいうものが、昨年末、1.0がデビューしました。

一挙に、開発効率が上がったと言っても過言ではないんですよねぇ。(⌒▽⌒;) オッドロキー

Eclipseで作成当時は、検索とか1個しか保存できなくて他の人が作ったソースを調査するのに(#゚Д゚)y-~~イライラってなっとりましたが、もうそれもおさらば!!

あと、画面作成がエラーで動かないことが多々あったのが解消されました(∩´∀`)∩ワーイ

 

っと、言うことで、個人的にも、もうそろそろAndroidiOSの両方で開発して以下にゃーならん時期に来てますんですね。(もうおそいかも。。。。)

 

そうなってくると共通のシステムを書いていかなきゃならない。

しかも、AndroidiOSは、言語が違う。

AndroidC言語で作ればいいじゃん!!って言う方いますが、

そもそも、iOSの方でC言語を扱うのは、低レベルにしておかないと、

めっさめんどくさいような気がします。

 

っと、だらだら言い訳をして、私が今注目しているのは、

最近は、余り言われなくなった「Lua」です。

 

っで、iOSのネタを書こうかと思ってたんだけど、

以下のサイトに書いてあったんでやんぺです。<m(__)m>

あっさりと作れるのでお試しあれ。


iOS7でLuaバイトコードを実行するときの注意 - Qiita

 

っで、本題はここから。

今回は、AndroidをNDKを使用してLuaを使うさわりをしてみます。

単に、luaのScriptからNDKの関数を呼び出すまでをします。

ここで注意!!

NDKは、C・C++言語をJAVAから呼び出せるようにする仕組みのものです。

Androidの動作などは、知らないで開発すると工数が数倍かかることになります。

アンドロイドの開発が理解できてから取り組んでください。

 

とりえず。用意するもの。

AndroidStudio

NDK ツール

Luaソース

 

です。

MacでのNDKの解凍は、ダウンロードサイトの下の方に書いてますので、

それで解凍してください。

 

NDKのパスが必要なので覚えておいてください。

 

次回へ続く。。。。

 

LinuxのバックアップにMondo Rescueを使ってみる

サーバーが貧弱だけど細々と動かしてんだけど

Stagingサーバがなくてとりあえず社内のサーバだし試しちゃえ!!ってかんじで、

あ〜〜〜〜〜。失敗して動かなくなった〜〜〜〜〜o( _ _ )o ショボーン

 

こんな時に、低予算でバックアップをとりたいなーって思ったときに、オープンソースのバックアップツールがありました!!

 

それが、「Mondo Rescue」!!じゃじゃ〜〜〜〜〜んパフパフ( ゚Д゚ノノ"☆パチパチパチパチ

 

あんまし大きくないシステムで丸ごとバックアップできるような状態ならこれがおすすめ!!ISOに固めてくれてブートローダ付きなので再インストールも簡単!!

 

CentOSでやってます。

1)パッケージのインストール

これで、リポジトリからダウンロードできるので、yumでインストールする

 

2)バックアップフォルダ等の作成

  • バックアップ先の作成
  • isoファイル作成時に使用する一時ディレクトリの作成
  • 作業用ディレクトリの作成

 

3)バックアップの実行

  以下のコマンドをたたく

こんな感じです。簡単でしょ?┌┤ ̄ ̄ ̄〜〜〜 ̄ ̄ ̄├┘

 

お・ま・け 

もし、CRONへの登録する場合の例

編集内容

明けましておめでとうございます♪ d(⌒o⌒)b♪

明けましておめでとうございます。

 

ひっさしぶりに更新ですのじゃぁ。

もう止めようかと思っていたのですが、

今年こそまともに開発をやっていこうかと思って、

頑張っていきますわぁ。♪ d(⌒o⌒)b♪

 

ってことで、今回は、最近どこでもやっているSiriネタw

 

「おみくじ」って言うといろいろ反応してくれます。

えっとはじめに普通のもの。。。。。

f:id:tama-jp:20150102122300p:plain f:id:tama-jp:20150102122306p:plain

この辺もそうなのかな。。。。

f:id:tama-jp:20150102122311p:plain f:id:tama-jp:20150102122403p:plain

はぁ。。。。。。

f:id:tama-jp:20150102122330p:plain

おおおおぉ。気を使ってくださるのか。。。。。

f:id:tama-jp:20150102122335p:plain

はぁ、そ、そうですね。●-

f:id:tama-jp:20150102122317p:plain 

ラッキーアイテムに言われちった。。。。

f:id:tama-jp:20150102122427p:plain

えっ。。。。。。。。。

f:id:tama-jp:20150102122406p:plain 

いや、おい、だから。。。。。

f:id:tama-jp:20150102122246p:plain

何回かやってみたらいろいろ出てきました。w

iOSのこういうところがお茶目でええですなぁ。。。