中古PCにlubuntu入れて利用してみた感じ

前回の続きです

結論から言うと、思ったよりいいですね。
欠点はCPUがすぐに熱くなることくらい(これはハードの問題だけど・・・)

プログラミング
Visual studio code使用。Rubyとかスクリプト言語書くならこれで十分すぎる。というか、人にあったエディタならなんでも良いです。vim使ったってemacs使ったって何でもよし

メーラー
Sylpheedを使用。これはlubuntuに元々入っていたから。Thunderbirdも入っていたのだけど設定が何故かうまくできなくて断念。使用感としては全く問題なし。

ブラウザ
google chrome。言わずもがなだけど、windowsとかと使用感全く一緒

やはりwindowsとかMacに比べて自分の好きなようにカスタマイズできるのが魅力ですね。デスクトップ環境を自分好みにできるのは大きい。

これはいずれメインPCもLinuxか・・・

中古PCにlubuntu入れてサブマシンにする

気づけばこのブログが始まって2年のようです。2年ブログやってて記事これだけかよっていう・・・

さて本題。

色々あって、WindowsでもMacでも持ち運びに支障がないハイスペックマシンを探してたんですけど高いなぁって。。。

ふと思ったのが

中古マシンカスタマイズして、ubuntu入れればよくね?てかそっちのがだいぶお得じゃない?

ということ。

少し前に秋葉原で買ってお家で眠っていた2010年くらいに出たThinkpad edge 11にlinux入れようかなって

メモリ8GB、SSD240GBにしたけど、CPU貧弱だし、その割にコーディングとかしたい。でもubuntuってlinuxの中でも結構重いのよね。

うーん・・・だったら軽量なubuntu入れて、OSが使うリソース極力減らせばええやんって思った
実はこの発想に至ったのは2017/5月号の日経Linuxなんだけどね。
(普段は買わないんだけど、表紙に惹かれて買ってしまった)
Amazon CAPTCHA

というかWikipediaにも専用のページあったという。。。
軽量Linuxディストリビューション - Wikipedia

ちなみに僕が入れたのはlubuntu。理由は特になくてなんとなく自分が慣れているubuntuに近いイメージがあったから。

で、ubuntuってWindowsMacにはない魅力があって、自分のカスタマイズできる範囲が大きいこと。デスクトップ環境もコマンド一つで簡単に入れられるし、アイコンとかも自分好みに変えられる。
お勧めのLinuxデスクトップ環境6選--「KDE」から「LXDE」まで - ZDNet Japan

ちなみに、ubuntuが重いのはこのデスクトップ環境。Unity使ってるならそりゃ重くなるわ。その一方、Xfceとかみたいに軽いデスクトップもあるので、自分のPCスペックと相談して自由に環境変えられる。
ubuntu重いといってもWindowsに比べりゃあ格段に軽いよ

とりあえずlubuntu使って色々遊んでみるけど、他のディストリビューションとか試して見ようかな。

ubuntu16.04にoracleインストールしたときのメモ

macosVirtualBox+ubuntu16.04し、そこにoracle12c入れたのでメモ。ハマったポイントは補足入れてますので参考までに。。。
基本的にはoracleのドキュメントどおりにインストール。詰まったところを中心に解説

http://www.oracle.com/technetwork/jp/database/enterprise-edition/documentation/db121linux-x64-ja-v10-1984264-ja.pdf

○3.3.2 Oracle Database 用 OS ユーザー作成
oracleユーザ作って、グループ作成して、って以下コマンドだけど、これドキュメントの間違いと思われる。
誤:useradd -u 1200 -g oinstall -G dba,oper,backupdba,dgdba,kmdba -h /home/oracle oracle
正:useradd -u 1200 -g oinstall -G dba,oper,backupdba,dgdba,kmdba -d /home/oracle oracle
useraddに-hというオプションは存在しない。useraddコマンドでoracleユーザ作るときに/home/oracleディレクトリ(=ホームディレクトリ)作ってねということなので、この場合は-dをオプションにする。

○4.1 oracleデータベースのインストール
インストーラ文字化け。文字化けしたままでも俺は進むぜ!という猛者はそういないはずなので、おとなしく日本語化する。javaubuntuにインストールし、インストーラ起動時にインストールした方のjreを使うようにオプションをつける。以下参考(僕はubuntuなのでyumではなくapt-getで落としました)
abcmark2010.hatenablog.com

○4.1.12 製品のインストール
さて、ここまでくればあとは待つだけひゃっふー、、、とそうは問屋がおろしません。なんか色々とエラーが出てくるので、これを修正しながらでないとうまくインストールができません。ググったらQiitaのスーパー神記事を見つけました。
qiita.com

