とらきす の ぐだログ

とらきすのぐだログ

ぐだぐだとなんかするブログ。

紙ブログ

しばらくブログ放置してたので、なんか適当に書いた。

もともとは「ここ1年で学んだこと」みたいな趣旨で書き始めたはずなんですけど、言いたいことを言う記事になりました。久米田先生の紙ブログみたい。そうでもないかな。

まぁたまにはそういうのも良いかなと。


TOC


Scala すき...

Scala を触りはじめたのはちょうど1年前くらい。

なんで Scala なのかというと、単純明快、周りに書いてる人がいなかったからですね。

マイナー言語... 逆にメジャー言語ってなんなんですかね。
C、C++C#JavaJavaScriptPythonRuby あたりはメジャーといえるでしょうが、その線引きはひどく曖昧です。まぁ、しかし Scala がメジャーということはないと思うので、とりあえずマイナー言語ということで。

高専にいたころは、これとまったく同じ理由で Haxe というもっとマイナーな言語を触っていました。といっても、それは当時の観測範囲がせまかったのが問題で、Scala 詳しい界隈の人たちは普通に Haxe を知っていて、書けたりするんですよね。すごいや。
えー、まぁそれと少し方向性の似ている言語ということで Scala をチョイスしたんです。

いや、いい言語ですよ Scala は。だいいち書いていて楽しい。これ大事です。

関数型プログラミング

先の話のつづきになりますが、やはり関数型プログラミングの考え方はいいものです。

Haskell の美しさはようやく理解できるようになってきましたが、やはり実用的かと言われると素直に首を縦にふるわけにはいかないもので、その点に関して Scala はよく考えられていると思います。

Haxe を触っていたころから、強力な型推論や if / switch 式、パターンマッチなど、なぜこの機能がほかの言語にないんだ? と思うような数々の機能に魅力を感じていました。

最近はいろいろな言語に関数型プログラミング由来の要素が取りこまれつつありますが、やはり知らなければみずから使おうとは思わない (というか気づけない) ので、一度自分から大海に飛びこむ勇気が必要ですね。

Scala では、さらに Option や Either、map に flatten といったモナド周りであったり、カリー化や部分適用、高カインド型、そしてそれまでボンヤリとしていた型システム全般に関する理解を改めました。

デザイン パターンとアーキテクチャ

Chatwork のインターンではじめて設計手法云々を勉強しました。それまでは完全に個人で開発してたので、そういった類のものはあまり触れてこなかったんです。

もっとも、DDD はそこまで違和感なく受け入れられることができました。
私はもともとゲーム作りからプログラミングに入門しているので、オブジェクト指向的な DDD は、なんかこう、わりとスッと頭に入ってきました。

逆に、トランザクション スクリプトの話が出てきたときなんかは「そんな気持ち悪いデザイン パターンなんてあるのか...」と、むしろ違和感しかなかったです。

Clean Architecture は、いまだにベストプラクティスがわかりません。一応自分で書いてみたりはしましたが、やはり要件によって形は変わってくるものです。

先人の実装例を見てみても千差万別、Layered Architecture 派生の中では Clean Architecture は詳細がしっかり定められているほうだとは思うのですが、やはり必要なエッセンスをどれだけ抽象的に捉えられるかが大事なようです。

なので、あまり規模の大きなアプリケーションでないのなら、より抽象的な Leyered Architecture からスケールしていくのが良い気がしています。

CQRS は、データソースまで分けなければ、わりと気軽にプロジェクトに取り入れられそう。というか、取り入れるべきでしょう。Event Soucing しないからやめておこう、なんてことは言わずに、可能なら採用すべきだと思っています。

Event Soucing は、個人レベルのプロジェクトだとあまり触る機会がないのがつらいですね。Akka の勉強もかねて、一度組んでみようかしら...

Japanese traditional xxxxx

卒研やってます。専門学校とはいえ、そのへんは一応きちんとあるんです。
何人かでグループになり、各々すきなテーマに沿ってなにか作ります。

で、うちの学科はですね、10人もいない極小学科なので、全体で卒研することになったのですが。

なんと、「卒研として某企業のシステム開発をしないか」という先生からの提案が!


いや提案っていうか、半ば強制なんですけどね。事後報告。

まぁ滅多にない経験であるのは間違いないし、とりあえず要件を決めて作業にとりかk...


_人人人人人人人人_
> 突然のコロナ <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^ ̄


でました。

あちらさんの社員の方が出社できないので、当然なにも進みません。
先生は今のうちにできることをやっておいてなどとおっしゃってますが、いやいや、なにもできないですから。

とはいうものの、時間を無駄にするわけにもいかないので、とりあえず TypeScript + PWA でやってみるかー という話に。
私も TypeScript と NestJS の勉強してたんですよ、ここ最近は。

で、TypeScript の話はなくなりました (は?)。
社外秘なので、企業内の端末からしかアクセスできないようでなくてはダメだと。

いや、うん。それはまったくもってそのとおりなんですが、少し前に、この方向性でやるよっていうプレゼンやったじゃないですか。そのときに言えよ。

早いところ MTG の機会を設けてほしいものです。別にオンラインでだってできるでしょうに。
ですが、そもそもこのプロジェクトの調印式が終わってないんだそうです。これが噂に聞く調印ってやつか...! ジャパニーズ・トラディショナルは実在した!

結局、フロントエンドは C#、バックエンドは未定。

ま、個人的にはもちろん Scala で書きたいわけなんですが...
書き慣れているのだけでなく、私がこうして内定を頂けたのは完全に Scala のおかげですから、そういう意味でも思い入れがある言語だというだけで。かならずしもベストな言語とは言いきれないわけです。そんな銀の弾丸みたいな言語はないんですが。

Event Sourcing とかやるなら Akka が使える Scala がよさそうですけどね、今回はそこまでやらない予定ですしおすし。

Scala それ自体は実にすばらしい言語だし、もちろん必要であれば Scala を教えることもできますが、それでも、ほとんどの人にとっては書き慣れない言語であることには違いないわけで。
クリーンでスケーラブルな設計と習得難度はトレードオフの関係にあるのです。私自身も、まだ Scala をフルに使いこなせていないと自覚しています。

万が一、結果的に私がほとんど書いてしまうようなことになってしまっては元も子もありません。
ただでさえ今の設計段階でもかなりオレオレなデザインになってしまっていて、少し申し訳ないと思っているぐらいです。軽量 DDD + オリジナルの Layered Architecture + 軽量 CQRS、みたいな。

でも来年以降もこのプロジェクト引き継ぐらしいので、多少複雑になってでも合理的なアーキテクチャを導入したほうが、のちのち破綻するようなことにはなりにくいかなと。 一応そういう考えはあるのです。

そんなこんなで、どうしようかねー ってなってるとこです。

技術選定難しい

結局、プログラミング言語の違いなんて些細なもので、DB だとかコントローラーだとか、そういった外部的な部分を要件に合わせてまず選ばなければいけない。もしくは、使用するフレームワークアーキテクチャが、要件にマッチしているかどうか、とかですかね。

もっとも、今どきのたいていの言語にはどんな DB のドライバーでも用意されているでしょうし、結局のところはチームの合意が取れればいいわけです。
強いていうなら ORM。ORM はモノによって使いやすいか使いやすくないかの差がとても大きいので、慎重に吟味する必要があります。

というか、今回のケースだとそもそも要件が不確定なので技術選定もなにもないんですけど。

Kotlin、お前 Scala でいいだろ

先の件にともなって、少し Kotlin を触ってみました。

ビックリするくらいそっくりですね。なので、これもう Scala で書けばいいやん... ってなる。精神的につらみが深いです。
Scala ユーザー的には、後発のくせにどんどんと市民権を得てきている Kotlin の存在を危惧しているわけなのですが (私だけじゃないよね?)、やはり言語としては Scala のほうがはるかに多機能です。

そもそも Kotlin の設計思想のひとつに「Scala よりも学習しやすい言語」というのがあるそうで、Android 開発なら Kotlin、バックエンドなら Scala というようにまずまず住み分けられているのかな、と思いきや、最近はサーバーサイド Kotlin が増えてきているんですよね。

JVM 以外の実装にしても、Scala.js と Kotlin/JS、Scala Native と Kotlin/Native... 完全に食いにきてますね。

