転職しました(10か月ぶり2回目)

TL;DR

  • 2020年4月末にフェンリル株式会社を退職しました
  • 2020年5月から事業会社の社内SEとして働いています

フェンリルに入ったきっかけ

10か月前の記事を見てもらえれば

hidinglog.hatenablog.com

実際どんな感じだったか

入る前に想像していたような、ベンチャーのようなガツガツ感はあまりありませんでした。
なので、へっぽこエンジニアでしかなかった自分のような人間でも、そこまで違和感を感じることはなかったです。

カンファレンスや製品発表、IT系の重要な話題があると情報共有がされたり、
チャットのリンクが送られてきたりと何もしなくても情報が入ってくる環境でもあったなと思います。

実際、門外漢の自分でも10か月の間にそこそこ大きな案件をPLとして任せてもらえるくらいの情報は蓄積されていました。

あと、エンジニアはもちろんですが、デザイナーにも優秀な人が多かった印象です。
(周りの話を聞くと、たまたま私がかかわった人が、ということもあるかもしれませんが。)
ただ単に「画像」を作るのではなく、人間中心設計でのデザインをしたり、
アプリ実装で詰まったときにデザイン的な代替策を提示してくれたり。
案件を進めるうえで非常に助けられました。その節は本当にありがとうございました。

転職しようと思ったきっかけ

大きく分けて二つ。

一つ目は、「自分の手で」作りたいということ。

ひとつ前の転職エントリを見てもらえばわかる通り、PLとして入社したんですよね。
まあ、新卒入社した会社も、コード書くよりは調整が多いような会社だったので、それを買ってもらって。

実際、入ってみたら完全な分業。
コードを書くのは、エンジニア。
PLはgithubのPullRequestにコメントを書くのもはばかれるような雰囲気。
(これは、私が勝手に感じていただけかもしれないけれども。)
一方で、PLとして発注元の大手SIerにはアプリの専門家としての意見を求められる。
…自分でコードを書いたこともないのに。

もちろん、自分なりに調べて、周囲のエンジニアに助けてもらって、PLとしての仕事は進めていたけども。
これって、自分が本当にやりたかったことか、コードと向き合わずに自分の仕事として誇りを持てるのか。

そんなところに疑問を抱いた結果、エンジニアとしてまたコードを書く仕事をしたいという思いを抱きました。
エンジニアが課題に対して技術的な観点から「あーでもないこーでもない」と議論をしているのが羨ましかったのもあります。

二つ目は、PLという職が「落ち着かない」ということ。

受託開発という型式を取っている都合、どうしても発注元に出張することが多かったです。
案件によって、週次で先方に出向いて報告したり。

2月くらいからは、たまたま要件定義からの案件にアサインされたこともあり、
お客さんと打ち合わせが頻発した都合、週に3~4日大阪に出張していた始末。

そのたびに大阪本社に残って仕事をしていたので、大阪本社の社員さんに「あれ?大阪採用でしたっけ?」とか言われる始末。

プライベートな理由もあり、わざわざ東京から愛知に引っ越してきたのに、これじゃ意味がないなと。

次はどこで何をするのか

愛知に本社を持つ、事業会社の社内SEとして働いています。

新型コロナ肺炎の影響で、ほとんどの人がリモートで働いているので、直接お会いした人は少ないですが、
いままでほとんど触れたことないVBを扱う環境で四苦八苦しながらエンジニアとして頑張ってます。

もう愛知県は緊急事態宣言が明けましたが、6月末までは急を要する用事がなければ在宅でと言われ、 すでに私もリモートで仕事をしています。

プライベートのほうは、なかなか話が進んでいませんが、世の中の情勢が落ち着いたらいろいろと大きく動けるんじゃないかと思ってます。
こっちをうまく軌道に乗せるためにも、仕事に打ち込まなければ。

このブログも、月一もないくらいの頻度でしか投稿できてないけど、落ち着いたら愛知での発見をいろいろと書いていけたらな、と思ってます。

ノートパソコン「CHUWI LapBook Pro 14.1」 を買った

CHUWI(チューイ)という中国のメーカーが販売している14.1インチのWindowsノートPCを買ったので記録。

スペック

