そろそろ中堅エンジニアのIT雑記

プログラミングを仕事にして若干、まだまだ新米エンジニアの雑記です。

Python開発環境構築

筆者はよく新しいマシンを入手し、そのたびにPythonの開発環境を構築するので、構築手順が固まってきました。
本記事はOSに関係なく適用できます。

Pythonの導入

メジャーなオールインワンパッケージ、Anacondaを利用して、Pythonを導入します。
OSや環境によってはもともとPythonがインストールされている場合もありますが、最新のバージョン、最新のライブラリを導入するためにも、Anacondaからインストールするのが良いでしょう。
Anacondaは以下からダウンロードできます。
WindowsOS Xだけでなく、Linux用も提供しているのがいい点ですね。
www.anaconda.com
導入するPythonのバージョンは3.X系。2.X系はそろそろサポートが切れるので、今から使う必要はないでしょう。
インストール方法は、いずれのOSの方法も日本語記事がたくさんあるので、そちらを参考にしましょう。
筆者が参考にしているページは以下です。windows10 、OS XLinuxの導入方法がまとめられています。
qiita.com

IDEの導入

筆者がよく利用しているIDEはPyCharmです。
デバッグ機能、補完機能、VCS連携、Python仮想環境構築など、機能豊富なエディタです。
ダウンロードは以下からできます。
www.jetbrains.com
こちらも、WindowsOS XLinux版があり、いずれの環境でも利用できるのがありがたいです。

PyCharm設定

PyCharmのインストールが完了した後は、自分好みに設定していきます。
筆者が必ず行う設定は以下です。

  • 使用メモリ表示
  • メモリサイズ変更

使用メモリ表示

Fileタブ→Settingで以下のSettingウィンドウが立ち上がります。
左側に設定項目が並んでいるので、Appearanceを選びましょう。
下のほうにスクロールすると、”Show memory indicator”とあるので、チェックします。
f:id:DAIMOX:20200205212931p:plain
ステータスバーの右側にメモリインジケーターが表示されます。
f:id:DAIMOX:20200205213342p:plain

メモリサイズ変更

デフォルトでは使用メモリのサイズが小さいので、マシンスペックに合わせて変更しましょう。
Helpタブ→Edit Custom VM Options...を選択すると、以下の設定ファイルが開きます。
赤線部分の数字を変更すると、利用できる最大メモリサイズが変更できます。
f:id:DAIMOX:20200205213748p:plain


PyCharmは日本語化もできますが、筆者はやっていません。理由は、なくてもわかるし、面倒だから(笑)
日本語化記事はたくさんありますので、そちらを参考にしてもらうとよいと思います。

以上。

Pixel Slate開発マシン化計画

Pixel Slate買っちゃいました。
以前から、Chromebookに興味がありましたが、性能がいいものは値段が高く、日本で入手するのも難しいため、諦めていました。
今回、Black Friday SaleでGoogle謹製のChromebookTablet)が付属品付きで、正規価格の半額!!となっていたので、購入ボタンをポチッと押してしまった次第です。
日本への直発送はできないので、多少知識が必要ですが、解説もブログ等に転がっているので、参考にしてみるといいのではないでしょうか。
Black Friday Saleは終わっていますが、米国Googleでまたセールをやっているようです。

僕にとって、ラップトップの使用目的は開発です。
PythonMarkdownが書ければ、それは開発マシンになります。
VCSが使えるとなお良いです。

Visual Studio Code

最近使い始めました。
Markdownが書きやすいです。
ChromebookVisual Studio Codeをインストールする記事はたくさんあるので、そちらを参考にすると良いでしょう。
僕が参考にした記事は以下になります。
medium.com

Anaconda

ChromebookLinuxコンテナCrostiniは標準でPythonがInstallされていますが、Versionを調べると、Python3.5でした。
Python3.6/3.7を普段使っているので、どうせインストールするなら、Anacondaを入れてしまおうと考えました。
www.anaconda.com
Anacondaの公式サイトからLinux版のパッケージをダウンロードし、Terminalから以下を叩けばInstallできました。

$ bash Anaconda3-2019.10-Linux-x86_64.sh

以下の記事を参考に導入しました。
medium.com

PyCharm

家でも、会社でも使っているPython IDEです。
機能が豊富で、Debugもしやすい。
Chromebookへの導入記事はあまり見つからなかったが、Linux版であれば大丈夫だろうと挑戦しました。
PyCharmの公式サイトよりLinuxのCommunity版をダウンロードします。
www.jetbrains.com
TAR圧縮されているので、解凍します。
Chrome OS上でのTAR解凍方法はあまり記事になっていませんでしたが、Chrome OSが勧めてきたWakameというChrome拡張機能で解凍できました。
chrome.google.com
次に、Terminalで以下を叩きます。

