dackdive's blog

新米webエンジニアによる技術ブログ。JavaScript(React), Salesforce, Python など

GitHub ActionsでRustプロジェクトを複数ツールチェイン&複数OSでビルドする

背景

こちらの本を読んでRustを勉強しています。

「10-5 自動テストを行う」でTravis CIとAppVeyorを使ったCI環境の構築方法が紹介されていたのですが、せっかくなので同じことをGitHub Actionsで実現しようとして、調べたことをメモ。

やりたいこと

  1. Rustの Stable/Beta/Nightly チャネルそれぞれでビルド・テストを実行したい
  2. 加えて、Windows/macOS/Linux でビルド・テストを実行したい
  3. Nightly チャネルでのテスト失敗は無視したい
続きを読む

Rust, WebAssemblyの学習に良さそうなチュートリアル系記事まとめ

個人的な興味で5月ぐらいからRustを勉強してるんだけど、「今読んでる本が終わったら読みたいなー」という記事が溜まってきたので一旦メモ。
Tips 系の記事というよりは、ある程度まとまったボリュームのチュートリアルっぽいものだけ集めた。

🇯🇵: 日本語。または日本語訳もある

Rust

WebAssembly (WASM)

おまけ:書籍

今読んでる。かなりのボリュームだけどサンプルプロジェクトが多くて個人的にはありがたい。

実践Rust入門を読んでる最中に、より出版日が新しい本があることを知った。
内容は調べてない。

買ったけど、RustとTCP/IPの基礎知識があることが前提らしく積ん読

2020年4〜6月のふりかえり

前回のふりかえりからまた3ヶ月経ったので。
前回:2020年1〜3月のふりかえり

2020年4〜6月にやったこと

「みんなのデータ構造」を読み終えた

コンピューターサイエンスを勉強するぞ計画の第一弾。
読み終えました。4/23 に終わっていたらしい。

かなり読み飛ばしている(まえがきでオススメされていたところしか読めてない)のに加え、最後に全体のまとめをしたかったんですができてないことに気づいた。

Rust の勉強を始めた

「みんなのデータ構造」を読み終わった後、何しようかなーとしばらく考えた結果
やっぱ Rust 一回勉強してみたいなという気持ちになり、本を一冊買った。

5, 6月はほとんどこれしかやってない。なのに全然終わらない。

それから、買った後に発行日がもっと新しい本もあることに気づいた。

こちらもレビューとかを読む限り良さそう。

leetcode をちょくちょくやるようになった

Rust 勉強しつつコンピューターサイエンス系の勉強も継続するために、週1ぐらいでいいので leetcode をやるようにした。
まだ6問しか解いてないようです。

f:id:dackdive:20200706232217p:plain

30分ぐらい自分で考える→discussionから模範解答っぽいの探して、もう30分で実装してみる、みたいな感じでやってます。

所感

この3ヶ月どうだったか、今のお気持ちは、など。

👍 コンピューターサイエンス:大学に通いたい熱が高まった

身の回りで自分と同じようにコンピューターサイエンスを学びたいと考えている人が何名かいて、中には実際にオンラインの大学に通い始めた人もいたので
自分も大学に行きたいというモチベーションが高まった。

ぼんやり35歳ぐらいでチャレンジするイメージだったけど、どういう選択肢があるのかだけでも調べておくのはいいことだなと。

そして、いろんな方の話を聴いてると問題は金ではなく時間だということがわかりつつある。

👍 読書が以前よりも習慣づくようになった

Rust の勉強をし始めてから、在宅勤務の中でコンスタントに毎日30分〜1時間ぐらい本を読む習慣ができてきた気がする。

😢 Webエンジニアとして成長した感じがしない3ヶ月だった

はっきりとした理由はわからないが、業務でやっていること、コロナにより今まで通りの仕事ができない(と感じている)こと、その他いろんな要因があって
エンジニアとして何かできるようになった、というのが実感できない数ヶ月だった。
5, 6月のブログが0件なのも一部それを表している気がする。

ありがたいことに一緒に働く仲間たちがみんな優秀なので、必要以上に彼らと比較してしまっているという部分もあるのだとは思う。
四半期の後半あたりから「もう今一番自分がやりたいと思うことをやろう」と考えるようになってから少し吹っ切れたかも。

次の四半期(2020年7〜9月)のテーマ

7月中に今読んでる本は終わるといいなあ。
終わったら、次はこの2冊のどちらかを読みたい。

