python+Qt+Mac(El Capitan)でちょっとハマったこと

またお久しぶりですね・・・

現時点(8月末くらい)でJava飽きたで学びたいことは一通り学べたので、一旦こちらは置いて新しいことを学習しようと。というわけでpythonを勉強することに。理由としては以下みたいな感じ
スクリプト言語を本格的にやりたかった(これが結構強い)
スクレイピングで遊んでみたかった
・webから機械学習、データ分析と色んな所で幅広く使われてるから

で、とりあえず「yahoo天気」からある情報をスクレイピングしてtwitterに自動POSTみたいなのは作った。
BeautifulSoupで意外とかんたんに作れた
ubuntupythonのバージョン切り替えで手こずったりしたけど・・・

次はDjangoでもやろうと思ったけど自分Web向いてない気がするので、Qtでも弄ってみようかなと。

さて、ようやくここでタイトルと結びつくわけですが、MacでQt Creator起動したら、こんなエラーが

Project ERROR: Xcode not set up properly. You may need to confirm the license agreement by running /usr/bin/xcodebuild

結論から言うと、default_pre.prfファイルの以下を変える
(場所:(インストール先)/5.x/clang_64/mkspecs/features/default_pre.prf)
※5.xのxはインストールバージョンによりけり。ちなみに僕は5.6でした。

変更前:isEmpty($$list($$system("/usr/bin/xcrun -find xcrun 2>/dev/null")))): \
変更後:isEmpty($$list($$system("/usr/bin/xcrun -find xcodebuild 2>/dev/null"))): \
xcrunの部分をxcodebuildにする。

ーーー以下長い奮闘詳細ーーー
xcodeのライセンス同意せいや!って怒られたけど、いや、xcode入ってるし、ライセンス同意したし。。。
とりあえず上に書いているとおり「xcodebuild」を以下コマンドのような感じで立ち上げ

sudo xcodebuild -license

するとターミナル上で「Software License Agreements Press 'space' for more, or 'q' to quit」
と出て来る。どうやら、あの長ったるいライセンスがターミナルで読めるらしい。
ライセンス条項とか興味ないのでq押した後に「賛成ならagreeって打ってね」と言われたのでその通りに。。。

しかしエラーが消えない・・・

再インストールとかしてもだめ・・・

そこで、上記の通りdefault_pre.prfを修正すれば良いということを発見し、事なきを得る。

xcodeのライセンスってターミナルで見れるんだというのも思わぬ収穫だった。。。

ThinkPadX201復活計画

ほこりをかぶっていた黒いあやつ、もうちょっと詳しく言うと、ThinkPadX201さん。このままにしておくのはなんかもったいないので、ひと手間加えてちょっと使ってあげることに。

ubuntuでも入れて遊ぼうかなーとか思ってたら、HDDいかれてやがったので、ちょっくら横浜まで行って500GBのHDDを購入。
ついでに、というか意外と安かったのでメモリ4GBも購入(こっちはAmazonだけど・・・)

というわけで、購入時よりこんな感じでパワーアップ!
・ストレージ・・・320GB→500GB
・メモリ  ・・・ 4GB→ 6GB

で、ここにubuntu16.04をインストール!

日本語入力の設定とか、リモートデスクトップの設定とかいろいろと苦労したが、まあ何とか終わり。
ただ、リモートデスクトップは、実際Windowsから動かすと動きがもっさりしすぎて、実用には程遠い状態なのでたぶん使わない。
TeraTermから色々と弄る感じかなー

以下、参考にしたサイト
ubuntuインストール
※今回は、USBメモリ利用してインストールしました。
UbuntuをUSBメモリからインストール | Linuxサーバより愛を込めて。

○日本語入力設定
第395回 Ubuntu 15.10の日本語入力:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

で、一通り終わったので、apatchとか入れてwebAPを動かしたり(localhostでやるのはもう飽きたw)、ファイルサーバとか
そんなので使ってみようかなと。

OpenCVsharp導入

表題の通り、OpenCVsharpを導入してみた。

Visual Studio 2015のNuGetパッケージを利用したので、非常に簡単にできた。
詳細は以下
[OpenCV] OpenCvSharp3を使う – 端くれプログラマの備忘録

で、軽くフォームアプリを作成した見ました。画面はこんなのです。
f:id:jun_ya2085:20160627220923p:plain

左側が元画像で、下のボタンを押すと、右側にボタンに応じた画像処理後の画像を出すという簡易なものです。
ちなみにエッジ検出はCanny、2値化は大津の手法使ってますね。特に意味はないですけどw

こいつ作るときに少し悩んだのが、OpenCVの画像を定義する型であるMat型をWindowsのフォームに表示させるという
超初歩の部分。Windowsフォームのほうは、Pictureboxを使っているので、以下の感じで処理を進める。
1 Mat型で画像読み込み
2 Pictureboxで表示できるようにMat型をBitmapに変換
3 変換したBitmapをPictureboxに表示。

上記のコードは以下です
1 Mat image = Cv2.ImRead("lena.jpg");
2 Image img = BitmapConverter.ToBitmap(image);
3 pictureBox1.Image = img;

今は、lenaさん画像しかないですが、近いうちにはユーザが選んだ画像でやりたいですね。
画像処理というよりUIの強化ですが・・・

