Somurie Engineer's Blog

IntelliJ+SpringBoot環境構築手順まとめ

はじめに Mac上にIntelliJ+SpringBoot環境を整えたため、手順をまとめました。 環境 MacOS Mojave 10.14.1 Homebrew 1.9.3-14-g2cc5086 IntelliJ IDEA 2018.3.3 java se 11.0.2 gradle 5.1.1 作業日 2019/1/29 Gradleのインストール SpringBootの環境セットアップにはGradleが必要になるため、事前にGradleをインストールします。 GradleのインストールはHomebrewを使用するため、以下コマンドのみ実行でOKです $ brew install gradle SpringBootのインストール 以下の公式サイトを参考にインストールしました。 https://spring.io/guides/gs/intellij-idea/ SpringBoot雛形の取得 以下コマンドにてSpringBootの雛形ソースを取得します。取り込む雛形はrestサンプルなど色々あるので好みに応じて変更してください。 $ git clone https://github.com/spring-guides/gs-spring-boot.git 取得したソースを解答し、complete/gradle/wrapper/gradle-wrapper.propertiesのgradleバージョンを以下の通り5.1.1に変更します。(修正前のバージョンが4.*でありはjava11.0.2に対応していなかったため) distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-bin.zip IntelliJの起動 IntelliJにてプロジェクトをインポートします。公式サイト通りcomplete/build.gradleを起動します。 IntelliJ起動後はRunを実行し、localhost:8080にアクセスすると、「Greetings from Spring Boot!」の文字が表示されます。

Vagrant+VirtualBox設定

はじめに Mac上にVagrant+VirtualBox環境を構築する手順をまとめた。 環境 MacOS Mojave 10.14.1 Homebrew 1.9.3 Vagrant 2.2.3 VirtualBox 6.0.2 前提 事前に以下をインストールしてください。 Homebrew Homebrew Cask Vagrantのインストール Vagrant(ベイグラント)とは VagrantはVirtualBoxなどの仮想マシンを管理するCUIツールです。 ChefやAnsibleといった構成管理ツールと組み合わせることでどこでも同じ仮想マシンを開発に参画する方々の端末に再現することができます。 設定ファイルであるvagrantfileにCentOSといったOS、nginxなどのサーバ、phpやphpMyAdminといったアプリケーションなどを記載すると環境構築及び環境の再現ができます。 インストール Homebrew-Caskを使ってインストールします。以下コマンドを入力してください。 $ brew cask install vagrant Boxの追加 Boxは仮想マシン作成に必要なOSのディスクイメージ等が入ったものです。 以下URLからインストールしたいOSを選択します。今回はCentOS 7.2 x64をインストールします。 http://www.vagrantbox.es/ $ vagrant box add centos72 https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.2/vagrant-centos-7.2.box $ mkdir centos72 $ cd centos72 $ vagrant init centos72 すると、Vagrantfileというものが作成されるので以下1行を追加します。public_networkにするとホスト端末だけでなく他の端末からもアクセスできます。 Vagrant.configure("2") do |config| config.vm.box = "centos72" config.vm.network "public_network", ip: "192.168.0.20", bridge: "en0: Wi-Fi (Wireless)"

Mac Mojave上へのJava11開発環境構築方法

はじめに Mac上にJava環境を整えたため、手順を残しておく。 環境 MacOS Mojave 10.14.1 Homebrew 1.9.3-14-g2cc5086 IntelliJ 2018.3.3 java se 11.0.2 作業日 2019/1/26 手順 homebrew-caskのインストール Homebrewはターミナルで使用するrbenvやnodebrewなどをインストールするパッケージマネージャですが、CaskではGUIアプリもインストールできます。 Caskをインストールするために以下コマンドを打ちます。 $ brew tap caskroom/cask IntelliJのインストール Caskを使用して、以下コマンドを実行します。(ceはコミュニケーションエディションです) $ brew cask install intellij-idea-ce Javaのインストール Caskを使用して、以下コマンドを実行します。自動的に最新版(2019/1/26時点ではjava11がインストールされます。 $ brew cask install java 参考までに、以下バージョンがインストールされました。 $ java -version openjdk version "11.0.2" 2019-01-15 OpenJDK Runtime Environment 18.9 (build 11.0.2+9) OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode) その他 以下コマンドでhomebrew-caskでインストールしたアプリケーションが一覧で確認できます。今回はIntelliJとjavaの2つをインストールしました。 $ brew cask list intellij-idea-ce java