項目 スペック
OS Windows 10 Home 64ビット
CPU Intel Celeron N4100(1.1GHz~2.4GHz)4コア・4スレッド
グラフィック Intel UHD Graphics 600
ディスプレイ 14.1インチ/1080p Full HD (1920×1080ピクセル
RAM DDR4 SDRAM 8GB
ストレージ 256GB SSDSerial ATA-600接続)
外部接続 USB3.0 Type-A×1、USB Type-C×1、microHDMI ×1
本体サイズ 32.4cm × 20.9 cm × 1.3 cm
重量 1.33 Kg
価格 約35k

念のためもう一度言おう
価格 約35k!!!

圧倒的だな。

なんで買ったの

  • 手頃なノートPCをサブ機としてほしかったから
    • メイン機はデスクトップがある
    • 本当は4月後半に(いまさら)免許を合宿で取得しようと思ってて、それのお供にするはずだった

使用感は?

  • 今のところは問題なし
  • 出先でサクッとメール返すとか
  • 暇な時間にyoutube流してカフェでどやるとか
  • デスクトップの画面では映画(あまぷら)流して、手元で調べものするとか
  • 結構馬力があって問題なく使えている

不満は?

  • キー配列が特殊
    • US配列が問題なのではない!
    • enter のさらに一つ右の列にhome pgup pgdn end → のキーがある
      • 特に→のキーが曲者で、カーソルキーを押して、enterを押そうとすると大抵pgdnキーを押してしまう
    • Fキーの幅が、ほかのキーの幅よりも狭い
      • そのため、「0」の上にF11が来る
      • ローマ字入力のまま英語を入力する癖がある私は頻繁にF10を押すのだが、だいたいF11を押してしまう。
  • タッチパッドがタイピングのホームポジションの時にちょうど右手の親指付け根あたりまである
    • そのため、タイピング中にタッチパッドに誤操作してカーソルがどっか行く
      • この記事を書いているときにもすでに4回ほど。。。
  • 充電がUSB-Cのポートの癖に、PD充電できなかった
    • 持ちあるく充電器が増えるのは面倒なんじゃ~

スタバでどやマックできるの?

  • 幸いにして(?)14inchMacbookとほぼ同じサイズだし、シルバーのアルミ筐体だし、リンゴシールはればいけるんじゃね?
    • いや、やらんけど

写真ないの?

  • ないよ
    • いくらでもそこらのブログに出てるものを、改めて書くつもりはないです

アルゴリズム問題 paiza練習問題 長テーブルのうなぎ屋

最近、コードを書くことからめっきり離れていたので、久しぶりに書いてみようかと。

※こちらの問題はpaizaさんにて公開されているBランクの練習問題の自分なりのまとめ、備忘録です。
 スキルチェックの公式問題の流出を目的、意図したものではありません。

問題

うなぎ屋にはとても大きい長テーブルがあり、テーブルの周りにn個の座席が配置されています。
座席には、時計回りに1, 2, …, nと番号が振られています。
座席はテーブルの周りに配置されているので、座席番号nの座席と1の座席は隣接しています。

今、m個のグループの人達が座席に順番に座りに来ます。i番目(1≦i≦m)のグループの人数をa_i人とします。
彼らは、長テーブルに並んだ座席の内、ある連続するa_i個の座席に一斉に座ろうとします。

ただしお客さんは江戸っ子なので、それら座席のうち、いずれか一つでも既に先客に座られている座席があった場合、
一人も座らずにグループ全員で怒って帰ってしまいます。江戸っ子は気が早いんでぃ。

入力では、i番目のグループが座ろうとする連続した座席の位置は、整数b_iにより指定されます。
i番目のグループは、座席番号b_iの座席を始点として、そこから時計回りにa_i個分の座席に座ろうとします。

最後のグループが座りに来た後、無事に長テーブルの座席に着席出来ている人数を出力するプログラムを作成してください。

入力

入力はm+1行から成ります。
1行目にはn(座席数)とm(グループ数)が半角スペース区切りで入力されます。
i+1行目(1≦i≦m)には2個の整数a_i(グループの人数)とb_i(着席開始座席番号)が半角スペース区切りで入力されます。

出力

最後のグループが座りに来た後、無事に座席に着席出来ている人数を1行で出力してください。

