プログラミング忘備録と日記と時々育児の話

アジャイルとAIに関心を持っているSE。1児の母。エキスパートというよりはジェネラリスト。

プログラマの美徳だけでは未来にススメない

「ベテラン技術者Aさんに中堅技術者Bさんを付けて作業してもらいましたがPMの意図するような情報伝搬は起きませんでした。なぜでしょう? みんなで原因を考えよう!」に対して。
私頭御花畑なので、「2人ともシャイで人見知りだった…?」なんて思ったのですが、大半の意見は「Aさんが自分の技術を出し惜しみした(自分の仕事が取られると思った)」だったので「えぇ…」ってなりました。
でもあるあるだそうで。幸い私は先輩たちからあれこれ教えてもらった経験ばかりなのでピンと来ない…いや、出し惜しみされてたのに気づかなかっただけかもしれませんが…。

 

そんな話をしていて、なんとなく思い出したのが、Perl作った人が言ったらしいプログラマの美徳。なんかふと思い立って原文を読んでみました。

原文こちら https://www.perl.com/pub/1998/08/show/onion.html
以下は抄訳。

プログラマの美徳は怠惰・せっかち・傲慢(=情熱の美徳)
コミュニティの美徳は勤勉・忍耐・謙虚
正反対に見えるこれらのことは実は正反対というわけでもないのです。なぜなら全部同時に実行することができるからです。

これらの美徳は、放棄しなければ、私たちを未来へと運んでくれるでしょう。

プログラマの美徳の方ばかりが一人歩きしている感ありますが、どっちも必要だよってのがPerl作った人の言ってることですね。

BOM付UTF-8のCSVをCakeで

お盆前にリリースが重なったりでバタバタしました。

お盆は実家&義実家にトータル1週間帰省。
プールしたり、海に行ったり、近所の池に亀(大好き)を見にいったりと楽しく過ごした赤子、休み明けの現在見事に保育園登園拒否になりましたorz

 

*


PHPとのお付き合い4か月目。ちょっとお友達になれてきた今日この頃です。
先日、cakephpでBOM付UTF-8CSV吐くという処理を書きました。
初歩的なことなんですが「fgetcsvのサンプルならたくさん見つかるのに…」ってなったのでメモ。

cakephpのFile ユーティリティクラスでBOM付UTF-8

//ファイルのインスタンス生成
$file = new File(<ファイルパス>);

//ファイルを作成
$file->create();

//BOM文字をパッキングして出力
$bom=pack('C*',0xEF,0xBB,0xBF);
$file->append($bom);
$file->append(<出力する文字列>);

//必要に応じてUTF-8に文字列を変換したり
$file->append(mb_convert_encoding(<出力する文字列>, "UTF-8", <変換前の文字コード>));

 

 

Excelで開いたときに「001」とかが「1」になっちゃうのの対策とExcel上の表示★

  • 囲み文字を"から'に変更→'001'
  • タブ文字を追加→001 (テキストエディタ上では001<tab文字>)
  • タブ区切り、UTF-16LE BOM付きで出力して拡張子はcsvに偽装(ただしあくまで偽装。厳密にはTSV)

 

新人さん「BOMってなんですか」

私「バイトオーダー…なんだっけド忘れした…」 ※マーク

 

リモートワークしたい

先日、子が熱を出したとき、初めて在宅勤務しました。

自分は頭のオンオフ切り替えが苦手なタイプだと思ってたので、在宅勤務だと仕事にならないんじゃないかと心配したんですが、1時間もすると慣れました。
むしろ、「子が昼寝している間になにがなんでもこの機能完成させる…!」というある意味オフィスにいる時よりも切羽詰まった気持ちで仕事をしたためか、普段より進捗上がった気がします。どうなのそれ…

むしろ週3くらいで在宅勤務したい。「通勤時間って勿体ないんだなぁ…」と痛感したのです。

片道1時間の電車は、本を読んだり音楽を聴いたり刀剣乱舞をしたりするのにちょうどいいなと思っていたんですが、いや圧倒的に無駄だった。
通勤時間がなければあと2時間仕事できるやん。

 

通勤時間もですが、関東に引っ越してきて「家賃、高ッ!!」と思ってから、都内に開発用のオフィス設けてるのが本当に賃料の無駄遣いでは…? みたいな気持ちでもやもやもします。

 

在宅勤務の障壁というと、やはり労働管理なんだろうとおもうのですが、なんかうまいこと解消できないのかなぁ。

PCの操作ログ取るとか、仕事中はずっとカメラ付きでスカイプ立ち上げておいて誰かが確認するとか…?

一番いいのは成果物ベースだと思うんですが、スキルのばらつきとかどう吸収したらいいんだろう。新人さん入って来た時とかどうOJTするんだろう。調べ物とかロジック考えてるときとかどう成果として定量化したらいいんだろう。

