みの雑多ブログ

勉強したことをアウトプットしたり、しなかったり

教育職員免許状授与までのフロー整理

滋賀県教育委員会に既存の免許から教科を増やすまでのフローを整理(将来的に必要なタスクの見える化メモ)
下記リンクにフォーマットと公式説明がある
教育職員免許状各種申請様式および滋賀県公立学校講師志願書|滋賀県教育委員会

今の状態

必要なこと

単位取得

どっかの大学で単位を取る

個人で免許状授与申請

授与してもらった都道府県で必要な書類を集めて申請

免許状原本と写し

免許状紛失したので、教育職員免許状授与証明書の請求手続きが必要

  • 84円切手を貼った返送用封筒
  • 滋賀収入印紙530円(滋賀銀でGETできる)
  • メモ書き
    • 免許状申請時の本籍地、氏名
    • 免許状を取得した出身大学・学部、卒業年月日
    • 免許状が授与されたと思われる年月日

人物に関する証明書

直近働いた学校の学校長と理事長に依頼(私立なので)

身体に関する証明書

どっかの病院で書いてもらう

学力に関する証明書

卒業した大学と科目等履修生で所属していた大学から取り寄せ
母校はオンラインで申請できるみたい(サービス利用申請中で確認できないので要更新)

5000円の滋賀収入印紙

滋賀銀でGETできる

戸籍抄本

役所で発行

そのほかの書類

以下はフォーマットダウンロードして書くだけ

SQL*PLUSでCSV出力をする、一行に表示する情報を多くする

LINUXサーバから、SQL*PLUSを使ってDBに接続してデータを取りたいこともある
GUIに頼らず、コマンドラインでデータを取ってきたいこともある

バージョンによるのかもしれんが、select句にカラム一個一個書いてカンマ区切りで文字列結合する記事が多かった
テストのエビデンスとかじゃ、チョットそれはやってられないので、SPOOLとかで一気に出力したときのメモ

CSV出力

参考
SQL*Plusからのレポートの生成
SQL*Plusコマンド一覧

SQLPLUS -MARKUP CSV ONまたはSET MARKUP CSV ONを使用して、レポートをCSV形式で生成できます。

SET MARKUP CSV ON

HTMLでの出力もできるらしーー

hoge.sql

SET TERMOUT OFF

ALTER SESSION SET NLS_DATE_FORMAT = 'YYYYMMDDHH24MISS';

-- /home/hoge/フォルダ + 上記の形式日付ファイル名に出力される
SPOOL /home/hoge/&_DATE..csv

PROMPT [実行したいSQLのタイトルでもなんでもーー]
[実行したいSQL]

SPOOL OFF

EXIT

あとは、hoge.sqlSQL*PLUSで実行すればOK

チューニング

参考
SQL*Plusのチューニング
SQL*Plusの制限

普通にコマンドラインからSQL*PLUS使ってDB接続したときも、固定長出力で更に制限があって見れたもんじゃない・・
大体は、linesizeやpagesizeを調整するのは基本になりそう

SET LINESIZE 32767
SET PAGESIZE 1000

LINESIZEをできるだけ小さくして、余分なメモリー割当ておよびメモリーのコピーを回避します。

とのことなので、無暗に大きくするのはよくない
上記では、linesizeは一旦最大値を設定

SETシステム変数の一覧

SET MARKUP CSVが有効な場合、次のSETコマンドは出力において有効となりません。

LINESIZEもPAGESIZEも無視されるので、CSV出力するときはいらないーーちなみにね

IntelliJ+gradle 既存プロジェクトをビルドしてセッティング

新人のころ6、7年前にeclipseMavenでやった時は、ローカル環境構築にとんでもなく苦労した気がするのに。
時代のおかげかとても簡単になった。けど( ..)φメモメモ
随時更新したい

環境

既存のプロジェクトをクローン、チェックアウト

GitでもSVNでもどちらでもよいが、ローカルに持ってくる

プロジェクトを開く

IntelliJFile > Open を選択し、対象プロジェクトを開く
※ build.gradle とか setting.gradle があるフォルダ

開いてビルドが走ると、.idea や .gradle 、buildフォルダが出来上がる


(!)変なフォルダを開いていると、自動でimportしてくれる機能とかヒントツールチップが正しく動かないので要注意

こまごま設定

参考

参考にさせていただきました。 qiita.com Editor > General > Code Folding
Fold by defaultの チェックボックスを外す

エラーログの文字化け