ノマドワーカー@セブ島

セブ島で仕事ができる環境にあるのかを視察してきたので記事にしました。今後フィリピン等アジアでの仕事を考えている方は参考にして頂ければと思います。 Contents 1 目的 2 滞在プラン 3 事前予約 4 滞在したホテル 4.1 モーベンピック 4.1.1 総評 4.2 プランテーションベイ 4.2.1 総評 5 その他気づき 6 まとめ 目的 各地でシステム開発などフリーランスエンジニアとしての仕事ができる環境か確認する。 滞在プラン 今回はあまり移動せず、ホテル内で完結するプランです。 事前予約 今回事前予約は以下2点です。空港とホテルの間の移動は現地のタクシーを使いました(行きは黄色タクシー(300ペソ程度)、帰りはホテルタクシー(600ペソ)) 飛行機(Cebu Pacific)成田⇔マクタン空港 ※往復で4万弱(手荷物は合計7kgまで2つまで。預け荷物は追加オプション必須、20kgで2000円程度) 宿(場所は後述。予約はBooking.com) 滞在したホテル 今回は2箇所のホテルを確認してきました。選択の基準は以下の通り。 ホテルから観光に町に出ず、仕事に集中できる環境か 仕事の合間にリフレッシュしやすい環境か ガイドブックに載っている程度の知名度か(信頼性があるか) モーベンピック

会社員からフリーランス転向時の開業手続き

はじめに フリーランス開業にあたり、開業時に必要な申請関連をまとめました。申告時の前提としては以下の通りです。 会社員からフリーランスへの転向 会社員は月末退職とし、翌日(翌月1日)からフリーランスとして業務開始 ブログ記事執筆は退職前に行っている フリーランスとしての業務開始前に可能な作業は全て終えておきたい 開業までのステップ 税務署への手続き 税務署へ提出書類と記入ポイント 以下書類を開業から1ヶ月以内に提出します。申請が面倒なので最短期日に合わせてまとめて提出が楽です。 厳密には、事業開始から1ヶ月以内、青色申告承認申請書は事業開始日から2ヶ月以内、もしくは1月1日から3月15日までの提出が必須です。 開業届 所得税の青色申告承認申請書 開業届を提出しないと青色申告ができない、小規模企業共済に加盟ないなどのデメリットがある。また、失業手当を受給している人は受給要件が満たされなくなるため合わせて確認が必要です。 開業届の記入ポイントは以下の通り。 わからなければfreeeの開業フリーで質問に答えれば作成してくれるため活用すると良い 職業は「ソフトウェア作成者」 屋号を記載する(簡単すぎない文言が良いが、領収書を貰う時用に完結なものだと良い) 事業の概要には「○○に付帯する事業」のように拡張性を持った文言を入れておく。(例: Webシステム構築、Webサイト構築・運営、インターネットビジネス全般及びそれに付帯する事業) 簿記形式は「複式簿記」 備付帳簿名は「総勘定元帳」「仕訳帳」に○をつけて提出。(選択する帳簿は必ず使うものではなく、使う可能性があるものを選択。青色申告時には左記の2つの帳簿が必須になるため2点に丸をつけておく。現金で経費を払う場合は事業主借を使う場合は現金出納帳は不要) 控えも作成し、捺印頂くこと(屋号名で口座開設する時、小規模企業共済申請時などに必要) 青色申告特別控除については所得税、住民税、国民健康保険の節税に繋がるため、申告必須です。MFクラウドやfreeを使うことで個人でも簡単に65万円の控除が可能です。 青色申告承認申請書の記入ポイントは以下の通り。 2部印刷し、1部を控えとして頂くこと 申請タイミング 開業届は開業から1ヶ月以内。 持ち物 印鑑、マイナンバーカード(いずれも用紙記入用。事前に記入していれば不要) (参考)青色申告による確定申告時に必要な作業 確定申告時に何をしなければいけないかをまとめましたので先に目を通しておくと良いかと思います。 青色申告特別控除を受けるためには「正規の簿記(複式簿記)」に沿った記帳を行い、作成された「貸借対照表」「損益計算書」を確定申告書類に添付することが必要になります。 確定申告時(基本的に3月15日)に「青色申告決算書(損益計算書)」「確定申告書B」「貸借対照表」の3点の提出が必要です。 青色申告の確定申告時の提出書類 先の話になりますが、確定申告時の提出書類は以下の通りです。 所得税青色申告決算書 損益計算書 損益計算書の明細書 ※各月ごとの売上や従業員への賃金 損益計算書の明細書 ※減価償却など 貸借対照表 確定申告書B 1ページ目 ※事業収入や所得控除など 2ページ目 ※源泉徴収税額など 添付書類台紙 源泉徴収票や各種控除の関係書類をのりづけ ※電子申告の場合は不要 管轄の都道府県税事務所および市区町村役場税事務所への手続き 税務署は国税(所得税、消費税、源泉徴収税)に関する手続きですが、地方税に関する手続きは都道府県税事務所、市区町村役場へ「事業開始等申告書」の提出が必要です。 ただし、以下理由により今回は提出しません。 エンジニアであるため事業税は対象外 税務署への申告で個人事業税の申告も行ったとみなされる 確定申告時に自動的に県税事務所や市区町村役場に通知される