Kotlin、Either がないのがしんどいですね。もし使うときがきたら、DB 周りのエラーの扱いとかに便利なので、絶対に Either を導入するライブラリを使うと思います。
Scala でいう Try.apply() がわりに使える Result なんてのがありますが、型としては使えないもよう。ゴミ

結局は、学習コストとのトレードオフScala のほうがややコスト高めなのは間違いないと思います。
もっとも、Kotlin -> Scala だともちろん追加で勉強は要りますけれど、Java -> Kotlin と Java -> Scala だったら、なんかそこまで差はないのではないかと。

Rust 難しいね

若者もすなる Rust といふものに、私も手を出してみました。

言語仕様をざっと見た感じ、いろんな言語のいいとこどりって感じですね。ただ、API Docs を眺めていると、これ欲しい! っていうのが experimental だったりして、少し物足りない感もありました。

標準でイミュータブルなのはとてもいいですね。
エラーが Result<T, E> なのもいい。Go も少し書いてみて、やはりこの言語は私には合わないとはっきり感じ取りましたが、ことエラー処理に関しては実に合理的にできていると思います。

Java は例外とエラーを区別しなかった、より厳密には、例外処理と大域脱出を融合させてしまった、というアレ。

あと検査例外。それ自体は、閉鎖/開放原則に違反しているとはいえ、堅牢性とのトレードオフということでなら全然許されてもいいのではないかと思います。
Rust の Result<T, E> だって、実質的な検査例外です。Go はエラーチェックを強制しないことで閉鎖/開放原則に違反しない道を選びましたが、それでも、Java における非検査例外とは違って、基本的にはチェックすべきものです。
Java の場合、やはり検査例外と大域脱出とを組み合わせてしまったのはよくないですよね。エフェクトが大きくなりすぎます。

いや、でも難しいですね。Rust。
まだ見よう見まねで書いてただけなので、IDE で書いたらもう少し感想が変わるかとは思いますが、うん、難しい。Scala よりだいぶ難しい気がします。

ドキュメントを読みあさることにします。

YouTube を観るようになった

遅くね?
はい、遅いですね。

流行りものが嫌いなめんどくさい性格なので、どうしてもニコニコから離れられないでいたのです。結果、Vtuber の波からも遅れてしまいましたが。

かといって、ニコニコを観ているかといえばそうでもない。
最近はめっきり観てないです。気に入っている数人の投稿者の動画を追っているくらい。

で、ちょっとひさびさにニコニコでゲーム実況を観てたんですよ。懐かしいな、こんな実況者いたなー、とか思いながら。

でも、もうニコニコで新作はアップロードされないんです。
みんな YouTube 行っちゃったもんね。

ということで、ようやく YouTube を観るようになりました。でも、まだニコニコ出身の実況者の動画しか観てないですね。キヨさん、ガッチマンさんの2人。

最近はホラー実況をよく観てます。普通のゲームなら、実況観るよりも自分でプレイしたいって思いますもん。
ホラーだと自分でプレイできないので、申し訳ないですが動画で終わらせることにしてます。

ゲームやりたい

もしかしたら自分はゲームがあまり好きじゃないのかも、と思うことはあります。
すごく飽きっぽいので、ひとつのゲームをプレイし続けられません。

もっと言うなら、オンラインの対人ゲームが苦手です。見ず知らずのオンラインの相手と接するのが怖くてしょうがない。

よく Twitter とかで、ネットで知り合った人と通話してる人を見かけるんですよ。ほんとすごいなと思います。

せっかくグラボはそこそこ良いの持ってる (Radeon RX Vega 64) のに、あまり活かしきれてないんですよね。2D ゲームが好きなので。
下手なインディーズ ゲームよりも、RPG ツクール製のゲームのほうがおもしろいって何度でも言います。

ツクール製のフリーゲームはだいたいやり尽くしてしまって、今後もあまりおもしろそうなものに出会える可能性は限りなく低いでしょう。ホラーゲームが多いのも、個人的にはあまり歓迎したくない傾向...

そういうのを求めているのなら、🔞のツクール製ゲーム、すごくいいですよ。かなり長時間遊べるものが多いです。特に RPG 系だと寄り道クエストがたくさん用意してあったり、めちゃくちゃマップが広かったり、無駄にやりこみ要素が充実してたりして、100時間とか遊べるものもザラにあります。
むしろアレなイベントやシーンとかは飛ばしちゃうことが多いですね、長いし、そこにあまり興味を持ってるわけではないんです。

まぁそんなことは置いておいて、TL を見てるとですね、つよつよな方たちは普通にゲームやってたりするんですよ。でも強い。
いっぽう私は、コードを触っていたり読んでいる時間はまぁまぁ長いのですが、強くはない。

だからなんだって話なんですが。要領の良さを見習いたいものです。


いつもどおり収集つかなくなってきたのでここらでいったんストップ。

でもなにも気にせず書けるので、書きたいことが出てきたらこういうの書くかもしれません。

bye

Dell製のWindows 7ノートの復旧に手間取った結果、Dellが嫌いになった件

おひさ。

どうにも就活がうまく行かない というか、内定が出ない。1社しか。
1社出てるだけでもそりゃ大変にありがたいことなんですが、逆に言えばそこ以外は落ちてる訳でして、精神ガリガリ削れてくっぞ。
こりゃアピールポイントが薄いのなー と思ってC#で色々書いてるとこです。