C:\Program Files\JetBrains\IntelliJ IDEA Educational Edition 2021.1.3\bin \idea64.exe.vmoptions
C:\Users\[ユーザー名]\AppData\Roaming\JetBrains\IdeaIE2021.1\idea64.exe.vmoptions
に下記を追記

-Dconsole.encoding=UTF-8
-Dfile.encoding=UTF-8

ブレークポイントで止まるようにする

Setting > Build, Exection, Deployment > BuildTools > Gradle 『Build and run using』と『Run tests using』を「IntelliJ IDEA」に変更

Shift + Alt + F10 ⇒ 「0:Edit Configurations…」を選択
左上の+を選択して、Gradleプロジェクトを追加
Runには、適切なコマンドを書いておく

clean build bootRun
  • 作成した「application」(デフォルト名)をコンボで選択して虫さんマーク押す

  • Shift + F9 これでdebug実行できて、ブレークポイントで止まってくれた

PHPではてなブログの記事一覧を取得して表示

はてなブログの記事一覧を取得した!けど「はてなブログAtomPub」だけでは、アイキャッチ画像が取得できなかった!のでメモ

環境

PHP 5.6
PHP 8.0.9 でも取得できることを確認済み

はてなブログAtomPubからURL取得

はてなブログ管理画面の 設定 > 詳細設定 > AtomPub のルートエンドポイントとAPIKeyを利用してBasic認証で取得
レスポンスはXMLで返ってくる

/* ----------------------------------------
 はてなブログAtomPubから最新ブログURLを取得 
 ------------------------------------------ */
$url = HATENA_ENDPOINT;
$userid = HATENA_USERID;
$apiKey = HATENA_API_KEY;

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_USERPWD, "$userid:$apiKey");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_FAILONERROR, TRUE);

$entryListData = curl_exec($ch);
curl_close($ch);

$resultList = [];

// 取得できなかった場合
if (! $entryListData) {
    return;
}

$result = new SimpleXMLELement($entryListData);

はてなブログoEmbed APIからデータ取得

/* ----------------------------------------
 はてなブログoEmbed APIから表示用データを取得 
 ------------------------------------------ */

for ($i = 0; $i < count($result->entry); $i++) {

    $param = '?url=' . $result->entry[$i]->link[1]['href']->__toString();

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://hatenablog.com/oembed' . $param);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_FAILONERROR, TRUE);

    $resultData = curl_exec($ch);
    curl_close($ch);

    // 公開されていない記事や正しく取得できなかった場合は、スキップ
    if ($resultData === FALSE) continue;

    $entryData = json_decode($resultData, TRUE);

    // 適当に突っ込む
    $resultList[] = [
        'title' => $entryData['title'],
        'description' =>$entryData['description'],
        'published' => date('Y/n/j', strtotime($entryData['published'])),
        'url' => $entryData['url'],
        'image_url' => $entryData['image_url'],
    ];
}

出会ったエラー

はてなブログoEmbed APIのレスポンスが301 Moved Permanently

エンドポイントをhttp:// から https://に変更する

変更後のエンドポイント

https://hatenablog.com/oembed

参考記事

developer.hatena.ne.jp developer.hatena.ne.jp

上位互換はありそうだけど、PHPのバージョン上げて確認したい

アラサーエンジニアのしてよかった転職活動のお話【後半】

f:id:yamami78651:20210817111610p:plain アラサーエンジニアのしてよかった転職活動のお話【前半】 - やまみの雑多ブログ

後半では、実際の転職活動で感じたことやよかったことを続きで書いていく。

私にとって転職活動のつらみ

退職が決まっている

「前半の方にも書いていたけど、退職した後どうしよう。。」
「このまま決まらなかったらどうしよう。。」
と日々焦っていたし、うまくいかないと感じてた時期はメンタル壊れそうだったw

個人的には会社とは変に揉める必要はないと思うし、退職の相談は早くすると会社的には嬉しいんじゃないかと思う。
(辞める時点で嬉しくないと思うけど)
でも、雇われる側としては、退職の旨を早く言うことのメリットは一ミリもないかな・・。

大学の勉強と被った

私が免許更新も近づいてきているし、せっかくエンジニアしているからって理由で
単純に情報の教員免許取りたくなっただけで、自分のタスク管理の問題。
リソース足りないのに、受注ばっかりしてくる営業はダメってこういうことなんだと身をもって痛感。