Pythonスクレイピング

はじめに Pythonによるスクレイピングの情報を以下にまとめる。 環境 MacOS Mojave 10.14.1 Homebrew 1.8.4(インストール済み Rubyインストールの記事参照) pyenv Python 3.7.1 selenium 3.141.0 記載開始日 2018/12/11 スクレイピング方法 Pythonでは以下の選択肢がある。 Requesstライブラリを用いたHTTPプロトコルによる操作。 Selenium+WebDriverを用いたブラウザ操作(RESTfulAPIを用いてブラウザ操作をする)WebDriverには以下のような選択肢がある。ChromeDriverが無難。 ChromeDriver。Chromeを操作できる PhantomJSライブラリ。こちらはブラウザを立ち上げない。Seleniumで使用するのは現在非推奨(PhantomJSはWebKit(レンダリングエンジン)ベースのブラウザ。WebkitはApple主導でSafariなどに使用されている) 上記以外のライブラリもあり。詳細はこちらを参照 ChromeDriver 今回はこちらを選択。選定理由はセッション管理が容易な点と画面操作によりファイルをダウンロードが容易な点。 ChromeDriverをダウンロードし、パスを通せば使えるようになる。使い方の詳細はこちら ファイル保存のサンプルはこちら。 DOM要素コントロールはこちら。 Parser HTMLのParserは3つある。 こちらが参考になる。 以下のような形でパースする。最もメジャーものはBeautifulSoup。 ※パースは「HTML文法に基づき意味や構造を解釈すること soup = BeautifulSoup(res.text, "html.parser") BeautifulSoup PythonのParserとしてよく使用されるHTML構文解析ライブラリ。ChromeDriverにより画面を操作した後、要素抽出などで使用する。 使い方についてはこちらの説明がわかりやすかった。 リファレンスはこちら→http://kondou.com/BS4/ BeautifulSoupだと画面操作はできないので、画面操作はDriver、要素の取得等はBeautifulSoupといった形で使い分けが必要。 XPathの確認方法 XPathの取得はChromeのデベロッパーツールが便利。手順は以下の通り。 Chromeで対象のWebサイトを開き、エレメントを右クリック→検証 デベロッパーツールが開くので該当要素を右クリック→Copy→Copy XPath クリップボードにコピーされるため、貼り付ければOKです 参考 requests: HTTPライブラリ。今回はRequest送信やSession維持に使用 BeautifulSoup: HTML構文解析のライブラリ。

NodeJSのインストール

