読者です 読者をやめる 読者になる 読者になる

手書きモダンHTMLのためのお役所仕事的所作(最低限必要なもの)

Plain HTML with a few bureaucratic gestures | Mark J. Nelson

最近のHTMLについてのしょうもないお作法について書かれたありがたい記事。

  • バイル向けに<meta name=viewport content="width=device-width, initial-scale=1">をセットするべき*1
  • <meta charset=utf-8>する
    • 別解としてたとえばApache.htaccessAddCharset UTF-8 .htmlするとブラウザにUTF-8であるというヘッダを送ってくれるが、ローカル環境でページを見ようとすると結局文字化けする可能性がある。
  • `<!DOCTYPE html>する
    • いわゆるquirks modeである。消えて欲しい
  • max-widthを設定するべき(css)
    • 横幅がめっちゃ広いスクリーンを使ってる人がいて、テキストが端から端まで広がっているのを読むのはメチャ苦痛

*1:バイルブラウザの登場が遅かったという歴史的経緯からこういう残念なメタタグを書く羽目になっている

ネタ

medium rare

なんか最近のウェブ肥大しすぎ、という意見を、js/css肥大しすぎなmediumで書いてた奴がいたんすよ。という皮肉なコメントをモチベーションとして、じゃあgoでproxy立ててhtmlマエショリしちゃえばいいんじゃね? ということをやった記事。mediumにターゲットを絞ったおかげで本文抽出のような難しいことをせずに済んでいるのがミソ。

へなちょこーど

写経+練習問題解いたやつ。言語になるといいですね。

かんけいないけどふらすくがよーわからんのでうぇぶさーばじさくするところからべんきょうしたい。

INTEGER, PLUS, MINUS, MUL, DIV, SPACE, EOF = 'INTEGER', 'PLUS', 'MINUS', 'MUL', 'DIV', 'SPACE', 'EOF'
OPS = [PLUS, MINUS, MUL, DIV]

class Token:
    def __init__(self, type, value):
        self.type = type
        self.value = value

    def __str__(self):
        return 'Token({type}, {value})'.format(
                    type=self.type,
                    value=repr(self.value)
                )

    def __repr__(self):
        return self.__str__

class Interpreter:
    def __init__(self, text):
        self.text = text
        self.pos = 0
        self.current_token = None

    def error(self):
        raise Exception("Error parsing input")

    def get_next_token(self):
        text = self.text

        if self.pos > len(text) - 1:
            return Token(EOF, None)

        current_char = text[self.pos]

        if current_char.isdigit():
            token = Token(INTEGER, int(current_char))
            self.pos += 1
            return token

        if current_char == '+':
            token = Token(PLUS, current_char)
            self.pos += 1
            return token

        if current_char == '-':
            token = Token(MINUS, current_char)
            self.pos += 1
            return token

        if current_char == ' ':
            self.pos += 1
            return Token(SPACE, current_char)

        self.error()

    def eat(self, token_type):
        if isinstance(token_type, str):
            if self.current_token.type == token_type:
                self.current_token = self.get_next_token()
            else:
                self.error()
        if isinstance(token_type, list):
            if self.current_token.type in token_type:
                self.current_token = self.get_next_token()
            else:
                self.error()


    def eat_many(self, token_type):
        while self.current_token.type == token_type:
            self.eat(token_type)

    def run(self):
        self.current_token = self.get_next_token()

        self.eat_many(SPACE)

        left = self.current_token
        self.eat(INTEGER)
        while self.current_token.type == INTEGER:
            left.value = left.value*10 + self.current_token.value
            self.eat(INTEGER)

        self.eat_many(SPACE)

        op = self.current_token
        self.eat(OPS)

        self.eat_many(SPACE)

        right = self.current_token
        self.eat(INTEGER)
        while self.current_token.type == INTEGER:
            right.value = right.value*10 + self.current_token.value
            self.eat(INTEGER)

        self.eat_many(SPACE)

        if op.type == PLUS:
            result = left.value + right.value
        elif op.type == MINUS:
            result = left.value - right.value
        elif op.type == MUL:
            result = left.value * right.value
        elif op.type == DIV:
            result = left.value / right.value
        return result

def main():
    while True:
        try:
            text = input('calc> ')
        except EOFError:
            break
        if not text:
            continue
        interpreter = Interpreter(text)
        result = interpreter.run()
        print(result)

if __name__ == '__main__':
    main()

ドナルド・トランプのツイートを元に株式取引を行うPythonスクリプト

ジョークプログラムだと思うがWeb APIマッシュアップとしては秀逸だと思った(こなみ

maxbbraun/trump2cash: A stock trading bot powered by Trump tweets

  • Twitter Streaming APIで発言をリアルタイム抽出
  • Google Cloud Natural Language APIで固有表現抽出と感情分析を行う
    • 企業名を取り出し、それについての発言がポジティブかネガティブかを判断する
  • Wikipedia Query Serviceで会社情報を手にいれる
  • TradeKing APIで取引を実行する
  • Google Cloud Platformで動かすようだがよくしらね

Hacker Newsのほうでなんか株とか詳しそうな人たちが話してるけどこれもーよーわからんね。

Trump2cash – A stock trading bot powered by Trump tweets | Hacker News

CPythonの開発が今週金曜日(2017.02.10)にGitHubに移行予定

掲題の通り。

[Python-Dev] GitHub migration scheduled for Friday

日本時間だと土曜日ごろになるだろうけど、これからはIssue眺めたりして開発追っちゃおっかなー♪

覚えといてぽえー

ゲームつくりたくてちまよっていろいろ浮気してた。

でも本気でつくりたいならやっぱHMHやろうな、という結論になった。

なので明日以降のわたしは今日の結論を肝に銘じてください。

浮気はやめなくていいんだけど、ちゃんとやらないといつまでもちゃんとできません(説教)