秋元@サイボウズラボ・プログラマー・ブログ

 

ublacklist – 検索エンジンの結果から特定ドメインを排除するブラウザ拡張

iorate/ublacklist は、グーグル検索(やその他の検索エンジン)で、検索結果から特定のドメインの結果を隠すというブラウザ拡張(Chrome, Firefox, Safari対応)です。

Chrome Store での Ublacklist拡張配布ページ

Chrome版でためしてみました。ブラウザの上部に進入禁止のようなロゴの Ublacklist ボタンが出て、そこからオプションの編集画面へ行けます。

オプションメニューでは、検索結果から排したいドメインやURLを、正規表現などで指定できます。

ublacklist拡張のオプションメニュー

とは言っても、マッチさせたいパターンを入力するのはプログラマー以外は楽ではないでしょう。

ublacklist拡張で、検索結果からサイトをブロック対象に追加

検索結果のページから、「このサイトをブロックする」でパターンを追加することもできるので、検索しながら「このサイトの結果は自分には合わないな」と思ったら追加していけば、自分のブロックリストを育てていくことができるでしょう。

メニューも説明もすべて日本語化されていますし、ブロックしたサイトのリストを他のPC間で共有したり、公開して他のユーザーに共有したりと、機能が充実していますね。オープンソースで更新も活発そうです。

業界によっては検索しても上位のページが検索エンジンに特化されたものばかりで、実際に役に立つページが見つけにくいということもあるでしょう。そういうサイトを頭で覚えて避けていくのも年功かもしれませんが、このようなツールを使って見分けるところも自動化してしまうのは仕事の効率化の一つと言えるでしょう。

どのサイトの情報が自分にとって有用かを見極めること自体が難しいこともあるでしょうし、一度ブロックしてしまうと間違いを正せなさそう、などの問題もありそうですけれど。

Hacker News では、uBlock Origin など一般的な広告ブロッカーツールなどで同様の結果を得るための設定方法も紹介されていて、これはこれでブラウザ拡張を入れる個数が増えなくていいと思います。機能特化した拡張の簡便さを取るかどうかですね。

[追記] 社内から、StackOverflow の単純機械翻訳サイト(スパムサイト)をブロックするリストの情報を教えてもらいました。これいいですね。

via uBlacklist – Block specific sites from appearing in Google search results | Hacker News

 

Small World – ツイッターの友人の居場所を世界地図にマップ

Small Worldは、Twitter でフォローしている人たちの居場所を世界地図上に書き込んでくれるwebサービスです。

サービスを利用するには、twitter 上で Small World アプリへの権限を与える必要があります。けっこうありますね。

Small World の要求する twitter の権限

フォローしているアカウントの一覧は見せないことにはサービスが成り立たないでしょう。プロフィール・メールアドレスの提供はまあいいとして、フォローしている人のprotectedなツイートを読めるようにしてしまうのは、クローズド中心でツイッターを使ってる人は心配があるかもしれません。

権限を与えてサービスにログインすると、フォローしているユーザーの公開している位置情報を基に、世界地図上にプロットしてくれます。

本人申告の居場所を地図でわかりやすく見られるわけです。さらに、ウォッチしたい地名を追加で登録し、通知の設定をしておくことによって、新たにその都市に移動してきた友人をメール通知で受け取ることができます。メール通知のサンプル文面は次のようなものだそう。

twitter 上の友人の位置は、プロフィールの場所情報および、プロフィールの表示名中に “in 地名”と書かれた場合も追跡しているということ。”in ***” の***が地名かどうかは誤動作することもありそうな気がしますけど。

「GPSで詳細に居場所を公開したいわけではないが、twitter 上での位置ぐらいなら友達に知ってほしい」という作者の意図はわかります。「近くに寄ったから」「たまたま近くに旅行中だから」でオンラインでしかやりとりしていなかった友人と会うきっかけを作れるサービスと言えます。

GitHub でClosure のソースコードも公開されています。

via Maps Mania

 

#HEXWORDS – 16進カラーコードで「意味のある単語」をまとめたサイト