3月までには就活終わるつもりでいるのでそこまでの辛抱。
そこからはほぼ丸一年暇になる訳なので。 (一人暮らしの費用はバイトで稼がないとなので、まるきり暇ではないですが

でも周りの人らみんなお強いので勝てる気がしないねっ! ハム太郎! ぐへッ




さて、久々にブログを書くモチベが出てきたので書きます。
殺意駆動執筆ってやつですな。

ことの発端は、我が家に眠っていた10年モノのDell製ノートPCを掘り起こしてきたときのこと。

ちなみに機種名はInspiron 15 N5010。
第1世代のi5を積んだ、まぁー古いPCです。OSはWindows 7
リカバリディスクやWindowsのインストールディスクが付属していないDtoDタイプ (リカバリ領域を使ってリカバリする)。

これを初期化して売ろうと思い、Dell DataSafe Local BackupというDell謹製のツールで作成したUSBメモリリカバリしてみたんだけど… できない。

いや、リカバリそのものは成功するんです。ちゃんと起動もする。

ただ、一度シャットダウンするともうダメ。0xc000000eのエラー吐いて起動しなくなります。
どうやらブートセクタがぶっ壊れてしまっているようです。

こういう時はシステム修復ディスクを使ってコマンドプロンプトから直してやるのが定石。

再度リカバリして、適当なCD-Rを突っ込んでシステム修復ディスクを作ってみると…

0x4001100200001012 のエラー表示。 (なげぇ

これは何? 頼みの綱のシステム修復ディスクでエラーって何事?
と思ってググってみると、同じ現象に悩まされている人が何人かいるようでした。

簡潔にまとめると、DellWindowsに独自に組み込んだリカバリ機能のせいで、システム修復ディスクが正常に作成されないという不具合があったようです。

まぁ、昔はWindowsのインストールディスクが付属するのが当たり前だったので、そちらをシステム修復ディスク代わりに使えば良いだけのこと。あまり問題にはならなかったのでしょうが。
最近はインストールディスクなんて付いてきません。自分でシステム修復ディスクを作る必要があります。

だと言うのに、Dellはこの不具合を「そういった問題が出ていることは把握しているが、不具合ではない。修正する予定もない」とのたまっているらしく。
あまりに杜撰な対応で、しかも不具合を放置したままインストールディスクを別売にしたというのは、Dellのシステム修復ディスクに対する重要性の認識が甘すぎるのではないかと言わざるを得ません。

前々からDellのサポートはよくわからんことを言うのであまり信用しないことにしていたのですが、今回の件で決定的に信用ガタ落ちしました。
一生買わねぇ。

私の場合は、ほかにDVDドライブ付きのPCがあったのでそちらで作ったシステム修復ディスクを使って対処できましたが、そのPCしか持っていないと言う人も少なくないでしょう。
その場合、Dellに頼み込んで (そのDellのせいでこんなことになっているのに!)インストールディスクを送ってきてもらうか、もしサポートが切れているのなら、違法に出回っているシステム修復ディスクのイメージを使うしかないでしょう。

私が自作PCを好むようになったのは、もちろんコスパのこともありますが、純粋なWindowsを使用したいという気持ちが強かったからです。
OEM版のWindowsというのは少なからずメーカーのカスタマイズが施されています。それに依存したくないというか。自作PCならリカバリディスクなんてものはありませんからね。インストールディスクがそのままリカバリディスク代わりになるので。

あ、Intel NUC Kitとかも良いね。プレーンなWindowsらしいですから。


まァとにかく、そんな訳で Dellが嫌いになりましたというお話でした。

高専を辞めて半年が経過したので進捗報告 〜三重苦を背負っての就活〜

高専OBOG Advent Calendar 2019 11日目の記事になります。


本当にごめんなさい、遅刻しました
言い訳をすると、とある企業さんへ提出する選考課題があったんです。
課題が提示されたのが一昨日で、つまり制作期間が2日間しかなくてですね。徹夜して 先ほどなんとか提出できましたが、コレ書いてなくても危うかったくらいなんです。提出期限の15分前くらいに提出しましたもん。


えー、私が高専を辞めて専門学校へ入学してから半年が経過しましたので、この記事ではその所感をざっくりと記しておきたいと思います。
課題やってから大急ぎで書いてるので、収集がつかなくなるであろうことは自明です。読みにくいかとは思いますが、許してください。


つーかもう半年が経ったんですか?
2019年終わるってマジ? 早すぎないですかホント。歳とると時間の流れが〜 って本当ですね。怖い。

そうそう、私は特にWebエンジニア志望なので、そちらへ沿った内容になるかと思います。ほかの業界のことはわからないので期待しないでください。


目次


なぜ辞めた?

もういい加減 この辺のネタは色んなところで話してるので、ここでは書きません。

かと言って、なんか 高専辞めたのはこれが原因で〜 とか 所詮は言い訳みたいなそんな見苦しい記事にリンク貼るのも恥ずかしいので、探してください。noteとかに書いてます。


三重苦を背負っての就活

そろそろと就活を始めた私ですが、そんな私の背中には3つの重荷がのしかかっていたのです。

これらの三重苦は、実際に就活をする上でどれほど障害になるのか? そもそも障害となり得るのか?
というのが段々とわかりかけてきたので、軽くまとめます。

まずは三重苦。

1. 高専を辞めた

なんだかんだ言って、高専を辞めることによって生じる最大のデメリットは「高専生でなくなること」なんですよね。

高専コミュニティの力は絶大です。エンジニア志望なら尚更です。
ここまで日本中に網を張っている技術者のネットワークはそうないのではないでしょうか?

とかく、大学生や院生には与えられない、高専生だけのチャンスというものが 思いのほかたくさんあるということを、高専辞めてから知りました。

私が高専コミュニティに関わり始めたのが、高専を辞める少し前からだったんです。
今でこそ私のTwitterのFF人数は結構な多さになってきましたが、高専在学中はもっと規模が小さかったんです。
それが、わりと最近になって高専生のアカウントをTwitterでフォローするようになり、そこからぐんぐんと増えていった感じ。

私の通っていた某高専は、あまり(全く?)情報系の分野に強くなく、それが影響しているのかわかりませんが、高専カンファレンスなどの存在も全く知りませんでした。
Twitterって大事ですね。

こうして高専生や技術系のアカウントがFF内に増えてくると、TLが高専と技術の話題で埋まるようになってくるんですね。
こうなってくると、Twitterは非常に効率の良い情報収集ツールに化けます。 普段通りにTLを眺めているだけで、IT業界の動向や新技術などの情報がどんどん脳内に流れ込んできます。スピ◯ドラーニングです。

更にその上もあります。
過度に技術系アカウントが増えたTLというのは、私よりもはるかに格の高い魑魅魍魎 (つよつよエンジニア)たちが蔓延る混沌の世界と化します。
私のようなへっぽこエンジニアはガリガリと自尊心が削られていきますが、それはそれで良いモチベーションの維持に繋がるのです。
Twitterを軸に開発を進めていくTDD (Twitter-Driven-Development、Twitter駆動開発)という手法は、通常の開発よりもはるかに優れた効率を叩き出すことが証明されています (個人調べ)。

もっと早くに高専コミュニティに関わるようになっていれば、高専に残るという選択肢を選んでいた可能性は十分にあったと思います。

2. 名古屋の専門学校に通っている

私は岐阜県に住んでいて、毎朝 名古屋にある情報系の専門学校まで通っています。一応言っておくと、HALではないです。

やはり地方の学生にとっては、IT業界の就活は少し辛いものがあるのではないでしょうか?

「名古屋ならまだマシじゃねーか!」という声が飛んできそうですが、とんでもない。
名古屋なんて、東京や福岡、大阪に比べたら、IT関連の規模ははるかに下です。IT企業の数そのものは少なくはないのですが、Web系となるとその数はガクッと減ります。
上場しているような有名な企業さんでいえば、ATEAMさんくらいでしょうか。

まぁ地理的アドバンテージはまだ良いのです。これは私に限らず、多くの高専生にも該当することだと思うので。

それよりも問題なのは、「専門学校生」という点。

専門学校というのは、大学とは違って 普通の高校と同じように授業がビッシリ入ってます。つまり、平日に就活を行うのが難しいです。

…ちょっと口が悪くなってしまいますが、私の場合、別に就職さえできれば専門学校にはあまり用はないのです。
しかし、教師との関係が悪化するのは私としても避けたいので、そう目立った行動は起こせません。

そもそも、なぜ就職でもなく大学に入るでもなく専門学校を選んだのかと言いますと。

まず、高専を辞めると決めたのが2018年の12月頃とかなり遅めでした。あと1、2ヶ月で大学入試なんて不可能。この線はナシです。

そして、私は2016年4月に高専へ入学し、2019年3月に退学しました。ぱっと見、3年課程を修了しているように思えるじゃないですか。
でも私は2年生のときにワンクッション挟んでいる (察してくれ)ので、3年課程修了してないんです。

最終学歴中卒で就職はちょっと… ねぇ?

IT業界、特にWeb業界はあまり学歴を気にしないとは言います。
しかし実際のところは、大学の偏差値や文系・理系による違いとかはあまり考慮しないよ〜 というくらいのことで、高等教育課程 (高専5年、専門学校、大学、大学院など)を修了しておくのはほぼマストです。

強いて言うなら、それこそ高専の3年課程修了が唯一の例外と考えて良いでしょう。
Twitterでの知り合いにも、高専を3年修了と同時に辞め、フロントエンド界隈ではかなり有名な某企業へ就職を果たした方がいます。しかし、これはかなりのレアケースではあることは間違いないです。

そんな訳で、私はほぼ学歴作りのためだけに専門学校へ来たのです。

そして、専門学校というだけでなく「名古屋の」という点もここでかなり影響してきます。

名古屋周辺はトヨタ系列の企業が根強く残っており、それに伴ってSIerの業種がほとんどとなっています。私はWebエンジニア志望だったのですが、学校へ来る求人とか そういうのは全部やはりSIer系ばかり。
全くアテにできません。自分だけで就活を進めていく必要があります。

と、地理的にも環境的にもやや就活しづらい状況になってしまっている訳です。

3. 実績がない

一番困るやつです。

先述した内容でなんとなく察せるかと思いますが、高専にいた頃の私は、就活に関して全く関心がありませんでした。
いわゆるハッカソンやコンテスト、カンファレンスなど、そういった類の催し物への参加経験も一切ありませんでした。

プログラミング自体は好きでやっていて、いくつか制作物もありました。
Haxeで書いたゲームボーイエミュレータとか… そうそう手を出すことのない領域だろうし、これは実績として使えそうだと思っていました。

…2019年の夏までは。

ここで悲しい悲しい事件が起こります。
それが「GitHubアカウント消失事件」です。

私は、これまでのほぼ全てのプロジェクトをGitHubPrivateリポジトリで管理していました。
だいぶ昔のプロジェクトの中にはまだGitで管理していなかったものもいくつかありましたが、PCを買い換えたときにバックアップとして一通りGitHubへ投げ、ローカルのデータは全て消去しました。

私はセキュリティにも気を使っていたので、GitHub2段階認証を有効にしていました。iPhoneGoogle Authenticatorアプリを入れ、そこでワンタイムトークンを管理していました。

私はその頃、iPhone 7 Plusを脱獄 (Jailbreak)して使っていたのですが、もうiOS 13が登場しようとしているのにiOS 9.1のまま止まっているのが段々嫌になってきたので、入獄することにしました。
で、なんか脱獄してゴミとか溜まってそうだったし どうせならクリーンインストールしちゃおう、と。

あとはわかりましたね?
そう、GitHubの2段階認証を有効にしたまま、iPhoneのデータを消してしまったのです。
あたしってほんとバカ…

こうして2段階認証によって締め出された私は、なんとバックアップコードも紛失していたことが判明。
サポートに問い合わせたところ、「オーケー、わかった! アカウント消すからPublicリポジトリを一通りCloneしておいてね :) (要約)」との返答。

私が欲しいのはPrivateリポジトリなんだよ!!! と叫びたい衝動を堪え、泣く泣くアカウントを電子の海に葬り去ったという訳です。

えー、今回は私が完全に悪いのですが。
とにかく、Google Authenticatorはオススメしません。バックアップ機能がついておらず、端末を移行する際は各サービスの2段階認証をわざわざ手動で無効にしないといけないからです。

オススメはAuthyです。
UIはダサめですが、モバイルアプリ版に限りアイコンをカスタムできる機能が追加され、マイナーなサービスでもある程度見た目を整えられるようになりました。オンラインで同期できるので、万が一 iPhoneが死んでも安心です。

ハイ!
要するに、実績を示すものが何もない状況からのスタートです。きっっっついでしょコレ。


三重苦は実際どうだったか?

さて、この三重苦。実際に就活をやってみたらどうだったのか、についてです。

1. 高専を辞めた -> 概ね問題なし

この点に関しては概ね問題なく就活を進められています。

というか、高専を辞めてまで専門学校に行った理由は何か? っていうの 面接の度にほぼ確実に訊かれるんですよ。
いや、だって こんな経歴、絶対目を引くじゃないですか。普通に大学行きましたー ってのより200%目立ちますからね。

そこを逆手にとって、そこから上手く話を繋げていけて むしろ助かってます。

それに、一応は元高専生ですので、その辺の話で盛り上がれるというのもあります。
カンファレンスの懇親会とか行くとですね、高専卒の社員の方とか結構いらっしゃるんですよ。少なくとも2、3人くらいはいます。

私自身、高専を辞めたことに負い目を感じてはいるのです。だからという訳ではありませんが、正直、高専在校生であったり きちんと高専を卒業している人のアカウントに絡んでいくのは、「チッ オメー高専辞めたクセに話しかけてくんじゃねぇ!」って思われないかなー とか、高専カンファとかも、もし自分がその場にいたら浮かないだろうか… とか考えてしまいます。

だってホラ 例えば自分のクラスにさ、やたらほかの人に干渉してくる留年生降ってきたらさ ウザいじゃん?
そういう経験ないです?

でもまぁ これからは高専退学おじさんとしてもう少し図々しくなってみようかと思います。高専カンファ福岡、行きたいよね…

就活 (特にWeb系)のこととか質問してくれれば、むしろ喜ぶのでバシバシ絡んでやってください。

2. 名古屋の専門学校に通っている -> 概ね問題なし

これも、今のところほぼ不自由なく就活できています。

会社説明会… とかはちょっと厳しいかもしれませんが、インターンシップ等であれば企業側が交通費や宿泊費を負担してくれることが多いです。
それに、どこでも寝れるタイプだというのであれば、夜行バスとカプセルホテルを利用すればかなり安く都会へ行けます。

最近では、地方の就活生のために宿泊施設を無償で提供してくれるサービスなんかもあると聞きます。今度使ってみようかな。

それに、今はだいたいどこの企業さんでもオンラインでの面談を実施してくれます。
選考に関わる面接と言う訳ではなく、カジュアル面談として、本格的な選考に進む前に色々と話せる機会を作ってもらえるのです。

そして、サポーターズさん、キャリアセレクトさんのような、Webエンジニアの就活を支援してくれるサービス。これは是非とも利用すべきです。
交通費を出してくれる逆求人イベントを開催してくれたり、色々な企業さんから説明会のお知らせが届いたりします。
きちんとプロフィールを埋めておけば、スタッフの方と直接やり取りをして企業を紹介して頂けたりもします。

あとWantedlyとか。アレ 結構プロフィール頑張って埋めないとスカウトとか来ないんですよね。
その代わり、各企業から個別のメッセージと共にスカウトが飛んでくるので、しっかりとプロフィールを読んでくれた企業さんなんだなー っていうのがわかりやすくて良いです。

ただ、休みが取れないっていうのは相変わらず困ってます。
何より長期インターンができないっていうのしんどいですね。近場で技術アルバイトを探すほかありません。

私の通っている専門学校は、会社説明会とか面接とかであれば、面倒な手続きを踏むことで公欠扱いにしてもらえます。
ただ、カンファレンスとかはダメなんです。
BIT VALLEY 2019に行くために欠席することを伝えたら、「カンファレンスとか行っても就職に繋がる訳じゃないでしょ。それより授業休まないように」と…

まぁ言いたいことはわかるんです。
でもあんな… クソつまんない授業受けて時間を浪費するより、色んな人の話聞いてコミュニケーション取ってた方がはるかに良いと思うんですけど。皆さんどう思われます?

3. 実績がない -> 困るが絶望的ではない

これはやっぱり今でも困ってます。

これまでの制作物を提出しろっていう企業さんは思ったよりは少ない印象です。
フロントエンドやWebデザイナー、ゲームエンジニアとなると多くなってるのでしょうね。

まぁ、形がないとはいえ、実際に作った経験はあるものなので、その辺のノウハウはキチンとありますよ ってことを上手くアピールできれば良いとは思います。

あと、Chatworkさんのサマーインターンに参加させて頂けたのが良い評価となっているようで、そこからスカウトや招待の数がグンと増えました。
インターンシップは大事ですよ。夏休みとか、是非みんな行きましょう。

カンファレンスなどは、興味を惹かれるものであれば (あと金銭的に厳しくなければ)、なるべく行くようにしています。
また、このまま「セッションやLTを聴いているだけでは嫌だ!」と思い始めてきていたので、学生LTで思い切って登壇してみたり。アウトプットを増やす心がけをするようにしました。

というか、就活がどうの以前に、普通にショッキングですよ。これまで作ったものが跡形もなく消えるってさァ… ホント心臓によくないです。

胸を張って提出できるようなソースコードが残っていれば、今回アドベントカレンダー遅刻することもなかった訳で。
良い子のみんなは2段階認証の管理はちゃんとしようね!


おわり

いつも通り 取り留めがなくなってきたところで終わろうかと思います。

正直、今のところ就活はかなり充実しています。
既に1つ内定は頂いていて、しかも私の志望している業種にとても近い企業さんです。
IT業界でそんなことはないかと思いますが、大卒なのに数十社受けても内定が出ない〜 なんて話もよく聞きますし… この経歴の割には健闘できているほうじゃないでしょうか?

まぁそれはそれとして、就活はまだ続けるつもりです。企業なんて星の数ほどある訳で、自分に最もマッチする企業と出会える確率なんて本当に低いはず。
就活時期に余裕がある間は、そこのところを突き詰めるために 普通に就活を続けていくつもりです。

私は高専を辞めたことがターニングポイントとなって、ここ半年で色々と成長できたという実感があります。
あ、高専を辞めた「から」ではないことには留意してくださいね。そりゃ辞めないに越したことはないので。

そんな感じです。高専辞めたからって希望を失うことはないんやで。


あ、アドベントカレンダー、遅刻して本当に申し訳ありませんでした。徹夜してコード書いてたんです、遊んでた訳ではないので許してください。


ようやく書き終わった…
このあと、面接のために京都行ってきます。夜行バスで。

それでは〜

Chatworkのサマーインターン2019に参加しましたレポ

どうも、とらきすです。
このブログではお久しぶりですね。

ロシア語記事の続きは、色々と忙しいのでしばらくは書けません。就活がひと段落して落ち着いてきたらのんびりと再開させたいと思います。


さて、この記事は、Chatwork株式会社様のScalaサマーインターンシップ2019に参加させて頂いたときのレポートのような何かです。

もっともっと長くてグダい超真面目な記事も書いていたのですが、読んでいて疲れるのでボツにしました。
時系列に沿った詳細なレポートはほかのインターン生の方々が書いてくれるだろうと信じて…

こちら、Chatwork Creator's Note社員さんのセッション資料で大まかには把握できるかと思います。読もう。


目次


それまで

とは言いましても、インターンシップへ参加させて頂けるようになった経緯などは最低限書いていきます。私自身が少し「トガった」経歴を持っているので、これは似た境遇を持つ方へ向けての記事でもあるのです。

簡潔にまとめますと、私はとある高専の電気情報工学科へ入学し、2年生を2回繰り返し、退学して情報系専門学校の2年課程の学科へ入学しました。今はその専門学校の1年生です。

もし詳細が知りたいという物好きな方は私のnoteを読んで頂けると。

さて、私はWebエンジニア、それもバックエンドエンジニア志望でした。C#Scalaなど、バックエンドの静的型付け言語を好んで使っていたためです。しかし、専門学校はどちらかと言えばSIer向けの授業が多く、それに頼りきりになる訳にはいきません。
学校側が出してくるインターンにもWeb系企業なんてありませんので、自分で探す必要がありました。

そこで、私は以下の条件に合致するインターンを探しました。

  1. バックエンド
  2. 静的型付け言語
    • 動的型付け言語があまり好きじゃない
  3. 2週間以上
    • 1Dayとか正直意味ないと思っている
  4. 東京か大阪近辺
    • そりゃIT系なんだから都会の方が良い
    • 名古屋は田舎
  5. 設計から開発までのフローを一通り経験できる
    • 一番重要。私は設計周りの経験が全くの皆無だったので勉強しておきたかった

すると、Wantedlyで見知った8文字を発見。それがChatworkさんでした。
専門学校で教師と学生間の連絡ツールとしてChatworkが使用されていたので、存在は以前から知っていました。
ほかにもScalaを使用している企業はいくつか見つけましたが、その多くがアドテクであったりPlay Frameworkを採用しているなかで、Akkaを中心とした独自のシステムを運用しているというChatworkにはひときわ惹かれ、 これは運命だと言わんばかりに申し込みました。

色々とそれまでの経歴やなけなしの実績を入力し、書類選考は通過、そしてビデオ面接に。面接には、人事の方だけでなくエンジニアの方も同席していました。
なお、私の家にはWebカメラがなかったので、iPhoneで面接を受けました。

けっこう緊張していたので内容までははっきりと覚えていないのですが、わりと色々とカジュアルに話させて頂きました。
やはりエンジニアの方がいるのといないのとでは全然違うなと。ほかの某有名ベンチャー企業インターンにも申し込んだのですが、そちらは人事の方しかいらっしゃらず、なんだか事務的な面接だなーと率直に感じました(なお落選したもよう)。エンジニアの方には技術系の話のウケが良いので、色々とアピールしやすいです。
特に私の場合、ESに書けるような実績がほぼ皆無であるどころか、学歴だけ見たらただのやべーやつですので。面接が鍵になるんですよね。

で、Chatworkさんから合格の通知を頂いたときには、とんでもなく驚きました。まさか私が? と思いましたもん。
聞いたところによると、やはり自分の言葉で話すことのできるスキルが必要だそう。その方面に全く興味がない、あるいは事前に話す内容をキッチリ決めてきちゃっていると、ボロが出てくるらしいんです。
私は… あまり何を話すか事前に考えてなかったのですが、話しやすい方だったので自然と色々話題を出すことができたと思います。


いざインターン

蒲郡で2週間の自動車学校合宿を終え、その3日後には大阪まで飛んで3週間のインターンが始まりました。夏休みはこれだけでほとんど埋まってしまっていて、実際の休日は5日くらいでしたね。
とは言え、インターン就業中は土日休みで大阪を観光できるようになっていたので(したとは言ってない)、とても充実した夏休みになりました。ホテル暮らしが快適すぎた…

ほかのインターン生6名は、全員成人済みの大学生ないし大学院生の方で、バリバリの情報系学生が来るのかと思いきや、意外とそうでもなく、かなりバラエティに富んだ人選でした。
私だけ専門学校生の18歳で、最初はだいぶ緊張していたのですが、皆さんとても良い人で、すごく仲良くしてもらっていました。
3週間とは言え開発の紆余曲折を共に乗り切った訳ですから、インターンが終わってすっげー寂しいです。また7人で集まりたいですね。


カルチャーショック

まずオフィスに入って衝撃

やっぱり会社っていうと、みんなカチッとしたスーツを着て、デスクが島みたいに並んでて、四六時中プルプル電話鳴ってる、みたいな…
いかにもって感じですが、私の中では大まかにそんなイメージが強かったんですね。

それがどうよ。

木目調の床やテーブル、全て窓側を向いていて1つ1つ仕切られたデスク、3つの“Work”、“Fun”、“Creative”と銘打たれた会議室、ところどころに置いてあるLEGO… そして何より、中央に鎮座するバーカウンター(本物の酒も置いてあって雰囲気あります)。

んん? ここはオフィスか? と思いますよそりゃ。

しかし当然というか、居心地がとても良い。
Chatworkの「働くをもっと楽しく、創造的に」というスローガンを体現したかのようなオフィスです(気づきましたか? 3つの会議室の名前はここから取られているんです)。
そういった働き方をするためのツールを作っていく会社なのですから、まずは自分たちの働き方を変えていこうと、そういうことらしいです。


濃密な講義

はじめの1週間は講義パート。とにかく色々と詰め込まれた講義を受け続けていました。

クリーンアーキテクチャドメイン駆動設計などの講義では、その分野では有名なかとじゅん(@j5ik2o)さんに講義して頂きました。あの短時間でものすごくたくさんの情報が脳に流れ込んできて少しビビりましたが、とてもわかりやすい解説でした。こちらがお金を払いたいレベルで勉強になりますよコレ。体感的には、1講義でカンファ5つ分くらいの濃度。

ほかにもチーム開発やインフラ周りのことなどを包括的に教えて頂きました。この1週間だけでもものすごく勉強になりました。

紆余曲折あった開発

講義も終わり、いよいよ2週間の開発パートへ。
7人でスクラムを組み、1週間ずつの2スプリント体制で行いました。内容は、クリーンアーキテクチャドメイン駆動設計に基づいで設計された社内プロダクトへの機能追加です。大まかに言えば、RPCスタイルのWebアプリケーション。
今回は、GitHub Projectを活用したカンバン式チーム開発を意識して進めていきました。

基本的にはモブプログラミング形式を採用。集合知と言いますか、足りない部分を全員で補完し合えるのでとても良かったと思います。
途中からはブランチを更に切って、2チーム体制で開発してました。

とにかく「初めて」だらけでしたね。普段 趣味で開発するぶんには設計とかやらずにぶっつけ本番で作ることが多かったですし、テストをしたこともありませんでした。

学んだことは、とにかく設計にかかる時間の多さ。実装やテストよりも、設計やテストケース作成の時間のかかること。
なにせチーム開発ってのが経験ありませんので… 例えば日本語の文法をどう統一するか、みたいな少し本質とはズレた部分で長々と議論したりしてました。ほかにも、既に実装に取り掛かってるのに(これ、まずいのでは…?)となるケース。社員さんにたくさん頂いた指摘を時間の都合で全部蹴ったり…
恐らく、実装そのものよりも、こういう部分が一番経験の差として現れてくる部分なんだと思います。

結局、スプリントゴールは完全には達成できず!
一応、最低限とよべる部分まではデプロイし終えたのですが。そこは少し心残りでしたね。

もし次のサマーインターンがあれば、どうなるのかすごく気になります… ふふふ…


大阪良いなー

と、わりと本気で思いました。

まず、飯がうまい(ここ大事)。
福島駅の近くまで歩いていけば、安くて美味しいご飯屋さん・呑み屋さんがたくさんあります。これは飽きないですね、どこに入ってもおよそハズレというものがない。
昼と夜は、ほぼ毎日インターン生の皆でご飯食べに行ってました。高専辞めたあとは体重がだいぶ減ってきていたのですが、このインターンで元に戻りましたね。太るぜこれは。
それに、大阪駅から伸びた地下通路がオフィスのすぐ近くまで続いていて、雨の日でも濡れずにご飯にありつけます。最高。

それに、人混みが苦手な人にも良いです。
都会っぽさを感じたいのであれば(私のような田舎者はすごく都会に憧れるのです)、大阪駅の周りに行けば昼も夜もなくめちゃくちゃ人が多くて賑やかです。
しかしそこから10分ほど歩けば、一気に静かな街並みに。ほど良い感じ。

インターンの少し後に、BIT VALLEY 2019やScala秋祭りに参加するために4日間ほど東京に行ってきたのですが、やはり大阪よりも人は多いと感じました。
ただ、私にとってはこれもあまり嫌な感じではなく、慣れれば大丈夫かなと。空気の汚さとか、私 鈍感なので全然気にならなかったです。
ただ、駅の複雑さには閉口しました。新宿駅でずっと迷ってました。そこは大阪駅の方が良かった。あそこも地下街ジャングルだけど。

追記: 食べたご飯たち

ups.hatenablog.jp

↑しゅういちさんのレポでご飯の画像載っけてるのいいなー と思ったので私も載せます。適当にチョイス。


プルコギ定食。



ステーキランチ。1000円でコレ。


からあげ定食。


チキン南蛮。


まるげりーた。


肉そばと焼豚丼


チーズトマトラーメン。


チキンカツライス(だったかな)。


チーズ豚平焼き。



高級イタリアン。

ね、全部美味しそうでしょ? 住みたいよねここ。


さいごに

とてもとても濃い3週間を過ごさせて頂きました。
正直言って、ここ数年で高専や専門学校で学んだことよりも沢山のことを学べたと思う。いやホントに。

そもそも、“こういう話”ができる相手がいるというだけでもすごく楽しかったですね。高専とか、周りにはあまり情報系つよつよな人がいなかったので。
ギーク話で盛り上がれるって良い。これこそ心理的安全性。

ほかにもScalaを書けるインターンシップというのは探せばけっこうあります(私が個人的にまとめたScalaが書けて新卒募集してる企業リストを見よう!)。
しかし、チャットツールのシステムとしてScalaを使っている企業となるとその数は一気に減ります。ほかにはLINE、ヌーラボさんあたりくらいだろうか… とても貴重な体験をさせて頂きました。

あと、もっとScalaを付けなければと切実に思いました。正直、ついていくだけで精一杯だった感が否めない。ScalaMatsuri 2020は絶対行くぞ。
ほかにも身内のLTとかでScalaを布教したいですね。みんなも沼にハマろうよ。


そんな訳で、いつも通り収集が付かなくなってきたところで終わろうと思います。それじゃ。

個人的メモ: ゆるく覚えるロシア語その1 〜 ロシア文字編

2019/05/07 - いくつかの例外規則と"Катюша"の歌詞を追加しました
2019/04/14 - 記号音(硬音記号、軟音記号)の項目が抜けていたので追記しました


ふとした事からロシア語を勉強し始めたので、そのメモ的なもの。

学び始めた理由は、わりとマジでなんとなくです。もともとロシア文化にわずかながら興味があった… というのもありますが、その程度のやる気で始めたものです。

私自身は、特別 外国語が得意という訳ではないです。むしろ、学校での英語の成績は最底辺を争っているレベルですので、苦手と言っても良いでしょう。
そんな私がやり遂げられるのでしょうか。今から不安になってきました…

この記事の続きは… いきなりで申し訳ないのですが、4月の応用情報技術者試験に向けて勉強をしなければならないので、それまではお預けです。 しばしお待ちを。

はじめに断っておきますが、ガチでロシア語覚えたいって人は、ブラウザバックする事を勧めます。
初心者がとっつきやすいように発音をかなり日本語に寄せてある為、あまり正確ではありません(ただ、まるきり通じない事はないと思います)。
タイトルにもある通り、「なんとなくロシア語が読めたりしたら格好いいだろうなー」なんてゆるーいモチベーションの方向けに書いたものですので、それで十分だと思える方はどうぞ。

※ カタカナでは表せない細かいニュアンスの違いがある為です。このシリーズでも、なるべく早い段階でカナ表記はやめるつもりです。
より高みを目指したい方は、発音記号や口蓋化などについて調べると良いです。


目次


まずはロシア文字を覚えよう

日本語を学ぶときには平仮名から覚え始めるのと同じで、始めはロシア文字(ロシア語アルファベット)を覚えよう、と。

ロシア文字さえ覚えてしまえば、ロシア語を朧気ながらも読み上げるくらいの事はできるようになります。 これがもし日本語だったら、漢字の読みまで覚えなきゃいけない訳で。それに比べたらだいぶ楽ちんです。

それに、取っ掛かりは確かに大変ですが、この章をマスターしてしまえば、以降は英語よりも覚えるのは簡単だと思います。
英語などの例外規則がかなり多い言語に比べると、ロシア語はいくらか素直で、日本人に優しいと言われています。

※ 例えば、母音が2つ連続した場合、英語ではその間に別の子音が挿入されたりする事が多いです(例: "door" → "dɔwə")。
ロシア語ではそのような例外はなく、きっちりと1音ずつ発音します。


ロシア文字一覧

ロシア文字の一覧です。全部で33文字
英語のアルファベット(発音が違ったりはしますが)に加え、スラブ(ヨーロッパ中東域)語の表記に用いられるキリル文字がいくつか含まれます。

ロシア文字 А а Б б В в Г г Д д Е е Ё ё Ж ж З з И и Й й
対応する
アルファベット
A B V G D ye yo J Z I y
IPA発音記号 /a/ /b/ /v/ /g/ /d/ /je/ /jo/ /ʐ/ /z/ /i/ /j/
カナ読み ィエ ジュ
ロシア文字 К к Л л М м Н н О о П п Р р С с Т т У у Ф ф
対応する
アルファベット
K L M N O P R S T U F
IPA発音記号 /k/ /l/ /m/ /n/ /o/ /p/ /r/ /s/ /t/ /u/ /f/
カナ読み
ロシア文字 Х х Ц ц Ч ч Ш ш Щ щ ъ Ы ы ь Э э Ю ю Я я
対応する
アルファベット
H ts ch sh shsh - wi - E yu ya
IPA発音記号 /x/ /t͡s/ /t͡ɕ/ /ʂ/ /ɕɕ/ - /ɨ/ / ʲ/ /ɛ/ /ju/ /ja/
カナ読み チュ シュ シシ - ゥイ -

赤紫色に塗られている部分は硬母音
青紫色に塗られている部分は軟母音です。

また、
赤文字有声子音
青文字無声子音です。

灰色に塗られているのは記号音で、単体では発音を持ちません。
ъが硬音記号、ьが軟音記号です。

上記のカナ読みは、後に母音が続かないとき(直後に子音が続いたり、単語の末尾である場合)の読み方です。


発音の基礎

ロシア語では、ローマ字と同様に「子音 + 母音」の組み合わせが基本です。
もちろんいくつか例外規則もありますが、それさえ覚えてしまえば、カタコトながらも読み上げるくらいの事はできるようになります。

1. 母音

"а, ы, у, э, о"硬母音と呼ばれ、「ア、ゥイ、ウ、エ、オ」と発音します。
日本語の母音を強めに(若干大げさに)発音した感じに近いです。

一方で、"я, и, ю, е, ё"軟母音と呼ばれ、硬母音に「ィ」を付けた「ヤ、イ、ユ、ィエ、ヨ」と発音します。
日本語で言えば、ヤ行に相当します。

なんだかыとиの発音が逆になっているように感じられますが、そういうものなんです。これは覚えるほかありません。もっとも、発音は近いので、会話をする上ではあまり気にしなくて良いです。

なお、"э"はあまり頻繁には使用されません。

2. 子音

ロシア語の子音は、基本的に母音とセットで発音します。

例として "б" を硬母音と組み合わせてみると、
"ба, бы, бу, бэ, бо" → 「バ、ブィ、ブ、ベ、ボ」、

軟母音なら、
"бя, би, бю, бе, бё" → 「ビャ、ビ、ビュ、ビェ、ビョ

…という風に変化します。

3. 記号音

ロシア文字には、"ъ"と"ь"という特殊な文字が含まれています。
それぞれ硬音記号軟音記号と呼ばれ、単体では音を持ちませんが、前後の音に影響を与えます。

硬音記号"ъ"は、子音と軟母音の間で使用され、互いの発音を分離させます。
例えば、"бя"(「ビャ」)に硬音記号を加えた"бъя"は、「ブャ」と発音します。
母音はそのままで、子音の末尾を「ゥ」に置き換えたようなものと考えてください。

軟音記号"ь"は、子音の後で使用され、直前の子音を軟音化させます。
例えば、"ть"は「ツィ」、"тъя"は「ツィヤ」と発音します。
子音に「ィ」を付け加えたような感覚です。つまり、子音と母音の間で使用される場合は、これも発音を分離させている事になります。

Tips. "щ"

"щ"はやや特徴的な発音で、「シシャ、シシ、シシュ、シシェ、シショ」というふうに発音します。

実はこの文字は"ш"と"ч"を合わせて作られたもので、本来は"shch"、即ち「シチ」という発音でした。しかし、現在のロシア標準語では"shsh"と読むのが一般的です。

"щ"を日本語に訳す際には、古い発音が用いられる事が多いです。
例えば有名なロシア料理である"борщ"は、日本では「ボルシチ」と読まれる事がほとんどですが、実際は「ボルシュ」という方が近いです。

※ 1つ目の「シ」はかなり短い音である為、日本語読みでは省略される事が多いです。
また、より正確に表すなら「ボールシュ」という方が正しいです。

稀ではありますが、"щ"の別表記として"сч"や"шч"が使われる事があります。
この場合は、表記通り「シチ」と発音しましょう。


ロシア語のアクセント

"До́брое у́тро." (ドーブライ ウートラ)
"До́брый де́нь." (ドーブルィー ヂェーニィ)
"До́брый ве́чер." (ドーブルィー ヴェーチル)


これは、ロシア語で「おはよう」「こんにちは」「こんばんは」を意味する言葉です。

いくつかの母音の上に" ´ "が書かれている事に気づいたでしょうか? これはアクセント記号と呼ばれるもので、その単語のアクセントの位置を示します。
一部の単語(接続詞、人名など)を除き、ロシア語の単語は必ず1つのアクセントを持ちます。

ロシア語では、音の強弱や長短によってアクセントを表現します(強弱アクセント)。これに対し、日本語は音の高さによってのみアクセントを表現します(高低アクセント)。

カナ読みを見てみると、アクセントの位置と長音(ー)の位置とが対応している事がわかると思います。アクセントの位置では、音を強く、長く発音します。


アクセント記号は、普通は省略されます。教科書や辞書など、堅い文章の中で使われる程度でしょう。
従って、アクセントの位置に関しては、単語ごとに覚えるほかありません。

実は、"ё"の黒点2つ(トレマ)もアクセント記号です。"ё"が含まれる単語があったなら、そこがアクセントになります。
ただし、これも"е"として表記される事がほとんどで、あまりアテにはなりません。


例外的な構文・発音ルール

ロシア語にも、いくつかの例外規則が存在します。
なんだか難しく感じますが、頑張って覚えましょう。

1. 正書法

"г, ж, к, х, ч, ш, щ"の後に"ы, я, ю"が続く事はありません
代わりに、これらに対応する母音("и, а, о")を使用します。

2. 半母音

"й"は半母音と呼ばれる特殊な音で、原則母音の後で使用します。

  • "ай, ый, уй, эй, ой" → 「アイ、ゥイー、ウイ、エイ、オイ」、
  • "яй, ий, юй, ей, ёй" → 「ィアイ、イー、ィウイ、ィエイ、ィオイ

…といった感じです。

ただし、外来語などでは"y"行の子音として使われる事もあります。

3. ж, ц, ш と ч, щ

"ж, ц, ш"は、後に軟母音が続いたとしても、常に硬音として発音します。
反対に、"ч, щ"は常に軟音として発音します。

例えば、"жэ"と"же"は、いずれも「ジェ」と発音します。

4. 母音の変化

アクセントが付かない"о"は、「 ("а")」と発音します。

また、"я, е"は、アクセントが付かない場合「 ("и")」と発音します。
"е"が単語の末尾にある場合は「 ("я")」と発音します。

5. 有声子音の無声化

無声子音の直前にある、または単語の最後にある有声子音は、下記の通りに無声化されます。

※ 無声化とは、簡単に言うと濁点がなくなる事を言います。もともと濁点がない音("й, л, м, н, р")の場合は、変化しません。

  • "б" → "п"
  • "в" → "ф"
  • "г" → "к"
  • "д" → "т"
  • "ж" → "ш"
  • "з" → "с"

6. 無声子音の有声化

有声子音(ただし"в"を除く)の直前にある無声子音は、有声化されます。

※ 前述した無声化と反対に、濁点が付く事を言います。対応する有声子音がない音("х, ц, ч, щ")の場合は、変化しません。

7. г の変化

  • "к, т, ч"の直前または"бо"の直後にある"г"は、「 ("х")」と発音します
  • 単語の末尾で"~ого"または"~его"として使用される場合は「 ("в")」と発音します

8. 黙字

単語の始端、末端でない子音が3つ連続するとき、その中にある"д, в, л, т"は発音されません。

9. その他

他にも、

  • "ж, ч, ш"の直前にある"с, з"は、"ж, ч, ш"にそれぞれ変化する
    • 例) "сша" → "шша"
  • "тц, дц, тс, тьс"は"цц"として、"тч, дч"は"чч"として発音する

