出戻りSEの楽しい育児日記

ごく普通のSEの育児とお仕事の日記 たいしたことは書いてない

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ってなんですか」

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

 

週3で在宅勤務したい

赤子っていうやつぁ、どうしてこうもすぐ熱を出すのか。
(「保育園入れてるからだろ3歳まで家で見ろ」とか言わないで泣いちゃう)
そして熱が出ていてもたいていの場合元気。
うちの子はまだお喋りはしませんが、言葉よりも雄弁に「外に連れていけ」と要求する。

(ボディランゲージが激しすぎて、保育園の先生に「qさんとこベビーサインとか教えてるんですか?」て言われたけど特に何もしていないw)

 

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

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

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

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

 

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

 

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

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

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

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

 

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

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

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

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


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

 

 

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

 

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

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

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

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

 

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

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

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

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

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

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

 

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

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

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

 

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

 

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

カスタム投稿ページにリンク張る方法

自分用の覚書。

①「archive-〇〇.php」というファイルを作成
②「function.php」に下記を追加
function my_custom_init() {
register_post_type( '〇〇', array(
'label' => '表示する名前',
'show_ui' => true,
'has_archive' => true,
'capability_type' => 'post'
));
}
※追加内容はリファレンス見つつ適当に追加すること 気が向いたら追記しよ~
WordPressの「パーマリンク設定」で「数字ベース」を選択
④リンクを張りたい箇所は下記のように
<a href="<?php echo get_post_type_archive_link( '〇〇' ); ?>">リンク文字</a>

 

で、この「WordPressの「パーマリンク設定」で「数字ベース」を選択」というのがミソだったようで、気づかずに30分くらい苦しんだという話。

③をやってもリンクが繋がらない場合は、設定画面を適当にいじって再度手順を繰り返して保存するか、Chromeならハード再読み込みしたら上手くいきました。

Agnosticってなんぞ

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

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

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

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

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

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

アジャイル開発は胡散臭くない

仕事の都合で『アジャイルサムライ』を再読しました。

数年前初めてこの本を読んだ時はあまりの理想的で現実からかけ離れた内容に「胡散くせ〜〜!」と叫んで投げ捨てたい衝動に駆られたものでした。

「そんなプロジェクトあるわけない」と思ったのです。今もわりと思ってるけど。

情熱的でアジャイルなチームはまあ作ろうと思えば作れると思う。

でも、スプリントごとの会議に根気よく付き合ってくれるほど、本気でシステムが必要なんだ!というお客様ってどれくらいいるんだろう、と。

 一プログラマとしてはとてもワクワクする本で、読み進めるたび、本を閉じるたび、「わ~~!私もテスト駆動開発でバリバリ書きたい~~!!」とか思うんですけど、私の中の営業さんやプロマネさんが「いやいやこんなお客さんどこで見つけて来いと? たいていの人が、自分が欲しいものが曖昧なところに既存のパッケージ組み合わせてなんかそれっぽいもの持ってこられたら、値段同じならそっち買っちゃうでしょ」って斜に構えてしまう。

 

アジャイルサムライ』で書かれていることはめちゃくちゃジェネラルだ。ウォーターフォールの現場でだって、本に書いてある内容、例えばお客様先にそこそこ動くモックを持って行って意見を聞いたり、用語集を作ったり、やることリストを共有したりしていると思う。既にモノが出来上がっている組み込み開発とかでなければ、ある程度柔軟に動く現場の方が多いんじゃないでしょうか。しらんけど。

ウォーターフォールアジャイル、決定的に何が違うかといったら、「バスの運転手がお客さん」であることで、そうさせるためには契約形態を考えないといけないじゃん請負のとこが多いのにそんなのアジャイルでやってますって言える!? というのが胡散臭く感じることの正体なんだなって今回よくわかりました(感想)。

 
契約形態メモ 

請負契約とは、企業などが業務を委託する際の契約形態の一つで、受注者が仕事の完成を請け負い、発注者が完成した仕事に対して報酬を支払う契約のこと。

請負契約は仕事の完成を目的とし、受注者は納期までに委託された業務を完遂して成果を発注者に引き渡す義務を負う。仕事の進め方についての指揮命令権は受注者側にあり、発注者が直に管理・監督することは認められない。

 

準委任契約とは、企業などが業務を委託する際の契約形態の一つで、(法律行為以外の)業務の遂行そのものを委託するもの。民法656条などで規定されている。

業務委託には「請負契約」と準委任契約がよく用いられるが、請負契約は仕事の完成を目的とし、受注者は委託された業務を完成・完了させて成果を発注者に引き渡す義務を負う。一方、準委任契約は業務の遂行そのものが目的で、仕事の完成などの義務は生じない。

「仕事の完成の義務が生じない」って怖すぎない!?!? でもアジャイルでやると結局完成しませんでしたとかまあある話…?

 

システムエンジニアリングサービスとは、システムやソフトウェアの開発・運用などで行われる委託契約の一種で、対象物の完成などを目的とせずに特定の業務への技術者の労働の提供を行う契約。提供元企業の従業員が客先のオフィス常駐して技術的なサービスを提供するもの。

労働法規などでは業務請負の一種とみなされ、労務管理や指揮命令系統などが発注元企業から独立している必要があるが、具体的な成果物をはっきり定めず漠然と労働力を提供する委託形態のため、実態が派遣労働と変わらず偽装請負と見られる事例も多いと言われる

 多分これがお客さんまで巻き込んでめっちゃアジャイルできるやつ…でも契約内容に別にお客さんが協力してくれるとかは盛り込まれてない。

 

IPA/SECが提案している日本のアジャイル向けの契約形態というのが下記の模様。

