Archives

2013.12.08 study-daily

コーディングリハビリ06

リハビリその3

今回は、バブルソート

PHPでは、

Perlでは、

Pythonでは、

Rubyでは、

習熟度が低いのでPerlとPHPが同じ内容になる。

pythonが好みだけど毎回2つリストを生成してmapしてるのでコスト高そう。

すんなり1つのリストだけでできないものか……

[Read More…]

2013.12.08 study-daily

コーディングリハビリ05

昨日の文字チェックをPHP以外で試す。

与えられた文字列が全てユニークな文字で構成されているかのチェック。

PHPは前回やっているので、今回は掲載無し。

Perlでは、

Pythonでは、

Rubyでは、

文字列のまま操作するなら指定の文字が同じ位置にあるのか先頭から検索と最後尾から検索でインデックスが同じか調べる。

配列で操作するなら、重複不可の配列を作って要素数が変わってないか調べる。

pythonが一番スッキリしているようだけど、やっぱりRubyかな

[Read More…]

2013.12.06 study-daily

コーディングリハビリ04

今回は与えられた文字列が全てユニークな文字の構成かどうか調べる。

そういう問題を出されてスマートに答えられなかったので、調べた。

1,回答した内容を修正したもの

2,PHPのリファレンス見てて思いついた方法

3,文字列のままチェック

4,PHPの関数とか出てこなくて回答できなかった、頭の中にあったロジックを具現化したもの

 配列に変換してshiftしながらチェックする方法

どうも実行してみると2や3が早いようだ。1文字でもユニークでなければFalseにする3が内容によっては最速

やはり何回も配列を操作するとコストが高くなりますね。模範解答が欲しい。

[Read More…]

2013.12.06 study-daily

コーディングリハビリ03

リハビリその3

今回は、バブルソート

PHPでは、

Perlでは、

Pythonでは、

Rubyでは、

Rubyが一番スマートかな

[Read More…]

2013.12.06 study-daily

コーディングリハビリ02

リハビリその2

今回は、ファイル読み込みとその時の簡単な例外処理

読み込むテキストファイルの内容は以下の通り、

PHPでは、

Perlでは、

Pythonでは、

Rubyでは、

うるう年の判定処理は適当。pythonが一番しっくりくるかな。

[Read More…]

2013.12.06 study-daily

コーディングリハビリ01

一定時間未満の習得状態だと、日々使ってないとすぐ書けなくなりますね。プログラミング言語というのは。

paizaなんかの超初級問題も関数のリファレンスとか見ながらじゃないと全く解けない。

という事でリハビリ。

今回は標準入力。

PHPでは、

Perlでは、

Pythonでは、

Rubyでは、

標準入力が「gets」だけで取れるRubyはダンディ。

[Read More…]

2013.12.06 study-daily

Laravel4触り始めました

Laravel4がこれから流行るかなーって思ってちょっとチュートリアル(クイックスタート)なんかを触り始めました。

テンプレートエンジン用ファイル上でのコメントアウトの書き方を理解していなくて、変数見つからないエラーとか出しまくってた。

{{– コメントアウトしたいコード –}}って書かないといけない。ていうか、そもそもの外で変な書き方してたのが悪い。

あと、migrationの使い方全然理解していないのでそこで詰まった。

検索フォームの値を受け取ってモデルに検索処理投げてレコードオブジェクト(モデルイングタンス?)受け取る処理はコントローラーに書くの?それともViewファイル?

わかりません。。。

[Read More…]

FuelPHPで文字化けーアップロードファイル名とメール添付ファイル名

FuelPHPをUbuntu上で作成してWindows環境(Win2003、IIS6)に納品した結果、

Windowsのクライアントからファイルアップロードするとアップロードされたファイル名が文字化けしている!

(PHPの内部エンコードがUTF-8だけどWinがShift-JISだから)

→アップロードは送信メールに添付したいがためにしているだけなので文字化け解消しなくても良かったのですが、後でアップロードフォルダ内の整理や確認等人力で行う場合に視認性が悪いので無理やり対応。

FuelPHPのUpload::save()を行う前に

ってやってアップロードファイル名をエンコードする。

弊害としては本来は内部エンコードのまま処理が進むはずだったので、同名ファイルが有る場合に枝番を付加する処理なんかが正常に動作しなくなる。

これでWindowsサーバーのフォルダに読める文字のファイル名でアップロードされる。

最初エンコードをSJISにしてたけど、CP932にしたら、①みたいなMS拡張の機種依存文字も大丈夫になった。

本当はもっとスマートな方法が欲しかったんだけど、ファイルを置くところの処理がCoreファイルで作られていて入り込む余地が無いように思えた。それとも   

とかやったら良かったのかな?

文字化け状態でアップロードされたファイルをメールの添付に加えると添付ファイル名も文字化け!

(ま、そりゃそうですね)

→上記1の結果を受けてメール送信のメソッドに引数として添付ファイル名を渡す。その処理は何も加工しない。

メール送信用のメソッドの中で、引数で受け取った添付ファイル名をFuelPHPのmailに渡す処理を加工

それでも、メールヘッダがISO-2022-JPなので、機種依存文字の類はメールを受信した時に「?」とかになってるけど、それはしょうがないよね。

メールの件名が文字化けすることがある!

→犯人は半角カナ。使わないで!件名はFuelPHP側で送信時にISO-2022-JPに変換してるっぽいので、mb_convert_kana関数使って件名に含まれている半角カナを全角に変換して誤魔化す。

以上、うんこメモでした。

[Read More…]

sshで、ぷごふぁ

WordPress勉強してます。テーマについてはだいたい分かったので、自作テーマとか作っていきたい。

ゆくゆくは案件事例的なぽーとふぉりおサイトを作ろうと、とりあえずさくらVPSを立てて、SSHの

設定をする。

 

契約だけしてながらく放置していたので、OS再インストールしてSSHで接続しようとしたらエラー出て

ぷごふぁ!ってなった。調べたら出てきました。

参照: http://qiita.com/wnoguchi/items/690f3f4651f8f11e4ed3

要は以前に接続した際のゴミが残っていて再インストールしたのでIPとポート同じなのに鍵あわないじゃん!

て言うことでした。やっぱりデータを消せばいいだけだったんだ。初期化するコマンドとかないんかな?

Qiitaは素人同然の自分には本当に助かる。

[Read More…]

印刷用CSSでハマった

この間、印刷用CSSを回収していて「そんなん知らねーよ!」ってなった事。

問題のCSS: page-break-before

いやコレでね強制改ページできるんで特定のdivタグのところで改ページさせようと

していたんだけど、ChromeではなるのにIE(対応対象はVer 9)だと改ページしてくれない。

IEでも解釈されるはずなのになんで?ってなって諦めてたんだけど、調べてたら出てきた。

IEの場合はpage-break-beforeが適用される要素がページをまたぐような位置にいる場合は

無視されるそうです。で、ちゃんとは調べてないのですがpage-break-beforeの場合はその

要素がpage-break-afterの場合は次の要素が判定基準になるっぽぽぽぽいです。

対処方法としては改ページしたい場所にからのdivを入れてその要素に対して改ページ指定の

cssを適用させるって方法。Web素人には分からんよ。Web上でCSSリファレンスをさっと見ても

そのことについての記述なかったし。んもう!

[Read More…]