あの「Hacker News」で ベストなストーリーを見つける方法

おもしろ技術系ネタ満載な「Y Combinator」が運営する「Hacker News」.

スタートアップやハックのニュースが主体で、まさにこのブログでカバーしてる領域だからだ。こちらで一度も名前聞いたことないスタートアップの情報を掘り出す場としてはベストに入る。さらに素晴らしいのが、サイトに寄り付く仲間に嫌な野郎がいないことだ。コメントを見ても参考になる情報や考えさせるもの、面白いのがほとんどだ。

私が朝一番に読む『Hacker News』という無名のサイト | TechCrunch Japan

Little Known Hacker News Is My First Read Every Morning | TechCrunch

サイトを見る限り, 「人気記事順」や「リンク数順」の記事カテゴリーリンクが見当たらない.

Hacker_News

しかし, それらを確認できるアプリがあったりする.

20160107-224126

Hacker News Reader (翻訳) - Google Play の Android アプリ

調べてみると, サイトのトップページからのリンクはないが, 存在している, 公式で.

Top_Links___Hacker_News

Top Links | Hacker News

ここらから見ていくのがいいのだろう.


Android で よくある正規表現を使えるやつ

そもそもは Linkify のWEBリンクがなんだかな, と思い.

device-2011-08-23-153643

使えそうなよくある正規表現がいくつか用意されていたのですな.

public static final Pattern WEB_URL = Pattern.compile(
    "((?:(http|https|Http|Https|rtsp|Rtsp):\\/\\/(?:(?:[a-zA-Z0-9\\$\\-\\_\\.\\+\\!\\*\\'\\(\\)"
  + "\\,\\;\\?\\&\\=]|(?:\\%[a-fA-F0-9]{2})){1,64}(?:\\:(?:[a-zA-Z0-9\\$\\-\\_"
  + "\\.\\+\\!\\*\\'\\(\\)\\,\\;\\?\\&\\=]|(?:\\%[a-fA-F0-9]{2})){1,25})?\\@)?)?"
  + "(?:" + DOMAIN_NAME + ")"
  + "(?:\\:\\d{1,5})?)"
  + "(\\/(?:(?:[" + GOOD_IRI_CHAR + "\\;\\/\\?\\:\\@\\&\\=\\#\\~"
  + "\\-\\.\\+\\!\\*\\'\\(\\)\\,\\_])|(?:\\%[a-fA-F0-9]{2}))*)?"
  + "(?:\\b|$)");
public static final Pattern PHONE
  = Pattern.compile(                
      "(\\+[0-9]+[\\- \\.]*)?"      
    + "(\\([0-9]+\\)[\\- \\.]*)?"   
    + "([0-9][0-9\\- \\.]+[0-9])"); 
public static final Pattern EMAIL_ADDRESS
  = Pattern.compile(
    "[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" +
    "\\@" +
    "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" +
    "(" +
        "\\." +
        "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" +
     ")+"
  );

platform_frameworks_base/Patterns.java

すぐにそのまま使おう.


if (Patterns.WEB_URL.matcher(text).find()) {
  // do something
}

「厳格なのか?」でフィルターをつける場合.

// A match filter that only accepts odd numbers.
MatchFilter oddFilter = new MatchFilter() {
    public final boolean acceptMatch(CharSequence s, int start, int end) {
        int n = Character.digit(s.charAt(end-1), 10);
        return (n & 1) == 1;
    }
};

// Match all digits in the pattern but restrict links to only odd
// numbers using the filter.
Pattern pattern = Pattern.compile("[0-9]+");
Linkify.addLinks(text, pattern, "http://...", oddFilter, null);

Android Text Links Using Linkify


Android Code Style で インデントはスペース何個?

Android Studioデフォルトのスペース4個ではなんとなく不自由に思えてきた,インデント.

今どきは何個なのか.

Google の Code Style としては「2個」.

Android のコーディング時にAndroidStudioにセットしておくといい2つのXMLファイル

その他どんな雰囲気なのか.

square も「2個」.

java-code-styles_Square_xml_at_master_·_square_java-code-styles

java-code-styles/Square.xml at master · square/java-code-styles

XMLもスペース2個ででいいように思えるのだが.

CodeStyle__Java_·_ogaclejapan_android-code-styles_Wiki

CodeStyle: Java · ogaclejapan/android-code-styles Wiki

CodeStyle__XML_·_ogaclejapan_android-code-styles_Wiki

CodeStyle: XML · ogaclejapan/android-code-styles Wiki

いまや, コードもXMLも2個か.

square のスタイルにしとこうかな.

Installation

- Run the install.sh script.
- Restart IntelliJ if it's running.
- Open IntelliJ Project Settings -> Code Styles, change the code style for the project to the one you want.

Preferences

sh 1個叩くだけで設定に追加してくれます.

square/java-code-styles