などのいくつかの例外がありますが、ここまで覚える必要は今のところありません。


その他Tips

ロシア語の文章の書き方は、英語とほぼ同じで、句読点には","(コンマ)や"."(ピリオド)、":"(コロン)、";"(セミコロン)、"!"(エクスクラメーション)、"?"(クエスチョン)などが使用されます。
また、文頭や固有名詞の先頭においてのみ大文字が使用されます。英語の一人称である"I"のような例外はありません。

ロシア語では、英語と同様に人称代名詞を頻繁に使います。英語でいう"I"、"you"、"he"、"she"などの事ですね。 また、会話中で既に登場した固有名詞は、以降は代名詞で表現されます。


Катюша を読む

これまでに学習した事の確認として、ロシアの軍歌"Катюша"の歌詞をカタカナ読みに書き出してみましょう。
原文にアクセント記号を書き加えてあるので、単語の知識がなくても、これまでの学習内容でなんとかなるはずです。


Катюша
作詞: Михаил Васильевич Исаковский
作曲: Матвей Исаакович Блантер

※ Расцвета́ли я́блони и гру́ши,
Поплы́ли тума́ны над реко́й.
Выходи́ла на берег Катю́ша,
На высо́кий берег на круто́й.

Выходи́ла, пе́сню заводи́ла
Про степно́го си́зого орла́,
Про того́, кото́рого люби́ла,
Про того́, чьи пи́сьма берегла́.