はじめに Mac上にNodeJS環境を整えたため、手順を残しておく。 環境 MacOS Mojave 10.14.1 Homebrew 1.8.4 rbenv 1.1.1 NodeJS 10.14.1 作業日 2018/12/11 手順 brewコマンドでNodeJSのバージョンを管理するnodebrewをインストールする。プロジェクト毎にNodeJSのバージョンが違う場合などに役立ちます。今後のために必ず入れましょう。以下コマンドで成功するとビールのアイコンが表示されます。 $ brew install nodebrew インストール可能なバージョンを確認します。以下コマンドの結果を見てインストールバージョンを決めます。今回は [こちら][1]のサイトより安定版であるv10.14.1をインストールします。 $ nodebrew ls-remote 以下の通りbash_profileに書き込む。 $ echo export PATH=$HOME/.nodebrew/current/bin:$PATH ~/.bash_profile $ source ~/.bash_profile 以下、1行目を実行しないと2行目でエラーになるので注意。1行目のコマンドにより必要なフォルダを作成するようです。 $ nodebrew setup $ nodebrew install-binary v10.14.1 以下1行目の実行結果として「current: none 」が表示される。現状のバージョンはnone(指定されていない)であるため、2行目でcurrentバージョンを指定する。 $ nodebrew list $ nodebrew use v10.14.1 # バージョンを指定する npmが使えるようになる。 $ npm -v # 今回は出力結果として6,.4.1のバージョンが表示された phantomjsのインストール。2行目はインストールされたかの確認。 $ npm install -g phantomjs $ phantomjs -v # 今回は出力結果として2.

会社員からフリーランスへの転向

はじめに 8年半務めた会社を退職することにしました。 心機一転新たな道を歩み始める前に、一旦会社生活を振り返ってみました。 どんな経歴の人がフリーランスになって、どんな学び・失敗などがあるか、これからフリーランスの道を考えている人の参考になれば幸いです。 著者(SomuriEnginner)について 1987年生まれの31歳エンジニアです。ユーザー系IT企業でエンジニアとして働いていましたが、マネジメントより開発近辺に携わっていたいと考え、フリーランスデビューに至りました。 開発は好きで自宅でRubyやPythonでたまにシステム構築したりする程度です。ユーザー系IT企業の社員としてはかなり開発好きな部類です。 関わった案件 身バレを防ぐために抽象的に記載しますが、振り返ってみると会社生活で色々経験させてもらいました。 カッコ内は役割です – SalesForce案件(Apexとかゴリゴリ)(開発者) – Java, Spring案件(開発者) – Flash案件(ActionScriptゴリゴリ)(開発者) – 新卒社員向け研修企画(PL) – プロジェクト管理ツール運用(メンバー) – BIツール構築(PL) – その他各種システム開発(PL) エンジニアとしてのスキル 年次が上がるにつれてマネジメント業務が増えてしまい、直近はITスキルが全然見についていません。必死にキャッチアップ中です。 経験言語と年数は以下の通りです。 – SalesForce(Apex等) 1年半 – Flash(ActionScript) 半年 – Java 6年 – Spring 3年 – JS、jQuery、HTML 3年 – PHP 1年 – Python 1年 – Ubuntu 2年 – Ruby、Rails、Objective-C、C、C++ 数か月程度 その他 – 英語 TOEIC 625点(雑談程度は可、リファレンス読解など(遅いけど)可) 保有資格は以下の通りです。 – SJC-P(Oracle Certified Java Programmer, Gold SEよりやや下らしい) – 情報セキュリティスペシャリスト(現:情報処理安全確保支援士試験)

Python環境の構築(MacOS Mojave)