フルリモートの会社ってどうやってるのかなぁ~。

 

夫や、友人にも何人かいますが、オフィスに出て人と話したり、オフと完全に環境を切り離さないと力が出ない~ってタイプの人も勿論いる。

赤ちゃんの性格にもよるし。私が不良母過ぎて子供の横で普段からPC触っているからか、子が状況に慣れていて楽に在宅勤務できた面もある。

これが構って構って欲求の強い赤ちゃんだと大変だろう。

(子にもそういう欲求がないわけではない。夕方以降はべったりです。)


どちらでも選択できるのがベストなんだけどなぁと思う。

 

 

オチが思いつかない、ただの日記のようだ…

 

レスポンシブ対応とは何か言ってみろ

同僚1「レスポンシブデザインって、シングルページのことですか?」

同僚2「携帯とかからアクセスしやすいようDB問い合わせを減らす工夫をすることです。モバイルフレンドリーともいいます」

q 。o〇(いやなんか違うだろ)

 

ということがありました。シャイなので何も言えませんでしたが…

wikiよりレスポンシブ対応↓

デスクトップパソコンや携帯電話といった幅広いデバイスのいずれに対しても、外観や操作方法が最適化された (リサイズ、パンニング、スクロールを最小限にし、読みやすく、ナビゲーションしやすい) サイトを制作するためのウェブデザインの手法。

 あくまで手法の話で、DBアクセスなどの作りの問題じゃないですね。

フラットデザインとセットなのも納得。スマホなどの小さい画面で、フラットデザインでない(ボタンに立体感でるシャドウがついてるとかそういうの)と潰れて見にくくなるので。

あと、よく聞くのがレスポンシブ対応ニアイコール良いUXを提供しましょうという概念だ、という説明。UXハニカム構造とかよく聞くからもしや…と調べてみるたけどここにもDBアクセス含まれてないやんけ! いや遠因としてはあるかもだけど。

 

モバイルフレンドリーはというと、Googleさんが作ったテスト・基準と、それを満たしたサイトを検索で上位に表示する仕組みのこと。転じて、それを満たしたサイトのことですね。

モバイルフレンドリーとは - 意味 | IT用語辞典 サバナビ

モバイルフレンドリーなWEBサイト・WEBページは、拡大しなくても読みやすいテキストサイズ、横スクロールの必要がない、リンクやボタンがタップしやすい、Flashを使用していないといった点が挙げられる。

 

じゃー「DBへのアクセスを少なくして云々ってなんなの」って話ですが、これは「シングルページアプリケーション」というお名前。

 

いずれにしろ、 概念としては別物なので混同しないようにしたいです。

Agnosticってなんぞ

最近WordPressでの開発をやってます。

リファレンスがところどころ日本語のものがなく、まあ英語分かるので読みながらやっているのですが、「script-agnostic」という知らない単語に遭遇。

agnosticをWeblioでひくと不可知論と出てくる。これじゃないな~。

agnostic meaningとかで検索して出てきたものを数点訳しました↓

  • Agnostic ITの文脈では、様々なシステム間で相互に利用できるよう一般化されたものを示す。ソフトウェアやハードウエアだけでなく、ビジネスプロセスや習慣についても使用する。
  • Product-agnostic 特定の商品(特定のデバイスやアプリケーションなど)に関連しない、またはどのようなタイプの商品でも相互利用できるようなものを指す。

「非依存の」とか「汎用的な」とかと訳すとしっくりくるでしょうか。

MySQLでハイフン使うと面倒

よく知らんのにLAMP環境でPHPMySQLなお仕事を振られて色々勉強中です

 

ローカルDBを作って既存のシステムをデバッグで動かしてみるとシンタックスエラーが。

 

ローカルDBの名前にハイフンを使っていたのですが、

MySQLでハイフン使うときはシングルクォートで囲う必要があり、

PHP側でそういった対応をしていなかったためでした。

 

DB作成時シフトキー押すのを面倒くさがった結果、めちゃくちゃ面倒なことになりました…

しかもリネームできないし…(リリースノートによると、DBの内容が消えるかもしれなくて危ないからMySQL 5.1.23で削除されたし古いバージョンのも使うな、とのこと)

 

結局、コマンドプロンプトからmysqldumpでバックアップ→出来たSQLをハイフン使わずに作り直したDBに流す ということをしました

コマンドはこういうやつをMysqlディレクトリから実行↓

  • mysqldump -u [ユーザ名] -p[パスワード(あれば)] [DB名] > 出力先ファイル名.sql

 

でもこの「新規作成したDB」てとこもめんどくさかった。

test-database作る

test_database作る

両方作れる

 

なのに、

test_database作る

test-database作る

名前競合でtest-database作れない

なんでやねん!!

 

めんどうなので今度からは0-9, A-Z, a-zとアンスコしか使わない…