泳げないたいやきの日記

メモとして残していきます。誤字脱字や、誤った記事などがあればご教授いただますと幸いです。

エンジニア未経験者がネットワークエンジニアとして採用されるまで

初めに

2019年にITや情報系の学問に興味を持ち、学んでいくうちにエンジニアになりたいと思うようになりました。

情報系の学問を独学で学び始めてから約4年経ち、この度ネットワークエンジニアとして採用される運びとなりました。

採用されるまでに行ったことを記録に残しておきたいと思い、この記事を書きました。

読んだ本

  • OS自作入門
  • 初めてのJavaScript
  • 初めてのPHPMySQLJavaScriptCSS
  • 新・明解C言語 入門編
  • マスタリングTCP/IP 入門編
  • マスタリングTCP/IP 応用編
  • マスタリングTCP/IP 情報セキュリティ編
  • スラスラわかる ネットワークとTCP/IPのきほん
  • 絶対に挫折しない iPhoneアプリ開発「超」入門
  • 本気で始めるiPhoneアプリ作り
  • この一冊で全部わかるサーバーの基本
  • 実践力を身につけるPythonの教科書
  • Pythonパーフェクトプログラミングマスター
  • Cプログラミング入門以前
  • パケットキャプチャの教科書
  • インフラ/ネットワークエンジニアのためのネットワーク技術&設計入門
  • いちばんやさしいHTML5&CSS3の教本
  • CSSグリッドで作るHTML5&CSS3レッスンブック

 

行った事

OSの自作
  • 製作期間:約6ヶ月
  • 使用言語:機械語アセンブラC言語
  • 学んだ事:OSが「機械語アセンブラなどの低レイヤに支えられて動いており、普段使用しているPCで目に見える部分が氷山の一角でしかなかった事」や、「メモリ管理」、「重ね合わせ処理」、「タイムアウト機能」によってウィンドウやアプリケーションの操作が行えることを学びました。
  • 参考文献:30日でできる!OS自作入門 著者 川合秀実
コンパイラの自作
  • 製作期間:約2ヶ月
  • 使用言語:アセンブラC言語
  • 学んだこと:「アセンブラ」と「C言語」の関係性や、「構文解析」や「パーサ」と言ったコンパイラに必要な知識から、「git」や「自動テストの作成」なども学ぶことができました。
  • 参考文献:低レイヤを知りたい人のためのCコンパイラ作成入門 著者 Rui Ueyama(本が出版された是非購入したいと考えております)

www.sigbus.info

ココノヒ
  • 製作期間:約2ヶ月
  • 使用言語:HTML、CSSPHPMySQL
  • 使用したOS:AmazonLinux2
  • 使用したAWS:EC2、Route53、AWSCertificateManager
  • 製作目的:生物学の研究の際に、研究結果と画像を保存できるようなシステムを作成したかった。

9nohi.com

さびあり
  • 製作期間:約1ヶ月
  • 使用言語:HTML、CSSJavaScript
  • 使用したAWS:S3、Route53
  • 製作目的:スノーボードをさらに楽しくできるようなシステムを作りたかった。

sabiari.com

放送大学に入学
  • 入学目的:コンピュータサイエンスの知識を少しでも体系的に学びたかった。
  • 在学期間:2年間(編入学として入学したので、他大学の単位を約60単位ほど引き継ぎました。)
  • 在籍コース:情報コース
  • 受講した講義:「コンピュータの動作と管理」、「コンピュータ通信概論」、「情報化社会と国際ボランティア」、「CGと画像合成の基礎」、「webの仕組みと応用」、「自然言語処理」、「データベース」などの約30科目を受講しました。
  • やり残したこと:「計算機科学基礎プラン」という履修証明制度を取得し忘れました。卒業年度の単位認定試験を提出した日に履修証明制度があることを知り、悲しくなりました。きちんと資料は読みましょう。(戒め)

zenn.dev

OSSの貢献活動
  • 活動期間:約2年間
  • OSS名:web-php

oyogenaitaiyak1.hatenablog.com

 

 

 

初めてのペンタブ - One by Wacom Medium

念願のペンタブ?!

Unityでゲームを作成するための素材を描くために、念願?のペンタブ「One by Wacom Medium」を購入しました。

 

Wacom Intuos Small」と「Wacom Intuos Medium」も選択肢として考えており、Bluetooth接続によるワイヤレスがとても魅力的に見えたので買いそうになりました。

しかし、お財布の都合と技術力を考慮した所、なるべく安定しており、安価で購入できる「One by Wacom Medium」を選択しました。

 

