tekitoumemo’s diary

思ったことを書くだけ。長文版Twitter

mvcがマジでわからん

わからん。

http://at-grandpa.hatenablog.jp/entry/2013/11/01/072636

すげー丁寧にわかりやすく書いてあるが、わからん。

modelはviewが求めてるデータを加工してコントローラーがその仲介しろってこと?

それが出来たらマジで理想的なんだけど、ちょこっと追加要件が発生したらさすがにデータ(SQLでしょ?って勘違いかな)加工を変更するのには大変じゃん?
リスキーだし。

それならデータをループしてる時にちょちょいと分岐入れるだけで追加要件をこなせるなら影響が段違いに違うよなー楽だし。でもコントローラーが肥大化する。

うーん

【Ubuntu】apt-getでインストールしたパッケージを削除する方法

groupsessionを入れてリバースプロキシを設定したけどどこ直したか忘れた。なので綺麗サッパリapacheを入れなおす。

で綺麗サッパリ削除は以下。

・設定ファイルを残す

apt-get remove xxx

・設定ファイルを残さない

apt-get purge xxx

・依存関係も含め削除する。

apt-get autoremove xxx

・Apache2関連のパッケージの一覧

dpkg --get-selections | grep apache

表示されたパッケージをremoveの--purgeオプションで全部消す。ってかこの作業だけでオッケイ。

・/var/www/index.htmlから任意の場所に変える
/etc/apache2/sites-available/default

DocumentRoot #ココ


こういう記事でsudo入れるといちいち気になる人が居るみたいだけど、マジでどうでもよくね?って思っちゃうって。

【Linux】lftpでftpsを使う ※Mac追記

ホームページのデプロイをxdomainのファイルマネージャ経由でやってた。面倒くさすぎ。

ftp→危ない。
lftp→ftps使用出来る。安全

xdomainでは無料サーバーでもftps接続出来るみたい。

・下準備
/etc/lftp.confに以下を記載

set ftp:ssl-auth TLS
lftp -u ユーザー名 ftp://サーバー名
パスワード: xdomainのFTPアカウントメニューで設定したパスワード(超嘘こいた)


ログ確認すると(-eオプションでdebugコマンドを指定した場合のみ)21番(xdomainでftp21番使ってねだって)で接続して返ってきたメッセージに「AUTH TLS successful」って書いてあるからFTP over SSL/TLSが接続出来たことが確認出来る。
さくらサーバーだと下準備がもっと必要みたい。Explicit?よくわかんないけど

macだとmacports経由でlftpを入れる必要あり。試したら追記する

追記:
MacLinuxも基本一緒。MacPortsだけ。
MacPortsを入れる。
.bash_profileに以下を追記

export PATH=/opt/local/bin:/opt/local/sbin:$PATH
export MANPATH=/opt/local/man:$MANPATH

あとはlftpを通常通り使う。下準備いらないっぽい(デフォルト設定なんか?AUTH TLS successfulって表示された)
mgetですでにファイルがあると「lftp : ファイルはすでに存在し、また xfer:clobber がセットされていません」って出るから上書きOKにする。

set xfer:clobber on

カレントディレクトリ以下のファイル、フォルダすべてダウンロード。-Rオプションでアップロード

mirror

【ITunEsTooL】レビュー ①

レビュー数 : 1

前と比べて使い勝手が悪くなってます
レビューを強要したり同期されなくなってがっかりしました


>前と比べて使い勝手が悪くなってます。レビューを強要したり

申し訳ありません。レビューは使って頂いているユーザーのご意見を聞きたく設置しました。「次回から表示しない」にチェックをして頂くと、再インストールしない限りずっと表示されなくなります。

>同期されなくなってがっかりしました

同期に関しては、ココに記載が書かれている通りの処理、例外が発生する曲以外はすべて取り込むようになっています。iTunes側に問題がある可能性がありますのでご確認していただけるとありがたく思います。

ご意見ありがとうございました。

【C#】iTunes COM Interface & Gapi.NET

5月からWeb系会社に転職するんで、必要に迫られてC#の復習。
でも普通に勉強なんてしてらんないんで、メンテナンスがてらにいじってる。
ってことでITunEsTooLの処理一部。