具体的には、大学の勉強とテスト、技術テストで週末は何もできない感じ。
受けた技術テストは大体3~5時間で終わるテストが多かったけど、会社によっては時間無制限のものもあった。
あと、自分の知っている言語以外で受ける必要のあるテストも先にちょっと勉強する必要があって、きつい。

コロナで気晴らしに外に出にくい環境で、勉強とか転職活動だけになる感じは余計につらかった

これまでの考えの浅さ

前半でも自己紹介した通り、「基幹系に未来あるのかな」とか「このままでいいのかな」とか、とても曖昧な動機で転職を決めて自分に目を向けたことがなかった
転職こそ、自分のキャリアパスを考えるとてもいいチャンスにも関わらず、そこをサボり続けたツケが回ってきた。

自分がこれからどうしていきたいのか、そのためにはどんなところで働きたいのか、なんてことを深く考えたことなかった。
転職活動してなくても、考えた方が良いことだけど、お恥ずかしながら逃避していた。
私のようになかなか差し迫った機会がないと考えない人もいるんじゃないかなと勝手に思っている。

これまで、内省せずに転職できてきたのは単純に若かったからだったと痛感したし。
歳を取れば技術も求められるし、志向性も問われるし。

面接では技術的なこと以外で、よく聞かれた質問は、
「なぜ退職しようと思ったのですか」
「将来はどんなエンジニアになりたいですか」
「そのためにはどんなことをする必要があると思いますか」

企業としては考えが合っているかどうか、自分たちの会社が求職者の求めている環境かどうか、精査したいんだなと思う。
でも、ここがうまく伝えられなくて、実際の面接でうまくいかなかったり、
いざ内省してみたら、選考進んでいる企業は自分のやっていきたいことと全然当てはまってなかったり・・。

自己分析?の仕方?

社会に出たとき、新卒の就職活動もしたことがなかった。
中途の転職活動も、あんまり自分と向き合わずに若さだけで乗り越えてしまっていた。

システムの説明はできるのに、なんで自分のことになるとできないんだろう、って自己嫌悪に陥るくらい自己分析が苦手だった。

でも、自分が何やりたいか自己分析しないと、また面接でうまく伝えられない。みたいに焦ってしまい。。
一緒に自信もどんどん失っていったかもしれない。

私にとって転職に必要だったもの

カジュアル面談

4月のカジュアル面談も一つも選考には進まなかったけど、
6月から選考に進んでいた企業とも比べることもできたし、何をしているところかというのは聞いておく方が良いなと思った。

いちいち面倒くさい!となる人もいると思うけど、個人的には自分にとっても企業にとっても大切な活動の一つかなと思う。
中には、カジュアルのくせに選考の一部にしてる企業もあるけど、そこも含めてこっちも選んでいけばいいのかなと。

私にとっては、情報収集的な意味だけでなくものすごく有難い縁があった。
ある企業の人に、自分のやりたいことと今いいなと思っている企業はちゃんと合っているの?と言われ、すごい諭された。

企業のビジョンだとか、その組織が何を目指しているのか、そしてそこで自分はどういうことがやっていきたいのか、同じ志持てそうかとか全く考えてなかった。
そんなことを気づかせてもらったというか、この歳で恥ずかしいけどかなり反省した。

そんなこと指摘したって、面談した人には一ミリも得なことなんてないのに、本当に恵まれてたと思う
※面談後も選考以外でやりとりをさせてもらうくらいその人にも、この縁にも感謝している

本当に運がよかっただけかもしれないけど、カジュアル面談では普段話せないようなCTOやエンジニアマネージャーの人たちと話せるし、
そういった幸運な縁も持てるかもしれない。

相談相手

相談相手なくしては、この転職活動は満足なものに終わらなかったと思う。
どこでもいいや、って感じなら仕事はできるのかもしれないけど、自分と向き合えば向き合うほど、突き詰めれば突き詰めるほど、どこでもいいやとはならなかった
そんな私の相談相手は家族、同時期に転職活動をしている職場の人、findyのキャリアパートナーの人。

絶対的な味方

家族は絶対的な味方で自分に自信をつけさせてくれる存在。
いつも頑張っているの見てるから、みたいに無償の愛をくれる人がいると沈んだ気持ちもちゃんと浮かぶ。

弱音も吐けるし、やっぱり励ましてくれる人がいないと頑張れなかった
家族もエンジニアだったこともあって、共感してもらえることだったり、一緒に反省会もしてくれたり、内定もらった時には一緒に喜んだり。

え、ナニコレ家族ほしい、結婚したくなるね。自分で書いてて思った。

同志