環境

MacBook Pro (13インチ, 2019)

macOS BigSur ver 11.6

プロセッサ 2.8 GHz クアッドコアIntel Core i7

メモリ 16 GB

グラフックス Intel Iris Plus Graphics 655 1536 MB

 

開封の儀

Amazonで購入したら早速届いたので、開封の儀をしました。

AmazonベーシックUSB3.0延長ケーブルもついでに買いました。

赤い箱がとてもかっこいい!

f:id:OyogenaiTaiyak1:20211228093736j:plain

One by Wacom Medium

f:id:OyogenaiTaiyak1:20211228093829j:plain

One by Wacom Medium - 本体

 

f:id:OyogenaiTaiyak1:20211228093859j:plain

One by Wacom Medium - 本体裏面

f:id:OyogenaiTaiyak1:20211228094000j:plain

One by Wacom Medium - Switch Lite との比較


開封してみた結果、想像していたよりペンタブが大きく、使いやすそうです。

これから使用してみたいと思います。

 

セットアップ

1.

USBでペンタブとMacに接続を行います。

MacBookはType-Cなので、変換アダプタを使用します。

 

2.

下記のWacom公式URLからペンタブ用のドライバをダウンロードします。

※ドライバをダウンロードせずとも使用できますが、ペンのサイドスイッチの設定を行うためにドライバが必要みたいです。

 

 

3.

f:id:OyogenaiTaiyak1:20211228152622p:plain

ドライバのダウンロード画面

MacBookにダウンロードするので、Macのボタンを押します。

押すとドライバのインストーラがダウンロードされます。

 

4.

f:id:OyogenaiTaiyak1:20211228152852p:plain

ドライバのインストール画面

ワコム タブレットのインストール画面が表示されたら、「続ける」ボタンを押します。

 

5.

f:id:OyogenaiTaiyak1:20211228153018p:plain

読み込みエラー

インストール中に「ワコムソフトウェアの読み込みに失敗」というエラーが表示されましたが、エラーの指示通りに、MacBookのプライバシー内の「アクセシビリティ」と「入力監視」という項目内に表示されているワコム商品のチェックボックスにチェックをするとエラーは消えました。

 

6.

f:id:OyogenaiTaiyak1:20211228153550p:plain

ドライバのインストールの完了

無事にインストール完了の画面が表示されました。

インストーラも消えました。

 

7.

f:id:OyogenaiTaiyak1:20211228164453p:plain

wacom ドライバ

wacomのドライバを起動する事ができました。

これでセットアップは完了しました。

 

最後に

今度、絵を書いてみます。

 

 

デジタル計算機について

キーワード

「デジタルコンピュータ」

 

「アナログコンピュータ」
  • 時間の経過により変化する値

 

ポイント

「デジタルコンピュータ」
  • 離散的な値を持つデータ項目に対して計算ステップのシーケンスを実行する機器
  • 値段が安くて、非常に信頼性kが高い
  • 故障率が10億分の1より少ないように設計されている
  • 玉→ギアとレバー→真空管トランジスタのように進化した
  • 現在は、トランジスタを使う電子回路で構築されている

 

「アナログコンピュータ」
  • 時間の経過に従い変化する値を使用する
  • 数少ない特殊な分野では、現在も使用されている

 

まとめ

  1. デジタルコンピュータは、トランジスタにより構築されており、離散的な値を持つデータに対して、計算ステップのシーケンスを実行する機器である。故障率は10億分の1より少なく、かなり高精度である。
  2. アナログコンピュータは、時間の経過に従い変化する値を扱う機器である。現在では、特殊な分野でしか使用されていない。

 

参考文献

 

スノーボードの技を選ぼう「さびあり」

さびあり

スノーボードでのキッカーとジブのトリックを自動で選んでくれるwebサイトを作成しました。

 

これから冬が来ますので、よろしければご使用ください。

よい冬になりますように。

 

URL:https://sabiari.com

sabiari.com

 

使用参考例

  • キングスやクエスト、バグジャンプなどの施設での練習中に、どんな技を練習しようか迷ったとき
  • 友人とワイワイしている滑っているとき
  • パークでのハイク中に
  • ブラッシュなどのジブ施設で滑っているとき
  • スノーヴァなどの室内スキー場で滑っているとき

 

f:id:OyogenaiTaiyak1:20210930151507j:plain

「さびあり」の画面

 

 

 

 

エンジニア未経験者がOSSの貢献に挑戦してみた②