基本/個別契約モデル
プロジェクト全体に共通する事項につき、基本契約を締結する。その後、小さな単位(機能単位、リリース単位等)ごとに、開発対象と費用がある程度確定したタイミングで、個別契約(請負/準委任)を順次締結する。  

スプリントごとに個別契約ってことですかね。 

契約内容に「相互協力の義務付け(基本契約5条)」や「頻繁な連絡協議会の開催(基本契約6条)」が盛り込まれており、相手方への協力義務違反に法的責任が生じたり、
相手方からの問い合わせには速やかに応答するなどが定められています。また、「変更協議が調わないまま一定期間が経過した場合には、個別契約を解約できる」など、モノが出来ない場合のお客さん救済措置もあります。

 

実際私が経験したアジャイル開発はSES契約でした。お客様からGOサインが出るまで作業できなくてニート状態だったの辛かった…。

 

変化、改革のないアジャイルアジャイルじゃないので、ウォーターフォールの現場でも入れれるところ(カンバンとか作ると終わった作業がよくわかってモチベあがりそうだし、レトロスペクティブでピザ頼んだりできたら最高)入れて行けたらいいよねぇ。

一番好きだなとおもったのはペアプロです。女子同士でやったからめちゃくちゃ盛り上がった。

保活デッドレース 後編

コンシェルジュからの電話を受け取ったq。

話は下記のような内容でした。

コンシェルジュ「大変厳しい状況ですので、見学に行かれる園を増やして、なるべくたくさん希望に書いてください。」

コ「あわせて認証園も検討してください。A園、B園は定員に余裕があるそうです」

コ「あと子連れ出勤も検討してください。K市の認証園に定員の余裕があるようです。ただ、利用料が結構かかってしまうんですけど…」

などめちゃくちゃ親切に案内してもらいました。

21時ごろの電話だったのに1時間くらいあれこれ相談に乗ってもらいました…あの時のお姉さん本当にありがとう…

東京在住の友人に聞くと「区ごとに情報バラバラでどこのどんな園に空きがあるのか自分で全部調べなきゃいけないからうちもコンシェルジュほしい」と言ってました。

この点は非常にラッキーでした。

 

追加で認可5園、認証1園(B園、A園はすでに見学済)を見学し、役所で申請内容を更新。

 

認可は役所が取りまとめますが(自治体によりルールはまちまち)、認証園はそれぞれが独自の方法で入園児を決めています。

人気の園だと10月には入園申し込みを締め切っていたり。前編でも書きましたがほとんどの認証園に見学すら断られる有様です。

A園は3/1の朝7時から電話で申し込みを受け付けます、先着順です。というある意味シビアな対応でした。

3/1は6時に起きて、7時きっかりに保育園にコール…なかなかつながらない。ネットが普及する前の時代にライブのチケットをとるためチケットぴあに電話かけてる気分でした。しかし幸い、10分ほどして電話がつながりました。

認証園を抑えられた! 園庭はないし、小さいし、3歳までだけど、内定した会社で働ける!! ここで漸く安眠できる日が到来。会社との打ち合わせでもウキウキで報告できました。

 

それから2週間後。認可保育園の調整結果が郵送で到着。

どうせ無理でした~~だろ~~~と思ってオープンしたら…まさかの第8希望で、認証A園の向かいの大規模認可保育園に内定。

 

まじかよ…

 

ちなみに認証A園も、内定の出た認可園も、乗り換え含む数駅先と少々遠方。認可の方が近ければ認可一択ですが、より近い園に通いたくなったときの事を考えると戦略を練る必要が出てきます。

 

認可保育園の入所基準は自治体によりまちまちですが、Y市の場合は簡単に書くと下記のとおり。

①仕事の時間や家庭の状況により、保育の必要性に応じてA~Eまでランク付け

②希望園ごとに入園希望者をグルーピングし、その中でランク順に入園

③同ランクで並んだ場合に加点・減点(例えば兄弟児加点、祖父母の協力がある減点)で調整

 

加点、減点の基準は自治体により本当にまちまちで、居住年数や年収を見るところもあります。Y市も書いてないだけで見ているきがしないでもない。

 

認証A園は0~2才までしか通えませんが、卒園すると5ポイントの加点が付きます。私の場合時短なのでランクBの中でしか戦えませんが、ランクB内だと有利となります。

ただ保育園激戦区と言われるT区。立地の良い園はランクAの方で埋まっている可能性大。

保活中にも、認証園や小規模保育を卒業して認可保育園に入るため見学しにきているお母さんたちに会いましたが、3才児での入園も相当厳しいそう。(やっぱりコンシェルジュから電話が来たそう)

 

結局我が家は、認可保育園に通わせることにしました。ちょっと遠いけど、間違いなく5歳までは通うことが出来る。安全パイを選んだ形です。

決まらなかった人もいるなか贅沢な悩みだったと思います。役所の方も精一杯調整してくれたんだなと感じることができました。

 

保育園絡みの怖いニュースを時々目にする今日この頃ですが、T区に関していえば認可、認証、認可外どこもそれぞれ独自のポリシーで質の高い保育をしていたなと感じました。…いや、正直、認証園ではちょっとここはってのはあったけど、それは設備面であって、先生達の対応なんかはお散歩風景を見ても良い感じです。

 

思いついたことを整理せずにダラダラ書きましたが、言いたいことは

「保育園が決まらないからって、動く前に諦めちゃだめだな」

ってことです。

ハロワでも、転職サイトでもなんでもいいので就活から始めてください。

一時保育に登録して時間を確保してください。

内定を取らないうちは絶対に認可は入れないと思います。うちの場合は、求職中のランクは最低の「G」です。

 

 

月10万くらいかかる認可外で会った、似た境遇のあのお母さん、そこまでの覚悟があったのだから、今頃どこかではつらつとお仕事してるだろうな~。