2019年6月18日のブックマーク (14件)

  • Forestry.io CMS

    Goodbye Forestry.io, Hello TinaCMSThe Forestry.io team is focused on building TinaCMS, the next iteration of our vision. See the migration guide or test it with the following command.

    Forestry.io CMS
    kkeisuke
    kkeisuke 2019/06/18
  • hugoで作ったblogにalgoliaで全文検索機能を追加する

    作ったページのコンテンツに対して検索をかける機能がほしかったので、algoliaのフリープランを使って全文検索できるページを追加した index 用の json を生成 参考サイトのとおりに作った config.tomlに以下を追加 [outputFormats.Algolia] baseName = "algolia" isPlainText = true mediaType = "application/json" notAlternative = true [params.algolia] vars = ["title", "summary", "content", "date", "publishdate", "description", "permalink", "keywords"] params = ["tags", "categories"] [outputs] home

    hugoで作ったblogにalgoliaで全文検索機能を追加する
    kkeisuke
    kkeisuke 2019/06/18
  • Goのcontextによるキャンセルやタイムアウト - oinume journal

    これはなに? Go言語におけるcontextパッケージを使ったキャンセルやタイムアウトについて説明する。この記事を読むと以下について詳しくなれるはず...! context.WithCancel context.WithTimeout context.Done context.Err とはいいつつも、かなり自分向けのまとめではあるし既出のトピックなので以下の記事を読むともっとわかりやすいはず。 Go Concurrency Patterns: Context - The Go Programming Language Go1.7のcontextパッケージ | Taichi Nakashima done channelを使ったキャンセルの実装 contextがあると何が嬉しいのかを説明するために、まずはdone channelを使ってキャンセルを行うコードを書いてみる。これはGo言語による並

    Goのcontextによるキャンセルやタイムアウト - oinume journal
    kkeisuke
    kkeisuke 2019/06/18
  • "型パズル"との付き合い方

    まえおき❌ Compiler API、Language Service❌ 難解な型パズルを出題して型マウント取る話❌ 全TSerが型パズルするべきだ🙆‍♀️ 型パズルと聞いて身構える方に身近に感じてもらいたい どっちが思考コストが高いかHTTPメソッド // ちゃんと渡せばOK const httpMethod: string = 'GET' // 正しくない値を渡してもエラーになってくれない const httpMethod: string = 'hogehoge'type HTTPMethod = 'GET' | 'POST' | 'PATCH' | 'PUT' | 'DELETE' // ... // ちゃんと渡せばOK const httpMethod: HTTPMethod = 'GET' // 正しくない値を渡すと型エラー const httpMethod: HTTPMeth

    "型パズル"との付き合い方
    kkeisuke
    kkeisuke 2019/06/18
  • モーダルを開いている時にページがスクロールしてしまうのを防ぐCSSとJavaScriptのテクニック

    ページ上でモーダルを開き、スクロールして、モーダルを閉じると、通常そのページはモーダルを開いた時とは別の場所にスクロールされた状態で表示されてしまいます。そして、スクロールした状態で、モーダルを開いて閉じると、一番上にスクロールされた状態で表示されてしまいます。 これらを解決するCSSJavaScriptのテクニックを紹介します。 Prevent Page Scrolling When a Modal is Open 下記は各ポイントを意訳したものです。 ※当ブログでの翻訳記事は、元サイト様にライセンスを得て翻訳しています。 はじめに 簡単なことから始めましょう スマホの場合 この問題を解決するにはJavaScriptが必要 JavaScriptで問題を解決する はじめに モーダルを開いて、スクロールして、モーダルを閉じます。すると、そのページはモーダルを開いた時とは別の場所にスクロール

    モーダルを開いている時にページがスクロールしてしまうのを防ぐCSSとJavaScriptのテクニック
    kkeisuke
    kkeisuke 2019/06/18
  • Display Locking によるレンダリングの最適化と Async DOM | blog.jxck.io

    Intro React や lit-html などにより、 DOM 操作の抽象化に加えて最適化が提供されることが一般的となった。 見方を変えれば、来ブラウザがやるような最適化を、ライブラリが肩代わりしていると捉えることもできる。 これは、現在の標準 API には、規模が大きく処理が複雑なアプリケーションを開発する際に、足りてないものがあると考えることが可能だ。 課題の 1 つとして「DOM 操作が同期処理である」という点に着目し、 Async DOM という文脈でいくつかの提案が行われた。 今回は、その提案の 1 つであり Chrome で実装が進んでいる Display Locking について現状を解説する。 現状の DOM 操作の課題 まず、以下のような処理を考える。 body.appendChild($div) この処理が JS の途中で出現すれば、その瞬間 Window にある

    Display Locking によるレンダリングの最適化と Async DOM | blog.jxck.io
    kkeisuke
    kkeisuke 2019/06/18
  • Big Sky :: 改訂2版 みんなのGo言語

    2016年、普段から現場でGoを使っている名立たるGoプログラマの皆さんと一緒に「みんなのGo言語」という書籍を執筆させて頂きました。 「みんなのGo言語」は他のリファレンスとは異なり、Go言語の最新事情をお伝えする事に主眼を置いて書きました。 インストール方法や使い方、モダンなテストの書き方、ツールの使い方等も執筆時点での最新情報を書かせて頂きました。 これはとても意義がある事だった感じています。 しかしこれは逆に、時間が経つにつれ執筆した内容が次第に古くなってしまうというリスクを伴います。幾つかの内容は、3年経った現在に合わなくなっている物も出てきました。紹介したツールの中には開発が止まってしまっている物もあれば、執筆時点で制限事項と記したけれども現在では解消している物も出てきています。そればかりではなく新しく追加されたコマンドや機能、新しい制限事項もあります。特に Go Modul

    Big Sky :: 改訂2版 みんなのGo言語
    kkeisuke
    kkeisuke 2019/06/18
  • GitHubのPull Panda連携を(さっそく)導入しました! - Studyplus Engineering Blog

    Androidチームの若宮(id:D_R_1009)です。 今朝方、Twitterを眺めていたら下記のツイートが目にとまりました。 ここ最近、超絶便利に感じていた Pull Reminders が GitHub に買収されて、誰でも自由に使えるようになったみたいだ。 GitHub + pull request でチーム開発をしていて、Slack も使っているところであれば、とりあえず試してみると良いと思う。https://t.co/xvHdkDu7YR— suzuki (@suzuki) June 17, 2019 「これは便利そうだ!」と感じたため社内Slackに投稿し、 利用を開始したところ 期待以上の便利さだったので、ブログでも紹介したいと思います。 Pull Pandaとは https://pullpanda.com/ GitHubのリリースでは下記のように紹介されています。 W

    GitHubのPull Panda連携を(さっそく)導入しました! - Studyplus Engineering Blog
    kkeisuke
    kkeisuke 2019/06/18
  • 13. ペアプロやテストの疑問とか、ソフトウェアエンジニアの育成とか | fukabori.fm

    話したネタ ペアプロにおけるビギナーとベテランの組み合わせ3パターンについて ビギナーとビギナーの組み合わせで効果はあまり期待できない(チームビルディングでは意味がある) ベテランとベテランは、一番効果を発揮するペアである 意思決定をライブでできる重要性 設計上の妥協点をその場で合意できる ビギナーとベテランで、ビギナーはナビゲーターをするのか? コードを書いてるところを見てもらうのは大事なプラクティス ベテランもプレッシャーを持ってコードを書ける 見られているだけでコードの質は高まる リアルタイムでないコードレビューがあるだけで、コードの質は高まる コードレビューのインフラに投資する 流しのペアプロ業をする中で、ドメイン知識がない状態でペアプロへ参加して価値をだせるか? 一番の学びは教えることから発生する 相手から、相手自身の学びを引き出す チームの暗黙知を、暗黙知のまま伝える、強化して

    13. ペアプロやテストの疑問とか、ソフトウェアエンジニアの育成とか | fukabori.fm
    kkeisuke
    kkeisuke 2019/06/18
  • Sass Color Generator

    Sass Color Generator # / %

    kkeisuke
    kkeisuke 2019/06/18
  • JavaScript dayjsはMoment.jsの代替になるか? | nansystem

    JavaScriptの日付操作には罠が多く、業務では日付操作を簡単かつ安全に操作するライブラリが使われる。日付操作のライブラリの中でもMoment.js (opens new window)(Star数40,601)はよく知られているが、ファイルサイズが大きくパフォーマンス改善の妨げになることがある。 そこでこの記事ではより軽量でMoment.jsの代替となるdayjs (opens new window)(Star数19,872)を紹介する。 # dayjsとは dayjsとは、日付操作を簡単にするJavaScriptのライブラリだ。Moment.jsのAPIと広く互換があり、gzip圧縮されたサイズは2.71KBと軽量なのが特徴だ。 # インストール dayjsが十分Moment.jsの代わりになり得るのか確認していく。 まずはインストールして、業務で使われる日付操作をみていく。

    kkeisuke
    kkeisuke 2019/06/18
  • 17. 本当にやれることを全部やってますか? w/ takoratta | fukabori.fm

    話したネタ DECって会社は何をやっていた? IBMと7人の小人達 メインフレームに対するアンチテーゼ、ミニコンピューター NEC PC-9801が大流行した時代 この時代の日IT企業は何をしていたのか? 通産省とのタッグ 富士通、日立、NEC、日IBMで市場を分け合っていた時代 ソフトウェアはハードウェアのおまけだった SIerという名前が生まれてきた背景 当初は何と何をインテグレーションしていたのか? トークンリングとイーサネット 90年代の日技術者は、どのような開発をしていた? ユニコードがない時代なので、国際化は大変な仕事だった IT業界の下請け構造はどの時期から発生しはじめたのか? Unixがのるワークステーション vs Windowsがのるパーソナルコンピューター デヴィッド・カトラー Windows95のこの時代もUXが優れていたのはAppleだった、ただこの頃のM

    17. 本当にやれることを全部やってますか? w/ takoratta | fukabori.fm
    kkeisuke
    kkeisuke 2019/06/18
    “日本は、誰かがやったものをより良くやるので上手くいっていた民族なのでは? 他国のをまねして上手く仕上げて、外に出せばいい”
  • How do I make this loop all children recursively?

    kkeisuke
    kkeisuke 2019/06/18
    “$node.querySelectorAll("*")”
  • 【DOM基礎】要素内容の取得・設定/ノードの作成・挿入・削除 - Qiita

    // 取得 const html = element.innerHTML; // 設定 element.innerHTML = '<h1>innerHTMLプロパティでHTMLコードの設定が可能です</h1>'; // 空文字を入れることで要素内を空にできる element.innerHTML = ''; 言わずもがなよく使われるプロパティですが、HTMLコードを文字列として扱うため複雑なコードの編集にはやや不向きなところがあります。 取得する際に対象の要素内容が空の場合、空文字が返ります。 空文字を入れることで要素内のノードを削除できます。削除についてはremoveChild()を使っても可能です。 textContent webページを表示した際の要素内容のテキスト内容を表します。 // 取得 const text = element.textContent; // 設定 elemen

    【DOM基礎】要素内容の取得・設定/ノードの作成・挿入・削除 - Qiita
    kkeisuke
    kkeisuke 2019/06/18