HTML/CSS の色指定などで使われる16進コード、0から9とA,B,C,D,E,F までの16文字を使って16進数でRGBの三原色の割合を示すものです。3桁(#3C3)や6桁(#BD2031)で使われます。

#3C3

#BD2031

16文字の中にアルファベットが6文字入っているので、数値によっては英単語のように見えるものもあります。(たとえば #DECAFE)

これに、0から9までの数字を似た形のアルファベットに見立てて英文を読みにくくし、仲間うちだけで通じるようにする リートスピーク(leetspeek) を組み合わせると、6桁の色コードの中に英単語として読めてしまうものの数がぐっと増えてきます。

この英単語として読めてしまうような16進コードを集めたのが#HEXWORDSというサイト。

#HEXWORDS トップ

サイトには検索機能もあり、使いたい色コードを入れて、その色に近いもので英単語っぽいものを列挙してくれます。

#HEXWORD の検索例

Hacker Newsのスレッドでは、「認識できる英単語と、その16進コードが表示する色の間に関係があるものがあるのでは?」という問いかけが出て、何人もの人がそれっぽいコードを発見・披露しています。

#C0A575 (COASTS, 海岸 – 砂っぽい色?)

#5A6E57 (SAGEST, セージの葉 – 葉っぱの色)

#CABB1E (CABBIE, キャブ – イエローキャブタクシーの色)

このサイトは英単語を列挙していますが、ローマ字で日本語として意味を成すものも探せば日本語版を作ることもできそうですね。

Webサイトのソースコード中に含まれる色のコード、一般的には意識することもないと思います。

なのでこのサイトの実用性はそれほどないでしょうけれど、何か平凡なwebページの中に隠れた情報を埋め込んでおき、色コードを登場順に読んでいくと文章が浮かび上がって情報を伝える、みたいなお遊びをするときに役立つかもしれません。

via Hacker News

 

EndBASIC – Rustで書かれたBASICインタプリタ+環境

フリオ・メリノさん(Julio Merino)によるBASIC処理系プロジェクト EndBASICは、新たに書き起こされたBASICインタプリタに、MS-DOS風のコマンドラインを組み合わせたBASIC言語の処理系です。

EndBASIC サイトトップ

BASIC としての文法や機能は、Amstrad CPC という1980年代の8bitパソコンで動いたLocomotive BASICや、マイクロソフトのQuickBASIC を意識したものとなっているそう。

Linux/MacOS/Windows のバイナリをダウンロードして手元で動かすこともできますが、ブラウザ上でも動く環境が公開されています。

Rust で書かれた処理系が WebAssembly で動いているということで、昔からあるBASIC 言語を最新の技術と組み合わせているんですね。QuickBASIC で書かれたプログラムを少し直してウェブで公開、なんてことにも使えるかもしれません。

環境にはCUIエディタも内蔵されており、編集したファイルは環境内に保存することもできます。フラットに保存しファイル名で区別。ディレクトリについては今後の実装を検討ということ。また「ドライブ」を複数作ることができるのでドライブでの整理もできそうです。

EndBASIC のサンプルコード

BASIC言語ではよくある行番号機能は、GO TO 命令と共に省かれています。そのうち実装するかもということですが、分岐とループ命令でおおかたは問題ないかと思います。

面白いのはクラウド対応機能で、ユーザー登録するとユーザー名以下に置いたファイルを他ユーザーと共有できるようになります。

Raspberry PI で動かした時はGPIOにアクセスできる命令が提供されていて、ボタンやLEDなどの入出力が使えるそう。これも教育用としてよさそう。

今はプログラミングに入門する時の言語も多数候補がありますが、昔は入門言語といえばBASICが主流ということもありました。プロジェクトでは、プログラムとプログラムを動かす環境が最小限でセットになっていることで、セットアップの苦労なしにプログラミングの学習ができるようにすることを目指しているそう。

via Hacker News

 

Regexアドベンチャー – 正規表現で戦うダンジョンRPG

Regex Adventure は、正規表現を解くことで進むことができるゲームアプリです。

Regex Adventure サイトトップ

Windows / Linux / Mac 版が用意されているアプリは、レベル8 まで遊べる無料のデモ版と、追加で20面以上のレベルを含んだ$6.99(660円) の有料版がダウンロード可能です。

Regexアドベンチャー チュートリアル面

デモ版で遊んでみました。各レベルの目的は迷宮のゴールを目指す事。カーソルキーで上下左右に移動し、接敵したら Enter キーで戦闘モードに入ります。

攻撃は敵モンスターの名前に対して、マッチする正規表現を入力することで行われます。ただし、正規表現として入力できる記号は大きく制限されています。ダンジョンの途中で紫色のオーブを拾うことで使える記号が増えることもあります。

例えば、”ant” という名前の敵を倒すのに”.”と”a”のオーブだけを持っていれば、”…”とか”a..”といった入力でなければ相手にダメージを与えることができません。

戦闘の様子

複数の敵と接敵した場合、それらに共通する正規表現を作ることができれば、複数攻撃となります。複数攻撃しないと、生き残った敵の反撃をうけてしまいます。

また、敵の近くに味方が配置されている場合、味方の名前も該当してしまうような正規表現で攻撃すると、味方に流れ弾が当たってしまいます。

味方を攻撃せずに相手にだけダメージを与えるには

流れ弾を当てないように、手持ちのオーブを使って正規表現を組み立てなければならず、レベルを上げていくごとに新しい正規表現の使い方を増やしていけないと、勝つのが難しくなっていくというわけです。

via reddit/programming

関連

RegexOne – 正規表現を段階的に学べるインタラクティブ・チュートリアル