はじめに Mac上にPython環境を整えたため、手順を残しておく。 環境 MacOS Mojave 10.14.1 Homebrew 1.8.4(インストール済み。 Rubyインストールの記事参照) pyenv Python 3.7.1 作業日 2018/12/6 手順 Pythonのバージョン切り替えツールであるpyenvをインストールする。 $ brew install pyenv pyenvのパスを通す(最後のsourceコマンドはbash_profileの適用) $ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile $ source ~/.bash_profile Pythonのインストール。–listで一覧を確認し、インストールしたいバージョンを指定する $ pyenv install --list $ pyenv install 3.7.1 ちなみに著者は上記installコマンドでzipimport.ZipImportError: can’t decompress data; zlib not availableのエラーが発生しました。 以下サイトにより、xcode-selectの最新バージョンにMojave用のmacOS SDK headerがデフォルトで入っていないのが原因とのことです。 参考サイト

Ruby環境の構築(MacOS Mojave)

はじめに Mac上にruby環境を整えたため、手順を残しておく。 環境 MacOS Mojave 10.14.1 Homebrew 1.8.4 rbenv 1.1.1 gem 2.7.6 bundle 1.17.1 ruby 2.5.3 作業日 2018/12/1 手順 Homebrewのインストール。HomebrewはMacOS上のパッケージ管理ソフトウェアです。2行目は正常にインストールされたかの確認です。 (brew -vでも可) $ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" $ brew doctor rbenvを最新版に更新する。 $ brew upgrade rbenv ruby-build 動作確認兼異インストールできるrubyバージョンを確認。2018/12/1時点では2.5.3が最新安定版であるため、2.5.3をインストールする。 $ rbenv install --list rbenvでrubyをインストールする。 $ rbenv install 2.5.3 インストールしたバージョンのrubyを使うよう、設定を切り替え。(下記は環境全体。globalではなくlocalオプションを使うとプロジェクト限定が可能) $ rbenv global 2.5.3` 反映されたかの確認。2.5.3の左側に*がついていればOK。 $ rbenv versions 新たにインストールしたrubyにgemをインストール。(rubyのバージョンごとにgemのインストールが必要)。 $ gem install bundler 新たにインストールしたbundlerの実行ファイルに対してrubyの実行フォルダから参照する際のシンボリックリンクをリフレッシュ

FireAlpacaを使用した年賀状作成