前回について

前回、PHPドキュメンテーションやマニュアルページを作成しているphp/web-phpと言うGitHubリポジトリにissuesを投稿しました。

しかし、issuesを投稿して約48時間経過したがメッセージ等の返信が来なかったので、関心を持ってもらえなかったのだろうと思い諦めておりました。

oyogenaitaiyak1.hatenablog.com

 

GitHubからのメール

issuesを投稿して5日後にGitHubからメールが届きました。

内容は、自身のissuesに対しての返信でした。

 

peterddさん

英文

Not only ja pages, all other languages except en deeper nested pages.

和訳

日本語のページだけではなく、英語を除く、全ての言語のページで問題が起こっているよ。

 

上記のpeterddさんの返信から始まり、heiglandreasさん、salatheさん、cmb69さんの合計4名のコントリビューターの方々からメッセージをいただきました。

 

コントリビューターの方々のメッセージのやり取りはとてもレベルが高く、正直なところ私はついて行けておりません。

現時点で、私は「どのように話に入って行けば良いのか」や「issuesを投稿した責任から何か行動するべきなのか」などと悩んでおります。

 

やり取りを見ている時に

「制御は効かない。高次元だ。我々の三次元とは別世界だ。ただ観察するしかない。」

と言う、インターステラーのセリフが脳裏に浮かんできました。

 

 

最後に

私は今回、初めてのOSSへの貢献に挑戦してみました。

issuesに投稿した時や、メッセージなどの返信が来なかった時は心配していました。

しかし、今回のようにメッセージが送られてきて、issues内で議論されているのをみてとても嬉しく思いました。

嬉しい反面、自身の技術力と知識が足りないばかりにメッセージのやり取りに参加が出来ないことを残念に思います。

早く大勢の方々と議論をしたり、プルリクエストを送れるように技術力や知識を蓄えていく事に力を注ぎたいです。

 

参考文献

github.com

 

 

エンジニア未経験者がOSSの貢献に挑戦してみた①

はじめに

OSSに貢献したいと以前から考えていましたが、英語が苦手だったり、技術不足だったり、色々理由があり避けていました。

しかし、先日にOSSを使用させていただいたので、やはり少しでも貢献したいという気持ちが湧いてきたのと、「ハムカツおじさん」さんの記事を拝見させていただき、挑戦してみようと考えました。

「ハムカツおじさん」さんの記事では、OSSに貢献するにはコードを書いてPRを送るだけではなく、タイポの修正やissuesを立てたりする事も貢献の一貫として含まれるのではと記述されていました。

そこで、現時点の自身の技術力ではコードを書くことは厳しいので、まず初めにissuesを立てて貢献しようと思いました。

 

OSSとは

OSSは、Open Source Softwareオープンソースソフトウェア)の略称であり、ソフトウェアのコードが公開されており、誰でも自由に使用したり、学んだり、修正したりすることが可能なプロジェクトとされています。

良く聞くOSS一覧

LinuxApache HTTP Server,  MySQL, PHP, Java, Docker

 

どのOSSに貢献するか

先月に自作の動的Webページを作成した時にLAMP環境を使いました。

oyogenaitaiyak1.hatenablog.com

LAMP環境は、複数のOSSで構成されていると思いますが、今回はPHPを使用させていただいたのでPHPに貢献してみようと思いました。 

PHPのコードやphp.netに記述されているドキュメンテーションや、マニュアルを読みながらバグや問題点などを探しました。

 

問題点を探す。

php.netでドキュメンテーションやマニュアルを読みながら問題点を探していたところ、日本版のPHPマニュアルページのフッターに位置するViewSourceのリンクが壊れている事に気がつきました。

 

マニュアルページは、英語、ブラジル(ポルトガル語)、中国語、フランス語、ドイツ語、日本語、ルーマニア語、ロシア語、スペイン語トルコ語に別れています。

 

11言語のマニュアルページがある中で、ViewSourceのリンクが壊れていなかったのは、英語版のみでした。

 

issuesに投稿してみた 

最初に日本語で伝えたい内容を記述しました。

 

このプロジェクトにissuesを投稿するのは、今回が初めてです。

日本語版のPHP マニュアルページのViewSourceのリンクが壊れていました。

この問題は、ブラジル(ポルトガル語)、中国語、フランス語、ドイツ語、日本語、ルーマニア語、ロシア語、スペイン語トルコ語で起きています。

 

1、phpのドキュメントページを開く

2、view onlineから日本を選択する

