文系エンジニア大学生の技術ブログ

エンジニアインターンに参加している文系大学生が、ITやプログラミングに興味のある学生やエンジニアを目指している方に対して有益になるような情報を発信していきます。休学、留学、海外生活についても触れていきます。

【プログラミング初心者向け】MAMPをインストールしphpの環境構築をする方法

f:id:daikiyano:20190116225300p:plain

今回は、MAMPを使ってサクッとPHPの環境構築する方法をご紹介します。

プログラミング学習を始めてから一年が経ち、今年に入りポートフォリオサイトの制作に着手しました。 使用言語はHTMLに埋め込むことができ、サクッと開発出来そうなPHPを選択。 今回、macbook proに買い換えてから一度もphpで開発していないので、MAMPで環境構築するところから開始します。 プログラミング初心者の方はprogateで学習される方が多いと思います。progateで一定の期間勉強した方は次のステップへ進むために、自身のPCで環境構築をし、progateで学んだ内容を再現しながら復習することが大事なんじゃないかなと思いますので、この記事を参考にしてみてください。

prog-8.com

www.for-engineer.life

MAMPとは?

MAMP(マンプ)とは、Macintosh, Apache, MySQL, PHPの略。MAMPはWindowsとOS X上で動作する開発者向けのツールです。 MAMPをインストールすれば、PHP・My SQLなどローカルでweb開発するための環境構築を手軽に行うことが出来ます。 MAMP PROは有料ですが、MAMPであれば無料で使用することが出来ます。 プログラミング学習するのが目的であれば、無料版のMAMPで十分です。

MAMPのインストール方法

早速、MAMPをPC内にインストールするために以下のURLへアクセスします。

www.mamp.info

Free downloadを選択し、macかwindoesを選択し、インストールしていきます。 インストール手順は省略しますが、いつものように利用規約に同意し、PC内に取り込めばOKです。

f:id:daikiyano:20190115224600p:plain

f:id:daikiyano:20190115224741p:plain

インストールが完了したらMAMPを起動させます。

f:id:daikiyano:20190115225259p:plain

起動させると以下の画面が表示されますので、赤い枠の中にあるstart serverのボタンを押しサーバーを起動させます。

f:id:daikiyano:20190116221651p:plain

サーバーを起動させたら続いてphpファイルを作成します。

ファイルの中身は恒例のHello worldとします。 ファイル名はindex.phpとしました。

<?php
echo "Hello world";
 ?>

ファイルを保存する際の注意点として必ずhtdocs上でファイルを保存します。 macとwindoesではhtdocsの場所が変わってきますので、注意しましょう。

  • Windows・・・Cドライブ > MAMP > htdocs
  • Mac・・・アプリケーション > MAMP > htdocs

htdocs上に保存が出来たら 下のアドレスにアクセスしてみます。

http://localhost:8888/index.php

ブラウザにHello Worldが表示されたらMAMPのPHP環境構築は終了です。

f:id:daikiyano:20190116223757p:plain

ここまで出来れば、自身のPC内でphpの文法の学習をすることが可能になります。 progateでやるよりローカル環境で行った方が、実践的かつ効果的にプログラミング学習が出来ますので、是非トライしてみてください。

【トビタテ留学10期】二次審査を終えたので、面接とグループディスカッションの詳細を報告します

f:id:daikiyano:20190114163107j:plain

先週の土曜日にトビタテ留学の二次審査が終了しましたので、面接とグループディスカッションの詳細を報告します。

面接会場は文部科学省内です。 ということでどーーん

f:id:daikiyano:20190114163212j:plain

と行ってまいりました笑

私の留学計画(仮)

私の留学計画のタイトルは「ITの力で日本を元気にする」です。 プログラミングとAI技術を学ぶためにシリコンバレーとイスラエルのIT企業でインターン生として働く予定です。 以前の記事で少しだけ紹介していますので、参考程度に見てください笑

www.for-engineer.life

トビタテ留学とは?

「トビタテ!留学JAPAN日本代表プログラム」は、2014年からスタートした官民協働で取り組む海外留学支援制度です。2020年までの7年間で約1万人の高校生、大学生を「トビタテ!留学JAPAN日本代表プログラム」の派遣留学生として送り出す計画です。派遣留学生は支援企業と共にグローバル人材コミュニティを形成し、”産業界を中心に社会で求められる人材”、”世界で、又は世界を視野に入れて活躍できる人材”へと育成されます。帰国後は海外体験の魅力を伝えるエヴァンジェリスト(伝道師)として日本全体の留学機運を高めることに貢献することが期待されています。 出典元:トビタテ!留学JAPANとは|トビタテ!留学JAPAN HP

トビタテ留学は2014年に開始したプログラムです。トビタテ留学に合格すれば、返済不要の手厚い奨学金が給付され、海外へ留学することができます。何を学ぶか、どこの国へ行くか、どれくらいの期間留学するかは全て学生で決めることができます。

二次審査で多くのトビタテ候補生の方とお話をしましたが、皆さん学ぶ分野・テーマは多様で以下のような感じです。

  • 剣道
  • 手話
  • ホームスクール
  • 貧困問題
  • 生活習慣病を解決するための食品開発の研究
  • デザイン志向/デザインリサーチ
  • マテリアルズインフォマティクス
  • 衛星打ち上げ
  • 体操

などなど。。。 トビタテ留学は学生の熱意を評価してくれるのが特徴の一つです。 そのため、トビタテ候補生全員が自身の分野に対しパッションとビジョンを持っている印象でした。

一次審査と二次審査の内容

一次審査(書類審査)

  • 留学計画の概要(1000文字)
  • 申請コースの選択理由(255文字)
  • 学修の成果及びその測定方法(400文字)
  • 期待できる学修・実践活動の成果の活用(500文字)
  • 留学計画の実現のための取組(500文字)
  • 自由記述書(A42枚分)
    1. 困難を克服した経験
    2. 留学によってどんな自分になりたいのか。
    3. トビタテ!留学 JAPAN 日本代表プログラムに貢献できること
    4. その他アピールできるポイント

二次審査

  • 個人面接(20分)
  • グループ審査(70分) 1グループ4~6名
    1. プレゼンテーション(4分) 面接官からの質疑応答(2分)
    2. グループの中で質疑応答(10分)
    3. グループディスカッション(18分)

二次審査の詳細

個人面接(20分)

二次審査は20分間の個人面接から始まります。 面接官は丁寧に私の留学計画を聞いてくれたので、非常にやりやすかったです。 たまに圧迫面接をする面接官がいるらしいですが、私がトビタテ候補生と話した限りそのような面接官に当たった方はいませんでした。

質問されたこと
  • 自己紹介と留学計画を教えてください。
  • トビタテ留学を知ったきっかけは?
  • 将来、なりたい人物像は?
  • 何故、数ある奨学金の中でトビタテを選んだの?
  • インド留学で反省点はありますか?その反省をトビタテでどのように活かしていきますか?
  • 大学で学んでいる経営学の知識をどのように留学で活かしますか?
  • 起業は考えているの?
  • どうしてイスラエルなの?
  • トビタテの成果をどのように国内に還元しますか?
  • 念のため聞くけど、語学力は大丈夫そう?

でした。一次面接では、①留学計画の概要、②将来の夢やビジョン、③自身の持つパッション、④成果を国内に還元する方法の4つを面接官に伝わるように意識しながら一つ一つの質問に答えていきました。 事前の質問リストを作成していけば、スムーズに答えられるんじゃないかなと思います。