ここを参考にして該当箇所を修正→再試行を繰り返す。※間違って続行を押さないように。修正箇所を反映して進むなら再試行ですので。ボタン押すときは少し気をつけて。

○4.1.15 環境変数の設定
ubuntu16.04の場合は/home/oracle以下の.profileにを編集。編集する場所はディストリビューションによって違うのかな?

○4.2 DBCAによるデータベース作成
案の定また文字化けするので、oracleインストール時と同じようにオプションを付けてあげるとOK
まあここは詰まることはないかな。

○その後
データベース作成後は自動的にリスナーとか起動されてるのでいいんだけど、ログアウトとかしたあと、どうやって起動するんじゃ、ってあるので以下の通り。この際、ORACLE_SIDの設定とか違っているとエラーで怒られるので気をつけること。なお、ORACLE_SIDの一覧は「vim /etc/oratab」で見れる。
:といった形に表示されている。

・リスナーの起動
lsnctr start 'リスナー名'で起動可能
ちなみにリスナーのステータスはlsnctr status 'リスナー名'で停止はlsnctr stop 'リスナー名'
oracle起動
sqlplusにsysdbaとしてログイン(sqlplus username/password as sysdba)
アイドルインスタンスに接続されるのでその後startupコマンドでoracleやデータベースが起動
あとはSQLとか打ち放題。enterprise managerにも接続できるはず

■emctlがなぜかない件
oracleにはenterprise managerというwebの管理ツールがあるんだけど、何故か僕の環境にはこれがない。まぁdb起動すればwebの管理ツールにアクセスできるので問題ないけど・・・

買い物のときに店員に話しかけられるのが嫌なタイプ

なんですよ僕。
でも、コミュニケーション取るのが嫌ではなくて、必要なときは店員と話をしたいタイプです(めんどう・・・)

例えば、家電量販店とかでふと最近のPCとかスマートフォンってどんなのあるんだろうとか、気になって見に行きます。
単に見るだけではなくて実際に触ったり、重い軽いとかそういうのも調べます。
そういう客は購入一歩寸前くらいに見えるらしく、店員さんは声をよくかけてきます。

でもね、正直その辺の家電量販店の店員よりはずっと詳しい自信あるので、店員と話しても僕としては得をすることがないわけです。
あとたまに服を買いに行きますが、試着前後に店員に声かけられるパターン。これも嫌です。でもファッションに疎い僕は、どういう着合わせがいいかとかはわからないのでそういうときは店員さんに頼ったりします。

まぁ声かけることで店の利益や自分の成績に直結するので店員さんの気持ちはわからんでもないですけどね。

世の中僕みたいなタイプは割と多いみたいで、以下のようなサービスを提供している店もあります。
www.takashimaya.co.jp

こんなサービス、もっと増えるといいなって思います

「エンジニアが生き残るためのテクノロジーの授業」という本から学んだ当たり前に重要なこと

「エンジニアが生き残るためのテクノロジーの授業」という本を読んだ。

エンジニアが生き残るためのテクノロジーの授業

エンジニアが生き残るためのテクノロジーの授業

<本の内容(Amazon紹介から抜粋)>
ITエンジニアの必修科目を「ぎゅっ」と詰めました!
IT業界でずっと活躍するために知っておきたい7つの基本
【こんな人におすすめ】
・新人、若手エンジニアが知識の底上げをするために
・IT業界でのキャリアプランの参考に
・IT分野で働きたい学生が現場で困らないために
・IT企業に勤める非エンジニアの教養として

<自分が読んでみた感想>
上記の通り、ITエンジニアに必要な超基本的な知識が詰まっている。基本情報技術者試験の前段のレベルなので、人によっては簡単すぎる内容。ただ、この本の内容についてスラスラ言える人って案外少ないのでは?と思う。
何が言いたいかというと、やはり何にせよ基礎知識は重要である
IT技術、もっと大きく見るとコンピュータサイエンス分野は進歩が非常に早い。それ故「新しいものを取り込もの勝ち!」という風潮がなんとなくあるが、僕はそれは違うと思う。受験勉強やスポーツで、基礎がないまま応用を取り組み、中途半端に終わるのと一緒である。急がば回れで、こういう基本的な知識をちゃんと持つ。その上で技術を取捨選択し、課題解決やサービス提供を進めるべき。これからのITエンジニアはそういう立ち振舞をしていかなければならないのではなかろうか。そんなことを、この本を読んで感じた。