3、日本語版のphpマニュアルページを開く

4、日本語版のphpマニュアルページのフッターにある「ViewSource」を押す

5、「404 This is not web page you are looking for.」というエラーが表示される。

 

その後、20%の自身の英語力と80%のgoogle翻訳を使用して作成した英文がこちらです。

 

First time submitting an issues to this project.
ViewSource links are broken in Japanese php manual page.
This issues is happening in pt_BR, zh, fr, de, ja, ro, ru, es and tr.

#Procedure
1, open php Documentation page.
2, choose「 Japanese」 from View Online.
3, open Japanese php manual page.
4, push 「ViewSource」 from Japanese php manual page footer.
5, 「404 This is not web page you are looking for.」is displayed.

 

上記のような英文をgithubPHPのissuesに投稿してみました。

 

結果

issuesを投稿してから48時間経過しましたが、返信がきませんでした。

サイボウズさんのエンジニアブログでは、OSSの貢献時に反応が3つあり、1つ目は肯定的な反応、2つ目は否定的な反応、3つ目は関心を持ってもらえないと言うことがあるそうです。

私の今回のissuesは、関心を持って貰えなかった様です。

 

結果の推測

関心を持ってもらえなかった理由を4つほど考えてみました。

  1. 英語の能力が低く、自身の説明が伝わっていない。
  2. issuesを投稿するページを間違えている。
  3. 日本語版PHPのマニュアルページ内のViewSourceのリンクを押すと「404」とエラーが表示されるが、現在は緊急で修正する箇所ではないので保留されている。
  4. issuesを投稿するのではなく、自身で修正してPRを出す必要がある。

 

最後に

今回のOSSの貢献するためのissuesの投稿は関心を持ってもらえませんでしたが、issuesを投稿したと言う経験と、OSSの貢献に1歩踏み出せたと言うことを糧に、これからも自身の技術力の向上とOSSの貢献に取り組もうと思います。

 

その後について

 

oyogenaitaiyak1.hatenablog.com

 

参考文献

zenn.dev

 

opensource.guide

 

【メモ】Issueの書き方 · GitHub

 

howpon.com

blog.cybozu.io

 

MacにphpMyAdminをインストール

環境  

macOS Big Sur 11.4

MySQL 8.0.25

phpMyAdmin 5.1.1

 

1. phpMyAdminのインストール

ターミナルにて「brew install phpmyadmin」を入力します。

入力後、phpMyAdminのインストールが始まり、最後の方に

To enable phpMyAdmin in Apache, add the following to httpd.conf and

restart Apache:

    Alias /phpmyadmin /usr/local/share/phpmyadmin

    <Directory /usr/local/share/phpmyadmin/>

        Options Indexes FollowSymLinks MultiViews

        AllowOverride All

        <IfModule mod_authz_core.c>

            Require all granted

        </IfModule>

        <IfModule !mod_authz_core.c>

            Order allow,deny

            Allow from all

        </IfModule>

    </Directory>

Then open http://localhost/phpmyadmin

と表示されます。

 

2.  apache2のhttpd.confを編集

httpd.confファイル内に

 

Alias /phpmyadmin /usr/local/share/phpmyadmin

    <Directory /usr/local/share/phpmyadmin/>

        Options Indexes FollowSymLinks MultiViews

        AllowOverride All

        <IfModule mod_authz_core.c>

            Require all granted

        </IfModule>

        <IfModule !mod_authz_core.c>

            Order allow,deny

            Allow from all

        </IfModule>

    </Directory>

を追記して保存します。

 

3. apache2の再起動

httpd.confファイルに追記した後、apache2を再起動をしてブラウザで「localhost/phpmyadmin」と入力をし、phpMyAdminを使用しようと思ったが、下のような画面が出力されてしまい使用できませんでした。

f:id:OyogenaiTaiyak1:20210616073751p:plain

Index of phpMyAdmin

 

4.  再び、apache2の設定

他にも設定が必要なのだと思い試行錯誤していました。

 

/etc/apache2/内にあるhttpd.confファイル内の

「#LoadModule php7_module libexec/apache2/libphp7.so」を

「LoadModule php7_module libexec/apache2/libphp7.so」のようにコメントアウトを外し、保存しました。

 

その後、apache2を再起動し、もう一度ブラウザでブラウザで「localhost/phpmyadmin」をしたところ、phpMyAdminのログイン画面を出力する事ができました。

f:id:OyogenaiTaiyak1:20210616074329p:plain

phpMyAdminのログイン画面