ENGINEER BACKBONE

プログラミングで学んだ内容の備忘録

時間を捻出する方法

年初ということもあり、向こう半年一年の計画を考えましたが、
その中で、諸々見直そうと思っているのが、時間の使い方です。
 
現在、定職には就いていませんが、
毎月出ていく固定費は色々とある為、
週3−4日は都心に出て仕事をしています。
 
しかし、それも頑張ろうと思えば無尽蔵にやれてしまい、
目先の収入が増えると、手っ取り早く生活水準が上がる為、
仕事をすることに対して、快感を覚えるようになります。
 
しかし、勉強の優先度を最上位に設定しておかないと
中継ぎが目的だった仕事に充てる時間がズルズルと増え、
何の為に働いているのかが、曖昧になってしまいます。
 
 
そこで今後は、具体的に、以下を実行していきます。
 

仕事の時間を減らす

 
当たり前の話ですが、仕事の時間を削れば削るほど、
勉強に充てられる時間が増えます。
 
中継ぎの仕事であれ、
お金を稼ぐための言い訳は無限に作れるので、
計画や決意が伴わないと、労働時間が増えるばかりです
 
1ヶ月にどれだけの金があれば十分なのか計算し、
それ以上の余計な仕事は一切しないことを徹底します
 
 

食事全般を徹底的に手を抜く

 
3食全部外食で済ませられればいいですが、
そこまで財力に余力が無い場合は自炊の一択になり、
地味に毎日、体力と時間を奪われます。
 
最低限必要な栄養素を回収し、
短い時間で終わらせるために無駄を省こうと思うと、
やれることは意外と色々あります
 
 

・袋詰めカット野菜を使う

包丁とまな板の洗い物を省略できます
 

・紙コップと紙皿と割り箸を使う

洗い物が激減します
 

・基本、同じメニューしか作らない

自炊で一番時間を食うのは献立の決断です
 
 

電車は有料特急の席を使う

 
自分は現在郊外に住んでいますが、
都心と電車で往復する時間を合計すると
1ヶ月で16時間近くになります。
 
特に平日の朝は6時台の快速列車でもほぼ満席で、
座るのが精一杯。パソコンを広げるのは不可能です。
 
しかし、グリーン席を使えば、
机の上で作業可能で、体力も温存でき、
その1時間を、たった570円で買うことができます。
 
冷静に考えたら、時給で2000円以上稼げる状況で
この570円を払うことに躊躇する意味が分かりません。
 
結局のところ、それくらい時間を買うこと、
確保することに必死でなかったということです。
 
今後は有料特急を使い倒します。
 
 

徒歩移動中はテキスト学習と音声学習

 
徒歩で移動する時間も1ヶ月で合計すると
20時間近い時間が生まれていますが、
講義の音声を録音すれば、移動中に聞けます。
 
ipodも安い旧モデルなら4000円前後です。
 
テキスト主体の勉強なら、
スマホを使えば移動中に読めます。
 
これまでも、読書や詰碁に充てたりはしていましたが、
今自分が一番やるべきことは何かをよく考えれば、
全く違う時間になっていたと思います。
 
 

就職転職、卒業、資格取得などの目標を一つ決めたら、

それに関係ない一切の活動を止める

 
これは、どんな目標を立てているかにもよるのですが
受験・就職・転職・起業など、仕事に関わる目標は
多くの人にとって、人生を左右する一大事です。
 
その一方で、筋肉をつけたい、モテたい、
○○の資格を手に入れたいなど、誰しも様々な
目標を持っており、同時並行で進めたくなります。
 
そして、毎日少しずつ小さな成功体験の積み重ねをすると
自分に自信がつくのも事実だと思います。
 
 
しかし、最初のゼロからの立ち上げの段階では、
睡眠と食事以外のすべての時間と体力をつぎ込まないと、
その気概で取り組んでいる人達がどの世代にも
一定の割合でいる以上、いずれ確実に追い越されます。
 
半年で済むことを一年、二年かけてダラダラやっていると、
その後に来る新しい壁も同じようにダラダラ越える癖がつき、
いずれ周回遅れになり、誰からも必要とされなくなります。
 
 
一度、普段やっていることを全部止めてみてください。
自分でも驚くほど、使える時間がごっそり生まれてきます。
 
 
あとは、人と会う時間を限界まで削ったり、身近な人との
人間関係を一時的に犠牲にする覚悟を持つことですかね。
 
 
既に子供や奥さんがいたら判断基準は違うかもしれませんが
自分の時間、自分の人生をまず一番大切にすると決めて、
それと引き換えに色々なものを失う覚悟は必要だと思います
 
 
誰に対してもいい顔をして、
自分の時間を軽々しく人に渡してしまう癖が付いてしまうと、
時間に追われる状況からは、なかなか抜けられません。
 
 