たぶんもう一生使わない。

iTunes COMGapi.NETがキーとなる感じ。

・曲情報を取得(iTunes COM)

int highID;
int lowID;
iTunesApp app = new iTunesApp();
IITFileOrCDTrack file = null;

foreach (IITTrack files in app.libraryPlaylist.Tracks)
{
 try
 {
  file = (IITFileOrCDTrack)files;
 }
 catch (Exception)
 {
  continue;
 }
 //get_ITObjectPersistentIDHighの引数はIITTrack、IITFileOrCDTrackどっちでもOK
 highID = itunes.get_ITObjectPersistentIDHigh(file);
 lowID = itunes.get_ITObjectPersistentIDLow(file);
}

ループでIITTrackでなくIITFileOrCDTrackにすると暗黙の型変換を行ってくれるんだけど、
編集不可能なファイルがあったりすると落ちる(マジでココの人ありがとう
だから明示的にキャストしてtry catchで囲ってる感じ(なにがあるかわかんねーからExceptionでcatchしてる、プログラマ失格。
get_ITObjectPersistentIDHighについては後述。


・任意の曲情報を取得(iTunes COM)

IITTrack track;
IITTrackCollection trackCol;
track = trackCol.get_ItemByPersistentID(highID,lowID);

iTunesの外部ソフトって再生中に何かしらするってものが多い。わざわざ再生なんかしたくねー曲がいっぱいあるからiTunes COMを読み漁ったらget_ItemByPersistentIDってのがあった。Name(名前検索)、PlayOrder(曲順)とかもあるけど、重複曲があったり、曲順とか常に変更するから全く使い物にならん。ItemByPersistentIDって名前から永続的に持ってる固有のID的な感じで読みとれた(恐らくTOEIC100点台の英語力)からこれでいいはず。引数は上記のとおりに取得出来る。

Google検索で画像のURLを取得(Gapi.NET)

SearchResults results;
results = Searcher.Search(SearchType.Image, Searchword);
foreach (SearchResult result in results.Items)
{
 //WebClient使って画像のダウンロードが可能(URLプロパティに検索結果が入ってくる
}

Searchの第一引数のSearchTypeをImageにする。
一回の検索で取得可能な回数は8回まで。たしかSearchの第三引数かなんかで検索開始位置を設定出来たような。
要は無限で検索可能っぽい。

どうしてもGit使いたいからVisual Studio2013Expressをインストール中。
今後使えるプログラマはGitHuber(GitHubを使いこなす人(俺命名)かそうでない人で分けられる気がする。

【C#】「GDI+ で汎用エラーが発生しました。」ってなんだよ

ITunEsTooLってC#アプリをノリで作った。

能力が無い癖にノリで作ったから悲惨。

どう変更していったか以下の記載。


・処理

ダウンロードした画像が10K以下だったら画像を破棄。

10K以上だったら取得。
で画像を確認してもらってオッケイだったら保存って流れ(ココは面倒だから書かない。
要はそこそこの画像を確認して納得したら保存的な流れ。

・最初

WebClient wc = new WebClient();

wc.DownloadFile(URL, Filename);

FileInfo fi = new FileInfo(Filename);

if (fi.Length < 10000)
{
//ココでファイル削除
}

wc.Dispose();

消すかも知れない画像をファイルに落としてる時点でクソ

・後

WebClient wc = new WebClient();
byte[] pic = wc.DownloadData(URL);

if (pic.Length > 10000)
{
 using (MemoryStream st = new MemoryStream(pic))
 try{
  using (Image imgSrc = Image.FromStream(st))
  {
  Image IMG = new Bitmap(imgSrc);
  }
 }
 catch (ArgumentException)
 {
  //違うURL検索
 }
 //画像保存(IMG.Save)やらなんやら
}
wc.Dispose();

ArgumentExceptionはたまにDownloadDataが機能しないときがあって
例外(使用されたパラメーターが有効ではありません。)が発生するからその対処として。

FromStreamしたImageでSaveするとの例外(GDI+ で汎用エラーが発生しました。)が
発生する場合がある。

対処法がココに書いてあって
別のBitmapに対処するとオッケイみたい。

ってかURL上の画像のファイルサイズって取得出来んのかな?