グループ審査(70分)

個人面接を終えたら続いて場所を移動したらすぐにグループ審査に移ります。 私のグループは四人で男女比は1:3と男性は私一人でした。全体的に女性の割合の方が多いのかなあという印象でした。

プレゼンテーション(4分)/面接官からの質疑応答(2分)/グループの中で質疑応答(10分)

事前に準備した資料を用意し、個人面接の時と同様に4分間で留学計画と概要をグループの中でプレゼンテーションします。4分を過ぎると強制的に終了させられるので、4分以内にプレゼンが収まるように事前練習しておくことが重要です。できるだけ専門用語を使わず、分かりやすくゆっくりと説明すると聞き手に伝わりやすいです。

面接官とメンバーからの質問は以下の通りです。

質問されたこと
  • インターン先企業の事業内容を教えてください。
  • 将来、実際に作ってみたいサービスなどはありますか?
  • AIは幅広い分野であるが、どの分野に興味があるか?AIのスペシャリストになりたいのかそれともジェネラリストになりたいのか教えてください。
  • 日本発の技術もたくさんあるが、世界的に見ると埋没してしまっています。それについてどのように思われますか?
  • なんでイスラエルなの?
  • 日本にもインキュベーター施設はありますか?また、海外との違いは?

私のグループは4人だったので、質疑応答の時間が20分間ありました。 個人面接に比べて鋭い質問が多かったです。準備していなかった質問もあったので、臨機応変に回答していきました。 質問に対して正しい回答ができていたかは微妙です笑 必死だったので、何を答えたのかあまり覚えていません笑

グループディスカッション(18分)

今回のグループディスカッションのテーマは「留学をよりよくするために大切なこと」でした。 9期の時と同じテーマでした。基本的にグループディスカッションのテーマは変わらないようなので、事前に準備できそうですね。通常、ディスカッションする際は進行役、書記、タイムキーパーなどが必要になりますが、今回私はタームキーパーをやりました笑 グループのメンバーによって担える役割は代わると思いますので、無理して進行役やリーダーをやる必要はないと思います。役割がない場合も自分の意見を自信を持って言えることが大事です。

感想

面接やプレゼンテーションは緊張しますが、何よりも楽しむことが大事だと思います。二次審査を受けるために全国各地からトビタテ候補生が集結します。トビタテ候補生はそれぞれテーマとそのテーマに対しての情熱(パッション)を持っていますので、刺激になるお話をたくさん聞くことができました。

続きを読む

無料ユーザーでもgithubのプライベートリポジトリが利用可能になったので、設定してみたよ。

f:id:daikiyano:20190108111137p:plain 画像出典:Pricing · Plans for every developer · GitHubより

githubの無料ユーザーでもプライベートリポジトリを使えるようになったので紹介します。

無料ユーザーでもプライベートリポジトリ利用可能に

タイトルの通り無料ユーザーでもプライベートリポジトリが使えるようになりました。今までは月額7$を払うユーザーのみが、プライベートリポジトリの使用が可能でした。

githubの新サービス

  • 新しくfreeプランが設けられた。
  • freeプランのユーザーは無料でプライベートリポジトリの使用が可能に。(無制限)
  • プライベートリポジトリを共有できるのは三人まで。

githubのプライベートリポジトリは有料だったため、今までは無料で利用できるGitLabやBitbucketなどのサービスが重宝されていました。今回、githubのfreeサービスの登場で状況は変わってきそうです。

リポジトリをプライベートに変更する方法

プライベートにしたいリポジトリページへアクセスします。 上部にsettingがあるのでクリック。 左側にあるメニューバーからoptionsを選択します。 f:id:daikiyano:20190108164103p:plain

下にスクロールしていくと

Danger ZoneMake privateがあるのでクリック。 f:id:daikiyano:20190108164118p:plain

下の画像のようにポップアップが表示されるので、プライベートにしたいリポジトリ名を入力し、 I understand,make this repository privateをクリックすれば設定完了です。

f:id:daikiyano:20190108164133p:plain

皆さんも是非試してみてください。 ・参考サイト

続きを読む

中東のシリコンバレー イスラエル発の技術を紹介するよ

f:id:daikiyano:20190105224011j:plain 画像出典:https://skyticket.jp/guide/77981より

今回は、数多くのスタートアップ、ハイテク企業が存在する中東のシリコンバレーであるイスラエル発の技術についてご紹介したいと思います。

突然ですが皆さん、イスラエルのイメージってどんな感じですかね?笑

パレスチナ問題、ユダヤ、中東、治安が悪い、小国、紛争、ミサイル

とかですかね。 ITに詳しい方であれば既にご存知かと思いますが、イスラエルは世界屈指のIT先進国であり、イスラエルの科学技術に対する開発研究費は対GDP比で見ていくと、主要国のトップレベルの水準を位置しています。また、イスラエルの高い技術力を求めて、海外からの投資額も年々増加しており、人口一人当たりのベンチャー投資額も高い水準にあるため、イスラエルには多くのスタートアップやハイテク企業が存在しています。そのためイスラエルは、「中東のシリコンバレー」とも言われています。

イスラエルを紹介する動画があるので、ちょこっと見てね。


Startup Tel Aviv

イスラエル発の技術を紹介してみるよ

今回は、中東のシリコンバレーであるイスラエル発の技術を5つ紹介したいと思います。

今回紹介する技術は以下のです。

  1. USBメモリ
  2. ファイヤーウォール
  3. サジェスト機能
  4. NUI(ナチュラルユーザーインターフェース)
  5. インスタントメッセンジャー

USBメモリ

f:id:daikiyano:20190105214824p:plain

まずはUSBメモリです。 USBメモリは皆さんもご存知のあれです。より正確に説明するとUSBメモリはPCに接続してデータの読み書きを行う半導体メモリを用いた補助記憶装置です。 USBメモリはイスラエルのM-Systems社の技術者によって開発され、2006年にアメリカのSanDisk社に約130億ドルで買収されました。USBメモリの登場により、デジタルファイルを保存して転送する方法を大幅に簡素化することが可能になりました。

f:id:daikiyano:20190105214721j:plain

画像出典:https://gpmip.com/experience/m-systems-sandisk/

ファイヤーウォール

f:id:daikiyano:20190105143343g:plain

画像出典:オトナのPC Life:ギャラリー バックナンバー パソコン用語集 基本用語 セキュリティ- Just MyShop -

ファイヤーウォールとは、外部の攻撃から内部のネットワークを守るためのネットワークセキュリティティシステムです。ファイヤーウォールは元々火災から建物を守るための防火壁と訳すことができます。インターネットの世界では、外部のネットワークからの攻撃や不正なアクセスから私たちのネットワークやコンピューターを防御する必要があります。その役目を果たしているのはファイヤーウォールです。

ファイヤーウォールを発明したのは、イスラエルのチェック・ポイント・ソフトウェア・テクノロジーズ(Check Point Software Technologies Ltd.)です。同社はインターネット黎明期である1997年に創業され、現在、情報技術セクターにおけるイスラエル国内での時価総額ランキング一位で世界トップクラスのサイバー・セキュリティ企業です。

www.checkpoint.com

サジェスト機能

サジェスト機能とは・・・