まとめ

・仕事を減らす

・有料特急の電車を使う

・音声学習を使う

・自炊を効率化する

・目標に関係ない取り組みを全て止める

・人と会う時間を限界まで削る

 
あくまでも個人的な意見ですが、
今後継続していく中で思うことがあれば、また書きます。

Macbookを新しく調達する場合の注意点、最低限必要なスペック

これまでMacbookAirを使い、
勉強をしたり、コードを書いたり、アウトプットを作ったり、
大変お世話になってきた一方で、処理速度がかなり遅く、
さすがにもう限界だと思い、今日の午後に対策を探してました。
 
 
スペックは2010年のLateモデル、
CPUがCore2 Duoの1.6Ghz、メモリが2GBと、
今思えば、無駄に過酷な環境でやっていたと感じます。
 
既に、このブログの執筆を始め、日常的な作業の全ては
2年ほど前にWindowsのメイン機に切り替えており、
こっちはSSD搭載でメモリも増設しており、非常に快適です。
 
Macは、コードを書いて実行するだけだから
低スペックでも問題ないだろう、と甘く考えてましたが、
半年以上プログラミングをやってきて、今更ながら、
真っ先に買い替えるべきだったと、反省しています。
 
 
恐らく、これを読んでいる人の中にも、
パソコンは早くしたいけど、金は極力かけたくない、
という方は少なくないと思うので、同じような
回り道はしてほしくないと思い、情報をまとめておきます。
 
 
 

何故、パソコンのスピードが重要なのか

 
「コードを書く程度なら、遅いパソコンでも大丈夫だろう」
と考えている人もいるかもしれませんが、実際に使っていると、
本当に細かい作業の一つ一つに、余計な時間がかかります。
 
・キーを入力してから表示されるまでのレスポンス時間
・ブラウザの画面を切り替える際の画面表示時間
・サーバーと通信をする動作の時の画面遷移時間
・コードの中身を更新した後に、画面を再表示する時間
 
 
個人的に、一番大変だったのは
ウェブカツのWebサービス部の自主制作です。
 
自分は二つのアウトプットを作りましたが、
これらを作った当時、機能の洗い出しやワイヤーフレームも含め
トータルで150時間以上かかっていたのですが、
 
最も時間がかかったのは、
PHPで独自の機能のロジックを
試行錯誤して組んでいた部分です。
 
しかし、時間の残りの大半は、それと同じくらい、
「コード入力後の画面の再表示」に割かれていました。
 
 
例えば、1日に使える時間が4時間だとした場合、
 
・その部分の然るべき構成を頭でまず考える
・コードを入力する
・画面を再表示する
・思い通りの表示や動作になるか確認する
・OKなら次のタスクへ、NGならタスクを継続するか保留する
 
この一連の作業が、もし5分かかる場合、
1時間の間に休憩無しで進められるタスクは12個だけで、
4時間の間に修正できる箇所は48個だけです。
 
ですが、1タスク3分で済めば、
同じタスクを1時間で20個進められる為、
膨大な時間を投下する製作になるほど、計算上は
数十時間単位の時間を短縮することができます。
 
 
自分の想像通りになるようテーブル結合を50回100回と試す
marginとpaddingの5px単位の修正を何十回もやる
divで何重に囲う部分をfloatで何十回も効きを試す
 
実際にやってみて分かりますが、何かを作る際は、
創造的な時間より、遥かに地味な時間の方が多いです。
 
その度に画面更新で一々待たされていると、
単純に時間が長くかかるだけでなく、
集中力が削がれる原因にもなります。
 
 
実際のところ、キーを入力してから画面に反映されるまでに
1秒2秒の遅延があったり、画面を更新する際に動作が重くて
15秒や30秒待たされるなんてことが日常茶飯事でした。
 
後に説明するSSDやメモリをしっかり換装したり
最初にMacを買い替えておけば、そんなことはありません。
間違いなく、パソコン操作のストレスが激減します。
 
 
転職を控えていたり、家族の家計を支えていながら
仕事の合間にプログラミングを始める人ほど、
本来は余計なことに金は回したくないと思いますが、
恐らく、教材や書籍以上に最も優先度が高い投資先です。
 
低スペックのマシンで消耗しているくらいなら、
就業後や休日に短期間バイトするなり、家の不用品売るなりして、
何としてでも、最低限のスペックを満たしたMacを買いましょう。
 
 