本のカバーにも「10年後でも通用する本物の力が身につく」と書いてある。この世界に身をおいている限り、たまに読み返して、基礎に立ち返る、そういうタイプの本だなぁとつくづく感じた。

<備忘録>gitの基本的な流れを図解してみた

<前提>
筆者はpull,clone,commit,add程度の知識しかありません。よって、説明不十分または知識なさのゆえに説明誤りがあるかもしれません。多少参考にする程度ならば良いですが、鵜呑みにもしないでください。筆者の備忘録程度のものと思ってください。

f:id:jun_ya2085:20170109230630j:plain

gitをゼロから勉強中。とりあえず、難しいことは抜きにして基本的には上みたいな感じかなと。

①現段階での最新をサーバのリモートリポジトリから自分のローカルリポジトリにpullする。
②自分の作業でcommitして良さげなものをステージするためにaddする。
③addした分について自分のローカルリポジトリを更新するためにcommitする。
④③をリモートリポジトリに反映するためにpushする。

多分①と②の間に別の人の作業を取り込むために何度かpullの作業がありそう。
②のステージだけど、これがないとcommitできない。addはファイル単位で実行する。こうすることで、commitするものを成果物単位でコントロールできる。例えば、自分が完了させたソースA、Bのうち、Bはまだ不安だからAだけcommitさせたいという場合、Bはとりあえずファイル保存までにとどめておいて、Aをadd→commitという具合なことができる。

まだまだ勉強することはたくさんありそうだけど、流れはわかった。

IT系の転職と言うか就職と言うか

ここ最近、転職の知識を色々集め中。転職エージェントに会ったり、本読んだり、詳しそうな人に聞いたり。
まずは、自分が望むものを整理したので、一覧にする

・IT系のお仕事をしたい
・技術屋なのでやはりコーディングしたいし、設計したい
・残業は少なめがいい。上限30時間程度が理想
・完全週休二日制
・年収は今より下がっても良い(350万〜400万でも良い)
・転勤なし。勤務地は首都圏ならどこでもよい

こんなところか。
で、エージェントさんと上みたいな話をしていたら予想通り
「社内SEか自社サービス開発」
と言われた。転職エージェントから来る求人情報をもとに
この両者について自分なりに整理してみた。

○社内SE
一口に社内SEと言っても大きく2種ある。
<どんなことをするのか>
①経営貢献という位置づけでシステムの企画・立案をする。開発はせず、その会社の情報系子会社(いわゆるユーザ系子会社)に任せる、もしくは外注に依頼する。開発フェーズでは、ベンダーコントロール等も担う。
②社内システムの企画・立案・開発・保守運用すべてを担う。上記で外注に担う部分をすべて自社で実施する。
僕がやりたいのは②の方。①なんてまっぴらごめんwww

<どんな企業があるのか>
今の時代、業務はほとんどIT化されているため、どの会社にも社内SEは存在する。大きな会社だと情報システム部門が組織化されているが、小さい会社だと知ってる数人が細々とやっている。時代なのか、結構求人は多い。
大きい会社ほど開発は外注と思ったが、意外とそうでもなく、CMとかやってる会社とかも内製化している会社が多い。しかも、そこまで忙しくもなさそう。おそらく納期とかに追われることもなく、ある程度自分たちのペースで進められるからと推測される。

○自社サービス
<どんなことをするのか>
その名の通り、自社でコンテンツを企画・立案し、システム化し、利益を生み出す企業のこと。外注等は基本的になく、すべて自分たちでこなす。

<どんな会社があるのか>
自社サービスって言うとメインどころがインターネットのイメージだが、求人見てると「自社サービス=ソフトウェア製品全般」ということなのだろう。つまり、Web上に展開されるコンテンツ以外のすべてのソフトウェア製品。例えば業務用パッケージとかスマートフォンアプリとかそういうのも含まれるのかな、と思った。多分結構忙しいだろうな、と思った。競争が激しいから、すごいサイクルで新規サービス、機能追加をリリースしているのだろうな、という印象。ほんとに立ち上げたばかりの会社は経営基盤が確立できていないから、開発サイクルが早く、忙しいのだろうけど、ある程度基盤が出来上がっている会社はそうでもないのかな?と思った。


さて、まぁ色々書いてきましたが、待遇面とか安定性とか考慮に入れると社内SEの②が一番よいのかな、と思った。自社サービス系は魅力的だが、競争が激しく明日どうなっているかわからない世界。個人的には安定性はある程度重視したいので、自社サービスは次点かな。
でも自社サービスで色々技術学んで、より待遇の良いところに行く、とかそういうのもいいかなとも思ったけど、、、悩むねえ