年末に立てたTryの確認

  • 英語ブログ、今年こそ書く!目標は3本
    • →何もやってない
  • 今年もどっかのカンファレンスにCfP出す
    • →何も(略
  • 「みんなのデータ構造」とあともう1冊、コンピュータサイエンスに関する本を読む
    • ✅「みんなのデータ構造」
  • 本は年間で6冊読む
    • →2冊め

MacにHomebrewでsquidをインストールし、Basic認証つきのプロキシサーバーを立てる

ローカルに検証用のプロキシサーバーを立てる方法を調べていて、Squid を使った方法を備忘録のためメモしておく。

Linux 向けの情報はよく出てくるけど、Mac 環境です。

続きを読む

「みんなのデータ構造」学習メモ:6.2 BinarySearchTree 二分探索木

みんなのデータ構造(紙書籍+電子書籍) – 技術書出版と販売のラムダノート

amazon

これまでのメモ

二分木の続き。 TypeScript によるソースコード
https://github.com/zaki-yama/open-data-structures-typescript/blob/master/src/BinarySearchTree.ts

続きを読む

2020年1〜3月のふりかえり

本当は毎月ふりかえりたかったんですが、気がついたら最初の四半期が終わってました。
この3ヶ月の間にやっていたこととか勉強していたことのふりかえり。

ちなみに年末のふりかえりは 2019年のふりかえりと2020年の抱負 - dackdive's blog です。

2020年1〜3月にやったこと

コンピュータサイエンスを勉強する💪 → 「みんなのデータ構造」

2020年の個人的メインテーマである「コンピュータサイエンス系のことを勉強する」。
その第一歩として読み進めていた「みんなのデータ構造」、ざっくり3ヶ月以内を目標にしていたんですがまだ終わってません。。。

読み始めた当初、この本に書かれている内容は細かいところまですべて理解しようと意気込んでいたんですがあえなく挫折しました。
今は、「本書の読み方」に書いてあったように「わからないところは飛ばしてもよい」ものと割り切り、また特に重要な項目として取り上げられていたものだけとりあえず読むことにしました。

あとトピックとしては3つぐらいなので、4月中に読み終えてまとめもしたい。

ブラウザの Cookieについて学んだ

年明けにHTTP/Tokyoという勉強会に参加したのがきっかけで、1月後半〜2月頃はブラウザのCookieについて勉強してました。
アウトプットとして何も残せなかったのが残念。

こちらのブログ・スライドはとてもわかりやすくまとめられていて、定期的に読み返したくなります。

ECMAScript Proposal の Realms や SES について学んだ

今の職場のチームでは業務時間内に興味のある技術の調査・探究をする時間があるのですが、この時間を利用して前々から興味のあったRealmsとSESというECMAScript Proposalについて勉強してました。

github.com github.com

Realmsは現在Stage 2、SESはStage 1です。
前提とされるJavaScriptの仕様の話が難しく、時間をかけた割に概要レベルでしか把握できてないのですが
それぞれがどんなことを実現しようとしているのか、雰囲気だけでも理解できてよかったです。

また、ECMAScriptの仕様の読み方、策定中のProposalの追っかけ方なども学びがありました。
(後者はまだコツがつかめてなくて、いつの間にかSESから分離したProposal Compartmentsなるものができてたことに気づきませんでしたが...)

この2つの記事はまだ積ん読状態なので読みたいなあ。

また、Realmsなどを理解する上でJavaScriptのPrototype Pollutionという攻撃についても学びました。
こちらの記事が非常にわかりやすかったです。

Node.jsにおけるプロトタイプ汚染攻撃とは何か - ぼちぼち日記

ChromiumMicrosoft Edgeに興味を持った

チームでブラウザ情報とかウォッチするようにしてるんですが、年明けにリリースされたChromium版のMicrosoft Edgeに関する公式ブログを読んだおかげでEdgeに興味を持つようになりました。

Chromiumベースの新しいMicrosoft Edgeについて - dackdive's blog

また、実現はできませんでしたが、このブログ記事がきっかけで勉強会に登壇しないかと声をかけていただくこともありました。

(話そうかと思ってた内容の一部を資料にまとめたものは
Chromium版EdgeのTracking Prevention機能 / Tracking Prevention in Chromium-based Microsoft Edge - Speaker Deck
です)

あんまり日本語の情報も出回ってないので、しばらくは引き続きウォッチしてこうかなーという気持ちになりました。
また、Macでも使えるようになったし、Chromiumベースだから普通に使いやすいのでデフォルトのブラウザとしても使っていこうかと。

次の四半期(2020年4〜6月)のテーマ

最初の四半期をなんとなく過ごした結果、四半期ごとぐらいの大きめのテーマと、月ごとの小さなテーマの2種類を用意しておくと自分にはいいんじゃないかなという考えになりました。

データ構造とアルゴリズム勉強するぞ!みたいな目標だと1ヶ月はハードル高いし、かといって「この本読みたい」みたいな目標であれば◯月中に終わらせる!という目標設定にした方が間延びせず良さそうです。
毎月

というわけで

長期(四半期)

引き続きデータ構造とアルゴリズム系の勉強をするぞ!ということで、次の課題図書はこちらです。

すらすら読める本であってくれ頼む〜😇

あとは密かな裏テーマとして、Rust + WebAssembly 的なところにもぼちぼち手を出したい。
今は rustlings をちまちまやっています。

またこんな情報もある。

短期

4月中は「みんなのデータ構造」を読んでると思います。
5, 6月は設計の勉強をしたい。

年末に立てたTryの確認

  • 英語ブログ、今年こそ書く!目標は3本
    • →何もやってない
  • 今年もどっかのカンファレンスにCfP出す
    • →何も(略
  • 「みんなのデータ構造」とあともう1冊、コンピュータサイエンスに関する本を読む
    • →「みんなのデータ構造」は続いているぞ💪
  • 本は年間で6冊読む
    • →1冊め

新Microsoft Edgeにこれからリリースされる新機能("The top 10 reasons to switch to the new Microsoft Edge"より)

Edge公式ブログより。
Edgeにリリース済みorこれからリリースされる便利機能の紹介。

ざっと目を通したのでメモ。
gifは公式ブログより引用しています。

1. Collections機能 Organize your research with Collections

f:id:dackdive:20200403102343p:plain

概要:高機能ブックマーク的なやつ。カテゴリ分けたり、記事から画像だけドラッグ&ドロップでCollectionに保存することもできる。 ステータス:Canaryにはリリース済み。Stableには間もなくリリース。モバイルにも今春後半にリリース予定

2. 垂直タブ機能 Work efficiently with vertical tabs

概要:1クリックでタブが垂直に。タブ名見やすくなりそう

ステータス:数ヶ月後にInsider (Beta?) チャネルにリリース予定

3. スマートコピー機能 Save time with smart copy

概要:Webページを雑にドラッグで選択→コピーすると、表などのフォーマットを保ったままコピーできる

ステータス:5月にInsiderチャネルでリリース予定

4. Tracking Prevention機能 Take back control with tracking prevention

概要:以前まとめたので見てください(宣伝)

ステータス:リリース済み

5. パスワードモニター機能 Know if your passwords have been compromised on the dark web with Password Monitor

概要:ブラウザのautofillに保存したユーザー名+パスワードがダークウェブに漏洩したと見られる場合に通知される

ステータス:数ヶ月後にInsider (Beta?) チャネルにリリース予定

6. InPrivateモード Maintain truly private browsing and search with enhancements to InPrivate mode

概要:Chromeのシークレットウィンドウ。これまでBing検索履歴は対象外(削除されない)だったが、今後はこの検索履歴もアカウントに関連付けられなくなる

ステータス:InPrivateモードはリリース済み。Bing検索はInsiderチャネルはリリース済み、Stableは間もなく。

7. イマーシブリーダー Immersive Reader enables everyone to learn and benefit from the web

概要:サイトの不要な部分を除外してコンテンツを読みやすくしたり、音声読み上げができる機能

f:id:dackdive:20200403102233p:plain:w200f:id:dackdive:20200403102234p:plain:w200

ステータス:リリース済み。今後より機能を追加していく予定。

8. Netflix動画を4Kで Microsoft Edge delivers the best immersive viewing experience in 4K and Dolby Audio

概要:Netflixの動画が4K + Dolby Audio & Dolby Visionで観られる。Win10限定

ステータス:リリース済み

9. Bing検索時に獲得できるリワードを寄付できる Make a difference: Give with Bing

概要:Bing検索するとポイントが貯まるMicrosoft Rewardsというしくみがあるが、このポイントを特定の団体に寄付するよう設定できる

ステータス:リリース済み

10. Microsoft Edge is ready for you (and it’s easy to switch)

概要:新Edgeへの移行時はこれまでのお気に入りなどの設定情報を引き継ぐことができる(機能ではない)