資格受験、学習内容、就職活動
1. 目標
2021年12月内にIT企業に就職する事
2. 内容
- 履歴書に書ける資格を取る
- 前提技術を習得する
3. 2-1の資格について
- 英語
- TOEIC:730点以上を取る
- IT基礎
- Linux
- LPIC-1 資格を取得する
- 基本情報技術者試験
- 秋期試験に合格する
- ネットワーク関連
- CCNA
- Linux
- クラウド
- AWS
- ソリューション アーキテクトアソシエイト
- AWS
5. 2-2の技術学習について
- プログラミング学習
- フロントエンド関連
- HTML5・CSS3・JS
- PHP7・Laravel6
- Git・GitHub
- 数学基礎
- 関数・微分・確率・線形代数
- 特定言語学習
- Python・Webスクレイピング
- フロントエンド関連
6. 一言
交通事故の入院後、後遺障害が発生して生活状況が変化したとはいえ、余りにもダラダラしすぎていた。
アルバイトで生活を凌ぐのではなく、もうちゃんと就職をしないと、これから先 生きていけないのを自分に気づかせるためにまとめた。
学習内容については、後日以降続々投稿する予定。
まずは英語を中心にしようと思う。プログラミング言語の公式ドキュメントを素で読めないと色々大変だと感じる。
Google Driveを使ったOCRのシェルスクリプトを書いた…ような?
スクリプトの場所:GitHub - linm25stg/OCR_book2data
これは何?
GoogleDriveに画像を投げると勝手にOCRされてドキュメントが作成される機能を利用するスクリプトです
* 本GIFはWin10、WSL(Ubuntu18.04)
環境で作成されています。
出来ること
JPG
とPNG
をテキストデータ
に変換してくれます。JPG
とPNG
のみ対応。他は非対応。- 上記拡張子2種を一緒のフォルダに混ぜても構いません。
- ファイルサイズを2MB以下にして下さい。
使用には以下のものが必要です
- gdriveをGithubからご自身の使用の環境OSに合わせてDLして下さい
- そのままでは使えないので、まずデフォルトの OAuth認証を書き直す 必要があります。 こちら(Qiita)の記事を参照してください。
- 上記のリンクを参照して OAuth(1.client_id 2.client_secret)は取得済だけど、それでも認証が通らない の方はこちら(teratailの自分の回答)を御覧ください
- 既にバイナリ書換済み、それでも通らない場合、ここ画像の左下
goto <your app name>(unsafe)
のクリックリンクを見逃している可能性が高いです。
- 既にバイナリ書換済み、それでも通らない場合、ここ画像の左下
- 上記のリンクを参照して OAuth(1.client_id 2.client_secret)は取得済だけど、それでも認証が通らない の方はこちら(teratailの自分の回答)を御覧ください
- そのままでは使えないので、まずデフォルトの OAuth認証を書き直す 必要があります。 こちら(Qiita)の記事を参照してください。
- 本スクリプトbook2data.sh
- スクリプト内で使用したコマンドは ↓
gdrive import $1 -p $2 # $1はディレクトリーパス。$2はGoogleDriveのディレクトリーID gdrive export --mime text/plain ${id} # ${id}は ↑で発生したドキュメントファイルのID gdrive delete ${id}
インストール
Github の releases から落として下さい。
* Mac OS XはLFなのでbook2data-ubuntu.shを使って下さい
Filename | Version | 改行コード | Shasum |
---|---|---|---|
book2data-osx.sh | 0.9 | CR(MacOS9以前) | SHA1: 0DD7F2E8979827F6447E6DFD1257BB1273836FC7 |
book2data-ubuntu.sh | 0.9 | LF | SHA1: 82D0D148A3D21648BF6D413CAB9BF3CF752F7153 |
$ mv book2data-hoge.sh book2data.sh $ sudo chmod +x book2data.sh
やった方が便利な事
gdrive
を
$ mv gdrive-hoge-x64 gdrive $ sudo chmod +x gdrive $ sudo cp gdrive /bin/
- 同じく
book2data.sh
を
$ sudo cp book2data.sh /bin/
使い方
# 基本処理 $ sudo book2data.sh $1 $2 # 例 $ sudo book2data.sh /mnt/d/OCR/とある書籍/01/ 1wxzzCXPfmKZV8VnLqaeGPTW1Pxxxxx
- $1 は OCRしたい画像のディレクトリーパス
- $2 はGoogleDriveの適当なフォルダーの ID部分
- 例
- {フォルダID}の部分です。
- 例
このOCR環境での駄目な部分
-
GoogleDrive API の処理上限関係で 一辺に5個以上同時処理させると
Failed to get file: googleapi: Error 404: File not found: to., notFound
のエラーが出ます- 自炊小説4冊同時変換では
400枚 x 4個
同時処理して平均2,3個問題発生します - 上記エラー発生した場合、スクリプト内
gdrive delete ${id}
コマンドが実行されない可能性がありますので、ご自身のGoogleDriveのHomeにあるドキュメントを削除して下さい。 - また、スクリプトを途中終了した場合、最後の
rm -rf $workdir
実行されないので、tmp
にある作業用フォルダーを削除して下さい
- 自炊小説4冊同時変換では
-
出力テキストファイルの拡張子がtxtではない
- 仕様です。
export --mime text/plain
で指定していますが、OSによって異なるテキスト拡張子で出力されます…- 例:Win10 →
asm
、Ubuntu →asc
- 例:Win10 →
- スクリプトの初期設定では
asc → txt
する様に書いています。Ubuntu 以外のユーザーは書き換えてご使用下さい- 表示 gif では自分用のスクリプトを動かしてる為、Win10用の
asm
って出てます- 本スクリプトはSlackのあるチャンネルに共有する為に個人用スクリプトから一部抜き出したものです。出力したテキストを
open-jtalk
を使用してmp3に変換できますが、そちらはまた次回で。
- 本スクリプトはSlackのあるチャンネルに共有する為に個人用スクリプトから一部抜き出したものです。出力したテキストを
- 表示 gif では自分用のスクリプトを動かしてる為、Win10用の
- 仕様です。
-
出力されたテキストファイルに半角スペースが発生する
- 仕様です。
- 半角指定して置換削除したかったのですが、上手く実装できませんでした…ご教授して下さるとありがたいです
-
自動的に結合して1個のテキストファイルにならない
- 頑張ったのですが、上手く実装できませんでした。ご教授下さい!
basename
を使って、$1パスの最後のディレクトリ名を取得してbasename.txt
したいと考えています
-
usage
を使ったbook2data.sh --help
が無い- 実装予定がありません。
-
ルビ多めの小説だとゴミが多い
- はい。細かいOCR制御が出来ない為仕方ありません。
- 音声に変換して聞いてると案外その辺は脳みそがスルッとスルーしてくれる為、OCRを読書として使用する場合はmp3化をオススメします。
- はい。細かいOCR制御が出来ない為仕方ありません。
-
GoogleDriveのゴミ箱が混沌とする
- 毎回デ
delete
コマンドを自動実行してる為、どうしてもそうなってしまいます。 - ゴミ箱を第2のファイル保管場所としている場合、OCR専用のGoogleアカウントを取得することをおすすめします。
- 毎回デ
総括
基本的に GoogleDrive のOCR機能を使用しているので、細かい制御は聞きません。オートマです。
しかし、縦読みOK、手書きでも一部OK、印刷フォントなら99%OK、挿絵は自動スルー、多言語対応 と個人用OCRで考えると中々便利です。
1年前は表内の文字は読めなかったりしてたけど、いまは大分マシになってきたりと、大分進化されていますね。
~~GooglePhotoの学習データを流用しているので、みんなももっと学習データをGoogleさんに上納すればいいと思うよ('A`)~~
- 2020-05-27 改稿しました。
- 2020-05-28 スクリプトのインストールを追加しました。
gitに脆弱性が!Updateしなきゃ! でもyumに最新版がないし、ソースから入れたらエラった!ときのメモ
git インストール linux編としても読めます。
現状(2020/04/20) の AmazonLinux Git最新Ver.git-2.14.6-1.62.amzn1の模様。~~(ダメみたいですね~~
追記(2020/05/05)
@SSW-SCIENTIFIC さんのご指摘通り、上記linuxyum
の git-2.14.6-1.62
にセキュリティ修正パッチが適用されており、今回の脆弱性で言えば、Gitのコンパイル インスコ更新は必要ではありません。 この記事は_学生時代の試験範囲外の板書ノート_程度に考えて下さい。 発熱の為、追記更新が遅れたことをお詫びします。(幸いコロナではありませんでした)
追記: 今日(2020/04/21) 時点でGit最新が 2.26.1 → 2.26.2
になりましたので、コマンド修正しました。 以降は皆様で最新Verを確認し、数字を書き換えて下さい
余談(Linux 以外の事)
- Windows は素直にここから git.exe を使ってください
- Update の場合は
PowerShell
からでも
- Update の場合は
git update-git-for-windows # で一発
- Mac は
Homebrew
使えばいいんじゃないっすかねぇ(適当)
brew update && brew upgrade git
- ついでに(入れてるなら)
Xcode
の Updateも必須- 尚、MacOSを Catalina にする必要がある。(El Capitanに人権はない)
SourceTree
の場合はアップデートしたシステムのGitを使うように変更して下さい- 他者様の記事 を参考にどうぞ
Linux で Git を入れたい!(AWS AmazonLinux2の場合)
まずGitの状態確認
$ git --version git version 2.14.5
はい。 最新(2.26.2) 以下は素直にUpしましょうね。(一応低Ver用のパッチ配布無くもないけど…)
# 下拵え yum update # しなくてもいいけど yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker # git依存関係の物をインスコ、これしないと後で泣くことになった(過去完了) git --version # 依存関係をインスコしてる時点でGitの古いものがを入れられる模様 git version 2.14.5 # `yum remove git` とかで削除してもいいけど、無視無視。 # だうんろーど wget https://www.kernel.org/pub/software/scm/git/git-2.26.2.tar.gz # ここ(https://mirrors.edge.kernel.org/pub/software/scm/git/)から最新を見つけて落とす tar -zxf git-2.26.2.tar.gz # たくさん展開する cd git-2.26.2 # いつもの # 本番 make configure ./configure --prefix=/usr # コンパイルコンパイル sudo make all sudo make install # (_´Д`)ノ~~オツカレー # 確認 $ git --version git version 2.26.2
詰まった所
$ sudo make all SUBDIR git-gui # ← これ MSGFMT po/pt_pt.msg make[1]: *** [po/pt_pt.msg] Error 127 make: *** [all] Error 2 $ sudo make install SUBDIR git-gui MSGFMT po/pt_pt.msg make[1]: *** [po/pt_pt.msg] Error 127 # ← これ
__最初に依存関連__を入れないと、こういうエラーが多発する。南無
Git が入ってる状態でのお手軽 Update
- 見出し2個目の依存関連をやってないと、結局詰まるので、yumなどのパッケージからインストールした方は残念ながらエラる
# git コマンドで最新リポジトリをクローン git clone git://git.kernel.org/pub/scm/git/git.git # pullして、最新のソースを取得して再度コンパイル cd git git pull sudo make all && sudo make prefix=/usr/local install # 見ての通り、コマンド短縮形 # 最終確認 git --version
追記 Ubuntu の場合
@github0013@github さんのご教授により簡単な方法を追加しました!(感謝!) 詳細確認の為にもコメントを確認していってね
sudo add-apt-repository ppa:git-core/ppa # > PPAはlaunchpad.netに用意された,個人用リポジトリです(←引用説明文)。個人だからね!他の場合使用時注意ね。 sudo apt update sudo apt install git # git公式さんが常に最新版をppaに用意してくれているので、これで最新ゲットできます。 git --version git version 2.26.2
- 個人的メモ;
- まず_PPA_を登録しなければいけません。
add-apt-repository
を使えない場合はsudo apt-get install software-properties-common
で登録どうぞ
ppa:git-core/ppa
何ぞ?- _git(公式) さん_が 我々下々のために用意してくださったPPAリポジトリです。(素晴らしい)
PPA
を検索すればわかるけど、「公式 apt アプデおっそ」 → 「自分らで用意シヨ」 っていう流れで高位な開発者たち様が提供して下さっている個人用リポです。- 登録すれば、誰でもUPできてしまいます。 野良パケです。ご使用はご慎重に。
- まず_PPA_を登録しなければいけません。
残骸(旧 Ubuntuの場合)
以下はUbuntu Gitの場合必要ではなくなったが、ソース→コンパイルするなど勉強のため残しておきます
# 適度に更新 sudo apt update apt list --upgradable sudo apt upgrade # 下拵え sudo apt install make libssl-dev libghc-zlib-dev libcurl4-gnutls-dev libexpat1-dev gettext unzip # 依存定期 sudo apt autoremove # ← aptの場合、必要でなくなった道具を掃除してくれる魔法のコマンド # だうんろーど、ここからyumと一緒 wget https://www.kernel.org/pub/software/scm/git/git-2.26.2.tar.gz tar -zxf git-2.26.2.tar.gz cd git-2.26.2 # 本番 make configure ./configure --prefix=/usr sudo make all sudo make install
雑記
手持ちのWin端末は呆気なく終了したのに、Ubuntu
と AWS
の Updateで死ぬほどサイト探して、アホほど時間くらいました… 普段如何にrpm
やyum
のパッケージ管理に頼ってるかがわかる(´・ω:;.:... )
実際にここまで書いといてなんだけど、普段使用しないので、来週には忘れてると思う。 んで、またネットの海を彷徨って時間を食うのは馬鹿らしいので、自分用に作った!
後はEvernoteにでも突っ込んで更新や新規構築の度に毎回コピペし直すと思う。
もしコメント注釈の意味に間違いがあったら、教えて下さい!
小説・TRPGキャラクター作成用ツール
CharaDise 小説・TRPGキャラクター作成用ツール
性格、嗜好各100個 こちら(キャラクター性格設定一覧)からのHP持ってきた
新人賞応募用の小説原稿書くにあたって、読んだ「物語の法則」で 「人さまざま (岩波文庫」が紹介されて、
曰く
人の特徴を組みあわせたり重層化したりすることは、特に脇役創りにおいては、ちっぽけな役であっても非常に有効だ。 たいていのライターは、主人公や悪役に複数の特徴を与えるやりかたは知っている(たとえば『ライオン・キング』のシンバは好奇心が強く友好的で勇敢で、悪役のスカーは賢く愛想がいいが野心的で嫉妬深い)が、その他のキャラクターにはひとつしか特徴を与えなかったり、しばしばステレオタイプの集団にして紋切り型の特徴しか与えなかったりするので、そこには驚くような特質も矛盾した性質もなく、現実味も魅力もなくなってしまう。
ほんの一シーンのみの登場で台詞もない、退屈で決まりきった役どころの探偵や悪者の巨漢ボディガードであっても、二つか三つの意外な特徴を持つキャラクターに仕上げていれば、突然3Dのように生き生きと物語から飛びだしてくることもある。
たとえば、探偵や悪党の下っ端を、期待されるとおりにタフでさもしいタイプにしたうえで、オペラ好きで母親思いという設定を加えてもいい。 役者は「この世に小さな役というのは存在しない、いるのは小さな役者だけだ」
らしい
実際、3話でマミさんが普通に負けるより、「友達が少ないボッチ設定」を見せて、持ち上げたからのパックリはインパクト大きかったので…
練習用にキャラ数増やすのにもいいかなぁって
本題:これ何?使い方?
人物の特徴を組み合わせるのに、サイコロ振れるコードを適当にJavaで書きました。
src/com/company
内の chara_personality.java(性格100個)
と chara_preference.java(性癖100個)
が本体です
Buildすると 何回サイコロを振りますか?
って聞いてきますので、適当な数を入れて下さい。
// 性癖.java 何回サイコロを振りますか? 5 [80.舞踏好き, 14.酒癖が悪い, 83.肉体美が好き, 37.早寝早起き, 68.書物好き] // 性格.java 何回サイコロを振りますか? 5 [72.地味好き, 67.好奇心旺盛, 47.多弁, 91.好戦的, 12.無欲]
まぁこんな感じに被り無しで指定個数ランダムピックしてくれます。
TRPGのキャラづくりで面倒くさかったらどうぞ~
そのうち
「人さまざま (岩波文庫」が届き次第、多分中身ごっそり変えると思う
ウェブページが用意できたら、ページに埋め込んその場で使えるようにしたり、適用なフラッシュアプリにでも仕上げるかも。
Google driveをCUIで操作できるgdriveが急に死亡したので…
GitHub公開の本体ではOAuth認証が通らない。
急にってなったから困る
何が問題?
配布本体のOAuth認証が(多分)古くなっている事から起きている問題です。 なので、自分でOAuth認証(1.client_id 2.client_secret)を用意して、置換してやれば再び動きます。
用いた解決策
参考した解決法 ←
以下原文。
- Set up OAuth:
- Visit the Google Cloud Console
- Go to the OAuth Consent tab, fill it, and save.
- Go to the Credentials tab and click Create Credentials -> OAuth Client ID
- Choose Other and Create.
- Use the download button to download your credentials.
Credentials
タブの画面に(1.client_id 2.client_secret)があるので、特に落とす必要はない
- Now you have both client ID and client secret in this credential file in the following form:
- ↓ は落としたJSONの中身
{"installed":{"client_id": <your client id>,"project_id":"i-m-sky-bot","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret": <your client secret>,"redirect_uris":["urn:ietf:wg:oauth:2.0:oob","http://localhost"]}}
2、Enable the Drive API:
- Visit the Google API Library page.
- Search for Drive. ←ここ謎だったけど
- - ↑を選んで、有効化しろ!って事 - 一瞬 1.で作ったOAuthプロジェクトが現れるのかな?って深読みして焦った
- Make sure that it's enabled. Enable it if not.
3、Now you just need to edit the binary and insert your credentials instead of the one hard coded : -
$ sed -i "s|367116221053-7n0vf5akeru7on6o2fjinrecpdoe99eg.apps.googleusercontent.com|<your client id>|g" path/to/the/executable/gdrive $ sed -i "s|1qsNodXNaWq1mQuBjUjmvhoO|<your client secret>|g" path/to/the/executable/gdrive
Windowsの悲しみ
尚、Win10では sed(置換コマンド)
は使えねぇのでバイナリ書き換えにはStirling_v131を使用 一応PowerShellで↓を使えばいいはずなんだけど、エラったので…
$data=Get-Content .\test.txt | % { $_ -replace "置換する文字列","置換後の文字列" } $data | Out-File .\test.txt -Encoding UTF8
Google Cloud ConsoleのOAuth Consent
に詳しい人教えて!
OAuth何日持つか知らないんだよねぇ…一応30日に設定したけど、意味あるのかな? その辺どうなんだろうね
オブジェクト指向 の解説についての個人的メモ
オブジェクト指向 の解説についての個人的メモ
オブジェクト指向の 3つの指標
- 独立性
- 再利用性
- 拡張性
classのことだよ!?
class は 1,ものを隠せて 2,まとめられて 3,量産が可能
おk.クラスは設計図
設計図の’いいところ’は →
1. 事前に計画を建てられる
- 何が必要かが分かる
2. 再現が容易
- 壊れたり、なくなっても、同じものを作れる
- 量産が容易!
class = 設計図について考えて行こう!
例えば、学校を作る!何が必要?
- 学校らしい要素を上げていく!
+ 部活? → 野球部 吹奏楽部 漫研!
+ 部活には何が必要? → 道具 場所 顧問 部員 ルール!
例:野球部 の設計図
必要なもの
- バット:20本
- ヘルメット:10人分
- ボール:200球
- グローブ:10人分
- ネット:5個
- ベース:4つ
- ユニフォーム:10人分
- 9人の部員 + 1人マネージャ
立ち振舞
- 部員:走る、打つ、捕る、投げる、声をかける、休憩する
- マネージャ:応援する、ニコニコしてる
- ボール:跳ねる、飛ぶ
- グローブ:開く、閉じる
野球部のルール
- 活動時間は放課後から日没まで
- 活動後はグランド整備を行う
- 雨天時は校内で基礎練習を行う
みたいな?
これらを書き出して、実装していけば、野球部らしい振る舞いが出来上がるよね?
でも、学校がテーマなので、運動部を個別に実装するのは手間!
再利用性
共通部分を抜き出す → 抽象化
- 野球部、サッカー部、テニス部 → 運動部!
- 吹奏楽部、コーラス部、茶道部 → 文化部!
拡張性!
インスタンス
Product.find(color:pink)
← みたいなやつ
式:Object名.Function(Argument:指定)
日本語だと オブジェクト.関数(引数) ← 日本語の方が意味不明説.
英語で覚えるようにした...変数、引数が英語で?仮引数(parameter)と実引数(argument)
医療費控除管理アプリ を作るよ!
医療費控除管理アプリ を作るよ!
医療費控除の申請の仕方がわかりました.(2年前くらいから)
1年間の領収証を集計して紙に書く、そして領収証の束と一緒に税務署長に出していました.
これが変わって、明細書を書く、_領収書は自宅(5年間)保管_になりました.
しかし、医療費一件ずつ明細書に記入していくのは大変!!
面倒!面倒!内心愚痴りながら、記入していて思いました.
「マネーフォワードみたいな_記入・管理アプリ_を作ればみんな幸せじゃね?」って
アプリで行う流れ
- 領収書の入力
- 金額入力
- 保険で補填される金額
- 医療を受けた人の氏名
- 病院・薬局、支払先の名称
- 医療費の区分 ← 選択チェック
- 金額入力
- 1をデータベースで保存
- まずはアプリ(スマホ)単体で保存、後に(余裕ができたら)クラウド化
- 余裕ができたら、iOSアプリもリリース
- まずはアプリ(スマホ)単体で保存、後に(余裕ができたら)クラウド化
- 役所の仕様に沿った出力・印刷をする
- 確定申告シーズンになったら、印刷して出せるようにする.← むしろ最重要.
- ご自宅のプリンターに直結させるのが技術的に無理なので、入力データをExcel・PDFに変換して端末に保存できるようにする.
- 確定申告シーズンになったら、印刷して出せるようにする.← むしろ最重要.
アプリ造りに必要な知識
Androidアプリ ← Java(Kotlin)
↑ まずは単体でデータ保存できるように動かす
しかし、Cloudにデータベースを保存するのなら、色々必要っぽい(右側)
ならば!
鯖レスを実装しましょう!→ FireBase
簡単な設定で右側全部を代わりにATでやってくれるらしい
つまり、勉強が1個で済む!!
アクセス数が拡大すると、細かい設定ができない分、止まったり、問題解決難航したりするみたいだけど、個人のサービスを作る分には簡単でいいので、その辺は今のところ大丈夫そう.
Unityでゲーム作るつもりだったのでは?
絵師頼むお金がありませんでした...
就職のためにも、何かしら経過物があったほうがいいと思い、まずは目標がはっきりしているものから始めることにしました.
以降はしばらく、Java
とAndroid
とFireBase
の中心に記事を書いていくと思います.