インターネットのサーチエンジンで、検索した文字列に関連の深い語句を逐次予測して表示する機能。米国グーグル社のサーチエンジンではオートコンプリートといい、語句の候補を、他の利用者の検索語句や同社のデータベースから機械的に抽出して表示している。予測表示機能。検索予測機能。検索候補機    サジェスト機能(サジェストキノウ)とは - コトバンクより引用

googleの検索バーで文字を入力すると下部に入力した文字に続く候補が自動的に表示されるあれですね、あれ。 このサジェスト機能を発明したのは、皆さんご存知のGoogleです。しかし、アメリカのgoogleではなくイスラエル拠点のgoogleがサジェスト機能を開発しました。

NUI(ナチュラルユーザーインターフェース)

NUIの空間の物体を認識する技術を発明したのが、イスラエルのPrime Sense社です。2013年にアップルにより買収されています。

PrimeSense - Wikipedia

NUI(ナチュラルユーザーインターフェース)を知らない方は以下の記事をご参照ください。

www.for-engineer.life

空間の物体を認識する技術?

以下の動画を見れば、イメージしやすいかと思います。


The world-changing sensor we saw at CES


PrimeSense: World of 3D Sensing

こちら2013年の動画なので、既に多くの技術が製品化され、世に出回っていますね。

インスタントメッセンジャー

f:id:daikiyano:20190105220056j:plain

画像出典:http://blogs.itmedia.co.jp/

インスタントメッセンジャーとは、インターネットなどのコンピューターネットワークを通して、ユーザー間でリアルタイムに短文のやり取りをする技術です。相手が応答可能な状態ならば、リアルタイムでメッセージのやり取りをすることが可能です。 分かりやすく説明すれば、

  • Skype
  • LINE
  • カカオトーク
  • Whatsapp
  • Facebook Messenger
  • Slack

などなど。  私達が日頃が行なっているチャットトークは全てインスタントメッセンジャーの技術があるから成り立ちます。 インスタントメッセンジャーは1996年頃、イスラエルのMirabilis社によって開発されました。1998年アメリカのAOL社が同社を買収しています。私が生まれる前にチャットの技術が開発されていることに驚愕です笑

Mirabilis (company) - Wikipedia

いかがでしたか?記事を作成するためにイスラエルのスタートアップ事情や技術について調べてたら、凄すぎてだんだんテンション上がってきました。 これはますますイスラエルに行きたくなってきました。イスラエル・シリーズの記事も積極的に執筆していこうと思います。

アップルが360億円で買収した「PrimeSense」の凄さが分る動画

続きを読む

UIの歴史と将来のUIの形についてまとめてみたよ。

f:id:daikiyano:20190103130920p:plain

皆さんUI・UXはご存知ですか?エンジニアの方であれば、当然知っている単語だと思います。 今回は、UIの歴史と将来のUIの形についてまとめてみました。

そもそもUIとは?

UIとはユーザーインターフェースの略です。

ユーザーインターフェースを更に噛み砕いてみていくと

  • user ・・・使用者・利用者
  • interface ・・・ 境界面・接点・つなぎ目、接触面、中間面

と訳すことができます。インターフェースはつなぎ目や中間面と訳すことができ、一般的にはコンピューターと周辺機器との接続部分を表します。例えば、パソコンとプリンターを繋げるコードもインターフェースの一つですし、ソフトウェアとソフトウェアを繋げるAPI(Application Programming Interface)もインターフェースの一つです。

f:id:daikiyano:20190103123722j:plain 画像出典:https://boxil.jp/mag/a2890/

つまり、UI(ユーザーインターフェース)とは、user(使用者)とdevise(スマホやPC)が上手にコミュニケーションを取れるような役割を果たしています。 サイトを訪問したユーザーを満足させられるかというUX(ユーザーエクスペリエンス)を意識しながら、webデザイナーは使用感を意識したサイトやアプリの視覚デザインの設計とサイトの構築を行なっています。

UIの歴史と今後についてまとめてみたよ

早速、人とデバイス繋げるUI(ユーザーインターフェース)の歴史を今後についてまとめていきます。

  • CLI(Command line Interface/コマンドラインインターフェース)
  • GUI(Graphical User Interface/グラフィカルユーザーインターフェース)
  • NUI(Natural User Interface/ナチュラルユーザーインターフェース)
  • OUI(Organic User Interface/オーガニックユーザーインターフェース)

順に説明していきます。

CLI(Command line Interface/コマンドラインインターフェース)

CLIはwindoesであればコマンドプロンプト、Macであればコマンドと呼ばれるあの黒い画面のことを指します。エンジニアはあの黒い画面にコマンドを入力してデバイスの操作をします。昔のコンピューターはスイッチを入れたら黒い画面に向かって、コマンドを打ちながらOSを操作しなければなりませんでした。CLIは視覚的に操作できませんし、UIを考えると不親切と言えます。未経験でプログラミング学習を始めた私は環境構築をする際にコマンドを操作しないといけないので、あ〜。。って感じで挫折しましたね。

f:id:daikiyano:20190103130057p:plain

黒い画面に苦手意識を持たれている方は以下の記事を参照してみてください!

fjord.jp

GUI(Graphical User Interface/グラフィカルユーザーインターフェース)

f:id:daikiyano:20190103130920p:plain

GUIはグラフィカルユーザーインターフェースの略で、情報やアイコンをグラフィック要素に置き換えたものです。GUIのおかげで私達は視覚的にコンピューターを操作することができます。GUIにはWYSIWYG(what you see is what you get)見たままが得られるというデザイン原則があります。PCのフォルダやファイルのもGUIを使えば、直感的に操作して作成や削除を実行できます。

NUI(Natural User Interface/ナチュラルユーザーインターフェース)

f:id:daikiyano:20190103153013j:plain

NUIはナチュラルユーザーインターフェースの略です。NUIの一部の技術はイスラエル発と言われています。 興味がある方は以下の記事を参照して見てください。

www.for-engineer.life

GUIがWYSIWYGであるのに対してNUIはWYDIWG(what you do is what you get)行ったままが得られるというデザイン原則があります。NUIはGUIよりも更に直感的な操作が可能になったUIです。 スマホのボタンを押す、スクロール、スワイプをする、電車の券売機を購入するためにタッチパネルで操作する、音声入力でテキストする、googleで検索するなど全てNUIによるものです。 現在、NUIは社会の中に浸透し、多くの人々に利用されています。そして、NUIの次に来るUIの形はOUIと言われています。

OUI(Organic User Interface/オーガニックユーザーインターフェース)

NUIの次はOUIが登場してくると言われています。

MicrosoftのDennis WixonさんによるとOUIは以下のように定義されます。

「オーガニックユーザーインターフェイス(OUI)とは、物理的な入力によって変化する、平面ではない表示装置をもっているユーザーインターフェイスである。OUIは、いかなる形にも変化可能な、出力装置であると同時に入力装置としても使えるディスプレイによって特徴づけられる。(An organic user interface (OUI) is a user interface “with non-planar displays that actively or passively change shape via analog physical inputs.” OUIs are characterized by displays that can change or take on any shape and their ability to use the display as an input device.)」

おぉ、イメージしづらい。。。

しかし、OUIを用いたデバイスが2011年に既に登場しています。それが、2011年にカナダのクイーンズ大学が開発したPaperPhoneです。紙のように曲がるスマートフォンです。今年は、折りたたみスマートフォンが流行の一つになるのでそれもOUIの一つと言えるのかも知れませんね。

f:id:daikiyano:20190103154559j:plain

