最近は人間からのメールは減り、機械からのメールが多くを占めるようになりました。その中にはメールを停止できなかったり、メール購読を義務付けられた酷いサービスもあります。 私は仕事もプライベートもインボックス・ゼロを実践しています。それもあって今まで Gmail の検索演算子 をチマチマと調べて、チマチマと設定していましたが、以前から全てを自分の管理下に起きたい欲求がありました。この度ついに強い衝動にかられたので、ゴリッと管理し始めました。 gmailctl を使うことにした# こちらの記事にも影響されて、私的には gmailctl が良いという結論に達しました。 Gmail filters as a code. Using gmailctl to create filters and…|by Hans Jakob Emmel|The Startup|Medium 最初は gmailfilte
Typoraが有料化した。そこでほぼ同じ使用感の「Mark Text」の最新版へ乗り換える方法を記す。 2022/03/10: リリース版が出ていたため一部記事を修正。合わせて全体的に読みやすくした。 Mark Textとは オープンソースのMarkdownエディタ。 リンク:Mark Text 一言で表せばTypora同様にプレビューと編集を同一画面で行えるエディタである。 Typoraと殆ど変わりない使用感のためオススメしている。 また後述するがMark Textはこの性能で有料化する可能性も少なく、多数の有志により頻繁に修正が入っているので成長が期待できる。 ※この記事はMark Textの紹介記事。使い方は次のページでまとめている Mark Text 基本的な使い方【Markdownエディタ】 | 謎の技術研究部 両者のメリット 両者とも最大のメリットは「プレビューと編集が1画面で
✄------------ PM 2:00 ------------✄
この記事で伝えたいこと ここでは、私が設計を勉強しながらコーディングした経験から、初心者でも簡単に実践できる簡単なルールを3つピックアップしました。 一つのクラスは150行以内に収める 循環参照はしない 継承はしない この3つを守れば、破滅的なクソコードであれば割と簡単に防げるかと思います。 この記事における「破滅的なクソコード」は「一切のリファクタリングの余地も残されていないほどのコード」を意味し、この記事の目的は、「破滅的なクソコード」から、「最低限リファクタリングすればなんとかなるコード」になる程度の手法を紹介することです。 マサカリは大歓迎ですがお手柔らかにお願いします。 読む上で留意して欲しいこと この記事はあくまで 「初心者のための破滅的なクソコードを書かないための簡単な方法論」 であって、「効率的で分かりやすい設計の方法論」ではありません。 この3つは「銀の弾丸」ではないです
こんにちは。ぬこすけです。 1年ほど前に「開設後3週間で収益10万円を得た個人開発サイトに立ち向かった話の全部を公開する」を記事を公開し、Qiitaのトレンドの載ったりTwitterでもシェアされるなど、多くの方に読まれてうれしい限りです。 さて、もうすぐ個人開発が2年目になるのですが、個人開発を続けていたからこそ思うことがいくつか思うところが出てきました。 これから個人開発をしようとしている方の参考になったり、あるいは今も個人開発を続けていて「あーこれわかる!」みたいな共感が得られたらうれしいです。 どんなサイト作ったの? 知らない方が多数だと思うので簡単に個人開発しているサイトを紹介します。 「ぬこぷろ」という技術書ランキングサイトを開発しています。 QiitaやTwitter、Youtubeなどから本の情報を取得して技術書を点数化するサイトです。 技術的には、 Next.js や D
最近、知り合いの駆け出しエンジニアと連絡が取れなくなりました。 彼が勤めていた会社の社員さんから、ネガティブな理由で数ヶ月前に退職されたとお伺いしました。 別の会社へ転職したのか聞いてみたところ、どうも仕事自体が嫌になってしまって、フェードアウトするような形だったようです。 SNSアカウントも削除されており、連絡の手段がなくなってしまったため真意は分かりませんが、アカウントを消すぐらいなので「エンジニア職」自体を辞めてしまったのではないかと推察しています。 私自身、知り合いから辞職者が出たことが初めてで、驚きと同時に、そこまでになってしまう前に彼に何かしてあげられなかったのかと考えさせられました。 ネット上に自ら発信する人が少ないのであまり目にすることはありませんが、彼以外にも駆け出しエンジニアが1年以内に「エンジニア」を辞めてしまう問題は、我々が想像する以上に発生しているでしょう。 実際
きっかけ こちらの記事で紹介されていたDevToysを使ってみたら非常に便利で、これは日常使いしたい!となりました。 しかしなんということでしょう。DevToysはWindowsアプリでありmacでは使えないではないですか!iOS・macアプリ開発者の私としてはmacを捨てるわけにはいかないので、mac版のDevToysを開発しました。 できたもの というわけで3日ほどでmac版DevToysクローンを作成しました。 以下のReleaseからダウンロードできます。 開発 可能な限り高速で開発をする必要があったため、他のOSSどううまく使うかが勝負です。 アプリ全体 他の開発中のmacアプリからユーティリティ系コードは大部分を流用しました。 これでだいぶ開発が楽になります。 Json <> Yaml OSSのYamsを用いて実装しています。本家DevToysではなぜか Yaml -> Jso
竈門禰󠄀豆子をMySQL5.6のテーブルにinsertしようとすると正しく格納できず、竈門禰となってしまうケースがあるという話を聞き、調べてみました。 実践 まずは試しにやってみます。 mysql> show create table verification\G *************************** 1. row *************************** Table: verification Create Table: CREATE TABLE `verification` ( `name` varchar(100) COLLATE utf8_bin DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin 1 row in set (0.01 sec) mysql> inse
はじめに こんにちは。WEBエンジニアのmasakichiです。 OSSを始めたいと思いながらも「なにから始めたらいいかわからない…」と悩んでいませんか? そんなOSS未経験者にGood First Issueというリポジトリをお勧めしたく記事にしました。 この記事で書いてあること この記事には以下の2つが書いてあります。 Good First Issueについて Good First Issueからコントリビュートするまでの流れ(経験談) Good First Issueとは OSSにコントリビュートしたことのない開発者でもすぐに始められる人気プロジェクトをピックアップしたキュレーションサイトです。 プロジェクトのリンク先はgithubリポジトリで管理されています。 リポジトリはこちら キュレーションサイトはこちら Good First Issueでは下記の基準を満たしたプロジェクトがピ
本エントリはGMOペパボエンジニア Advent Calendar 2021の25日目のエントリです。メリークリスマス! はじめまして、技術部技術基盤チームの@k1LoW と申します。最近はYouTube Musicの「おすすめのアーティスト」をふらふらと漂流するのが好きです。その漂流で見つけた Nubiyan Twist がカッコいいです。 GMOペパボではGitHub Enterprise Server (以下、GHES)を利用しており、CI/CD基盤としてGitHub Actionsを活用しています。 本ブログでも様々なGitHub Actions活用事例を紹介しています。 #GitHub Actions に関する記事一覧 手動で実施していた業務やタスクをGitHub Actionsのワークフローとして構築しなおす GMOペパボではGitHub Actionsをいわゆる「CI/CDの
できた https://t.co/4u8SIdBksz— k1LoW (@k1LoW) 2022年1月16日 github-script-rubyが何かについてはペパボのテックブログに書きましたので是非ご覧ください。 tech.pepabo.com github-script-rubyは、簡単にいうと actions/github-script の Ruby版です。 今回は、github-script-ruby独自の機能としてRubyのバージョンを指定できるようにしました。 具体的には ruby-version: にRubyのバージョンを書くとそのバージョンで動きます。 簡単なサンプルとしては以下のような感じです。 - name: 'Hello Ruby version' uses: k1LoW/github-script-ruby@v2 with: script: | repo = "#
パラメータを取るenumを作ると、case classみたいにいい感じで同値を判定してくれるんだなって思ったらcase classと同じようにequalsを生成してくれていた。 $ cat test.scala package Test enum Color: case Red(coloerName: String) case Blue case class ColorName(name: String) javapで中身を覗くとこんなメソッドが生成されていた。 $ javap Test.Color\$Red Compiled from "test.scala" public final class Test.Color$Red extends Test.Color { public static Test.Color$Red apply(java.lang.String); public
だいたい以下の様な話です。 TANITAの体重体組成計を買った 100g単位で計測ができる ヘルスプラネットサービスでAPIから値の取得ができる https://www.healthplanet.jp APIクライアントを作った https://github.com/Songmu/healthplanet これは結局自動化のためには使わなかった 体重体組成計を買い替えた。元々TANITAのやつを10年以上使っていたが、最近脚が一つだめになってガタつくようになったので買い換えた。 減量のモチベーション維持のためもある。最近は計測値をiPhoneのヘルスケアに手動でちまちま入力していたが、その辺りを自動できて、APIで値が取れたりして、グラフ等で見やすくしたいとは常々思っていた。そして、最近社内に体重をシェアするSlackチャンネルが作られたのもあって、自動化モチベーションが更に高まっていたの
荷造りのうち、服とか、個人の所有物はそれぞれやれば良いのだけど、皿とかキッチン用品とか、共用部は二人で見たい、しかし子供は段ボールを見ると突入してきてしまって全く作業にならない。 母に来てもらって子供を見てもらったり、焼きそばを作ってもらったりした。 皿の整理とか、難しいところが一気に進んでよかった。 気づいたこととしては、壁に貼ってる棚を取り外すと、荷造り進んだな、という雰囲気が出てくる。 ごちゃごちゃしたエントロピーの低い部分が無の空間となってエントロピーが上下がっていくと気分が良い。 やり込み続けて家をスカスカしたくなる気持ちも分かる。 太陽の塔のフィギュア、こういう、もろいものは手づかみで新居に持っていったほうがよいのでは…とか話してた途端にぽきっと折れてしまった。でもパーツは紛失せずテープで貼っておいたので、物質としての質量は失われていない。
今日喫茶店に行ったら、外国人らしきおじさんと店員が言い争っていた。 店員:「英語通じてるか?」 おじさん:「通じてるよ。だからカプチーノくれよ」 店員:「その前にワクチン摂取証明をみせてくれよ。店の中は人が多くなっているから、証明書がない人は入れない」 おじさん:「分かったから、カプチーノくれよ」 これが何回か繰り返されたあと、店員側が折れて、おじさんはカプチーノをゲットすることができた。 さて、自分の注文の番がやってきた。日本政府のワクチン証明はまさかの紙媒体なので、当然持ち歩いているわけがない。もしものときのために iphone のメモ帳で Document Scan しておいたものがあったので、試しにそれを見せたら無事入れた。 店員さんは明らかにちゃんと内容確認していなかった。こんなゆるいチェックでいいのだろうか?スキャン画像なんていくらでも偽造できるんだから原本の提出を求めるべきで
JINSで調光レンズを買ってみた。平常時は透明で、紫外線が当たると色がつくというもの。 www.jins.com 前に買ったサングラスも気に入っているのだけど、濃いめの色のミラーのレンズを選んだので、室内だと暗く、日陰に入ったり外に出たりするたび掛けかえる必要があり、やや面倒だった。 名古屋に行ったときにミスって普通のメガネをコインロッカーに入れてしまって、ミラーレンズをかけたまま薄暗い鰻屋で食事していて、間抜けなこと、この上なかった。 調光レンズだと、1本で、紫外線に応じて色がつくので、頻繁にかけかえなくて済んで楽そう、というのと、メガネにこういうハイテク機能が搭載されているのはおもしろそう、と思って買ってみた。 あとは、こういう日光に当たると変化するグッズを持ってたら、外に出るのが楽しみになりそうだと思って、気づくと平日ずっと家で仕事していて、月曜から金曜まで一歩も外に出ていない、とい
私は大学生時代に数学を専攻していたのですが、飲み会でその話をすると「『1 + 1 = 2』を証明できるんでしょ?」なんて事をよく聞かれます。まあ、相手も本気で数学的な議論をしたいわけではないのですが、あまりによく聞かれるので、ここでひとつ「1 + 1 = 2」を証明してみましょう。 ここで「証明する」とはどういうことか議論をし出すと話が長くなるため、ここでは素朴に「ある命題をより基本的な命題から導くこと」としておきましょう。 「1 + 1 = 2」とは自然数の加算についての命題ですね。 今回は自然数に 0 も含めることにします。それは単に 0 も含めたほうが記述しやすいからで、深く考えないでください。「自然数に 0 が含まれる」に違和感があるなら「非負の整数」とでも言い変えてください。 足し算は小学一年生で習う基本的な数の操作です。しかし、数学では足し算よりさらに基本的な操作を考えます。そ
インタラクションのあるUIを作っていると、UIパーツのみからは挙動を読み解けない場合があって、そういうときには、一言説明を添える、ということをやる。 こういうときに、どこにどれくらいの説明があれば必要かつ十分か、ということを学べる機会はあまりない気がする。 アルバイト氏のPull Requestのレビューをしていたら、これだと何が起きるかわからないので説明を添えたいよね〜って話をしていたのだけど、そういえばこういうことはどこで学べるのだっけ?というのが気になってきたのだった。 ブログチームでブログを作っていた頃には、編集メンバーが画面のレビューをしてくれて、ここのUIの文言はこれくらいのことを書けば必要かつ十分で、ヘルプの言い回しや告知とも整合性が取れてよいのではないでしょうか、みたいなことを一緒に考えてくれていて、勉強になっていた。 ブログのサイドバーから、説明文を消し去ると、フォームに
2021年の振り返り 2021年も2020年から引き続き内に籠った年だった気がします。 また、厄年だったことは全く関係ないのですが「エンジニアとしてこの先生き残るには」ということを考えることが多かったと思います。 私はこれまであまり将来を深く考えることはあまりなかったのですが、子供の著しい成長を間近で見ていると「ところで私は成長できているのだろうか」という現状に対する思いと「今後子供が十分に成長するまでサポートし続けることができるだろうか」という将来に対する思いとがごちゃ混ぜになって「うっ」となることが何回かありました。世の親をやっている人々はすごい。 一方で「自分が何が好きなのか」は言語化できました。 私はいろいろ好きだし大抵のものには意義を見出せる質なのですが、特に「開発者のための開発」が好きです。 その言語化を得て冷静に振り返ってみると「結局自分がやり続けたこととか成功体験の積み重ね
なぜ npm ツールチェインで消耗した こういうところでシュッと deno を入れておくことで、あわよくば本番で使う準備をする 経緯 久々に eslint の設定を見直したらやたら長大な感じでメンテがしんどくなった npm/yarn workspace で monorepo 化した際に、様々な eslint のバージョンが混在して peer-deps の管理が困難になった deno に組み込まれてる lint, fmt は deno かどうかはあまり関係なく、単に typescript なら使える 中身は https://dprint.dev/ と https://github.com/denoland/deno_lint deno lint は eslint の recommended 相当のものは実装してある eslint + typescript をメンテするより、 eslint 吹
こないだ、[null フロー解析]と似たノリで、構造体の default フロー解析が必要という話をしました。 まあ、難航しそうではあるんですが… とはいえ実は現在でも、「null チェックといいつつ、構造体に対しても働くフロー解析」があったりします。 nullable enable のとき、 非 null 参照型のフィールドやプロパティは、 コンストラクター内でちゃんと初期化する必要があります。 例えば以下のコードはプロパティ定義の行に警告。 class C { public string S { get; } // CS8618 警告 } 以下のようにコンストラクターを足すと、今度はコンストラクターの行に警告。 class C { public string S { get; } public C() { } // CS8618 警告 } 以下のように書くと警告は消えるんですが、 cl
そういえば年も明けたので昨年末時点の日本株のポートフォリオを確認した。 ほんの少しリバランスはしたものの、基本的には変わってない。 配当と優待の利回りを図示すると以下の通り。評価額に対して全体で利回り最低 5% はキープしておきたい。それより大幅に乖離したものは利益確定してリバランスしても良いことにしている。簿価ベースで利回り 5% を超えるものもチラホラある。ちなみに簿価ベースで利回り 10% を突き抜けている高い山はお船。これは評価額から見た利回りも全然低下していないので当然ながらまだ手放す気はない。 こちらは日本株ポートフォリオ全体の配当利回りと評価損益の推移。 代表的な指数である日経平均株価や TOPIX と比較すると年末から年明けにかけて評価額が明らかに上方乖離していることがわかる。 なんで上がっているのかはほとんど放置しているのでよくわかっていないです。 ちなみに指数と連動して
週刊Railsウォッチについて 各記事冒頭には🔗でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 お気づきの点がありましたら@hachi8833までメンションをいただければ確認・対応いたします🙏 TechRachoではRubyやRailsなどの最新情報記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterにて@techrachoのフォローをお願いします。また、タグやカテゴリごとにRSSフィードを購読することもできます(例:週刊Railsウォッチタグ) 🔗Ruby 🔗 BrakemanとRuby 2.6のEOL issue: Brakeman crashes while printing warning
こんにちは、hachi8833です。 つっつきボイス:「このSUSEのYouTubeチャネルがめちゃくちゃ面白い↓」「お〜、英語の替え歌がどっさりですね」「映像も凝っていてクォリティが半端ない」 SUSE (openSUSEとかのとこ) のオフィシャルYouTubeチャネルが異常であることが判明しつつあり、こういうMVが無限にある、しかし不当に再生数が少ない https://t.co/hvx7Wjvrxk — moznion (@moznion) February 2, 2022 週刊Railsウォッチについて 各記事冒頭には🔗でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 お気づきの点がありましたら@hachi8833までメンションをいただけれ
JSer.info #578 - Babel 7.17.0がリリースされました。 7.17.0 Released: RegExp 'v' mode and ... 🥁 decorators! · Babel Decorators Proposalを最新のものへ対応する"version": "2021-12"オプションの追加、Stage 2の正規表現リテラルのvフラグと\qシーケンスのサポートされています。 また、Stage 2のPipe OperatorにtopicTokenとして^^と@@を選択できるオプションの追加、@babel/registerに実験的なworkerの実装を追加などが含まれています。 Chrome 99 betaがリリースされました。 Chromium Blog: Chrome 99: CSS Cascade Layers, a New Picker for Inp
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く