ブックマーク / itnews.org (39)

  • 設計上、安全ではないSAML

    例を挙げて説明するために、まずJSONの例に戻って考えてみましょう。jq(JSON変換ユーティリティー)を使って、ドキュメントの中から持ってきた何かを計算してみましょう。 $ cat assertion.json { "signed_in_user": "Joonas" } $ cat assertion.json | jq . { "signed_in_user": "Joonas" } (jq. は、ドキュメント全体を再印刷することを意味します。) ファイルを jq に通すと、スペースが削除されることに気付きましたか?これは、JSONレベルではスペースが重要ではないからです。一見、面白くなさそうですが、私たちは危険な領域に向かっています。 計算された値に署名してみましょう。 $ cat assertion.json | jq . | sha1sum e58dc03a7491f9e5fb

    設計上、安全ではないSAML
  • git undo:上手く使いこなすために

    この記事は、著者の許可を得て配信しています。 git undo: We can do better モチベーション Gitはロバストな基原理を持つバージョン管理システムですが、初心者のユーザーはGitを少し恐ろしく思っているようです。初心者は間違をしてしまった場合、それを修正しようとするよりも、むしろリポジトリを削除してリクローンする人が多いでしょう。熟練したユーザーでも、リフログを読み解くのにうんざりする時もあります。 なぜでしょうか?データを失わないはずのシステムで、どうして簡単にデータを「失う」ことができるのでしょうか? それは、データを失うのが簡単すぎるのではなく、データを回復するのが難しすぎるということです。復元したい操作ごとに、それをundoするための「魔法」の呪文が用意されているのです。すべてのデータは原理的には残っていますが、実際には多くの人がアクセスできません。 ここか

    git undo:上手く使いこなすために
  • 優れたロギング

    この記事は、著者の許可を得て配信しています。 Good Logging プログラムがすべきことをきちんとこなしているかどうかを確認するには、与えられた入力からの出力を調べることができます。しかし、システムが大きくなると、何が起こっているかを理解するためのログも必要になります。優れたログメッセージは、問題のトラブルシューティングには欠かせません。しかし開発者の多くは適切な場所に十分な情報を記録していないのです。 問題のトラブルシューティングをするときには、ログを見ます。時にはバグが原因で間違った動作をしていることもあります。また、何も問題がない場合もあります。システムは正しく動作していますが、私たちはシステムが何をすべきかについて間違った予想をしていた場合です。どちらの場合も、ログはシステムで何が起こっているかを理解するのに役立ちます。また、新しい機能を完成させた後、探索的テストを行う際にも

    優れたロギング
  • Fastlyの障害から学ぶエラーメッセージの書き方

    この記事は、著者の許可を得て配信しています。 What the Fastly outage can teach us about writing error messages 知らない方もいると思いますが、2021年6月8日の約15分間、FastlyのCDNにシステム障害が発生し、インターネット上のウェブサイトが大規模に停止しました(BBC、英国政府、Reddit、New York Timesでも不具合が生じ、Amazon.comにおいてはCSSの読み込みに失敗しました)。 Fastlyの停止中にこれらのウェブサイトにアクセスした方は、以下のような意味のないエラーメッセージを目にしたことでしょう。 フロントエンドの開発者である私は、このようなエラーメッセージを見て、そのエラーが自分のせいではないことを示す数字(この場合は「503」という数字)を探し、安心しました。 残念ながら、大多数のイン

    Fastlyの障害から学ぶエラーメッセージの書き方
  • プログラマーがドキュメントを書かない理由

    この記事は、著者の許可を得て配信しています。 Why programmers don’t write documentation 最近ではずっとコードのドキュメンテーションに関連した記事を書いていたので、当然、私のMediumのおすすめ記事には「開発者がドキュメントを書かない当の理由」という記事が表示されるようになりました。この記事では、ドキュメントを書くための優れたツールがないことが、ソフトウェアエンジニアが自分の作業や判断をドキュメンテーションする意欲を失わせる最大の原因について書いています。 私は普段、特定の記事を批判したりはしませんが、この記事には怒りを覚えました。このライターは図解ツールについていくつかメリットに関して述べてはいますが、全体的に誤解を招くような内容になっており、この重要な問題をより分かりにくくさせています。2つの図解ツールを比較して、どちらも不十分なツールである

    プログラマーがドキュメントを書かない理由
  • Googleをプロのように使いこなす

    この記事は、著者の許可を得て配信しています。 Use Google like a pro Googlingは、すべての開発者にとって最も重要なスキルのひとつです。 Googlingを上手に使いこなす方法をご紹介しましょう。 さあ、始めましょう。 1. 引用符を使って完全一致の検索を行う "what is javascript" 2. AND演算子は、両方の用語に関連する結果のみを返します html AND css 3. 検索語の1つに関連する結果を得るためにOR演算子を使うことができます 4. - オペレーターは、用語やフレーズを含む結果を除外します javascript -css 5. ワイルドカード(*)をプレースホルダーとして使うと、任意の単語やフレーズで置き換えられます "how to start * in 6 months" 6. 1つのサイト内での検索 site:freecod

    Googleをプロのように使いこなす
  • プログラミングは大変(前編)

    この記事は、著者の許可を得て配信しています。 Programming is hard 次の記事: プログラミングは大変(後編) プログラミングの初心者の多くは、最終的にこの取り繕ったようなメッセージに行き着きます。そのメッセージというのは「プログラミングは簡単で、誰にでもできる」というものです。私はそれが事実ではないということをお伝するためにこの記事を書きました。プログラミングは難しく、誰にでもできるものではありません。最初のうちは誰にでも簡単そうに思えるかもしれませんが、マスターできる人はそこまでいないのです。こういった空虚で浅い、ポジティブなメッセージに対して、今日は私がそれに反論していきたいと思います。 プログラミングは身近か バカな人たちが「プログラミングは簡単だ、誰にでもできる」と言うのは、実はプログラミングの分野がいかに身近かということに関係しているのです。インターネットにアク

    プログラミングは大変(前編)
  • ノンデザイナーでも困らないCSS色名でソートされたカラーパレット「Sorted CSS Colors」

    Sorted CSS Colors https://enes.in/sorted-colors/ Sorted CSS Colorsの特徴 「Sorted CSS Colors」は、background-colorなど、Webでそのまま使えるCSS色名でソートされたカラーパレットです。 つまみレンジをぐりぐり動かすことで 様々なカラーパターンを確認することが可能。 そして特徴とも言えるのが、パレット上に表示された色名は、background-colorなどCSSでそのまま使うことができる点です。 隣り合う色相も分かるので、ノンデザイナーでも配色に困らないのはありがたいかぎり。 もちろん、RGBやカラーコードなど、カラーパレットとしての標準機能もちゃんと装備されています。 Sorted CSS Colors https://enes.in/sorted-colors/

    ノンデザイナーでも困らないCSS色名でソートされたカラーパレット「Sorted CSS Colors」
    miiooktumailcom
    miiooktumailcom 2021/03/21
    CSSってこんなカラーネームあるんだ。。
  • SVG:いいヤツ、悪玉、醜い奴

    この記事は、著者の許可を得て配信しています。 SVG: The Good, the Bad and the Ugly SVGは「スケーラブル・ベクター・グラフィックス(変倍ベクタ図形)」の略で、スケーラブル・ベクター・グラフィックスのためのフォーマットです。この記事では、このフォーマットについての私の意見、問題点、改善点やまた改善のためにすべきことなどをまとめました。 私は数年前からInkscapeと共にSVGをスケッチやグラフィックのために定期的に使っています。私はコードを通して精密さを追求し、アートへの愛を満たすために手書きで書くのが好きです。SVGと私はある種の愛憎関係にあります。SVGはパワフルで、オープンソースの素晴らしい無料ツールがありますが、フォーマット自体はかなり醜いです。 メリット vector graphicsのフォーマットです。Adobe IllustratorからI

    SVG:いいヤツ、悪玉、醜い奴
  • GitHub謹製!コントリビューション(通称:草)を3Dにできるツール「Skyline」を早速使ってみた

    GitHub謹製!コントリビューション(通称:草)を3Dにできるツール「Skyline」を早速使ってみた Skyline https://skyline.github.com/ 「Skyline」は、GitHubによって提供されているコントリビューション(通称:草)を3Dに表示できるツールです。GitHubのユーザー名を入力するだけで、簡単に作成が可能。 完成したグラフは、STL(Standard Triangulated Language)形式でダウンロードできるので、3Dプリンタなどの二次加工にも使えそうです。 Skylineを使ってみる 手順は非常に簡単、GitHubのユーザー名を入力するだけ。 神々しい音楽とともに、3Dグラフが作られていきます。 正面で見るとこんな感じ。 あとは、マウスをぐりぐりして、上にしたり 横にして眺めることもできる。 作成したグラフは、こちらのボタンからダ

    GitHub謹製!コントリビューション(通称:草)を3Dにできるツール「Skyline」を早速使ってみた
  • 私がUXを信用しなくなった理由

    この記事は、著者の許可を得て配信しています。 https://creativegood.com/blog/21/losing-faith-in-ux.html 私は何年もの間、UX(ユーザーエクスペリエンス)を信頼していました。ウェブサイト、アプリ、その他のデジタル製品が成功に終わるか否かの鍵を握っているのは、いわゆる「ユーザーエクスペリエンス」なのです。結局のところ、簡単で、直感的で、便利なUXが、顧客の生活をより良いものにし、同時にチームの目標である増益やサービスコストの削減を達成することができます。 1997年、私はこのUXに対する信念を胸にCreative Goodという会社をスタートさせました。そして何年もの間、この信念は正しいものでした。企業は、自社の製品を顧客にとってより良いものにすることで、物質的な利益を得ることができたのです。1997年から2007年までの10年を、オンラ

    私がUXを信用しなくなった理由
  • GitHubのページをVSCodeライクに変えてくれるブラウザ拡張機能「GitHub1s」をレビュー

    GitHub1s https://github.com/conwnet/github1s GitHub1sの特徴 「GitHub1s」は、プログラマなら誰しもが感じる、GitHubコードの見にくさを解消してくれるツール。URLを変えるだけで、GitHubのリポジトリコードをVSCodeライクに操作可能にしてくれます。 こちらオープンソースとして公開後、瞬く間に6.3K以上のスターがつくほどの人気リポジトリになっています。 GitHub1sをつかってみる 使い方は、GitHub1sのブラウザ拡張をインストールするだけと非常に簡単。 あとは、見なれたいつものGitHubのページで URLを「github1s.com」に変えます。 すると、一瞬で、VSCodeライクなインターフェスに変わります! あとは、いつも通りディレクトリを選択してコードを読んだり 検索なども操作可能。 ちょっと調べたいリポ

    GitHubのページをVSCodeライクに変えてくれるブラウザ拡張機能「GitHub1s」をレビュー
    miiooktumailcom
    miiooktumailcom 2021/02/11
    検索もできるのか、使ってみる
  • 【高精度】クラウド郵便番号住所検索APIサービス「ケンオール」のリリース

    株式会社オープンコレクターのプレスリリース(2021年2月8日 13時41分) 高精度 クラウド郵便番号住所検索APIサービス[ケンオール]のリリース

    【高精度】クラウド郵便番号住所検索APIサービス「ケンオール」のリリース
  • 必要なのはデータサイエンティストではなく、データエンジニア

    この記事は、著者の許可を得て配信しています。 https://www.mihaileric.com/posts/we-need-data-engineers-not-data-scientists/ データはどこにでもありますが、私たちはより多くのデータを手に入れようとしています。過去5~10年の間、データサイエンスは、その禁断の果実を味わおうとする新規参加者たちを、いたるところで惹きつけてきました。 しかし、今日のデータサイエンスの採用状況はどのようになっているのでしょうか? 忙しい読者のために、記事の要旨を2文で解説します。 要約: データサイエンスと比較して、データエンジニアリングの企業では70%以上、募集中の仕事があります。次世代のデータおよび機械学習を習得した人材を育成するにあたり、エンジニアリングスキルをより重視すべきだということです。 データの専門家のための教育プラットフォー

    必要なのはデータサイエンティストではなく、データエンジニア
  • バックエンド Web API に管理画面/管理機能を追加するアーキテクチャパターン - valid,invalid

    プレゼンテーションレイヤ、いわゆるフロントエンドがクライアントサイドで実装・実行されるアーキテクチャ (注 1) において、管理画面/管理機能をあとから追加する際にどのような実装パターンがあるのかを整理してみます。 注 1: Presentation Domain Separation の実践の中でも、物理的にプレゼンテーションロジックとドメインロジックを分離しているアーキテクチャです。 用語の整理 プレゼンテーションレイヤ 三層アーキテクチャにおける、システムの利用者へユーザインターフェイスを提供する層です。記事では"フロントエンド"とほぼ同義で使います。 OSI 参照モデルの第六層ではな…

    バックエンド Web API に管理画面/管理機能を追加するアーキテクチャパターン - valid,invalid
  • RESTAPIでイベントゲストのGoogleカレンダーと予定共有できる「Convier」レビュー

    Convie https://convier.me/ Convieの特徴 「Convier」は、RESTAPIでイベントゲストのカレンダーと予定共有できる開発者向けサービスです。iCalendar仕様(RFC 5545、RFC 7986、RFC 7953)に準拠しており、Googleカレンダーや一般的なグループウェアで利用可能。 なお、フリープランでは月に50通まで送信が可能です。 ConvieでAPIトークンを作成する 早速試していきますが、ステップは非常にシンプル。アカウント作成後、ダッシュボードからAPIトークンを作成するだけ。 API Tokens画面の「New Token」から 名前を決めて作成を実行します。 このようにトークンが払い出されたら、コピーして完了。なお、トークンに有効期限は設定されていません。 招待メールをAPIで送信する $ curl https://convie

    RESTAPIでイベントゲストのGoogleカレンダーと予定共有できる「Convier」レビュー
  • オープンソースSaaSの構築と成長から学んだ教訓

    この記事は、著者の許可を得て配信しています。 https://plausible.io/blog/building-open-source 関連記事: GDPRに完全準拠したオープンソースのアクセス解析「Plausible Analytics」 Plausible Analyticsは、私が開発者とメンテナーとして関わった初めてのオープンソースプロジェクトです。そして、その時の経験は今になっても貴重な経験だったと感じています。 Plausible Analyticsは何千ものサイトにインストールされており、100人以上の開発者からの助けもあり、今年4月にはGitHubのスター数が500以下だったのが、この記事を書いている時点では4,600スターにまで増えています。 この記事では、競争の激しいWeb解析市場でオープンソースのSaaSスタートアップ企業を立ち上げ、成長させてきた経験から得た教訓

    オープンソースSaaSの構築と成長から学んだ教訓
  • Tailwindによる高速実装とGitHubへの自動デプロイを備えたWebサイトジェネレータ「primo」

    primo https://primo.af/ primoの特徴 「primo」は、Tailwindによる高速実装とGitHubへの自動デプロイを備えたWebサイトジェネレータです。2020年7月時点で公開ベータ版ですが、ジェネレート機能は体験でき、今後の可能性を感じさせてくれるプロダクトです。 Webパーツをコンポーネント化して差し込むことができるので、書き溜めていくほど高速に構築ができる仕掛けになっています。 ドキュメントを書く GitHubでのログインが完了したら、早速サイトを作成していきます。 まずはじめに、サイトのサブドメインを指定します。現在は、サイトジェネレート機能のみ提供されていますが、今後ホスティングへの期待も伺えます。 IDEもWordpressのようなドキュメントライクに記述できるので、マークダウンに不慣れな方でもカンタンに書き始められる。 コンポーネント ダウンロー

    Tailwindによる高速実装とGitHubへの自動デプロイを備えたWebサイトジェネレータ「primo」
  • 退屈な技術を選ぶことについて

    この記事は、著者の許可を得て配信しています。 https://panelbear.com/blog/boring-tech/ 注:この記事で書かれている考え方は、過去に何度も取り上げられています。長年にわたって私の視点に大きな影響を与えてきた記事の一つに、McKinley氏の「Choose Boring Technology(退屈な技術を選ぶ)」というものがあります。以下では、私自身の経験からこのトピックを探り、最近のプロジェクトKubernetesを使うことになった経緯を紹介します。 長年にわたり、私は多くのエンジニアが会社の成功や失敗の多くを技術的な選択が原因であると主張する傾向があるところを見てきました。私にももちろんそういう時もあります。それはしばしば正当化されますが、大多数のスタートアップ企業にとって、プログラミング言語、フレームワーク、あるいはデータベースの選択はそれほど重要

    退屈な技術を選ぶことについて
  • 150以上のプログラミング言語に対応したコード画像ジェネレーター

    Beautiful Codes https://www.beautifulcodes.in/ Beautiful Codesの特徴 「Beautiful Codes」は、プログラミング言語に合わせて構文の色分けもしてくれるコード画像ジェネレーターです。実に、150以上の言語に対応。フォントやテーマ、背景なども自由に調整が可能です。 Beautiful Codesで画像を作成する 「Fonts」は、約1,000種類用意されています。プレビュー画面にも即時反映されるので、出来栄えを確認しながら選択する楽しさがあります。 「Mode」は、クラスやファンクション、変数など選んだ言語に合わせて構文を色分けしてくれる。JavaTypeScriptPythonRubyなど、メジャーな言語は、ほぼ網羅されています。 画像の右上には、タイトルが挿入可能。メッセージやクラス名などにも使えそう。 最後に、

    150以上のプログラミング言語に対応したコード画像ジェネレーター