皆さん、Kotlin触っていますか?Kotlinかわいいですよね、Kotlin(どの口がそんなことを言うかって感じですが)。Kotlinにはsmart castという機能があり、安全なキャストができます、というのは不正確で、KotlinはFlow-Sensitive Typeと呼ばれる型システムを持っています。おおざっぱに言えば、制御フローによってある変数や式の型が変わる型システムの総称(だと思います。間違ってたらご指摘願います)Kotlinではそれをsmart cast(と公式ドキュメントには書いてある)と呼んでいるという話のようです。 公式ドキュメントにある例からいくつか引用します: fun demo(x: Any) { if (x is String) { print(x.length) // x is automatically cast to String } } if (x !
借金玉 「家事がダメ」なみなさん、今日も部屋の中は乱雑に散らかり放題、床は見えずどこから片付けていいかもわからないという状態を生きているみなさんのためにこの文章を贈ります。僕もかつては部屋は常にそんな状態でした。家事というのは一つ一つは大したことでなくても、積みあがるとどんどんやる気が起きなくなってくるものです。 しかし、この「家事に手がつけられない」というのを「やる気がない」という精神的問題だけで片付けられるかというと、実際のところそうではありません。家事というのは普段からやらない人や苦手な人にとって、そうではない人より「本当に」大変なのです。 この問題について一番わかりやすいのは「掃除機」をかけるときでしょう。普段から部屋が片付いている人にとって、掃除機をかける作業というのは、掃除機をコンセントにつないでズゴー、工数僅か1です。以前のコラムでも書かせていただきましたが、「掃除機くらい2
フロントエンドエキスパートチームの小林(@koba04)です。 先日、npmから脆弱性についての発表がありました。 調べていく中でいくつか思うところがあったので解説も兼ねて書いていきたいと思います。 The npm Blog — Binary Planting with the npm CLI npmの利用者としてやるべきことは、 npmのバージョンを6.13.4以上にあげる yarnのバージョンを1.21.1以上にあげる です。 npmのバージョンが6.13.4になったNodeもv8, v10, v12, v13系でそれぞれリリースされたので、そちらを利用することも可能です (yarnのバージョンは別途あげる必要があります)。 nodejs.org npmによる発表では、今回発表された脆弱性は2件あるため、それぞれ個別に考えます。 binに任意のパスを指定出来る件 npmパッケージはpa
2020年1月に行われた Design Matters Tokyo のセッションでUXライティングについて学んだので記事にまとめます。 Slack社でUXライティングに取り組んでいるアンドリューさんのお話で、実際にUXライティングするワークショップも体験したので共有したいと思います。 Slack社のアンドリューさん UXライティングとはUXライティングとは、ソフトウェアやインターフェースを言葉で対話可能にすることを目的としたコピーです。 ユーザーの行動フローを理解し、専門用語を使わずに対話できるインターフェースを設計する職種のことを「UXライター」と呼んでいますが、まだまだ新しく誕生した職種のためいろいろと模索しているとのことです。 特にSlackでは人とのつながりの構築を意識してUXライティングに取り組んでいて、 どうやったら人と繋がれるのか。 どうやったら言葉で人と寄り添えるのか。 ど
TL;DR 一行追加するだけで関数をメモ化するマクロを作った。 成果物はこちら https://docs.rs/memoise/ 背景 同じ引数に対して同じ値を返す関数(いわゆる参照透明だったり数学的だったりな関数)では、 関数の計算結果を保存しておくことによって計算を高速化したりすることができます。 このようなテクニックを関数のメモ化(memoise, memoize, memoization)などと呼びます。 特に再帰的に定義される関数についてメモ化を行うことによって、 動的計画法の実装をシンプルで直感的なものにできたりします。 しかし、関数のメモ化はやりたいことが自明なのにもかかわらず、 毎回手で書いていると微妙に面倒だったり、うっかりメモ化忘れで計算量が爆発してしまったり、 ちょっと辛いところがありました。 特にRustを使っていると、グローバル変数を雑に使うことを許して貰えないの
DigitalOcean provides cloud products for every stage of your journey. Get started with $200 in free credit! Just like the title says! Here’s a sidebar navigation bar that… Uses sticky positioning. It stays on the screen when it can, but won’t overlap the header, footer, or ever make any of it’s links inaccessible. Scrolls smoothly to the sections you click to. Activates the current nav based on sc
How do you imagine a building? You consciously create each aspect, puzzling over it in stages. Inception 型なし言語に馴染みはあるものの型付言語をいざ使ってみたらどういう気持ちで書いたらいいのかわからなかったと同僚から相談があり, それをきっかけにして社内の勉強会で以下の話をしました. よく型なし vs. 型付の文脈では「型を書くのは面倒だ」「安全の方が大事だ」「でも面倒だ」「それは型推論を前提にしていないからだ」などの議論になりがちな気がしますが、これはあくまで「計算ありきの型」を考えているからで, 「型ありきの計算」だと全く見え方が違います. 「型はある種の仕様」とおもえば, 型ファーストであることと, 型なし言語でテスト駆動開発(TDD)するときに最初にテストを書くこととは, 同じ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く