OUIが使われる世界観をイメージするためにマイクロソフトが公開している動画をご紹介します。 マイクロソフトは今後のコンピューティングがどのように進化していくのか、その進化によって私達のライフスタイルがどのように変化しどのような世界が作り出されるのかをイメージし「Productivity Future Vision」という動画を作成して公開しています。

いかかでしたか? エンジニアやプログラマーが操作する黒い画面はCLI。CLiをより直感的に操作できるのがGUI。 現在、社会に最も浸透されているのがNUI。次に登場するUIがOUIです。 webデザイナーを目指している方はもちろん、エンジニアを目指している方はUIについて知っておくと良いかも知れませんね。

最後になりましたが、明けましておめでとうございます。 2019年もどうぞ宜しくお願いいたします!

  • 参考サイト

UI(ユーザーインターフェース)とは | 種類・ユーザビリティ、UXとの違い - 経営企画・マーケティング | ボクシルマガジン

OUI(オーガニックユーザーインターフェース)とは何なのか? | UX, UI Review

業界人なら知っておこう!UIの流れとこれから -スマホに特化したUIの基礎知識- | ajike switch

Organic user interface - Wikipedia

続きを読む

【2018年版 プログラミング初心者向け】プログラミング学習するために利用したサービスをまとめてみたよ。

f:id:daikiyano:20181229160726j:plain

今回は、文系大学生の私がプログラミング学習をするために利用したサービスをまとめてみました。

2018年もあと二日で終わりですね! 今年はプログラミング学習をするために様々なサービスを利用しましたので、まとめて紹介します! スクールなどは費用が高いので、お金をかけたくない方、大学生の方でも無料や低額で利用できるサービスを中心にまとめた記事になっています。

オンライン学習サービス

ウェブカツやスキルハックなどで学習されている方も多いですが、私が利用したプログラミング学習サービスは以下の三つです。

  1. progate
  2. ドットインストール
  3. Udemy

progate

prog-8.com プログラミング学習を始めるのに最初に利用したのがprogateです。 プログラミングを学び始めたのが昨年なのでprogateを利用していたのは昨年の夏になりますね。 テキストエディタのインストールや環境構築をする必要もなく、プログラミング初心者が勉強するには手っ取り早いのでおすすめです。私は有料会員でHTML,CSS,Java入門,ruby,ruby on railsのコースを受講した記憶があります。

ドットインストール

https://dotinstall.com/

ドットインストールでは、css入門、javascript,PHP,My SQL、レスポンシブデザイン、UNIXコマンド入門を手を動かしながらサクッとやりました。 UNIXコマンドをこれから覚えたい方はドットインストールのUNIXコマンド入門が一番分かりやすいのでおすすめです!インターン先では、開発環境としてvagrantを採用しているので、vagrant環境を構築する際はドットインストールの動画をみながら知識を深めていきました。progateとドットインストールはサクッと見て手を動かすながらプログラミングの雰囲気を味わうのが大事な気がします笑

Udemy

https://www.udemy.com/

今年の秋からはUdemyを利用しながら主にpythonと機械学習を学習しました。 通常だと動画の価格は1万〜2万前後ですが、セールを開催している時は1200〜1600円で動画を購入することができます。セールも頻繁に開催されているので、セールのタイミングを見計らってプログラミング動画購入するのをおすすめします。

無料のプログラミング学習サービス(大学生向け)

続いて紹介するサービスは基本的に就活生向けのサービスですが、私は純粋に無料でプログラミング学習をしたいので参加しました。

TECH-BASE

engineer-shukatu.jp

TECH-BASEは関東圏に住む大学生の方であれば、誰でも参加することが可能です。地方在住の学生でもリモートで参加することが出来た気がします。学習する言語はPHPで4〜6人で構成されたチームでカリキュラムを進めていきます。 週2でメンターに分からないことを質問できます。しかし、基本的にチームメンバーに相談したり、自力でググりながらエラーを解決したり、実装していきます。 なので、TECH-BASEではググって解決する力が身についた気がします。笑あとは、メンバー同士でエラー原因を探る回数も多かったので、他人のソースコードを読んで理解する力とデバックするスキルも身につきました。

intee

intee.jp

inteeは選考を通過した学生のみが無料で利用できるサービスです。 利用できるサービスは以下の二つです。

  1. プログラミング学習サービス
  2. 就活支援サービス

プログラミング学習サービスはHTML, CSS, Javascript, Ruby on rails,AIコースを受講することができます。初心者向けのカリキュラムなので、ドットインストールのように雰囲気は味わえるかなあって感じです。slackを利用してメンターに質問が出来るので、独学でやるより挫折しにくいです。ただし、カリキュラムの進捗が悪くても催促されることもないので、学生の意欲次第で習熟度が変わります。 また、inteeを利用する学生は最低二回就活イベントに参加するのが必須となります。こちらは逆求人イベントと言われる就活サービスで、企業側が興味を持った学生のブースに向かい面談を行うイベントです。面談をする際、学生は企業に対して5分間のプレゼンテーションを行います。プレゼンテーションの準備は面倒臭いですが、言語化しながら自己分析を行う作業になるので、就職活動でも役に立ちます。興味があったら受けてみてください笑 

上記二つのサービスは別の機会に詳しく記事にして紹介します。

長期インターン求人サイト

エンジニアの長期インターンシップに参加するために利用したのが、以下のサービスです。 私はwantedlyやキャリアバイトを中心に企業へ応募しました。 プログラミング未経験可の求人も多くありますが、progateやドットインストールで学習し、成果物を一つ完成させてから面接に臨んだ方が採用される確率は高くなります。

www.wantedly.com

キャリアバイト | 成長できるアルバイト/インターン情報が満載

www.in-fra.jp

engineer-intern.jp

01intern.com

リモートワーク(おまけ)

来年からリモートワークでも働きたいと思い、二週間前に登録したのがクラウドワークスです。 大学生で実績ゼロだし、簡単には案件貰えないだろうと申し込んだら、まさかの担当者と出身大学が同じでお試しで案件をいただきました。ダメだと思っても行動してみると意外とうまくいったりするので、改めて行動することは大事だなと感じました。フリーランス大学生として活動したい方は利用してみてください。 同じようなサービスでランサーズなどもありますが、まだ利用したことないので今回は挙げません。

crowdworks.jp

今回、まとめたように2018年は様々なプログラミング学習サービスを利用したり、エンジニアインターンに参加したりしながらスキルを身につけることが出来たので、 色々試しといて良かったです。 皆さんも興味のあるサービスがありましたら、是非利用してみてください。 ご質問、ご相談もコメントやtwitterのDMにていつでも承ります!

それでは、良いお年をお迎えください!

続きを読む

シリコンバレーに住む日本が大好きなアメリカ人夫妻について紹介するよ。

f:id:daikiyano:20181224132119j:plain

シリコンバレーに住む日本が大好きなアメリカ人夫妻

一年前インターンシップに参加するためアメリカ・サンフランシスコに滞在している時に、超がつくほど日本が大好きなアメリカ人に会ったので、紹介したいと思います。

シリコンバレーの日本が大好きなアメリカ人に会った際に、日本の文化や魅力を日本人である私に教えてくれました。 私より日本の文化や歴史に詳しかったです。笑 日本のことについて聞かれた際、すぐに説明することができなかった時は日本人として恥ずかしかったですね。 一方で、日本のことをこれほど好きなアメリカ人がいることを知って日本人として誇りに感じました。 私にとってその経験はいい意味でも悪い意味でも衝撃的だったので、忘れないうちに載せておきます。