Ой, ты, пе́сня, пе́сенка деви́чья,
Ты, лети́ за я́сным со́лнцем всле́д,
И бойцу́ на да́льнем пограни́чье
От Катю́ша переда́й приве́т.

Пу́сть он вспо́мнит де́вушку просту́ю,
Пу́сть услы́шит, ка́к она́ поёт,
Пу́сть он зе́млю бережёт родну́ю,
А любо́вь Катю́ша сбережёт.

※ 繰り返し


ハイ、どうでしたか?
それでは答え合わせとして正解(?)を載せておきます。


カチューシャ
作詞: ミハイル・ヴァシリエヴィチ・イサコフスキー
作曲: マトヴェイ・イサーコヴィチ・ブランテル

※ ラスツヴィターリ ヤーブラニ イ グルーシ
パプルィーリ トゥマーヌィ ナド リコーイ
ヴィハヂーラ ナ ビリク カチューシャ
ナ ヴィソーキィ ビリク ナ クルトーィ

ヴィハヂーラ ピェースニュ ザヴァヂーラ
プラ スチプノーヴァ シーザヴァ アルラー
プラ タヴォー カトーラヴァ リュビーラ
プラ タヴォー チイ ピースィマ ビリグラー

オイ トゥイ ピェースニャ ピェーシンカ ヂヴィーチヤ
トゥイ リチー ザ ヤースヌィム ソールンツィム フスリェート
イ バイツー ナ ダールィニム パグラニーチィエ
アト カチューシャ ピリダーィ プリヴェート

