タグ

ブックマーク / lowreal.net (17)

  • はてブ用ブックマークレット | tech - 氾濫原

    現在の非表示ユーザの総数: javascript:(async()=>{alert((await(await fetch("http://b.hatena.ne.jp/my/ignore.json")).json()).ignore_users.length) })() http://b.hatena.ne.jp/api/my/ignore_users のほうが簡単(あたらしい)っぽい。上のAPIと数が違う。プライベートユーザを含まないとか? ↑ は405 で動かなくなっていたよくわからない。下のは動く javascript:(async()=>{alert((await(await fetch("https://b.hatena.ne.jp/api/my/ignore_users?limit=10000")).json()).users.length)})() 選択範囲に含まれるブクマユ

  • Chrome で保存したパスワードをウェブサイト側から利用する | tech - 氾濫原

    Aliexpress を利用しているとサインイン時に自動的にログインする仕組みが導入されていることに気付く。知らない人のために説明すると、以下のような挙動をする。 ログインページにいくと「Google Smart Lock で保存したアカウントを使ってログイン」というブラウザのUIが表示される そのまま「ログイン」ボタンを押すと自動的にサイトにログインしてページ遷移する セッション切れのときに My Orders などにアクセスしようとすると、一度ログインページに遷移した後、自動的にログインして My Orders ページに遷移しなおす (ログイン済みになって見れるようになる) あまり他のサイトだと見ない挙動なので最初は驚いたけど、便利。 仕組み これは Credential Management API という仕組みを使うと実現できる。現状では Chrome しか対応していないようだ。G

    Chrome で保存したパスワードをウェブサイト側から利用する | tech - 氾濫原
  • Mac でウェブカメラの定期撮影を Swift で書く | tech - 氾濫原

    macOS 用にウェブカメラからjpgを取得するコマンドラインツールにimagesnapというのがある。単発で使うには問題ないんだけど、インターバル撮影を数時間続けたところメモリをいつくして死んだため代替を書く気概になった。 毎回プロセスを立ちあげればメモリリークが起きないが、カメラデバイスを初期化する処理が数秒あって遅いので、できればちゃんとデバイスを開きっぱなしで動かしたい。 やりたいこと やりたいことはウェブカメラ経由のタイムラプスの撮影で、撮影したファイルはffmpegで読みこませる。そのためファイル名にも要件がある foobar-00001.jpg みたいなファイル名にする メモリリークしない swift で書きなおす xcrun swift で動かせるとスクリプト的に使えて便利なので、そのようにした。特に難しいことはしてないんだけど、やりかたをググっても API がのきなみ古

  • 個人サイトは終わってしまったのか - 氾濫原

    各種ブログサービスとか Twitter とかその他 SNS とか、そういうのは、ないよりはいいけど、なんか違う。どう違うか、どう違うだろう。 情報を思い出すとき「xx さんのところで見たな」と思い浮かぶのは情報そのものよりも、そのページの外観と、そこに答えがあるという組合せだと思う。 個人サイトの外観はまさに顔だ。デザインされてなさ、みたいなのも含めて。ダサくても個人サイトを持つべきだと思う。ブランディングというと大袈裟だけど、自分のコンテンツは自分で持つのが確実に良い。 何も書かないよりはASPのブログでも書いたほうが遥かにマシだけど、特定のサービスにコンテンツを一方的に提供するようなマネはしないほうが良いと思う。他人のブランドで自分のコンテンツを提供しない。ASPへのスタンスは銀行と同じで、コンテンツは預けているにすぎない。ユーザコンテンツを大事にしないASPは絶対に使わないこと。 個

  • ErgoDox ではないナニか。オープンソースかつ Bluetooth 接続のキーボード | tech - 氾濫原

    ここ数ヶ月ぐらいキーボードを作っていた。そのためにいろいろ yak-shaving としかいいようがないことも多々していた。 いろいろ書くことが多いので、細かい設計などについては別途エントリを分ける。 コンセンプトとキーレイアウトおよび技術仕様の決定 回路設計とアートワーク・実際の製作 ファームウェアの実装 あたりをそれぞれ別途詳細なエントリを書く。だいたいの人は細かいことはどうでもいいと思うので、概要のみこのエントリにまとめる。 コンセプトや特長 UNIX ベースのキーレイアウト (というかHHKBをベース) とし、違和感なしに分割キーボードとする。 キー配列 UNIX キーボードを2分割した形を基にする。つまり HHKB とほぼ同じで、Ctrl キーはAの左、ESC は 1 の左など。 矢印キーはどうしても欲しい (HHKB への大きな不満のひとつ) F1〜F12キーもできれば欲しい

    ErgoDox ではないナニか。オープンソースかつ Bluetooth 接続のキーボード | tech - 氾濫原
  • プルリクエストを送るときは大抵気が重い。 | tech - 氾濫原

    たとえ明かなバグ修正、すなわちマージされる公算が大きくても、些細なことでケチがついたりする。これがさらに機能追加みたいな「マージしてもしなくても流には関係ないね」みたいなのは、マージされる公算がさらに低くてさらに気が重い。 まずプルリクエストを送るケースってのは、別にプルリクエストを送りたくてやってるわけではなく、そのプルリクエストに含まれるコードが自分に必要だからやってるに過ぎない。つまり最悪自分のレポジトリに置いておけばいいのだが、流に取り込まれていれば今後のバージョンアップで機能が壊れることが減る (ついでに他に困ってる人がいたら助かるかもしれないね)。そういう保守的なモチベーションで動いていることであって、元気良くプルリクを送っているわけではない。 そういうわけで、大抵の場合プルリクエストを投げた時点で「XX だ! とか言われてDISられそうだ」とか「コードスタイルがあってない

  • 筋の悪さ | tech - 氾濫原

    JS しか書いてないんだなって人は筋悪いものをありがたがっていたりする印象はある。しかし筋悪いものをありがたがるみたいなのはどこにでもいるので、JSがどうとかは直接は関係がないはずではあると思う。JSしか書いてない人とPHPしか書いてない人は似たようなもんで、単に広範囲の知識に興味がないだけな気がする。 それはともかく「これは筋悪そうだな」っていう感覚がどこからくるのかよくわかってないので、現時点で思いつく限り雑にメモしておく。 割の合わなさ 「これは何の問題を解決してるんだろう」と思ってドキュメント読んだりソース読んだりした結果、大したことを解決してなくて、その割に実装量が多いとか学習コストが高いと、筋悪いなあと思う。 フットプリントや学習コストに対して提供されるモノが「割に合わない」のは筋が悪く感じる。 将来性のなさ 「あ、これはただの流行だな」みたいな、5年後には消滅してるなというも

    raimon49
    raimon49 2016/04/19
    「筋の悪さ」の言語化・細分化
  • JSDeferred -> Promise 置き換え方法 | tech - 氾濫原

    もはや Promise がスタンダードに入り、モダンな実行環境ではポリフィルすら必要なく使えるケースが増えましたね。 かくいう自分も JSDeferred は使っておらず完全に Promise 依存に切替えております。外部ライブラリ依存なんてないほうがいい!! JSDeferred と Promise の違い 機能的にはほぼ変わりがないので機械的に置き換えできますが、Promise は1度だけしか resolve できない点だけ違うので注意が必要。JSDeferred は値を保持しませんが、Promise は resolve した値を保持し、その後の then ではその値が返ってきます。 var resolver; var promise = new Promise(function (resolve, reject) { resolver = resolve; }); promise.t

    raimon49
    raimon49 2016/02/14
    >JSDeferred は遅延された (Deferred) な処理を表現していますが、Promise は未来の値に関する約束を表現している点で違いがでます (Promise は値なので継続(手続)のように扱うことはできない)
  • IdeaVim の挙動に不満があるときのストレス発散方法 | tech - 氾濫原

    https://github.com/JetBrains/ideavim ここの Development Environment を読みます。ちょっと冗長なのでまとめると 初期設定 まずは clone git clone git@github.com:JetBrains/ideavim.git 開く 普通の IntelliJ IDEA 13.1+ (Community or Ultimate) で File → Open… → clone したディレクトリまで移動して Choose SDK の設定 Cmd+; (File → Project Structure…) して、左ペインの SDKs を選択。 "+" を押して IntelliJ Platform Plugin SDK を選ぶ Name を "IntelliJ Plugin SDK" に変える (git に入ってる設定とあわせる)

    IdeaVim の挙動に不満があるときのストレス発散方法 | tech - 氾濫原
    raimon49
    raimon49 2016/02/14
    自前でIdeaVim.jarビルドして運用。
  • Markdown → PDF にする Makefile | tech - 氾濫原

    markdownHTML にして wkhtmltopdf で PDF 化する汎用 Makefile です。 Markdown で書いてプレビューするのはいいんですが、画像がちらばってしまって面倒です。PDF にしておけば1ファイルにまとまるのと、だいたいどこでも見ることができるので便利です。 # brew install markdown # http://wkhtmltopdf.org/downloads.html .SUFFIXES: .md .html .SUFFIXES: .html .pdf SRCS = ${wildcard *.md} HTMLS = $(SRCS:.md=.html) PDFS = $(SRCS:.md=.pdf) define header <!DOCTYPE html> <meta charset="utf-8"> <title>MD</title

  • 組込みでこそ C++ | tech - 氾濫原

    C++ はながいことわず嫌いだった。とにかく「難しい」というイメージだけ先行していた。 しかし、あくまで better C として使う限りでは難しくないし、可読性が上がるので、 C++ を使わない手はないという気持ちになった。 これまでの漠然とした C++ への不安 書いたコードと出てくるバイナリ C を書いていると、だいたいは書いたコードがそのままバイナリに翻訳されている感があり、安心感がある。struct はメモリ上の配置そのままだし、関数だって単に処理のまとまりに名前がついてて、呼び出しもとに自動的に戻ってくるラベルなだけだ。 C++ になるとオブジェクト指向に概念が入ってきて、これが実際どのようにコンパイルされるかに不安が出てくる。クラスはメモリ上でどう表現されているのか、メソッドディスパッチはどのように行われているか? もちろん知っている人にとっては簡単な話で class は単

  • Mac でいっぱいUSB機器を繋げない問題 | tech - 氾濫原

    一定数以上のUSBデバイスを接続すると Mac が不安定になり、内蔵キーボード・トラックパッドなどが一切効かなくなる (USB バス全体が死ぬ感じ) という状況があり、よくわからないので、怪しいハブを止めたり、新しいハブを買ってみたりしていた。 そんななか、あるハブに替えたところバスが死ぬ前にエラーメッセージがでるパターンがようやく観測された。以下の通り (Console.app で USB を grep しながら見ていた) the USB hardware ran out of device slots このエラーメッセージで検索をかけたところ、まさにこの問題のことであろうFacebook のノートがひっかかった。 どうやら Haswell ではデフォルトだとたくさん繋ぐことができないらしい。このノートでもひとまずの解決方法が示されてはいるものの、USB 3.0 バスとの併用で疑問がある

    Mac でいっぱいUSB機器を繋げない問題 | tech - 氾濫原
  • 4Kモニタ、24インチ (P2415Q) か、27インチ (P2715Q) か - 氾濫原

    最近でた安い4Kディスプレイはサイズ違いで2つある。価格もすこし違うがだいたい一緒で、サイズだけが違う。 スペック 4K は 16:9 なので、横に長いタイプしかない。 P2415Q 23.8インチ 185ppi 527.04 mm x 296.46 mm P2715Q 27インチ 163ppi 596.74 mm x 335.66 mm 検討 24インチでもA4 (210 x 297)見開き (=A3 420x297) 原寸表示は可能。ただし、A3ノビ (483x329) は原寸表示不可 (ノビ分はトンボ用なので、実質的には問題ないと思われる) 一般向け写真プリンタではA3ノビが限界なので24インチで十分な画面サイズといえる。 ppi 的には高いほうが正義なので、24インチのほうがいい。デスクトップ用だと 200ppi ぐらい欲しい気持がある。 一方、dot by dot で使った場合、

    4Kモニタ、24インチ (P2415Q) か、27インチ (P2715Q) か - 氾濫原
  • JSDeferred -> Angular $q 置き換え方法 | tech - 氾濫原

    AngularJS には $qっていう promise の枠組みがあるので、使っておくといいこと (ビューが自動的に更新されるだけだけど) がある。フレームワーク組込みの仕組みがあるのに別途 Deferred の仕組み、しかも thenable(笑) じゃない(笑) JSDeferred を読むのもバカにされると思うので、以下のように JSDeferred から Angular $q へ置き換える方法を記す。 基 JSDeferred における global な next() 関数を $q.when().then() に置き換え、Deferred#next を then() に置き換えればだいたい動く next(function () { alert(1); return next(function () { alert(2); }). next(function () { alert(

  • | tech | Wed, Feb 19. 2014 - 氾濫原

    見るたびにいちいちコードを読まないと安心して使えないライブラリなんてライブラリの価値がない。ライブラリ自体はブラックボックスになっていても、インターフェイスからその挙動を想像できるべきだ。 ライブラリを使っている側のソースを読む場合ではなく、あるライブラリを使おうとするときは、一度はライブラリの読んだほうがいいとは思うが、その目的は、そのライブラリが信頼できるかを計るためで、使いかたや、細かい挙動を確認するためではない。そして「どの程度信頼できるか」ということ、すなわちイケてるかイケてないかだけを覚えていればよい。 あるライブラリを使ったコードを読むとき、そのライブラリのソースまで毎回を読んで挙動を調べたりしなくてはいけないライブラリはインターフェイスがイケてない。ライブラリのインターフェイスが説明的になっていない。適切なインターフェイス設計がされていない。 適切なインターフェイス設計がさ

  • AngularJS の ngResource を既存APIの仕様にあわせる | angularjs | tech - 氾濫原

    AngularJS には ngResource という拡張があって、サーバに対する API 経由の CRUD 的操作を JavaScript のオブジェクトとしてラッピングできる。具体的には例えば var Entry = $resource('/entry/:id'); var entry = Entry.get({ id : 0 }, function () { entry.title = "yuno"; entry.$save(); // XHR (async) }); とかできる。ちょっとかっこいいけど、既存APIで使おうとすると、些細なフォーマットの違いで案の定使えなかったりする。どうしても使ってみたいけど、サーバサイドAPIの仕様まで変えたくない場合、若干無理矢理な方法である程度なら対応させることができる。 サーバサイドの仕様 前提として以下のような仕様だとする エントリリスト取

  • CDATA セクション内に ]]> < 07 < July < 2005 < nulog, NULL::something : out of the headphone

    Studying XML -- second step -- [ エスケープ ] (via XML の CDATA 中では ]]> のエスケープが必要)で ]]> を書くときは ]]&gt; のようにエスケープすればよいみたいなことが書かれているけど、CDATA セクション内ではそもそも & の扱いもなくなる (CDATA セクション内では ]]> のみがマークアップとして扱われる。Within a CDATA section, only the CDEnd string is recognized as markup) ので意図した挙動 (]]> がアンエスケープ) にならない。 結論をいうと CDATA セクションに ]]> をそのまま含めることは不可能で、どうしても CDATA セクションを書きたいよぅって時は二つにわけないとダメ。すなわち <!CDATA[[]]]]><CDATA[

  • 1