社内に同時期に転職活動している人は、2人いて、私を採用してくれた元上司の人と仲良くしてくれている先輩。
会社ではなかなか相談する人もいなくて孤独になりがちでも、自分の働きぶりを知ってる同じ職種の人に相談できるのは結構いい。

他の人がどうしているかなんて、関係ないって思う人もいるかもしれないけど。
履歴書とか見せてもらって、確かにこういうことってアピールなるな、とか、●●さんってこういうとこ強いよね、と自分が知らない自分を知れるから同じ会社の人に相談できるのは強い。

たまたまだけど実際に面接で、「会社の人からはあなたはどう思われていますか」って質問にはしっかり答えられた。

プロフェッショナル

最後に、何の広告でもないけど。
複数転職サイトを使っている中でfindyも使っていて、キャリアパートナーの人にかなり助けてもらった。
エージェントは人によって当たり外れあるけど、エージェントと違うお助けマンみたいな人で、無料でサポートしてもらえる、いい距離感の人。

自分の知らない業界の常識を教えてもらったり、自己分析を一緒に考えてもらったり、私の志向に合ってそうな求人を探してくれたり。
これまで、まともな転職活動したことのない私にとっては、本当に欠かせない人だった。
findy使えっていうわけではないけど、そういうサポートの人を利用するのも私のように自己分析が苦手な人はアリのではと思う。

転職活動のいいところ

いい縁ができる

「ふち」じゃなくて「えん」ね。
内定承諾した企業が一番の縁であることは間違いないんだけど、それ以外で出会った人たちもいい縁であると思う。
企業だけでなく、相談に乗ってくれた人も面談してくれた人も。

ちなみに会社を辞めることで、縁を断つこともできる。
一緒に働いている人というつながりを断って、その中から好きな人とは、新しいつながりを作れるのもいい(友人やいつかまた一緒に働きたい人、一緒に飲みたい人、一緒にモンハンしたい人)。

辞めることになって、この新しいつながりが激増しているのも、自分としては嬉しい。
(この人と縁切れるんだって思うと嬉しいのも0ではないw)

人生仕事だけじゃないから、自分を豊かにするつながりを増やせるのも素敵なことかなと思う。

自分を知れる

会社に勤めているときも、目標定めるときに考えるとは思うけど。
社内評価と市場評価も乖離していることがあるから、広い視野でそしてより深く自分を知れると思う。

  • 今の自分はどうなりたいの
  • 今の自分には何が足りないの
  • 今の会社の何が不満なの
  • その不満に対して、自分は何をしてきたの


転職活動をしていなくても、自分と向き合うのは良い。
けど、普段できてない人は転職活動を機に内省するのがいいかも。

加えて、転職活動しても転職しなくてもいいとも思う。
自分が社会でどこまで求められているんだろうっていうことを知れただけでも良しとする。という終わり方もあり得るんじゃないだろうか。
※面接する側からすると、トンデモナイ野郎やけど。

さいごに

自分のことも知れたし、自分にとって満足のいく転職活動だった。
私の転職活動ってほぼ他力によるものだったのかな、と思うところが多いけど。

経歴は他の人にどうにもできることじゃない。
お仕事したり、そのほか自己研鑽することは自分以外の人はできないから、そこは自分で頑張る必要がある。

あと、選考自体も自分本体が受けるしかない。
最終的には自分の言葉で伝えられないとだめで、コーディングテストもこれまで重ねてきた自分の力でやらないとだめ。
これも、自分で頑張る必要がある。

なので、ここに書いたことは、自分でどうにもできないことをどうするかってことが多い。
転職はゴールではないので、転職先で活躍することこそが重要だけれども
同じように30目前にして、転職する人にとって、一つの体験記として参考になればいいななんて思ったり。

アラサーエンジニアのしてよかった転職活動のお話【前半】

もう二度としたくないと思うくらい苦しい時期もありつつ、とてもいい時間を過ごせたと思うので残す

↓後半はこちら
アラサーエンジニアのしてよかった転職活動のお話【後半】 - やまみの雑多ブログ

ちょっとした自己紹介

転職回数は細かく言うと、今回で4回目になる。

教師(数学)
→基幹系メインのSE
→派遣の事務員(穴埋め的な)
→Web系ECサイトの開発者

エンジニアになったきっかけ

エンジニアになったのはたまたま。
未経験でもOKだった会社が求人を出していて、面白そうみたいな軽い気持ちで転職をした。
当時は、楽しく仕事ができそうかどうか、みたいな小学生の日記レベルの思考で転職活動していた。
(教師の仕事もとても楽しかったので、誤解なきを)

