2022年2月8日のブックマーク (17件)

  • 「Python ゼロからはじめるプログラミング」サポートページ

    教材は、個人的な用途で自由に使用できるだけでなく、「Python ゼロからはじめるプログラミング」を大学や専門学校での授業、または企業などでの研修の教科書として採用された教員・指導員が、授業などで活用することもできます(授業の進め方などに応じて改変いただいて結構です)。 ただし、民間企業が商用、ビジネス目的で利用する際には別途許諾が必要ですので、著者までご連絡ください。

    kkeisuke
    kkeisuke 2022/02/08
  • GitHub - ggicci/httpin: 🍡 HTTP Input for Go - HTTP Request from/to Go Struct

    kkeisuke
    kkeisuke 2022/02/08
  • Goのテーブル駆動テストをわかりやすく書きたい

    Goでテーブル駆動テストを書いていると、書いているときは「すげー読みやすくテスト書けてるぞ!」と思っていても、落ち着いてから見てみると「なんだこれ...訳がわからん...」となることがあると思います。(自分はよくあります。) この記事は、このようなことを解決するのに役立つtipsについてまとめています。主にテストケースについて焦点を当てています。 テストしやすいコード設計に興味がある方は や を参考にしてください。 はじめに この記事はパーソナライズGopher道場で学んだことを元に書いています。 そして、この記事で紹介するテーブル駆動テストの書き方は主観に基づいており、 あくまでテストの1つの書き方にすぎないです。 なので、「この書き方をしないとダメ!」というものではないので、みなさんの考え方やプロダクトに合わせて、柔軟にこの記事で紹介するtipsを取り入れていただけると幸いです。 結論

    Goのテーブル駆動テストをわかりやすく書きたい
    kkeisuke
    kkeisuke 2022/02/08
  • TypeScript 型レベルプログラミング フリースタイルガイド - Object.create(null)

    TypeScript の型レベルプログラミングのための真面目なスタイルガイドではありません. 型なしラムダ計算で喜ぶような人間が使うための諸刃の剣です. この記事の内容は TypeScript2022 年 1 月時点での最新版である 4.5.4 に基づいています. 将来のバージョンでの妥当性は保証しません. 「型〜」「〜型」という用語の「型」はしばしば省略します. 値レベルの話題は一切登場しません. 以前作った型レベル Brainfuck インタプリタはこのスタイルに則っているので参考にどうぞ. いつまでこのネタを引きずるんですか? パラメータに対して制約を付与しない 型定義のパラメータに対して extends を使って制約を付与すると, そのパラメータに与えられる引数を制約を満たすもののみに限定することができます. 例として, 以下の Append には string の部分型のみ

    TypeScript 型レベルプログラミング フリースタイルガイド - Object.create(null)
    kkeisuke
    kkeisuke 2022/02/08
  • GitHub - egoist/load-tsconfig: Load tsconfig.json, light-weight and dependency-free.

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - egoist/load-tsconfig: Load tsconfig.json, light-weight and dependency-free.
    kkeisuke
    kkeisuke 2022/02/08
  • 10 Must-Know Patterns for Writing Clean Code with React and TypeScript✨🛀

    10 Must-Know Patterns for Writing Clean Code with React and TypeScript✨🛀 React is a JavaScript library, and it is the most popular and industry-leading frontend development library today. JavaScript is a loosely typed language, and as a result, it catches runtime. The result of this is that JavaScript errors are caught very late and this can lead to nasty bugs. As a JavaScript library, React inhe

    10 Must-Know Patterns for Writing Clean Code with React and TypeScript✨🛀
    kkeisuke
    kkeisuke 2022/02/08
  • 企業のテックブログの更新をまとめたRSSフィードを作りました!(GitHub Actions) - Qiita

    横断的なテックブログのウォッチや、転職先探しなどにご活用ください。 サイトからもフィードURLをコピーでき、直近更新された記事も閲覧できます。 企業テックブログRSS 特徴 約500社のテックブログの更新をまとめてRSS/Atomフィードで配信しています。 GitHub Actions で定期的に更新していて、サイトの生成には Eleventy を使用しています。 GitHubリポジトリ 経緯 企業のテックブログは記事が比較的良質で、ウォッチしている方も多いと思います。 しかし、テックブログの RSS を Feedly や Slack などで1つ1つ管理していくのはかなり面倒なのと、常にアンテナを張っておかないと新しいテックブログに気づけなかったりします。 そこで「もっとカジュアルに企業のテックブログの更新を受け取れないか?」と思いました。 そんな時に azu さんのツイートから、GitH

    企業のテックブログの更新をまとめたRSSフィードを作りました!(GitHub Actions) - Qiita
    kkeisuke
    kkeisuke 2022/02/08
  • 都会の星の撮り方本を出版しました。WebAssembly を使っています

    先日、都会で撮る 星の軌跡の撮影術 〜はじめて撮る人から上級者まで比較明合成による撮影の完全ガイドというを出版しました。 このは、比較明合成という画像処理によって都会の星の軌跡の撮り方を紹介しているですが、それを WebAssembly を用いてブラウザ内で実現する Web アプリ を作りました(そしてその使い方をの中で解説しました)ので、この記事では WebAssembly による移植周りについて少し解説したいと思います。 なぜ WebAssembly が必要だったか 今回 WebAssembly を、LibRaw というオープンソースソフトウェアをブラウザ上で利用するために使いまいた。 比較明合成をわかりやすく説明すると、複数の画像を比較して、最も明るい点を選択する合成方法です。星は日周運動により地上からは動いているように見えますが、カメラを固定して連写で何百枚と写真を撮り、そ

    kkeisuke
    kkeisuke 2022/02/08
  • トラブルゼロで乗り切ったTypeScript移行/trouble-free TypeScript migration

    9年ほど運用しているjQueryで実装された「楽楽明細」というサービスをTypeScriptに移行した事例を紹介します。

    トラブルゼロで乗り切ったTypeScript移行/trouble-free TypeScript migration
    kkeisuke
    kkeisuke 2022/02/08
  • Cloudflare WorkersでちゃんとしたWebを作る - ゆーすけべー日記

    最近は Cloudflare Workers ばっかりいじってて、フレームワークまで作ってるのですが、これ、ちゃんとやればそれなりの立派な Web サイトができるので、紹介します。 できたサイト 「家系ラーメンべたい!」というサイトを作りました。 管理者の僕が家系ラーメンを登録できて、トップでは一覧で見れて、 詳細ページに行くと写真と紹介文が見れます。 質素に見えますが、 コンテンツ(ラーメン屋)をどんどん追加できる。 プロパティを追加することも可能。 画像はリサイズされる。 速い。 OGP ちゃんと設定している。 favicon.icon もやってる。 と、「ちゃんと」してます。そう、ちゃんとしてます。 では、どう作っていくか。 Cloudflare Workers Cloudflare Workers 、そのユースケースについて。 CDN のエッジで実行される、ということでスクリプト

    Cloudflare WorkersでちゃんとしたWebを作る - ゆーすけべー日記
    kkeisuke
    kkeisuke 2022/02/08
  • とにかくドメイン駆動設計を実践してみる試み ~TODO管理システム編~

    はじめに この記事はサービスを爆速で作ったり、ドメイン駆動設計の解説をするようなものではありません。 ドメイン駆動設計の勉強をしていて、手を動かす機会が足りないと感じていました。そこで、今の理解で実際に動くシステムをドメイン駆動で開発してみようと思いました。 記事はその開発の過程や考えていたことを記録したものです。 「この人はこういう形に落とし込んだんだな~」くらいで見ていただけたらありがたいです。 作成するシステム 今回作るのはTODO管理システムです。 初回の開発では以下の機能を開発しました。 TODOのタイトルと詳細を登録できる 作成したTODOを検索できる 選択したTODOの詳細を確認、完了、削除ができる デモ デモなのでメールの確認はダミーです。新規登録をしたら画面に出るメール確認リンクを踏めば確認済みとなります。 その後右上のログインからログインしてください。 デモのデータベ

    とにかくドメイン駆動設計を実践してみる試み ~TODO管理システム編~
    kkeisuke
    kkeisuke 2022/02/08
  • メルカリShops の技術スタック、その後 | メルカリエンジニアリング

    こんにちは。ソウゾウのSoftware Engineer(CTO)の@suguruです。連載:メルカリShops 開発の裏側 Vol.2の1日目を担当させていただきます。 去年、2021年に開始した メルカリShopsの技術スタック についての記事を書きましたが、今回はリリースまでに採用した技術スタックが、半年通してどのようにアップデートしてきたかを共有したいと思います。 ローンチ時に採用した技術が、実際の運用でどのように変遷したのかを共有することで、技術スタックを考える際の何らかの参考になれば幸いです。 monorepo メルカリShops ではサービスに必要なコードを1つに集約する monorepo を採用しています。リリース後半年たってコード量はかなり増えてきましたが、monorepo に対する満足度は非常に高く、うまく機能しています。 サービス全体の見通しが良くなることと、すべての

    メルカリShops の技術スタック、その後 | メルカリエンジニアリング
    kkeisuke
    kkeisuke 2022/02/08
  • GitHub - ubie-oss/ubie-icons

    kkeisuke
    kkeisuke 2022/02/08
  • Ubieで利用しているアイコンをnpmパッケージとして公開しました!

    こんにちは、Ubie株式会社でデザインエンジニアをやっているtakanoripです。 この度Ubieのプロダクトで利用しているアイコンのReact版 @ubie/ubie-icons をnpmに公開しました! GitHubのリポジトリはこちら。 今回はその背景や実装方法などを紹介します。 自社でアイコンを作った背景 このアイコンセットが作られる前は、必要になったタイミングでデザイナーそれぞれが個別にアイコンをデザインしていました。しかし次のような課題がありました。 アイコンの種類が少ないので使いにくい 必要なタイミングで都度デザインしていたためテイストや方針がバラバラ 実装に組み込まれておらず使いにくい Ubie独自のアイコンや医療系のアイコンなども汎用的に扱えるようにしたい そこで、Ubieのプロダクト全般で汎用的に使えるアイコンセットを構築するプロジェクトが立ち上がりました。 アイコン

    Ubieで利用しているアイコンをnpmパッケージとして公開しました!
    kkeisuke
    kkeisuke 2022/02/08
  • G153: テキストを読みやすくする

    達成方法に関する重要な情報 この達成方法 (参考) の使用法と、この達成方法が WCAG 2.1 達成基準 (規定) とどのように関係するのかに関する重要な情報については、WCAG 達成基準の達成方法を理解するを参照のこと。適用 (対象) のセクションは、その達成方法の範囲について説明しており、特定の技術に関する達成方法の存在は、その技術があらゆる状況で WCAG 2.1 を満たすコンテンツを作成するために使用できることを意味するものではない。 適用 (対象) 全てのウェブコンテンツ技術 これは達成基準 3.1.5: 読解レベル (十分な達成方法) に関する達成方法である。 解説 この達成方法の目的は、ウェブページ上のテキストを読むのが難しくないようにすることである。単語及び文を解読することが困難になるような障害のある利用者は、複雑なテキストを読んで理解するのを苦手とすることが多い。そのテ

    kkeisuke
    kkeisuke 2022/02/08
    アクセシビリティ
  • Introducing the Dialog Element

    Although the alert, confirm and prompt JavaScript methods are convenient, they aren’t recommended due to their script-blocking behavior. That’s why we worked with other browser vendors to drive improvements to the <dialog> specification over the last few years. The most important conversations involved accessibility. You can find more complex use-cases, like payment dialogs, on the web. They are c

    kkeisuke
    kkeisuke 2022/02/08
  • ブラウザでディープコピーができるようになった - Qiita

    Chrome98 で structuredCloneが来ました。 すでに Firefox では導入済みで、 Safari もプレビュー版で導入されているので、近い将来にメジャーブラウザでディープコピーが簡単にできるようになりそうです。 Safari 15.4 で実装されました。 structuredClone API | Can I use... Support tables for HTML5, CSS3, etc const original = { x: 0, arr: [1, 2], } // 共有渡し const sharing = original //「浅い」コピー const shallowCopy = {...original} // ディープコピー const deepCopy = structuredClone(original) original.x = "x" o

    ブラウザでディープコピーができるようになった - Qiita
    kkeisuke
    kkeisuke 2022/02/08
    “structuredClone”