どのくらいのスペックのマシンを買えばいいのか?

 
プログラミング学習が目的の場合、
「CPU」「メモリ」「ハードディスク」
この3つだけに注目しておけば十分です。
 
CPU:Core-i5以上
メモリ:8GB以上 16GB推奨
ハードディスク:SSD128GB以上
 
私はMacを買い替える前に
Windowsのパソコンを上記の最低スペックで揃えましたが
当時のMacとは比較にならないくらい処理速度が速く、
ここ2-3年、本当に快適な状態で使えています。
 
SSDは、従来のハードディスク(HDD)に代わり、
フラッシュメモリという、電気的に一瞬で内容を消去したり
書き換えられる技術を使っており、処理スピードが速いです。
 
仮に、性能の高いCPUや容量の大きなメモリを搭載しても
SSDを搭載していない状態のパソコンでは、本来の能力を
100%発揮することができません。
 
 
恐らく、ベテランのエンジニアの方々にとっては
上記のスペック程度では話にならない、
と感じる人もいると思いますが、
 
「一般的な事務作業に耐え得るスペック」
は十分満たしています。就業前の独学や
ポートフォリオ制作段階なら、これで大丈夫です。
 
最新モデルの操作性やレスポンス速度は分かりませんが、
店頭で見かける度にMacの触った時の挙動を試したり、
シェアハウスの同居人のMacが軒並み新品に近いので
動作の軽さを見ていると、やっぱり羨ましく感じます。
 
やはり、自分の試したいことが軽々入力出来て
サクサク画面に反映されると、プログラミングって
もっともっと、今以上に楽しくなると思うんですよ。
 
 
もし買う前に心配な場合は、近くの家電量販店や
Apple Storeに行き、素人臭いMac本体の見込客を装えば、
喜んで色々触らせてくれたり、機能を解説してくれます。
 
 
ちなみに、Macの公式サイトで、10月8日現在、
MacbookProの13inchを新品で買うと、最弱モデルでも
この仕様をギリギリ満たしています。
 
なので、税込の約15万円をポンと出せる状況の場合は、
余計な情報は要らないし、色々検討するのは時間の無駄です。
黙ってこれを買いましょう。(個人的に、メモリは増設したいですが)
 
予算が多く回せる場合も、付属品やオプションに回すくらいなら
メモリやSSDの容量など、マシンの基礎戦闘力的な部分に回した方が
コスパは高いんじゃないかなと思います。
 
高スペックのMacは買ったことないから、
その辺の感想は、ネットで実際の購入者の声を調べてください。
 
以下は、もっと安く買いたい、よりお得に買いたい、
1円でも安くパソコンを高速化したいという場合の対策です。
 
 

どこで買えばいいのか?

 
より安くMacを揃えたい場合は、
基本的に旧世代の商品、且つ中古商品を狙ってください。
 
また、ネット通販ならヤフオク
直接買いたいなら関東圏は秋葉原が最もコスパが良いです。
 
大手の家電量販店には、新品しかありません。
 
秋葉原Macを扱っている店で代表的なところは
 
PCNET以外は狭い地域内でも多店舗展開をしており、
これは秋葉原の色々な店、特に中古のリース業者や
卸売業者に見られる傾向でもあります。
 
冒頭のスペックを満たし、且つ安い価格帯のパソコンは
決して多くないですが店を一通り回ると、
6万~7万円前後の本体は何かしら必ず見つかります。
 
その大半は、2013年や2015年に販売され、
当時はハイスペックだったが、需要が無くなって
価格が下落してきたものです。
 
ただ、個人的には、もうちょっと頑張れば新品が買えるのと、
同じスペックや価格帯だと圧倒的にヤフオクに軍配が上がるので
 
・新品を15万で買う
・6万円前後でヤフオクの中古を狙う
SSDとメモリを購入して自分で交換する
(1万~3万前後、SSDの容量スペックや、メモリの増設量による)
 
のいずれかを選択するのが、
費用対効果が一番良くなると考えています。
 
もしヤフオクで購入を検討する場合は、
毎日サイトに訪問して商品を眺めるのは効率が悪いので、
検索条件を登録し、アラート通知機能を普段使うメールに送るよう
設定しておきましょう。
 
こうすれば、コスパの良い美味しい商品を
効率よく確認し、狙うことができます。
 
 
■Proなら増設をするという選択肢もあるけど
 
旧世代のモデルの場合、メモリやSSDだけを
新しいものに付け替えて、スピードを上げる、
という方法も有力と聞いています。
 