自宅についた瞬間、目に入ったのが大きな紋章笑 f:id:daikiyano:20181224132119j:plain

f:id:daikiyano:20181224132128j:plain 玄関に向かう際に目に入ったのが。。鹿威し。 鹿威しを見てここまで感動する日が来るとは思っていませんでした。

f:id:daikiyano:20181224132236j:plain

f:id:daikiyano:20181224132123j:plain 石灯籠ももちろんあります。

こちらが食卓でございます。 f:id:daikiyano:20181224132152j:plain f:id:daikiyano:20181224132221j:plain こちらは浮世絵です。 f:id:daikiyano:20181224132219j:plain

f:id:daikiyano:20181224132225j:plain 家の中には兜だって置いてあります。 f:id:daikiyano:20181224132229j:plain

続きを読む

matplotlibの基礎を確認しながらグラフを描画してみたよ

f:id:daikiyano:20181223105709p:plain 画像出典:Matplotlib: Python plotting — Matplotlib 3.0.2 documentationより引用

今回は、pythonの外部モジュールであるmatplotlibの基礎を学びながらグラフの描画の仕方について確認していきます。

matplotlibとは?

Matplotlib: Python plotting — Matplotlib 3.0.2 documentation

matolotlibとはプログラミング言語であるPythonと計算ライブラリであるNumpyのためのグラフ描画ライブラリです。matolotlibを利用することにより、グラフの描画や画像の表示、アニメーションの作成などを行うことが可能です。 人工知能を扱う際はデータを可視化することが大切になります。そのため、機械学習、深層学習を学習する方はmatplotlibの使い方を知る必要があります。

matplotlibを使用する際はNumPyと組み合わせ使うためNumPyを知らない方は以下の記事も参照してみてください。

www.for-engineer.life

NumPyとmatplotlibでグラフを描画するよ。

まずは、Numpyの時と同様にmatplotlibのpyplotというモジュールをインポートします。

コードを書いていく際にいちいちnumpy 、matplotlibと記載するのは面倒なので、 インポートする際にnp、pltと略して使うのが通例です。 また、Jupyter notebookでmatplotlibを使用する際は先頭に %matplotlib inlineを記載する必要があります。

%matplotlib inline
import numpy as np #numpyをインポート
import matplotlib.pyplot as plt

linspace関数

グラフを描画するために今回はlinspace関数を使用します。 linspace関数を使うと指定した範囲の数字を50等間隔に区切ることができます。

  • linspace関数・・・指定した数字の範囲の中で50等間隔に区切ってくれる。

区切られた数字はNumpyの配列になります。

import numpy as np

x = np.linspace(0, 10)  #0〜10を50等間隔に区切る。

print(x)
print(len(x))  

今回は数字の範囲を1〜10とします。 これをlinspace関数を利用して結果をprintで表示させると以下のように50等間隔に区切られNunPyの配列になります。

[ 0.          0.20408163  0.40816327  0.6122449   0.81632653  1.02040816
  1.2244898   1.42857143  1.63265306  1.83673469  2.04081633  2.24489796
  2.44897959  2.65306122  2.85714286  3.06122449  3.26530612  3.46938776
  3.67346939  3.87755102  4.08163265  4.28571429  4.48979592  4.69387755
  4.89795918  5.10204082  5.30612245  5.51020408  5.71428571  5.91836735
  6.12244898  6.32653061  6.53061224  6.73469388  6.93877551  7.14285714
  7.34693878  7.55102041  7.75510204  7.95918367  8.16326531  8.36734694
  8.57142857  8.7755102   8.97959184  9.18367347  9.3877551   9.59183673
  9.79591837 10.        ]
50

続いてlinspaceで区切った数値に2をかけてy座標の数値を作成します。 y = 2 * xでy座標の値を出します。

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(1, 10) 
y = 2 * x  

plt.plot(x, y)
plt.show()

f:id:daikiyano:20181222222823p:plain

グラフにラベルやタイトルを挿入

続いて、グラフにラベルやタイトルなどを挿入していきます。

  • plt.xlabel ・・・ X軸のラベル名
  • plt.ylabel ・・・ Y軸のラベル名
  • plt.title ・・・ グラフのタイトル
  • plt.legend() ・・・ 凡例を表示
  • plt.show()・・・グラフの表示
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 10)
y1 = 2 * x
y2 = 3 * x

plt.xlabel("date")
plt.ylabel("PV")

plt.title("title")

plt.plot(x, y1, label="A blog")
plt.plot(x, y2, label="B blog", linestyle="dashed")
plt.legend() 

plt.show()

再度、plt.show()を使ってグラフを表示させます。 グラフの結果は以下のようになります。

f:id:daikiyano:20181222230112p:plain

linestyleなどを使用することにより線の種類や太さを選択することができます。 興味のある方は以下のサイトを参照してみてください。

python.atelierkobato.com

機械学習、深層学習を学習していく上で線形代数やベクトルなどの数学の知識を学ぶ必要があります。 高校数学のテストのように紙に書いて計算していく必要はなくても、Numpyを活用しながら基礎的な数学を学習することがAI学習に向けての第一歩になりそうです。

www.for-engineer.life

www.for-engineer.life

続きを読む

秘密鍵と公開鍵を使って鍵認証設定の仕方について

f:id:daikiyano:20181220142224j:plain 今回、公開鍵認証の仕方についてご紹介したいと思います。 エンジニア職に就いて最初にやるのがコーティングではなく、鍵認証ではないでしょうか?笑 よりセキュアなやり方があれば、教えていただけると幸いです。

また、公開鍵認証をするにはUNIXコマンドの基本的な操作が必要になります。

ドットインストールの「UNIXコマンド入門」は分かりやすいので、コマンドの操作方法を学習されたい方にはおすすめですので是非利用してみてください。

https://dotinstall.com/lessons/basic_unix_v2

パスワード認証と公開鍵認証

f:id:daikiyano:20181220113506p:plain 画像出典:「よく分かる公開鍵認証」~初心者でもよくわかる!VPSによるWebサーバー運用講座(2) | さくらのナレッジより引用

サーバーにアクセスするやり方として主にパスワード認証と公開鍵認証があります。 パスワード認証の場合、ログインするのが容易でパスワードを知っている人であれば、どのパソコンからでもアクセスすることが可能です。 しかしながら、悪意のある第三者よって総当たり攻撃をされた際にサーバーに不正アクセスされる可能性があり、パスワードはセキュリティ上あまりよろしくありません。そのパスワード認証に代わって使用するのが公開鍵認証です。

PCで鍵を生成する際に id_rsa.pub(公開鍵)とid_rsa(秘密鍵)が作成されます。

  • id_rsa.pub(公開鍵)
  • id_rsa(秘密鍵)

公開鍵はサーバー側で保管する鍵で基本的には「authorized_keys」という名前に変更して保存します。 秘密鍵はクライアント側で保管し、第三者には絶対に誰にも渡してはいけない鍵です。

公開鍵認証をすることにより、秘密鍵を持っているPCに対してのみ接続を許可するので、鍵を持っていないパソコンからはログインすることができなくなります。 よって、セキュリティが向上します。

公開鍵認証をやってみたよ。