プースツィ オン フスポームニト ヂェーヴシク プラストゥーユ
プースツィ ウスルィーシト カーク アナー パヨート
プースツィ オン ジェームリュ ビリジョート ラドヌーユ
ア リュボーフィ カチューシャ ズビリジョート

※ 繰り返し


どれくらい合っていましたでしょうか?

今回、アクセント記号もカナ訳も自力でやったので、間違ってないか正直不安ですが、おおむねこんな感じになるはずです。
ただ、ロシア語では前後の単語に発音が引っ張られる事が多いので注意が必要です。
例えば、"берег Катю́ша,"の発音は上では「ビリク カチューシャ」となっていますが、「ク」と「カ」が続くと少し発音しにくいですよね。ここは「ビリッ カチューシャ」という方がネイティブっぽいです。
言葉というのは、発音のしやすい形へ変化していくもの。これはどんな言語にも当てはまる事です。

「これ間違ってない?」という場合は気軽にコメントくださいね。私自身も初心者ですので、遠慮せずお願いします。


さて、次回は基本的な文法から学んでいきます。
ついていけるのか、私!?

何度でも復活する「Microsoft Teams」を完全に消し去る方法

Officeのアイコン、予告通り変更されましたね。少し前からMicrosoftが提唱していたFluent Designとやらの一環でしょう。
正直言うとFluent Designの見た目は好みなので、今回のアイコン変更がわりと楽しみだったり。