提出コード

# Let's チャレンジ!!
import copy
# シート数とグループ数を定義
seets,groups = [int(x) for x in input().split()]

# 座席を表す配列を用意
filledSheets = []
fixedSheets = []

# groupの数だけ回す
for i in range(groups):
    # とりあえず入力を取得
    members,requestSheet = [int(x) for x in input().split()]

    flg_away = False

    for j in range(members):
        
        # 要求シートが埋まっていなければ、とりあえず埋める
        if requestSheet not in filledSheets:
            filledSheets.append(requestSheet)
            requestSheet += 1
            
            # 要求シートの番号が店の席番号を超えたら、「1」を用意
            if requestSheet > seets:
                requestSheet = 1
        # 要求シートが埋まっていたら、グループは帰る
        else:
            flg_away = True
            break
            
    # グループが帰ったのなら、シートの状態を戻す
    if flg_away:
        filledSheets = fixedSheets.copy()
    # グループのメンバーが全員座ったなら、埋まったものとして固定
    else:
        fixedSheets = filledSheets.copy()

print(len(fixedSheets))

感想

いや、時間かかりすぎ、コード汚すぎ。
こんな配列ゴリゴリ入れ替える方法ではなく、もっとスマートな方法あると思うんだが、ぱっと思いつかないんだよな。。。

フラグを使って、ループの処理をごにょごにょしてるのも、もっといい方法あると思うのだが、思いつかなんだ。

やっぱり、日常的にコード書く癖をつかないとまずいなぁ。

ChromeOS で開発環境を構築する

tl;dr;

  • IDEを必要としないようなターミナル言語開発であれば十分にできそう
  • Pythonはデフォルトで3.5、pyenv使って最新(3.8.1)もインストール可能
  • IDEについてはLinux用ソフトが用意されているVSCodeやAndroidStudioなどは使える(快適とは言えない)

貧弱スペックなので、ネットブック代わりくらいにしか使うつもりはないけれど、
Pythonで開発ができるらしいと聞いて、入れてみた

Chrome OSLinux の導入

まずは、Linux(ベータ版)を有効にするところから。

ChromeOS標準ターミナルであるcroshからshellを実行してPythonを実行することもできるけど、
Linuxを有効にしてLinuxターミナルを使えるようにするとaptも使えるようになって便利!

ということでLinux(ベータ版)を有効にして、いろいろとaptインストールしていきます。

まずは設定画面を開きます。
シェルフの時計や自分のアイコンなどが表示されているところをクリックして、
出てくる小さいWindowの歯車の部分をクリックすればOKです。

そして設定画面の下の方に行くとLinux(ベータ版)と書かれた項目が出てきます。

f:id:hidinglog:20191231181918p:plain
Linux(ベータ版)

この設定からβ版の機能をONにすればLinuxターミナルが立ち上がります。
※気長に待ちましょう。。。私は10分近くかかりました。。。

デフォルトですと、pythonPython 2.7.15 、python3 は3.6 がインストールされていました。

$ python --version
Python 2.7.15

$ python3 --version
Python 3.6.5

けどまあ、今のpythonの最新は3.8.1。どうせなら最新版を入れましょう。

Python3.8.1 の導入

pyenv のインストール

この記事を参考にpyenvを使って最新版のpythonをインストールすることに。

まずはpyenvをインストール。

$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv

bashのプロファイルにpyenvのPATHを設定

$ sudo vim ~/.profile
export PYENV_ROOT=$HOME/.pyenv
export PATH=$PYENV_ROOT/bin:$PATH
if command -v pyenv 1>/dev/null 2>&1; then
  eval "$(pyenv init -)"
fi

.profileの適用

$ source ~/.profile

Python3.8.1 のインストール

$ pyenv install 3.8.1
Downloading Python-3.8.1.tar.xz...

でもまあ、エラーになってインストールできないため、必要な周辺ソフトをインストールします。

1. Pythonのビルドに必要なCコンパイラ

$ sudo apt install build-essential

2. unable to locate package と言われてインストールできない - aptのリストを最新に更新する必要があります - adblock系が変に働くと、listがうまく更新されません。 - 私はadguardのDNSで接続していたせいで原因がわからずハマりましたw