研修受けてC#javaが書けるようになった。
大学で勉強したり、独学でプログラム組んだりなんてしてなかった。
それでもエンジニアになれたのは、幸せな時代だったのかも。
(今って駆け出しエンジニア?に厳しくない?当時もそんなもんだったの?)

最初の基幹系メインで働いていた会社にはとても感謝している。
プログラミングを教えてくれたし、新人の私をサブリーダーやリーダーにしてくれたし、めちゃくちゃいい経験を積ませてもらった。

とはいえ先輩はどんどん辞めていくいい感じのブラック感もあった。
なによりも基幹系に未来はあるのかな、なんて生意気にも思って転職を決めた。
(あくまで当時の私の感想です。)

Webサイト開発者に転生

そんなこんなで念願のWeb系の開発者になれたわけで、
javaからPHPに乗り換えたり、OracleからMySQLだとかSQLServerだとか、サーバー周りも管理できるようになったり
いろいろ変化もあって、刺激的な日々を過ごしていた。

自分の作ったものが、前職と比べてやっぱり目に触れるものだし、自分の実装したものが効果出たら嬉しいし。
Webサービスに関われるって楽しいと感じた。
最初のころは転職してよかった、ここに骨うずめるって思っていた

業務的なことでいうと・・
開発ももちろんするけど、作業としては設計とか企画とか、ほかのエンジニアやメンバーのフォローとか、
どちらかというとそういう業務を担うことが増えていった。

そして今回

転職を考え始めたきっかけは、30歳を目前にして「このままでいいのかな」というあいまいなものから始まった。
設計や企画が嫌なわけではないけど、開発しているサービスや一緒に働いているメンバと極端な話で一生を共にしたい?と言われると。「うーん」という感じ。
時が経てば、初めのグループとも体制は変わっているし、尊敬できる上司の一人が異動しちゃったこともあり、当初ほどの熱は冷めていた。。

こういうなんとなくのきっかけがかなり地獄の日々を生む。。

補足

加えて、若いうちは何も考えずとも、結構とんとん拍子に転職先が決まっていたこともあって転職に対しては楽観視していた。
年齢重ねた転職活動は、全く別物!これ絶対。

転職活動の流れ

退職のご報告

今勤めている会社は、一応退職の相談は6ヶ月前に行いましょう、となっている。
実はそれをちゃんと守っている人なんてほぼいないことに、後から冷静になって気づいた。
でも、変な真面目が発動してちゃんと6ヶ月前に上司に相談。
「やめるのやめてもいいよ」「辞めるまでにこの会社でやっておきたいことある?」とか、すごい気遣ってくれる上司で改めて好きになった。 これからも尊敬すべき最高の上司。

転職活動を開始

そしてそこから、転職活動を開始。
多くの人が、先に転職活動してから退職の報告するんだろうね。
辞めることが決まってるから、結構メンタルきつかったw

のらりくらり期

4月は自分の担当サイトで調査も含めて、カジュアル面談をいくつか受けるが、選考には進まず。
フリーランスでするのがいいのかな、正社員がいいのかな、とか企業の人の話を聞きながら考えているふりをしていた。

空白期

5月記憶全くないw
実際には、大学のレポートとか書いてたわけだが・・・
転職活動はほぼ何もしていなかった。

つらみ期

6月に入るころに、同じ会社の人に転職することを聞かされ、「お前も早く動けよ」と言われてビビる。
仕事柄もともと転職サイトはいろいろ調査していて、気になっていた転職サイトfindyに登録する。
6,7月選考にも進みつつ、7月中旬で内定をもらえて転職活動は無事終わる。

改めて見ると、短く見えるけど6,7月は本気でつらかった

具体的に何が、つらかったのか、転職活動の何がよかったのかは 後半に。

javascriptで有効表示桁数を指定したいとき

いつ使うねん( ..)φメモメモ

developer.mozilla.org

let number = 30 * 0.2 - 9.8 * (0.2 ** 2) / 2; // とりあえず、小数点以下の数字

console.log(number.toFixed(3)); // 有効桁数3桁の文字列を返す

有効桁数指定しておきながら、やっぱり小数点以下の不要な0は消したいときは、Numberに変換して文字列の戻す

let number = 30 * 0.2 - 9.8 * (0.2 ** 2) / 2; // とりあえず、小数点以下の数字

console.log(Number(number.toFixed(3)).toString()); // 有効桁数3桁の文字列を返す