Macbook 〇〇〇〇(年号、型式) SSD 交換」
などで検索すると、解説記事もあるし、Youtube
作業の様子を詳しく挙げている人もいるし、至れり尽せり。
 
ただ、気を付けてほしいのは、MacbookAirの場合は
本体のマザーボードという基盤にメモリが一体化されていて
メモリの交換をすることができないということです。
 
私の場合は、2010年の本体でメモリが2GBだった為、
果たしてSSDに換装してもスピードが本当に上がるのか
さすがに不安な為、買い替えを選ぼうと思います。
 

まとめ

・新品を買うのか?
ヤフオク秋葉原で中古を買うのか?
SSDやメモリを増設するのか?
 
パソコンの動作が遅くてイライラすることに
心当たりがある場合は、自分の今の状況を踏まえて、
是非検討してみてください。
 
 
追伸:
Windows機の高性能マシンを
中古で安く買いたい場合は、ヤフオクよりも
秋葉原のアールガーデンという店で直接買うのがお勧めです。
 
一時期、関東中のPC専門店やリサイクルショップを
全部回ってた時期がありますが、コスパに関しては
間違いなくここが関東圏では最強だと思います。

割り勘シェアハウス ポートフォリオ解説

はじめに

はじめまして、転職活動中の大木と申します。

記事を読んで頂き、ありがとうございます。

 

この記事では、ポートフォリオとして利用している

「割り勘シェアハウス」の概要について、お話させて頂きます。

 

ポートフォリオのURL

http://ikizama-design.com/demo01/

http://ikizama-design.com/demo01/login.php

 

デモ用のアカウント(所属グループも用意済)は、

ログイン画面から

ID:demo01@gmail.com

PASS:demo01

で入れます。

 

一般公開をする場合、外部から互いのユーザーが覗けないように

パスワード機能を備えた、グループの追加/選択機能が必要ですが、

現在は未実装の為、最初から用意された1グループ内での運用に

機能を限定しています。

 

主な機能

PHPを用いた、ユーザー管理に関する機能

・ユーザー新規登録機能

・ユーザープロフィール編集機能

・ユーザーログイン/ログアウト機能

・ユーザーパスワード変更機能

・ユーザー退会機能

 

PHPを用いた、会計の割り勘に関する機能

・割り勘申請機能(する側/される側)

・割り勘一覧表示機能

・割り勘詳細表示機能

・割り勘月間集計機能

・割り勘グラフ表示機能

 

ポートフォリオの概要

【機能】

スマホやPC上の入力により、割り勘の積算/集計を行う

 

【目標】

・月間数十回以上発生する、料理の食品・調味料や、

公共場の清掃用品・消耗品代の清算を「みなし金額」として

積算/集計することで、割り勘の清算回数を削減する

 

【目的】

共同生活における食材や消耗品を入居者同士で

割り勘する場合に発生する、特有の課題を解決する

 

 

何故作ろうと思ったのか

 

共同生活では、一緒にご飯を作って食べたり、

消耗品を買ったり、住人や外部の人を呼んでパーティーをしたりと、

日々細かい出費が色々な人の財布から発生する機会は多いです。

 

しかし、実際に住んでみて、会計上の様々な課題を感じます。

 

1.面倒臭い

わずか数百円の金を毎回小銭で割り勘をする場合、

4人や5人で均等に割り勘をすることは現実的では無いですし、

かける労力や工数を考えても、現実的ではありません。

 

すると当然、売掛金や買掛金のような

「みなしの収支」が色々と発生し、処理が面倒になります。

 

割り勘シェアハウスを使うと、金の直接の受け渡しをせず、

「みなしの収支」を一ヶ月かけてサーバー上で積算していく為、

直接お金の受け渡しをする時間は、月一回に削減されます。

 

2.後から頼み辛い

仮に商取引をする際、基本的には必ず自分から価格を提示し、

前払いで一括でお金を貰うのが、一番理想的な流れです。

 

何故かというと、お金を請求する話を

相手に切り出すのは、誰にとっても嫌な事だからです。

 

割り勘を都度行うということは、小さな金額と言えど、

毎日毎日、そういう生々しい金の話を切り出す空気を

何度も他の住人に味合わせてしまうことになります。

 

割り勘シェアハウスを使うと、月締めで受け渡しをするまでは

メンバーがお金のことを常時頭の中で考える必要が無くなるので、

お互いに気を遣わせる要因を減らして生活をする事ができます。

 

3.ざっくりとした会計になる