まずは、クライアント側からサーバーにパスワード認証を用いてリモートログインをします。 サーバーを直接触れる場合は、サーバーで直接操作をします。

$ ssh [ログインユーザID]@[サーバアドレス]

例:$ ssh kusangai@example.com

公開鍵と秘密鍵を作成。

サーバー側で鍵を生成するために以下を実行します。 鍵を生成する際にパスワードを聞かれますが、こちらはパスワードを設定してもしなくてもどちらでも構いません。

$ ssh-keygen -t rsa 
Enter file in which to save the key (/Users/username/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/username/.ssh/id_rsa.
Your public key has been saved in /Users/username/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:x++c1jsf2KeByKc4A/S7dfedxcswRyZz7LpbkFCl4 username@usernameMacBook-puro.local
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|                 |
|                 |
|      o o.o      |
|     ..BE*+      |
|     .=o=o*+ooo  |
|     +.+.B O*o.o.|
|      o B B=..ooo|
|       ..=oo+ o+.|
+----[SHA256]-----+

公開鍵の設定

続いて公開鍵の設定を行います。 cat id_rsa.pub >> authorized_keysで公開鍵をauthorized_keysに書き込みます。 その後、公開鍵(authorized_keys)のパーミッションを600に、.sshフォルダのパーミッションは700に設定します。authorized_keysに公開鍵が書き込まれていることを確認したらrm id_rsa.pubで削除します。

$ cd ~/.ssh/
$ cat id_rsa.pub >> authorized_keys
$ chmod 600 authorized_keys
$ chmod 700 ~/.ssh
$ rm id_rsa.pub

クライアント側で秘密鍵の設定

続いてサーバー側にある~/.ssh/id_rsa(秘密鍵を)クライアント側(自分のPC)に設定します。 設定したら秘密鍵(id_rsa)のパーミッションは600に、.sshフォルダのパーミッションは700に変更します。 また、id_rsaはファイル名を変更できるので、分かりやすい名前に変更します。

$ cd ~/.ssh/
$ chmod 600 id_rsa
$ mv id_rsa [好きな名前]
$ chmod 700 ~/.ssh

これで、鍵認証の設定は完了です。 最後にsshコマンドを使ってサーバーに接続してみます。

$ ssh –i ~/.ssh/[鍵の名前] [ログインユーザID]@[サーバアドレス]

例:$ ssh -i ~/.ssh/example_server kusanagi@example.com

私の場合、kusanagiを使っているのでこんな画面が表示されて鍵認証を使ってサーバーにアクセスすることが出来ました。

Last login: Thu Dec 20 11:26:12 2018 from nat1.example.jp

     __ ____  _______ ___    _   _____   __________
    / //_/ / / / ___//   |  / | / /   | / ____/  _/
   / ,< / / / /\__ \/ /| | /  |/ / /| |/ / __ / /
  / /| / /_/ /___/ / ___ |/ /|  / ___ / /_/ // /
 /_/ |_\____//____/_/  |_/_/ |_/_/  |_\____/___/

    Version 8.4.2-1, Powered by Prime Strategy.

最初は、イメージが湧かず苦戦するかも知れませんが、是非トライしてみてください。 もし、何か間違えている点がありましたらご指摘していただけると幸いです。

続きを読む

googleアドセンスの審査を通過しましたので、ご報告いたします。

f:id:daikiyano:20181217182151p:plain 本日、当ブログはgoogleアドセンスの審査を通過しましたので、ご報告します。

Googleアドセンス審査通過のご報告

タイトルの通り、 本日、googleアドセンスの審査を通過しました! 申請して20時間ほどで審査を通過したので、予想以上に早かったなあというのが感想です。

当ブログのプライバシーポリシー

念のため、当ブログのプライバシポリシーについては以下をご参照ください。 www.for-engineer.life

ブログを運営する目的

ブログを運営する目的は主に二つあります。

  1. 習得した技術やスキルを言語化し、アウトプットする。(備忘録)
  2. アウトプットした内容を有効活用するため、訪問者にとって有益な記事を作成する。(情報発信)
  3. (せっかくだし、お小遣いを稼いでみようじゃないか。(収益))

ブログ運営の一番の目的は身につけた技術やスキルをアウトプットすることにあります。アウトプットを続けて、最終的に自身の辞書的な役割を果たせたら良いなと考えています。その中で、自分の書いた備忘録を訪問者目線で記事化したら自分もアウトプット出来るし、訪問者にとっても役に立つ記事を書いたら一石二鳥じゃないかっていう感じのノリでやっています。そこで更に収益化出来たら一石三鳥じゃないか。そんな気持ちでgoogle アドセンスの申請を行いました。

よって、知識の整理のためにアウトプット出来ればいいので、アクセス数が伸びなかったり、収益が発生しなかったとしてもあんまり気にしないし、やめることもありません。

引き続き当ブログをどうぞ宜しくお願いいたします。

www.for-engineer.life

www.for-engineer.life

www.for-engineer.life

www.for-engineer.life

続きを読む

【トビタテ留学】一次審査通過したので、留学計画の概要ちょこっと紹介するよ。

f:id:daikiyano:20181216094813j:plain

今回、トビタテ留学10期に応募したところ、一次審査通過したので留学計画の概要をちょこっとご紹介したいと思います。

トビタテ留学とは?

「トビタテ!留学JAPAN日本代表プログラム」は、2014年からスタートした官民協働で取り組む海外留学支援制度です。2020年までの7年間で約1万人の高校生、大学生を「トビタテ!留学JAPAN日本代表プログラム」の派遣留学生として送り出す計画です。派遣留学生は支援企業と共にグローバル人材コミュニティを形成し、”産業界を中心に社会で求められる人材”、”世界で、又は世界を視野に入れて活躍できる人材”へと育成されます。帰国後は海外体験の魅力を伝えるエヴァンジェリスト(伝道師)として日本全体の留学機運を高めることに貢献することが期待されています。 出典元:トビタテ!留学JAPANとは|トビタテ!留学JAPAN HP

2014年から開始されたプログラムで採用されれば、返済不要の手厚い奨学金が給付され、海外へ留学することが可能です。何を学ぶか、どこの国に行くか、どれくらいの期間留学するのかも全て学生で決めることが出来ます。本当に自由です笑

www.tobitate.mext.go.jp

一次審査に必要な書類

トビタテ留学応募の際に必要となる書類は留学計画書自由記述書の2点です。 その中で以下の内容を書かなくてはなりません。

  • 留学計画の概要(1000文字)
  • 申請コースの選択理由(255文字)
  • 学修の成果及びその測定方法(400文字)
  • 期待できる学修・実践活動の成果の活用(500文字)
  • 留学計画の実現のための取組(500文字)
  • 自由記述書(A42枚分)
    1. 困難を克服した経験
    2. 留学によってどんな自分になりたいのか。
    3. トビタテ!留学 JAPAN 日本代表プログラムに貢献できること
    4. その他アピールできるポイント

学歴も専攻も関係なく日本の大学に在籍している学生であれば、トビタテ留学に誰でも応募することができます。しかし、応募するためには上記の書類を全て完成させる必要があります。時間をかけて作成し、大学の先生や社会人の方に添削してもらい修正するをひたすら繰り返す作業をしなければなりません。なので、応募する前で諦めてしまう学生が多くいるそうです。。でも、この書類を完成させる意欲と熱意がなければ、そもそもトビタテ生の応募条件に満たないです。

私の留学計画をちょこっと紹介するよ。

一次審査を通過したので、二次審査として1月中旬に面接とプレゼンテーション、グループディスカッションがあります。 二次審査に備えて自身の留学計画を言語化しまとめる必要があるので、自分のブログでその作業をしてしまえって感じでちょこっとだけ私の留学計画を紹介します。仮トビタテ生なので、控えめにちょこっとです。。。笑  ただし、一次審査は突破しているので、今後トビタテ留学への応募を検討している方、または書類を作成途中の方にはちょこっとだけ参考になるかなあとは思います。

留学のタイトル(仮)

「IT先進国アメリカ・シリコンバレーとイスラエル・テルアビブへ飛び立ちます」

f:id:daikiyano:20181216082338p:plain f:id:daikiyano:20181216082046p:plain

留学の目的

  1. エンジニアスキルを向上させる。
  2. プログラミングと海外の魅力を国内へ発信

留学先での実践活動

  1. AIを活用するIT企業でインターン生として開発業務
  2. 現地でのITイベントへの参加
  3. 企業訪問と起業家や学生との交流

アメリカの受け入れ期間先は既に確定しており、AI技術を活用したスタートアップ企業で働く予定です。イスラエルについても現地エージェント連絡を取りながら受け入れ期間先を調整中です。また、③についてアメリカの受け入れ先企業が、各国のスタートアップ企業が集まるインキュベーター施設のコワーキングスペース内にあります。そこで各国の企業の方と積極的に交流し、世界各国の働き方の違いを理解し、ビジネスの知見を深めます。

トビタテ留学を通してどうなりたいか?

  1. AI 技術を活用したweb アプリケーション開発が出来るエンジニア
  2. 日本を世界へ発信し、世界を日本へ発信するトビタテ生

①はAI技術を既存のwebアプリケーションに組み込んだり、ビジネスに応用出来るエンジニアを目指します。 ②について私は今までに五か国を訪問し、25の国と地域の方々に出会ってきました。現在は海外で出会った友人を日本に招待するなど日本を世界へ発信する活動をしています。アメリカとイスラエルへの留学を通して、多くの人に出会い、人脈を形成しながらトビタテ留学終了後も日本を世界へ発信 し続けられるトビタテ留学生を目指します。

トビタテ留学で得た成果を国内へ還元し貢献する活動

私は具体的に、

若年層に向けて海外とプログラミングの魅力を発信する活動

を行います。

行う活動は以下の二つ。

  1. SNSやブログを通して海外やプログラミングの魅力を発信
  2. 学内や地元の学校で講演会を開催し、留学やプログラミングに興味を持てる機会の場を提供

この活動を通して、刺激を受けた子供や学生たちが将来、海外やプログラミングに興味を持ち世界へ飛び立って欲しいと考えています。

www.for-engineer.life

www.for-engineer.life

だからこそ、私はトビタテ生としてアメリカとイスラエルへ飛び立つ必要があります!!

ざっとこんな感じです。まだまだ、ブラッシュアップする必要があります。 これでトビタテ落ちたら、思いっきり笑ってあげてください。笑  んま、落ちても貯金してアメリカ行くし、プログラミングもブログも続けるし、将来エンジニアになることにも変わりはありません。そんな感じで、当ブログを引き続き宜しくお願いいたします。

続きを読む

【休学を検討している人向け】休学を終えて、私の大学生活はどのように変化したか

f:id:daikiyano:20181213150014j:plain

今回は、一年間の休学生活を終え復学後、私の大学生活がどのように変化したのかについて紹介したいと思います。 休学を検討されている方や休学をしたいけど心配や不安をを抱えている方に対して少しでも有益な記事になれば幸いです。

なんで、休学したの?

プロフィールにも記述してますが、私は大学三年生になったタイミングで1年間大学を休学していました。休学した目的は以下の2点です。

  • 初めての海外に行きたかった。
  • 在学中に語学とITのスキルを身に付けたかった。

私は休学中に5ヶ国を訪問し、30の異なる国籍の方々に会ってきました。また、休学を通して語学留学だけでなく、インターンシップやIT留学など目的を達成するため様々な活動を行ってきました。話せばキリがないので、詳しい活動内容はいつか記事化する予定です笑

休学後の生活はどのように変化したの? 

今回は、休学中の活動内容ではなく、休学後の大学生活が休学前に比べてどう変化したのかに焦点をあてて執筆をしていきます。

ゼミを辞める。

私は大学二年生の時に「生産管理」をテーマにするゼミに入りました。ゼミに参加して何かの分野を勉強したり、研究をしたかった訳ではありませんでした。ただ周りの友人がゼミに参加してたり、就職活動のネタになるからという、周囲に流されてゼミに加入しました。休学後、プログラミングの学習を始め、知識を深めていく中で、在学中にもっともっとプログラミングを追求して学習したいと思うようになりました。帰国後、私はゼミに戻るか悩みましたが、最終的にゼミには戻らないことにしました。戻らなかった理由はゼミに入らない時間をプログラミング学習に割り当て、企業でエンジニアインターンに参加し、実務レベルのエンジニアスキルを身につけたいと考えたからです。

シェアハウスを始める。

休学終了後は一人暮らしではなく複数人とシェアハウスをしながら生活することを決めました。理由は以下の二つです。

  • シェアハウスを利用する外国人が多い。
  • 費用を節約できる。

留学やワーキングホリデーなどで来日している外国人はシェアハウスを利用するケースが多いです。実際にシェアハウスを始めると利用者の3割は外国人などで日常生活の中で語学を学んだり、異文化コミュニケーションを深めることができます。また、一人暮らしに比べて費用を節約できるので、シェアハウスで生活することを決めました。敷金や礼金を支払う必要もなく、最低限の家具もあらかじめ用意されているので、初期費用を抑えることができます。

自由な時間が増えた。

休学する前は友人と授業に出たり、空きコマの暇な時間を食堂で過ごしたり、授業終わりにお酒を飲みに行ったりと時間もお金も無駄にするような生活を送っていました。しかし、休学を1年間したということは、同学年だった友人より学年が一個下がります。休学を終えて大学に戻ると、本当に必要な友人だけが残りました。現在、大学には最低限の友人しかいないので、空きコマを使って自分の好きなことに集中して取り組むことが出来ます。また、オールや無駄な飲み会の回数も減った結果、生活リズムが整い質の高い生活を送ることが出来ています。自由な時間が増えた分、プログラミングや現役エンジニアの方のお話を聞きに行ったりと好きなことに集中することが出来ているので、本当に毎日が楽しいです。

アルバイトの代わりに有給のエンジニアインターンを始めた。

休学を通して最低限の語学とプログラミングのスキルを身につけることが出来たので、単発で学内で募集している通訳のアルバイトに参加するようになりました。5時間勤務で日給12000円のアルバイトです。また、留学中に培ったプログラミングスキルを更に向上させるため現在は、有給のエンジニアインターンに参加しています。エンジニアインターンを通してお金を貰いながらエンジニアスキルを身につけることが出来ているので、インターン先の企業に対して感謝の気持ちを持ちながら働いています。CTOや周囲の方も本当に優しい方ばかりで周囲の環境に本当に恵まれているなあと感じています。

結論

休学後、周りの目を気にせず好きなことや興味を持ったことに思う存分取り組むことが出来ているので、本当に毎日が楽しいです。帰国後、休学中に培った語学とプログラミングスキルを活かしながら大学生活を送ることが出来ているので、私は本当に1年間大学を休学をして海外に行って良かったなと心の底から思います。

続きを読む

【rails5.2.1.1】active_storageを使用する際にUnknown keyword: content_typeが表示された時の対処法。

f:id:daikiyano:20181208133814p:plain

今回は、rails5.2.1.1でactive_storageを使用してamazon s3に画像をアップロードする際にUnknown keyword: content_typeが表示された時の対処法についてご紹介します。

active_storageとは

active_storageはrails5から追加された新機能です。 Active Storageを使用することによって、Amazon S3、Google Cloud Storage、Microsoft Azure Storageに直接画像をアップロードすることができる非常に便利な 機能です。従来であれば、carrierwaveやpaperclipなど使用して画像アップロードをしていたのですが、Active Storageを使用すれば不要になります。 詳しく知りたい方は以下のサイトをご参照ください。

railsguides.jp

今回やりたかったこと。

herokuにrailsアプリケーションをデプロイしたのですが、自動的にスリープモードになってしまうため、再度サイトにアクセスすると今までアップロードしてきた画像が表示されないという現象が発生。この現象を解消するためにはactive_storage活用してAWSやGCSに直接アップロードできるように実装する必要があります。また、私自身がactive_storageを使用したことがなかったので、実際に実装してみることにしました。

発生したエラー内容

active_storageに実装を終え、画像をアップロードしようとしたら以下のようなエラーが発生しました。

Unknown keyword: content_type

ググってみたところ、どうやらバージョンがrails5.2.1.1だとエラーが発生する模様。 ということで、gemの記載をrails5.2.1からrails5.2.2に変更しました。

gem 'rails', '~> 5.2.2'

gemfileの変更が完了したらbundle updateを実装し、再度画像をアップロードしてみるとエラーが解消されています。

f:id:daikiyano:20181210223341p:plain

参考サイト

続きを読む

【プログラミング初心者向け】railsアプリをherokuにデプロイする方法

f:id:daikiyano:20181202153433p:plain 画像出典:

jp.heroku.com

今回は、プログラミング初心者の方を対象に作成したrails アプリケーションをherokuにデプロイする方法についてご紹介したいと思います。

herokuとは?

Heroku(ヘロク)はPaaS(Platform as a Service)と呼ばれるサービスで、rubyやPHPなどのプログラミング言語を用いて開発したwebアプリケーションを手軽に全世界に向けて公開することができます。初期の頃は、rubyのフレームワークRuby on Railsのみを対応していたのですが、現在ではJava、Node.js、Scala、Clojure、Python、PHP、Goなど複数のプログラミング言語をサポートしています。

herokuについての概要と登録方法は以下のサイトをご参照ください。

www.for-engineer.life

railsアプリをherokuにデプロイする手順

バージョンの確認

  • ruby 2.5.1
  • Rails 5.2.1.
  • git 2.17.2

routesの設定

まず、routesファイルに行き、rootを設定しアプリのトップページを定義します。 このトップページの設定をしておかないとherokuにデプロイ(本番環境)した際にエラーが表示されてしまいます。

私の場合、tweeetsのindexページをトップページに設定します。

config/routes.rb
Rails.application.routes.draw do
   resources :blogs
   root 'tweeets#index' 
 end

gemfileの設定

続いてgemファイルの設定を行います。

herokuではPostgreSQLがデータベースとして設定されているので、環境ごとにデータベースが対応できるようにgemfileの設定を行なっていきます。

www.for-engineer.life

私の場合、SQLite3を使用していますが、gem 'sqlite3'をdevelopment環境とtest環境のみに対応できるようにgroup :development, :test do〜end内に移動させます。

group :development, :test do
  gem 'sqlite3' 
end

続いてherokuにデプロイした際にproduction環境のみでPostgreSQLが対応できるように group :production do〜end内に gem 'pg'(PostgreSQLの略)を追加します。

group :production do
  gem 'pg'
end

この設定でdevelopment環境とtest環境ではsqlite3、 herokuにデプロイ(production環境)した際はPostgreSQLがそれぞれ対応できるようになります。

gem fileの設定が終了したらbundle installを行うのですが、group :production do〜end内以外の gemをインストールするために以下のように実行します。

$bundle install --without production

config/database.ymlの設定

続いてproduction環境でPostgreSQLが使えるようにconfig/database.ymlでデータベースの接続の設定を行います。 productionの部分を以下のように記載します。 この際に注意するのがproduction:以降はインデント、半角スペース2個分の空白を空けて記述するようにします。 このインデントの設定が正しくできていないとうまくデータベースの接続が出来ません。

production:
  <<: *default
  adapter: postgresql
  encoding: unicode
  pool: 5

config/environments/production.rbの設定

続いてコンパイルの設定を行います。 デフォルトの状態だと本番環境での動的な画像の表示がオフになっているので、 このコンパイルの設定を行わないと本番環境で正しく画像や動画が表示させません。

config/environments/production.rbに行き、config.assets.compile = falseをtrueにします。

config/environments/production.rb

  config.assets.compile = true

これでrails側の設定は終了です。

herokuにデプロイしていくよ

gitについて分からない方は、以下のサイトをご参照ください。 私がgitの勉強をやっている時は、あんまり意味が分からなかったです。 サルには分かるけど、初心者はすぐには覚えられないのでご安心を。。笑 最近、「一週間ででマスター出来る◯◯」みたいな本たくさん出版されてますが、 そんなの不可能ですよね〜って毎回思ってます。笑

backlog.com

herokuにデプロイする際はgitを使用するので、フォルダをgitと紐付けます。

$git init 

変更しコミットします。

$git add -A 
$git commit -m "first commit"

herokuをインストール

続いてherokuのインストールを行います。

macの場合はコマンド上で以下のように実行します。

brew install heroku/brew/heroku

windoesの方はherokuのサイトからインストールすることが出来ます。

devcenter.heroku.com

PCにherokuをインストールしたら、herokuにログインをします。 コマンド上でheroku loginを実行します。

$heroku login

私の場合は、heroku login実行後、下の画像のようにherokuのログイン画面に自動的に遷移し、 ログイン出来ました。

f:id:daikiyano:20181208132351p:plain

画面が遷移しない方は、herokuに登録した際に設定したメールアドレスとパスワードを入力してください。

Enter your Heroku credentials:
Email: *******@gmail.com  
Password: **********  

続いてherokuに登録するアプリ名の設定を行います。 アプリ名を設定しなくても自動生成してくれるので、問題ありません。

$heroku create アプリ名

heroku createを実行したらいよいよherokuにデプロイします。

$git push heroku master

最後に本番環境でマイグレーションを実行します。

$heroku run rails db:migrate

f:id:daikiyano:20181208133540p:plain

マイグレーションが完了すれば、herokuへのデプロイは完了です。

f:id:daikiyano:20181208133814p:plain

herokuにデプロイする際の発生したエラーについてはまた別記事で載せたいと思います。

herokuへのデプロイは比較的簡単に出来ます。 デプロイする際は、development環境,test環境,production環境それぞれに対応した設定を行う必要があるので、 それぞれの環境の役割と流れの理解が深まります。また、デプロイすることによって作成したアプリを成果物としてURLを 企業の方などに提示することが出来ます。  是非、railsアプリを作成された方はherokuへのデプロイを試してみてください。

・参考サイト

qiita.com

jp.heroku.com

続きを読む