当記事の目的 FireAlpacaを使用して年賀状を作成したため、来年度困らないように年賀状作成時に使った作業を記録する。 (自分用メモです) FireAlpacaのショートカットキー 主に写真加工方法のみ。あとは文字を貼っただけで最低限の形になった。(とりあえず以下の手順で画像切り貼り、文字書き込みできるためある程度形になる) – JPG画像のサイズ変更・加工は、JPGを貼り付け、範囲指定して切り取りが一番楽(ハガキサイズより大きいキャンパスを別途用意する) – 全体を使いたい場合は、上部メニュー > 編集 > キャンパスサイズ… – サイズを小さくして使いたい場合は、上部メニュー > 編集 > 解像度変更 – 画像の一部を切り取りたい場合は、範囲指定した後、上部メニュー > 編集 > トリミング – 画像のサイズ変更をしたい場合は、Command+T(上部メニュー > 選択範囲 > 変形 所感 FireAlpacaは慣れたら早いんだろうけど、初めての操作では悩むことが多い あまり直感的ではなく、初心者に厳しい 次回はフォントをもう少し凝りたい

AboutMe

AboutMeContents プロフィール 1987年生まれのシステムエンジニアです。 温泉ソムリエの資格を持っているので「ソムリエ」とよく呼ばれています。 2019年1月までユーザー系のIT企業に努めていました。 2019年2月からフリーランスとして活動中です。 退職の経緯などはこちらに記載 趣味はJazzギターと温泉(温泉ソムリエです)です。 開発から運用まで、幅広くスキルを身に着けていく予定です。 アカウント プログラムや競技プログラミングアカウントは以下の通りです。 GitHub AtCorder Twitter 経験言語と年数(2019年8月時点) Java 7年(12、 8、 6) Spring 4年(5、 2.5) SpringBoot 3ヶ月(2) JS、jQuery、HTML 3年 Ruby 0.5年 (2.6、 2.3) Rails 0.5年 (4) Linux(Ubuntuばかり・・・) 2年 Python 1年(3) PHP 1年 SalesForce(Apex等) 1年半 Flash(ActionScript) 半年 Objective-C、C、C++ 数か月程度 ※()内はバージョン 保有資格(2019年11月時点) 情報セキュリティスペシャリスト(現:情報処理安全確保支援士試験) ソフトウェア開発技術者(現:応用情報技術者) SJC-P(Oracle Certified Java Programmer, Gold SEよりやや下らしい) ※ver6です FP3級 簿記3級 ビジネス実務法務検定2級 英語 TOEIC 625点(雑談程度は可、リファレンス読解など(遅いけど)可) 統計検定2級

AWSでEC2+WordPressブログを開設する方法

ブログ作成の背景 フリーランスになりアウトプットの機会が少なくなることを懸念し、ブログ開設をすることにした。 システム構成 構成は以下の通り。特筆すべき点はないです。 サーバ: AWS無料お試し1年分(1年後にAWS lightsailに移行予定) ドメイン: ムームードメイン CMS: WordPress(使ってみたかった。AWS MarketPlaceのものを使用) レンタルサーバの選択 レンタルサーバには料金・性能面等考慮する点が多々ありますが、以下3点で検討し、AWS無料利用枠を選択しました。選択理由としては無料なのはもちろんですが、データ移行等経験してみたいためです。 AWS無料利用枠 AWS lightsail ロリポップ AWS EC2の作成 AWS MarketPlaceにWordPressが用意されているため、EC2インスタンス生成と同時にWordPressのインストールも行うことができる。 AWSのこちらのサイトを参照。 ドメインの取得 格安のドメインで良かったが、.comもあまり高くはなかったため(1480円/年)、.comで検討しました。 お名前.comで契約直前まで行ったが「Whois情報公開代理サービス」との文言に引っかかり調べてみると、Wikipediaには以下の通り記載がありました。 Whoisとは〜WHOIS(フーイズ)とは、インターネット上でのドメイン名・IPアドレス・Autonomous System (AS) 番号の所有者を検索するためのプロトコルである。 システム管理者が、自分の管理下にないIPアドレスやドメイン名の管理者と連絡をとるための、いわば電話帳のような役割を果たすことを目的として始まった。 要するに、ドメイン名から個人情報がある程度特定できてしまうとのこと。 お名前.comでは通常時は登録した個人情報がWhoisサービスに登録されてしまうようで、「登録した個人情報」ではなく「ドメイン契約会社の情報」をWhoisに登録してくれるムームードメインを選択しました。 上記についてはこちらのサイトにわかりやすく記載あり。 DNSの設定 名前解決についてはムームードメインのネームサーバを使用。AWS Route53を使用したかったが無料利用対象外でした・・・無念。 以下サイトの通りの手順で特に問題なく関連付けできます。 こちらのサイトを参照 まとめ AWSの操作が初だったので全体像等調べて事前調査に時間がかかったものの使い始めるとやはり簡単!一度覚えたらかなり作業時間楽ですね(慣れたらEC2立ててWordPressのデフォルトページ表示まで5分でも可能) Whois情報で開示される情報には注意。(どこまで公開されてしまうかは不明ですが) 個人でドメイン取得(.com)する場合はムームードメインが無難 今後の予定 技術面でかなり遅れをとっているので適宜情報収集し、まとめていきたいと思っています。とりあえずはブログ基盤を安定的に運用していこうと思います。 – AWS使用状況の監視 – アフェリエイト(Google AdSenseが有力)の設定 – WordPressで簡単に投稿できるようにカスタマイズ – 1年後にデータ移行

An Example Post

e-tax e-taxは令和2年の確定申告から実施は必須。 令和2年から iPhoneでマイナンバーカードを読み取る 令和元年の確定申告ではiPhoneでマイナンバーカード読み取りができず、PCや一部のAndroidでマイナンバーカードを読み取る必要がありました。 私はiPhoneユーザーかつカードリーダーがついていないPCを使用しているためe-taxのためだけにICカードリーダーを買おうか悩んでいたのですが特に購入する必要がないことが判明。 不要な買い物をせずに済みました。 https://tax.mykomon.com/daily_contents_47908.html http://www.e-tax.nta.go.jp/topics/topics_191016.htm