sh /home/ユーザー名/pycharm-community-2019.3/bin/pycharm.sh

PyCharmが起動しそうになります、が起動しません。
JDKがないと言われました。
適当にjdkを入れてみようと、以下を叩いてみます。

sudo apt install openjdk-8-jdk

もう一度、以下を実行します。

sh /home/ユーザー名/pycharm-community-2019.3/bin/pycharm.sh

起動できました!!

f:id:DAIMOX:20191217224931p:plain
PyCharm on Chromebook

技術書典5

技術書典5に一般参加してきました。

概要

技術書典はITや科学などについて書いた本などを頒布したり買ったりできるイベントです。技術について書かれた本などを頒布するサークル(出展参加者)とそんな本をよみたい一般参加者をつなぐためのイベントです。
名称:技術書典5 開催:2018年10月8日 祝日(月曜日) 場所:池袋サンシャインシティ 文化会館2F 展示ホールD
以下主催ページから引用。
techbookfest.org

経緯

技術書典4のとき、Twitterのタイムラインが埋め尽くされて、これはぜひともいかなければ!!と思い、
名古屋から東京の遠征を計画しました。
丁度、実家に用事があり、これは天命だと思いました。

戦利品

f:id:DAIMOX:20181009164201j:plain
以下リスト()はサークル名、会場の配置です。

  1. 技術季報 vol.4(技術書典運営事務局、運01)
  2. プロジェクトマネージャ候補 カワイイ後輩の育て方 1*~5* (東葛飾PM&A研究所、あ09)
  3. ソフトウェアエンジニアの情報収集について( にくよし文庫、か22)
  4. AIMING TECK BOOK Vol.1 (株式会社Aiming、か50):ここの売り子さんをやられていた方にに声をかけてもらいました!ありがとうございます。
  5. 大き目のAndroidアプリでの設計を考えてみる~pocket~ (KUGIBAKO, え03):サークル主は大学の時の同級生です。
  6. COMPUTEX 台北 Gadget展示会の歩き方 ~2017 (電子小物愛好会、く17)
  7. KbD Pre 2018 April - 春から始める ARM で自作キーボード(nopnop、け01):委託販売
  8. 日本のIT業界の闇~ガラパゴス化したシステム開発~(ハッチ、):すみません、サークルリストから見つけられませんでした。。。
  9. 株とPythonでお金儲けを目指す本1、2(電脳律速、け02)
  10. 四人の知らなかった自作キーボードの世界(riconken、お30)
  11. R MarkdownでWord文書を作ろう(niszet工房、い04)
  12. ささみのほん2(ssmjp 同人部、う23)

18冊、、、大量ですな。

感想

  • 日本のエンジニアがこんなにいるのか!
  • 同人本なのに全然薄くない!
  • 参加者だいたいコミュ力高い。
  • 熱気がすごい(熱意、空気)。

次回に向けて

  • 事前に行きたいサークルをリストにする。
  • 行きたいサークルを消化してから、巡回する。
  • 軍資金は欲しい本×1,000+10,000
  • 大きめかつ丈夫な布を持っていく。

以上、すごく楽しかったです。

カンボジア旅行

気づけば、社会人5年目。
新米とは言ってられない年齢になってきました。

さて、今回はエンジニアリングは全く関係ない話です。
先日、人生初めて海外旅行に行ってまいりました。
行き先はカンボジアです。
想像していたより遥かにいい場所でした。
今後の備忘録として、カンボジア旅行のポイントを残します。

カンボジアという国

東南アジアの一国、タイ、ベトナムラオスと接している。
気候は熱帯、雨季(5月ー10月)と乾期(11月ー4月)がある。
日本からはだいたい7−8時間くらいで着く。時差は−2時間。

言語

主言語はクメール語だが、街中では英語がほとんど通じる。場所によっては日本語が通じることも少なくない。

通貨

カンボジア通貨はリエル(役4000リエル=1ドル)
殆どの場所でドルが使える。1ドル以下のお釣りでリエルが返ってくる。
クレジットカードは
大体のお店で使え、円が使えるところもあったりする。

交通

移動のほとんどはトゥクトゥク。バイクタクシーみたいなもの。
流しのトゥクトゥクはふっかけてくるので注意。
Pass App Taxiという配車アプリがかなり優秀。しかも安い。
(自分は流しのと比べて半額以下になった)
ツアーではチャーターバス。

観光場所

きりがないので、自分が行ったところだけ。

カンボジアといえばここ

  • アンコールトム

かなり広い。

  • ベンメリア遺跡

ラピュタのモデルと言われているところ。実際には違うみたいだが。