さて本題へ。

Office 365のプランを最安のBussinesに変えたんですね。そしたら、Microsoft Teamsというアプリケーションも一緒にインストールされたんですよ。
調べてみるとプロジェクト内で共同編集をしたりする為のサポートアプリっぽい? Slack的な感じですかね。
普通に要らないし、それに起動時にいちいちログインを迫ってきて、これがけっこう鬱陶しい。なので、とりあえずアンインストールしたんですが…

PC立ち上げたら、また勝手に起動しとる!

そう、何度消しても勝手にインストールされて、復活してくるんです。
なんか軽く殺意が湧いたので、このMicrosoft Teamsの自動インストール機能をオフにする方法を書いておきます。


  1. Microsoft Teamsをアンインストールする
  2. Teams_windows_x64.msiを入手する
  3. 管理者権限のコマンドプロンプトから、下記コマンドを実行する
    • msiexec /i Teams_windows_x64.msi OPTIONS="noAutoStart=true"
    • インストーラのパスは適宜変更してください
  4. 少し待ちます
  5. 撲滅完了!

なぜか解決方法がどこにも書いていなかったので、簡単にですが記事にしてみました。
少なくとも私は、現状この方法で対処できています。

というか、そもそも"自動インストール機能"ってのがふざけてますよね。どんだけ使わせたいねん。