$ sudo apt update
$ sudo apt upgrade

3. Missing the OpenSSL lib

$ sudo apt install libssl-dev

4. Missing the bzip2 lib

$ sudo apt install libbz2-dev

5. Missing the GNU readline lib

$ sudo apt install libreadline-dev

6. Missing the SQLite3 lib

$ sudo apt install libsqlite3-dev
  • これでやっとpython3.8.1が警告なくインストールできる。。。
$ pyenv install 3.8.1
Downloading Python-3.8.1.tar.xz...
-> https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tar.xz
Installing Python-3.8.1...

この状態でしばらく止まって若干焦りましたが、正常にインストールできました!

デフォルトPythonバージョンの変更

$ pyenv global 3.8.1

ついでにpipもインストール

$ sudo apt-get install python3-pip

終わり

  • 結構面倒でしたが、インストールと設定が一旦終了
  • ChromeOSでPythonが使えるということで、正月の実家で退屈しないで済みそうです
  • 業務ではなかなかコーディングすることが減ってしまったので、これからちまちま作っていこうかな

ASUS X200M に chromeOS を install した話

tl;dr;

  • 正月に実家に帰るのにPC環境が無くなると死んでしまう!!!
    • PC廃人。メイン端末はデスクトップ
  • 大学在学中に買ったノートPCを余らせているが、端末スペックが使い物にならないレベルなのでChromeOSインストール
  • youtube を見たり、ちょっとした文章を書くくらいなら問題ない
    • この記事もChromeOSのPCで書いてます
  • やはりドライバ周りが追いついていないのか、キー操作/タッチパット操作が若干難あり

PCスペック

  • 2014年?に購入
  • CPU:Celeron N2830(2コア/2スレッド、クロック 2.16GHz/2.41GHz、キャッシュ1MB、TDP 7.5W/SDP 4.5W)
  • 4GB(DDR3L-1333)
  • ストレージ:SSD(120GB)
    • HDDがおそすぎて耐えきれなくて換装した

ChromeOS ?

ChromeOSと言ってはいるけども、実際はChromiumOSの一つであるCloudReadyをインストールしています。

ChromebookとかPixel book にインストールされているのがGoogleが開発したChromeOSだとしたら、
そのオープンソースOSがchromiumOSといった理解でだいたいあっている(と思う)

一番の違いはAndroidAppStoreを使ってAndroidAppがインストールできるかできないか
ChromiumOSはAppStoreがインストールされていなくてAndroidアプリのインストールができない

まあ、家にいる間はデスクトップがあるし、 外にいるときにterminalでのちょっとした開発とか
最近めっきり書いてないはてなブログを書くための端末がほしいなと
軽量OSのインストールがしたくてChromeOSに行き着いたのでChromiumOSで問題ない。

cloudready?

ソースコードは本家とされる「The Chromium Projects」で公開されてるけれども、ソースからビルドするほどの技術はないためビルド済みで公開されているOSを使います。

有名というか、情報が見つかったのは

  • Chromium OS Builds
    • 海外有志のChromium OSのビルドイメージサイト。毎日最新版のビルドのイメージファイルを作成しているらしい。
  • Canalビルド
    • 日本人の方がやってるみたい。
    • 『動作検証やChromeOSの体験版という用途を目的としています。このためネットワークアップデート機能はありません。』とのこと
  • CloudReady
    • Neverware社による個人利用範囲では無料のOS
    • "ChromeOS install" とかで検索すると、だいたいのページが CloudReady でインストールしてる

てことで、情報量としても多かった CloudReady を使ってのインストールを敢行

インストール作業

作業としてはそんなに困ることはなく、ダウンロードページの指示に従って

  • インストーラーをダウンロード
  • 余らせていたUSBメモリにイメージを焼く
  • X200M に USB差してUSBブート
  • 画面表示されたらポチポチ選択してChromeOSのデスクトップ表示
  • 右下のタスクトレイからinstallOSをクリック
    • WinのupdateによってChromeOSの領域がバグるらしく、デュアルインストールはできないので注意!!

でだいたい終わり。

f:id:hidinglog:20191230144235p:plain
デスクトップイメージ

