エクセルをplistに変換する方法(ruby版)
なかなかブログを更新しないたまたんっす。
そろそろ、マジでアプリを発表しんと。。。。。
Objective-CでCSVをプロパティリストに変換する方法 - たまたんのぶろぐでCSVからplistを作成しようとしましたが、拡張CSVで1セル内に改行が入っているとうまくうごかないっすつД`)・゚・。・゚゚・*:.。..。.:*・゚
それに、エクセルで一度作成してCSVに変換してiOSで・・・・って、めんどくさいことしてました。自分で思ったけど、アホやな。。。。。
ほんでもって、仕事で使おうとしてめんどくさかった。。。。。
って言うことで、手っ取り早くplistに変換する方法をスクリプトを作成しました。v(´∀`*v)ピース
仕事もめっさ楽になりましたw
Ruby(2.0)で動作確認しております。
「roo」ライブラリでExcelを操作読み込みし、「CFPropertyList」ライブラリでplistに変換出力します。
ソースはこちら。
> 入力
>出力
ひっさしぶりにRubyで書いてみたけど、やっぱり難しいなぁ。。。
はやく、Rubyをマスターしたい。。。。。
ではでは。
UITableViewをアコーディオンっぽくする方法(簡易版)
またまた投稿!!\(^-^)/バンザーイ、/( )\モヒトツ\(^o^)/バンザーイ
今回も、またまた、iOSですなのだ!!
一時期、UITableViewのアコーディオンが流行りましたが、
そん時は全く興味がなかったのでスルーしてましたw
今、ちょうど、自作アプリを作っている最中に、オープンソースとかで簡単に作れるようなのないかなぁって、見てみたら、表示ばかりを気にするものが多く、自分で装飾を変えるのがめんどくさそうなのばかりでした。だから、自作しようかと思い、多階層を作る前に簡単な2階層までのアコーディオンを作ってみました。
まぁ、当たり前のソースなんでだれでも、作れるとは思いますがね。
ミソは、カテゴリを作るところだけですので、
説明せんでもわかるでしょうから今回はソースだけです。w
動作はこんなんになります。
ではでは。<(_ _)>
Objective-CでCSVをプロパティリストに変換する方法
珍しく2日連続で投稿w
昨日、Cocoa勉強会関西ビギナーズに参加してきました。
おまえビギナーだったんかいって突っ込まれそうですが、いつも心は初心者です。( ー`дー´)キリッ
それは冗談で、難しいことは教えられないですが、
初心者の方に教える力はありますので、参加させていただいております。(⌒〜⌒)ニンマリ
それで、その時に、CSVやXMLからplist(プロパティリスト)に変換する方法はないかと聞かれました。
そもそも、plistは、XML形式になっていています。
詳しくは、
Property List Programming Guide: Introduction to Property Lists
を参照してください。英語だけどね。。。
plistには、形式がいろいろありまして、
配列型、辞書型、文字列型、データ型、日付型、整数型、浮動小数点数型、ブーリアン型(YES/NO)があります。
今回は、配列と辞書型を変換するようにしてみます。
また、CSVは、カンマ区切りでやってみます。(ダブルコート「"」を使用したものとそうでないものとを扱います。)
ちなみに、Objective-C(NSObject)には、plistへシリアライズ化するものがあるので、簡単に変換できるようになっています。(参照)
それを使ってプログラムを書いてみます。
小さいプログラムを作るので、ちょっと冗長なところはあるかもしれませんが、
勘弁してくらはい。<m(__)m>
ソースは、自由に使ってかまいませんが、
出来れば、Webサイトの紹介をしていただければありがたいです。<(_ _)>
まずは、単なるカンマ区切りのCSVを変化するプログラム
単に、1行ずつ読み込んで
行を「,」で分割して順番に辞書にほりこんでいきます。
そしてそれを配列に突っ込んで、後はシリアライズ化!!
どう?かんたんでしょ?
でもこれだと、カンマが入った文章中にのCSVだと、少々難しくなるので、
正規表現でカンマの位置を取得して、
順番にカンマ位置までのワードを取り出していき、「"」がついていたらトリムするようにしてます。
こんな感じですね。
後者のテストデータと実行後の出力データをのしておきます。
test.csv
-----------------------------------
test1,test2,test3,test4,test5
あ,い,う,え,お
か,き,く,け,こ
"さ","し","す","せ,","そ"
た,ち,つ,て,と
-----------------------------------
test.plist
ちょいと、後者は難しかったかもしれないなぁ。。。。
Sublime TextでObjective-Cのプチコンパイル
ひっさしぶりに投稿!! (。・_・。)ノ
Objective-Cでの開発をしているときに、数学的なロジックを作成するのに、
簡単なコンパイルが欲しいときがあります。
エディタをちょっと変更したいなぁ〜って思うときありませんか?
え?「ない」って?(; ̄ー ̄A アセアセ・・・
いやあるでしょ?(; ̄ー ̄A アセアセ・・・
「だから、ない」って?(; ̄ー ̄A アセアセ・・・
そういう人は無視して紹介します。ヽ( ゜ 3゜)ノ
途中からメニュー画面が日本語化され色が変わりますが、
ご愛敬で・・・・・(; ̄ー ̄A アセアセ・・・
こんな時は、今までCodeRunnerと言うソフトを使ってました。
まぁ、これでできますよぉ〜っなんですが、
いつも使ってるエディタでコンパイルがしたかったので、
Sublime Textでコンパイルできるようにしました♪ d(⌒o⌒)b♪
ちなみに、コマンドラインでは、
clang -g -x objective-c -fmessage-length=0 -std=gnu99 -fobjc-arc -Wno-trigraphs -fpascal-strings [ターゲットファイル] -framework Foundation -o [アプリ名]
っと書きます。
これをsublimeのBuildSystemに書き込むだけ。
Sublime Textを開いて。
メニューバーから「Tools」をプルダウンします。
BuildSystemから・・・
New Build System...を選ぶ。
そうするとファイルが表示されます。
それを下のコマンドを入力する。
=========================
{ "cmd": ["clang" , "-g" ,"-x" ,"objective-c" ,"-fmessage-length=0" ,"-std=gnu99" ,"-fobjc-arc" ,"-Wno-trigraphs", "-fpascal-strings" , "${file}" , "-framework Foundation" , "-o", "${file_base_name}"], "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", "working_dir": "${file_path}", "selector": "source.c", "variants": [ { "name": "Run", "cmd": ["bash", "-c", "clang -g -x objective-c -fmessage-length=0 -std=gnu99 -fobjc-arc -Wno-trigraphs -fpascal-strings '${file}' -framework Foundation -o '${file_base_name}' && '${file_path}/${file_base_name}'"] } ] }
=========================
こんな風に。。。
んで、保存。[コマンド+S]で保存する場所が出てくるので
名前を変えて、パスはそのままで保存!!
すると新しくメニューに追加されます。
これでしたごらえOK!!
じゃぁ、テスト!!
とりあえず、1から10まで足し算するコード。
書いたら、ビルドを選択して(自動でもいいかも)
ビルドして実行を実行する!!
こんな風に出来ます。
簡単でしょ?(˶‾᷄ꈊ‾᷅˵)
MacでRVMを違うバージョンをスクリプトで動かす方法
ようやく、まともな投稿( =̴̶̷̤̄ .̫ =̴̶̷̤̄ )
Rubyのテストのために、1.8.7を使用して、
それ以外は、2.0.0を使おうと思ったら、すっごくめんどくさい。
そこで、RVMを使用して切り替えて使うことにした!!
でも、使うときにいちいち、
> rvm 1.8.7
のように、変更しなきゃならない。
じゃぁ、これごとスクリプト化してやればいいじゃん!!(*Θ_Θ*)/
つうことで、やり方。。。。
普通にシェルにrvmを設定しても動作しないので、
gemsetを使用する。
# rvm use 1.8.7
# rvm gemset create ruby187
これでgemsetができあがったので、
# rvm env --path -- 1.8.7@ruby187
で、パスをとってみると、以下のようなパスがとれる(環境によって違うので注意)
/Users/ruby187/.rvm/environments/ruby-1.8.7-p374
これを、viエディタか何かで以下のスクリプトを作成する。
例えば、「rubyT.sh」のように。。。。
======ここから=====
#!/bin/bash
# load rvm ruby
source /Users/ruby187/.rvm/environments/ruby-1.8.7-p374
ruby $@
======ここまで=====
これの引数に、スクリプトを読み込ましてあげればOK!!
例えばこんな風にでます°₊·ˈ∗( ˃̶᷇ ‧̫ ˂̶᷆ )∗ˈ‧₊°
これで、CodeRunnerとかで簡単に使えるようになったヾ(^v^)k
参考:
http://rvm.io/integration/cron
githubのクローン( =̴̶̷̤̄ .̫ =̴̶̷̤̄ )
って思ってたら、ありました!!( =̴̶̷̤̄ .̫ =̴̶̷̤̄ )
それは、「GitBucket」です。
完全にgitHubのクローンです。
出来ることは以下の通り、
・Public / Private Gitリポジトリ (http のみ)
・Repository viewer (オンライン編集は搭載していない)
・Repository search (Code と Issuesのみ)
・Wiki
・Issues
・Fork / Pull request
・Mail notification
・Activity timeline
・User management (Administrator用)
・Group (like Organization in Github)
・LDAP integration
・Gravatarもサポート
まだまだ発展途上なところはありますが、
社内で作るには、すごっく楽じゃないかと思います。
JAVAが動いていればどこでも作れます!!すげー(゚д゚)!
あっ、エンジンとしてTomcat 7.x, Jetty 8.x, GlassFishのいずれか必要ですよぉ。
インストール方法
今回は、Tomcat7でインストールします。
システムにJAVAをインストールしておきます。
#JDK のインストール
# yum -y install java-1.7.0-openjdk
tomcatをダウンロードし、解凍。
$ wget http://ftp.meisei-u.ac.jp/mirror/apache/dist/tomcat/tomcat-7/v7.0.47/bin/apache-tomcat-7.0.47.tar.gz
$ tar xzf apache-tomcat-7.0.47.tar.gz
次に今回の主人公「gitbucket.war」をダウンロード
$ wget https://github.com/takezoe/gitbucket/releases/download/1.7/gitbucket.war
ちなみに、これでダウンロードするとファイル名がおかしくなります。
例:
$ ls
95d6668e-3d95-11e3-9de6-e4a25fcf1676.war?response-content-disposition=attachment; filename=gitbucket.war&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1384676769&Signature=Xwp9Ak4FllbN8kZhPTmosHwxluM=
これをmvで「gitbucket.war」にリネームし、「webapps」に移動する。
$ mv gitbucket.war apache-tomcat-7.0.47/webapps/
あとは、tomcatを起動するだけ!!
$ apache-tomcat-7.0.47/bin/startup.sh
そうすると、以下のサイトから起動することができます。
http://localhost8080/gitbucket/
こんなかんじ!!gitHubににてるでしょ!!
これからも期待できますよね。♪ d(⌒o⌒)b♪
あっ、止める場合は以下を実施します。
$ apache-tomcat-7.0.47/bin/shutdown.sh
*1:(・・ )( ・・)
VagrantでVMWareFusionを使う方法
これから、Systemの手順書を文章ではなくてスクリプトで各時代が来ましたねぇ。
VagrantでVMWareFusionが使用出来るので、
とりあえずメモとしてインスコ方法を書いときます。y( ̄ー ̄)yピースピース
いつもの通りええかげん手順書を見て下さいw
1)Vagrantのインストール
Vagrantから本体をダウンロードしてインストール。
これ出来ない人は、Macを使わないでw(冗談です)
一応確認、バージョンの確認
$ vagrant -v
Vagrant version 1.2.2
2) VmwareFusion用のプラグインをインストール
$ vagrant plugin install vagrant-vmware-fusion
このプラグインは有料です。ここから購入して下さい。
購入したら、ライセンスファイルが送られてくるので、
それを読み込ませます。
vagrant-vmware-fusion ライセンスの設定
$ vagrant plugin license vagrant-vmware-fusion license.lic
以下のコマンドをたたきます。
(Boxのバージョンが上がっているかもしれないのでここで確認)
$ vagrant box add centos https://dl.dropbox.com/u/5721940/vagrant-boxes/vagrant-centos-6.4-x86_64-vmware_fusion.box --provider vmware_fusion
4)Vagrantfileを作る
$ vagrant ini
上のコマンドで自動的に作られるのですが、内容を以下のように作っちゃいました。
$ vim Vagrantfile
--------------------------------------------
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "centos"
config.vm.box_url = "https://dl.dropbox.com/u/5721940/vagrant-boxes/vagrant-centos-6.4-x86_64-vmware_fusion.box"
# config.vm.network :forwarded_port, guest: 80, host: 8080
#config.vm.network :private_network, ip: "192.168.33.10"
# config.vm.network :public_network
# config.ssh.forward_agent = true
# config.vm.synced_folder "../data", "/vagrant_data"
config.vm.provider :vmware_fusion do |vb|
# Don't boot with headless mode
vb.customize ["modifyvm", :id, "--provider", "vmware_fusion", "--memory", "1024"]
end
end
--------------------------------------------
たぶん以上で、出来ちゃいます。
vmwareを使用可能にしておかなければ動作しないようで、
以下のコマンドをたたきパスワードを入れる。
$ vagrant up --provider=vmware_fusion
>> パスワードが聞かれるのでシステムのパスワードを入れる。
これで、次回からは「vagrant up」で起動出来ます。
通常
$ vagrant up
お試しあれぇ〜!! ( ^ω^ )ニコニコ
※ 結局、まだ、プラグインが少ないし、資料があまりないのでVirtualBoxを使用することにしますね。