東南アジア最大の湖。雨季には琵琶湖の10倍もの大きさになる。
水上レストランや水上生活している人々がいる。

  • オールドマーケット

いわゆる市場。食べ物やお土産がたくさんある。値段が書かれていないので、価格交渉を楽しもう。
自分はこれが楽しく、滞在中3回も行った。

外国人観光客があふれる通り。
レストランやカフェがたくさんある。スコールを眺めながら飲むアンコールビールは格別。

  • ナイトマーケット

パブストリートより少しおしゃれかな?

いいところ

年中、日本の梅雨くらいの気温なので、気温の変化で体を壊しにくい。
スコールが降ると、かなり快適な気温になる。
料理が美味しい。
ビールが安くてうまい。
現地の人はみんなパワフルで元気になれる。
4G通信が使える。
航空券が安い。

気をつけるところ

水には注意!カンボジアに限らずアジア周辺国に言えることだが、水質が良くないので、
生水・水道水は絶対に飲まない。
どこでも(遺跡でも)1ドル程度でミネラルウォーターが買えるので、こちらで水分補給する。
蚊は危険。刺されると、デング熱などの感染症にかかる恐れがある。
自分は虫よけクリーム+携帯用蚊取り線香で刺されることはなかった。
相場を知らずにぼられることが多いので、思っているより安い値段を要求すると、適正なところに落ち着く。


かなり楽しかったです。カンボジアおすすめ!!

やりたいことリストーManagement編ー

Management編をリストアップします。
意外と学問的で興味がそそられる分野があります。

プロジェクト管理

働き手の減少から一人当たりの作業効率向上が求められる。将来的なチーム・プロジェクト管理だけではなく、個人の作業管理にも適用可能。
Ex. 個人のスケジュール管理、チーム・プロジェクト管理、ベンダーの進捗管理

コスト管理・会計

エンジニアと言えど、売上向上が至上命題。作業に対するコスト管理は必要。会計はお金の流れを読み解くための指標なので、身につければ家計簿の管理にも役立つだろう。
Ex. 予算管理、見積もり

作業実績記録アプリ

作業の効率化には記録することが大事である。しかし,記録に時間がかかっていたら,本末転倒。
記録の大部分を自動化して,作業記録データベースを作成。
作業の分析を行い,スケジュールの作成や見積もり作成の手助けになるデータを提供する。
未経験のプログラム言語で実装すると一石二鳥。

以上。

やりたいことリストーEngineering編 2ー

前回に引き続きEngineering編 2をリストアップします。

RPA

ホットワードの一つ。Robotic Process Automation。技術としては目新しいものではないと思っているが,作業効率があがるらしい。
また,導入し始めの技術なので,市場からのニーズは高い。

プレゼンテーション技術

技術者は自分が第一人者になることが多い。そのため,1から相手に説明する機会に多く遭遇する。
短時間で,要点を理解してもらうためには,伝え方の技術を獲得することはメリット。
部下の指導にも応用が利くだろう。

IoT

Internet of Things。組み込み技術と理解している。
ハードウェアの制限がある環境でのソフトウェア開発は学べることが多い。
趣味レベルから始めることができ,情報も入手しやすい。
Consumer向けの商品が続々と登場してきているので,業務向けの製品開発が進んでくるのでは。

やりたいことリストーEngineering編 1ー

社会人4年目もそろそろ終わりそうなDAIMOXです。

エンジニアリングだけでなく、マネージメントの仕事も手を出せるようになってきました。
仕事の幅が広がったことでやりたいことが、爆発的に増えちゃいました。ここで、気になってるスキルを備忘録としてリストアップします。

データベースの構築・管理

ハードウェアのスペック向上に伴い、扱うデータの種類・量が日に日に増加している。データを管理する技術はどの業界からも需要が高いと思われる。
Ex. 計算結果のデータベース化、データベースからの高速Table lookup

機械学習

流行の技術。身に付けるにはクセがあるあるようだが,学習済みのデバイス・データを利用できるようになれば,作業の自動化をできる範囲が広がると思われる。
自動車や飛行機など産業分野への応用研究も広がっている。
Ex. ルーチンワークの自動化

Python

フリーで開発環境が整い,習得難易度も低め。ライブラリが豊富で,機械学習のライブラリもある。

C#

Javaが政党進化したプログラム言語。近頃の新規開発案件で採用されることが多い。GUIアプリケーションが作りやすい。

MATLAB

変数を行列として処理するため,大規模データの演算が得意。また制御系に強みがある。
すでに自動車業界で多く使われ,そのほかの業界にも普及しつつある。海外では普及しており,日本は後発のようだ。
導入のパッケージが高価なこともあり,開発環境を整えるのに障壁がある。
その分使える人材のニーズは高い。