私は現在シェアハウスに入居していますが、

入居して最初の週に、上記のリスクを感じ、

最初の2カ月間、全ての食費を最初に自分が負担して、

後日まとめて割り勘をしようと試みました。

 

しかし、やはり全てを集計するのは面倒だったので諦め、

結局大体の金額をざっくりと支払うことになりました。

 

実際にやってみて思いますが、あれは誰が多く払った、

これは誰が多く払ったなど一々覚えるのも億劫になります。

 

ただでさえ、年代も性格もバラバラなメンバーが集まって

共同生活をしている以上、お金の話で不信感を募らせたり

揉めたりすることは、極力無くしたいものです。

 

割り勘シェアハウスを使えば、少なくとも金銭面では

クリーンな管理ができるので、風通しが良くなります。

 

4.「支払う/支払ってもらう」という構図が明確だと互いに気を遣う

 

年長者としては本来、一回り以上若い子に飯代を払わせること自体

有り得ないことだと思うので、外食や居酒屋で飲むとなったら

毎回全額払うのが筋だろうと思っています。

 

ですが、日々の食事の場合、毎回「驕るよ」「払うよ」と宣言したり、

逆に金額を伏せて淡々と率先して一人の人間が金を負担し続ける構図は、

ただの恩着せがましい行為になり、驕られる側が余計に気を遣ったり、

割り勘の主導権を握る人の立場を強めてしまう可能性があります。

 

ですが、このサイト上で割り勘をする場合、

みなし収支の移動は全て端末上で行う為、

 

・割り勘の申請を負担者がしないだけで、実質的な驕りが成立する

・相手に何かを負担してもらうこと自体を拒否して

 会計をお返しする意思表示も、支払い申請機能を使ってサイト上で行える

 

という点から、同じ結果でも気持ちの上での摩擦を減らすことができたり、

お金に関するコミュニケーションの幅を広げられないかと思っています。

 

 

住んでいる家のメンバーに協力してもらい、

試験的に実験している段階なので、実用性はまだ何とも言えませんが、

このサイトが、上記の課題解決に少しでも繋がればという可能性を探ってます。

 

詳細機能

1.中間テーブルを用いた、割り勘申請後のメンバー毎積算/集計機能の実装

2.割り勘一覧画面では、グループ内に閲覧を制限する機能、

 ページネーション機能を実装

3.マイページ上で集計結果をグラフで一覧表示する機能

4.ユーザー登録・削除・編集、パスワードリマインダー、退会機能

5.セキュリティ対策(SQLインジェクション対策、サニタイズ

 

制作にかかった時間

制作前準備

・機能の洗い出し:30分

・画面遷移図作成:30分~1時間

・テーブル設計:1時間

 

ワイヤーフレーム

ゼロベースの画面書き起こし:1時間~1時間半

コピペ→微調整で済む画面:15分

 

合計約12時間

 

HTML/CSS書き起こし

ゼロベースの画面書き起こし:2時間前後

コピペ→微調整で済む画面:30分~1時間

合計約15~20時間

 

PHPによる機能搭載

・一般的な機能の搭載:約50時間

・固有の機能のコーディング:約100時間

(作業時間と日数からの概算)

合計約150時間

 

 

制作の流れ

1.制作前準備

・必要な機能の洗い出し

マインドマップ

・画面遷移図作成(Photoshop

ワイヤーフレーム作成(Photoshop

・テーブル設計

 

2.制作

・HTML/CSS書き起こし

・必須機能のページ(会員登録、ログイン、パスワード変更、商品登録)を作成

・マイページと商品一覧ページを作成→欲しいデータを抜いて表示の繰り返し

 

3.デバッグ

・各種エラーログの端末&ログファイルでの表示→ググって検索

・全ページの条件分岐を全て辿り、全エラー発生要因のフラグを立てて挙動確認

・実際に使ってみてもらい、想定外のエラーが無いかを確認

 

 

今後の課題

 

機能的課題

・入力後データの再編集機能

・グループの新規作成・閲覧と加入のパスワード制限機能

・各年月毎のデータ抜粋機能

・数字入力時の、自動入力機能や電卓表示機能

・コードのリファクタリングによる高速化

CSS設計による保守性向上

SQL文/条件分岐や関数のリファクタリング

・JS各機能による操作の簡略化

 

技術的課題

・sassによるCSS運用

・レスポンシブ対応

CSS設計

PHPフレームワークの採用

 

スペック

HTML5

・CSS3

・jQuery2.2.2

・ローカル環境 MAMP/MySQL

・本番環境 MySQL