最低限必要な設定

  • メディアプラグイン のインストール
    • 設定メニューから
  • スワップ領域の設定
    • メモリ4GBあるから不要かとも思うけど、気休めにはなるかと

それなりに動く端末になったから、正月に実家帰省するときのお供端末にはなったかな。 帰省中の数日間このPCで暮らしてみていろいろブログ更新していきたい。。。

楽天モバイル 無料サポータープログラム 当選した

https://network.mobile.rakuten.co.jp/plan/supporter-program/

東京、大阪、名古屋に住んでいることが条件ということで、
申し込んでた無料サポータープログラムの当選メールが来てた

まあ、名古屋の枠がどれだけあったか知らないし、
東京や大阪と比べてどれくらい倍率が違ったかはわからないけど

当選メールは11日の15:01 に届いた
とはいっても、仕事していて気が付いたのは20時とかになってから
帰り道にメール確認して、「あ」って

「新規端末」を選択したから、回線の登録するときに端末買わないといけない

まあ、選択肢も少ないし、OPPO Reno Aかなぁ
これ、いざ買うって時に在庫切れとかだったらどうすんだろ

このたびは、楽天モバイル「無料サポータープログラム」にお申し込みいただき、誠にありがとうございます。
おかげさまで定員を超えるお申し込みがあり、厳正なる抽選の結果、貴方様が「当選」されましたことをお知らせいたします。
つきましては、追って「ご契約情報の登録、製品ご購入について」のご案内メールをお送りいたしますので、メールの内容に従ってお手続きください。
なお、メールの到着までに1週間前後かかる場合がございます。

ってことだから、とりあえず案内メールとやらを待ちます

無料だけど、端末は買わないとだから出費なんだよなぁ。。。

https://network.mobile.rakuten.co.jp/product/smartphone/reno-a/

Keychron K2 Mechanical Keyboard  かった

tl; dr

  • 新しいキーボード買った
  • MacWindows の両方に切り替えて使える機能があるらしい
  • 会社で使っていく

キーボード欲しい論

この7月から働いている会社なんだが、Macbook が支給されてそれを使ってる
基本的なスペックは足りてるから、特段不満はない


キーボード以外は!!!

いや、ほんとにMacbookのキーボード設計した人間はどうかしてる
touchbar とかもってのほか
まじでイライラしかしないので、キーボードを外付けで使うことにした

買ったキーボード

じゃあ、なんのキーボード買ったのか、というと
まあタイトルに書いてる通り

Keychron K2 Mechanical Keyboardwww.keychron.com

キーボード選びの基準は以下

  • Mac のキー配列であること
  • Bluetooth 接続ができること
  • US配列であること
  • 静電容量無接点 または メカニカル であること

これを満たすキーボードがほとんどなかった!!!
最終的な候補は、今回買うに至ったK2 と HHKB の二つ
自宅でHHKB のWin配列を使っているから、どうせなら違うのを使おうと思ってK2を買ってみた

購入したモデルは、白色バックライトの赤軸のもの

写真

こんな感じの箱に入って届いた

twitter で「ほしい」といったのが8月23日
結局、つぶやいたその日にぽちって、届いたのが昨日
(正確には再配達で手元に来たのは今日)

思ってたよりずっと早く手元に届いた

ぱっと見、すごく落ち着いてる

日本語キーボードとは違って、かなの印字もないからすごくきれいに見える

サイドに設定用のスイッチがついてて、ここでMac と Win の切り替えや BT接続とUSB接続の切り替えができる

そう!USB接続でも使うことができるんです!!
充電が切れてしまっても、有線接続で使い続けられるのは素晴らしいこと
替えの電池がなくてキーボードが使えないとかいう現象にはならない!

あんまり期待してなかったけど、ライトをつけることもできてそのライトの光かたがかこいい

今回買ったのは単色LEDだけど、RGBのタイプもある

印象

本格的に使い始めるのは、明日からだけど開封した第一印象をば

  • 思ってた以上にかっこいい
  • お帰りなさい物理Functionキー!!
    • HHKB もFキーは単体で存在しないから、ほんとに久しぶり
  • 赤軸ってもう少し音小さいと思ってた
    • 思ってたよりカタカタいうな。気を付けよう

とりあえず、明日からガシガシ使って、また感想かきます!!

ではでは