なにかあればコメントまで。

Ryzen 5 2400GでグラボなしゲーミングPCを組みたい

1/9のCESにてRyzen 3000シリーズが発表される予定ですね。

ですが私はそんな世間に逆行し、Ryzen 5 2400Gを使ってPCを組みたいと思います。

別にひねくれてる訳じゃなくてですね、PCが壊れたので早急に必要だったというだけで。
それに、今からRyzen 2000シリーズを買うってのも普通に良い選択肢だと思いますよ。
Intelと違ってAMDマザボを使い回せますから(Intelは新製品を出す度にCPUソケットを新しくするので、マザボも買い換える必要がある)、しばらく旧世代CPUでしのいでからタイミングを見て売っぱらい、それを元手にCPUを買い換えればオーケー。

ゲーミングPCという呼び方は正直あまり好きじゃないのですが、まぁ要するに、それくらいパワフルなPCを目指すという事で。

実際に組み立てた感想などはまた後日。


はじめに、今回のPC構成をば。

  • CPU
  • クーラー
  • ポンプ電源ケーブル
    • 変換名人 IDEP-FAN3/4
  • グリス
    • Thermal Grizzly Kryonaut x 1g
  • マザーボード
    • ASRock B450 Gaming-ITX/ac
  • メモリ
    • Corsair Vengeance LPX CMK16GX4M2B3000C15B
  • 電源
    • デルタ電子 DPS-300AB-9J
  • PCケース
  • ケースファン
    • Corsair AF120 White LED Quiet Edition

SSDは以前のPCから流用しています(SanDisk X400 M.2 512GB)。


全部解説してても仕方ないので、かなり大雑把に。

Ryzen 5 2400Gは、1000シリーズ(Summit Ridge)と2000シリーズ(Pinnacle Ridge)の狭間に位置する、いわば第1.5世代のRyzen(Raven Ridge)です。
グラフィック部分にはRadeon RX Vega 11を搭載。Radeon RX 550が8コアな事を考えると、11コアは多いですね。あっちはVRAMがDDR5なのでもっと早いですけど。
うまくOCしてやればCore i3-8100とGT 1030のパワーを併せ持つ(と言われている)、最強クラスのAPUです。これからはノングラボの時代ッ!

OCした2400Gはそこそこ発熱するそうですので、簡易水冷としてMasterLiquid Lite 120を用意しました。今後Ryzen 3000Gシリーズが発売されたら多分買い換えると思いますので、多少はオーバースペックでも良いものを買っておく事に。
高級品のKryonaut(通称: クマさんグリス)も用意。Conductonaut(通称: クマメタル)も考えましたが、流石にそこまでは要らないかなと。

マザボはASRockのB450 Gaming-ITX/ac。StoreMIも使いたかったので、B450チップセットを載せてるグラボに。Mini-ITXでB450チップ載せてるマザボってほんと少ないんですよ。
AMDと仲が良いといわれるMSIのB450I GAMING PLUS ACと迷いました。でもMSIの公式HP、サーバが弱いのか結構な頻度で障害発生してるんですよね。そのせいでQVLが見られなかったなど、サポートにやや不安が… 悪名高きGIGABYTEよかマシだとは思いますが。あと、ファン関連のコネクタがかなり少なかったのもネック。
B450 Gaming-ITX/acでも水冷ポンプ用の電源コネクタが足りないので、変換ケーブルをかまして電源から直接取ります。

Ryzen-Gシリーズにとって、メモリクロックは命です。という訳で、少なくとも3,000 MHz動作が保証される(はず)、CMK16GX4M2B3000C15Bをチョイス。よくある8 GiB x 2のOCメモリですが、ヤフオクで安く売ってたのが主な選考理由です。
Corsairメモリはメモリコントローラに統一性がなく、同じ型番でも違うメーカーのが使われたりしているらしいです。つまりは運ゲー
動く事を祈りましょう。

このマシンは今後もAPUのみの構成(グラボは載せない)にするつもりなので、電源は300 Wの安物。DPS-300AB-9Jというモデルの中古品です。最近のドスパラBTOマシンに入っている電源らしいですが… うーん、その名前を聞くだけで不安すぎますね。
でも一応は国産っぽいので、まぁ大丈夫でしょ。

なるべく小さめのPCがよかったので、皆さんお馴染みMETIS PLUSMini-ITXのアルミケースです。レッドとブルーだけ何故か他の色より安く、そしてブルーで自作している人が多かったようなので、私はレッドを買います(やっぱひねくれてる)。
白LEDのリアファンが付属。また、120 mm角のトップファンを付けられます。MasterLiquidは白色で光るらしいので、統一性を出す為にAF120 Quiet Editionのホワイトを選びます。正直言うと照明云々とかものすごくどうでも良いのですが、LEDなしとそんなに値段変わらないので、ついでに。
それと、SFX電源を使用する際はATXとの変換アタッチメントが必要ですので、気をつけてください。私は知らなくて死にました。


こんなもんですかね。
自作PCは初めてなので、失敗したら怖いですが、とりあえずやってみる事にします。

今はパーツの到着待ち。まだかなー