画像処理を習いたての人が、基本的な画像処理を施すとどんな感じになるのかな?というのを観察するようなアプリにしたいですね。
ほかにも、例えば、2値化のときにスライダーで閾値変更できるとか、エッジ検出のアルゴリズム選択できるとか、色々とやってみたいです。

とりあえずコード以下に挙げました。コード汚いとかそういうのは重々承知ですし、これから整理していきたいのであんまりたたかないでください・・・
GitHub - jun-ya-2085/imageprocess-csharp

スーパー久しぶりじゃないか!!!

すごく久しぶりに筆を取ります。

仕事が結構忙しくなったり、色々と考えさせられたりしていて気が付いたらもう春通り越して夏やんけーーーーーーーー

仕事が結構きてたので、会社辞めたいとかプログラムもっととか、そんなことを思う暇もなく、いつのまにやら。。。
最近落ち着いてきたので、近況というかなんというかを。

MacWindows 10入れた。まあBootcamp使ってだけどね。
→.net開発したかったからね。今はC#OpenCVいじってます。

システムアーキテクトの勉強中
→こっちは意欲が出てきたから。1年前に本屋で立ち読みしてわけわからん状態だったけど、今読んでみるとあら不思議。
結構流し読みでも理解できるのねん。応用情報すっとばしていきなりこっち受けようかと思っております。ただ今年の秋はたぶん無理なので
秋:午前免除のための受験、来年春:本チャン、みたいな感じでいければなー

ちょっとずつ落ち着いてきたので、またこちらも色々とかければいいなーなんて。

皆さん音楽何聞いてます???

IT系の記事ばかりもアレなので、たまにはこういうのも。

僕は音楽は結構聞くタイプ。適当に寝そべっている時も、通勤の時も、車運転してる時も、こうやって勉強とかしてるときも。。。

ふとした時に、自分どういう音楽聞いてんのかな−とか思ってiTunes眺めてたら、まぁ統一性がないことこの上ないww

90年代くらいの懐メロから、自分が中高生位だった時の曲とか、今をときめくアイドルの曲とか、ボカロとか。あと。なんだこのアーティスト?って思ったら、あー昔ラジオとか有線で偶然かかってきていい曲だと思ったから、頑張って調べてDLした曲だ!とかそんなのもある。

僕は、いいと思ったら何でも聞くタイプなので、実は特に好きなバンドとかっていない。しいて言えばアジカンとかDoAsとかは結構好きな傾向にあったけど、めちゃめちゃ好きかと言われるとね。

僕の経験上、大体の人には好きな歌手とかバンドっていうのが存在してるイメージ。だから、好きな歌手とかバンドとかいる人ってある意味羨ましいなーって思ってた。

でも今は逆で、そういう統一性のない感じで色々と知ってるから、ニッチなバンドとか知ってる人に合うと「あーそれ知ってる。あの曲すき!」みたいなそういうまた違った会話が広がるから。

ちなみに僕がこの間ラジオ聞いてていいなーって思った曲はI Don't like MondaysっていうバンドのSorryって曲。アップテンポで聴きやすい。
columbia.jp

何か新しいことを・・・

さて、とりあえずはgithubにコードあげたし、目標としていたところはできたわけだ。
githubのコードを色々といじって仕上げようと思ったけど急に熱が冷めてきたので別のことを始めようかな−と。
今考えてるのは以下。
デザインパターン勉強してgithubコードを再見直し
のっけから新しいことじゃ無いじゃんっていうwまぁ新しいことを勉強して、設計のスキルを底上げという意味では新しいことなのでこれはこれでよしとする!

JUnitとか使ってテスト系をやってみる
テストツール使った、テストを一通りやってみようかな、という構想もある。もちろん今のコードで。テストコードは全く知らないため、やりたいけど、ぶっちゃけあまり興味わかない・・・

Webアプリ開発
JavaでWebアプリ開発でもしようかなと。今の本管理アプリケーションをWebアプリとして作るってのはありかな。フレームワーク使って開発してみたいけど、そもそもWebアプリの基礎的な話は結構昔に勉強したので、ここから復習しないと・・・

Android開発
今回製作したのはコマンドライン上でのアプリなので、今のロジックをそのままAndroidに移植して、糞アプリでもリリースまでこぎつけられたらな−なんて思ってみたり。今のところこれが一番興味あり。

というわけで、まぁ色々と学習したいこと、すべきことはたくさんあるけど、自分がいちばん興味が湧くものからやっていこうと思う。何やるか決まったらまたここに書きます。

・・・といっても誰も見てくれてないと思うけど。

githubにコードあげてしもうた

前々からいじってた、コマンドライン上での本管理アプリケーションのコードをgithubにあげたので、よかったら、みなさん見てくれませんか?というお願いです。

github.com

英語で説明書きましたが、初心者も初心者なので「コードこういう風に書いたほうがいい」とか「何だこの設計やり直せ!」でもいいです。多分見ていられないコードだと思いますが、思いっきり叩いてあげてください。やっぱり人に見てもらわないと、勉強にならないし。

僕は僕でもう少しコードとか設計を見なおしてみます。Readmeはこれから書こうかな・・・