Node.JSとSocket.IO


Socket.IOは、イベントベースのリアルタイム双方向通信を可能にします。

このページ、https://socket.io/get-started/chat/は、非常に良い出発点になるでしょう。

私の意図としては、私のIC-7410制御プログラムを書き直して、ウェブベースのサービスを実現したいのです。

Dereliction of Duty

screen-shot-2017-02-21-at-19-57-24

国家安全保障担当補佐官、H. R. McMasterのDereliction of Duty: Lyndon Johnson, Robert McNamara, The Joint Chiefs of Staff, and the Lies that Led to Vietnam.

ほんの少し眺めただけですが、面白そうでした。

screen-shot-2017-02-21-at-20-23-31

国税庁のe-Taxの話し

ta_to_etax_on
efile

もし、あなたが日本に住んでいるのであれば、あなたは国税庁のe-Taxサービスにも興味があるかも知れません。

sierramini
screen-shot-2017-02-16-at-6-31-57

しかし、あなたが最新のmacOSとSafariしか持っていなければ、マイナンバーカードの情報を送信する段階で問題に出くわすかも知れません。

screen-shot-2017-02-16-at-6-42-23

解決するコツは、SafariではなくFirefoxを使うことです!

screen-shot-2017-02-16-at-6-32-22

MacTex

screen-shot-2017-02-06-at-16-45-50

MacTeXは、OS X用のTeX Liveをインストールするためのパッケージです。.

オンラインのLaTex数式エディタで、あなたが表示したい数式の画像を得ることもできますが、手元に完全な一式があるのは良いことです。

正直に言って、一々全てに反応するのはとっくに止めた

macain

Republican Sen. John McCain at time 00:40.


“A long time ago, honestly, I’ve stopped reacting to everything that the President has stated and try to work on the issues and the people who he is going to surround himself with, who I am very pleased with as far as national security is concerned.”

http://edition.cnn.com/2017/01/24/politics/mccain-no-evidence-of-illegal-voting-cnntv/index.html

代替的な事実

conway
http://www.nbcnews.com/meet-the-press/video/conway-press-secretary-gave-alternative-facts-860142147643

Washington (CNN) — White House press secretary Sean Spicer’s false claims about the size of the crowd at President Donald Trump’s inauguration were “alternative facts,” a top Trump aide said Sunday.

atlantic
https://www.theatlantic.com/politics/archive/2017/01/inauguration-crowd-size/514058/

まあ、予想されたことではありますが。。

COCA: Vibroplex

vibroplex

私たちにとって馴染み深い単語や語句でCOCAを試してみましょう。

vibroplex2

検索結果は3つしかありませんが、そのうちの2つは非常に興味深いです。

I didn’t like this guy because he used a Vibroplex semi-automatic speed key and sent his messages too fast. He had a lousy ” fist. ” His dashes were too short — you could easily take them for dots — and his spacing between word groups was erratic. He also bragged too much about his rig. A thousand watts generated by a pair of big Eimac tetrodes in the final amplifier. Anybody could do that if they had the money.

He told me that since his stroke, he’d felt as if he were trapped in the radio room with the door locked from the outside. The receiver was still working, but the transmitter was broken. He couldn’t talk back to anyone. He’d been tapping away with a spoon for days, even though he’d given up hope of being ” rescued. ” Paralysis of his right side had prevented him from writing any messages. # I brought to the hospital an old Vibroplex Sidewinder telegraph key, which was Harry’s favorite for sending Morse code. Harry had spent a good part of his life on oceangoing freighters as a radiotelegraph operator. He told me a story of something that had happened at sea several days before the attack on Pearl Harbor.

COCA

coca1

COCA, the Corpus of Contemporary American English,は無料で得られる最大の英語のコーパスです。

coca2

あなたの探したいフレーズを入力すると、直ちに結果が得られます。

coca3

UIKitとSpriteKit(3)

素敵なアニメーションはまだありませんが、プレイをすることが可能です。

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        guard let touch = touches.first else { return }
        let location = touch.location(in: cookiesLayer)
        let (success, col, row) = convertPoint(location)
        if success {
            if level.getTableAt(col: col, row: row) == 0 { // an empty place is selected, so highlight it.
                rowSelected = row
                colSelected = col
                if selectedSprite != nil {
                    selectedSprite.run(SKAction.removeFromParent())
                }
                selectedSprite = SKSpriteNode(imageNamed: "Undef-Highlighted")
                selectedSprite.size = CGSize(width: TileWidth, height: TileHeight)
                selectedSprite.position = pointFor(col: colSelected, row: rowSelected)
                selectedLayer.addChild(selectedSprite)
                showCandidate(col: colSelected, row: rowSelected)
            } else if row == 10 { // number selected
                numberSelected = true
                numberToMove = col + 1
                if level.isSafeForNum(col: colSelected, row: rowSelected, num: numberToMove) {
                    level.setTableAt(col: colSelected, row: rowSelected, val: numberToMove)
                    let sprite = SKSpriteNode(imageNamed: spriteNames[numberToMove]+"-Highlighted")
                    sprite.size = CGSize(width: TileWidth, height: TileHeight)
                    sprite.position = pointFor(col: colSelected, row: rowSelected)
                    userLayer.addChild(sprite)
                    level.setTableAt(col: colSelected, row: rowSelected, val: -numberToMove)
                    if selectedSprite != nil {
                        selectedSprite.run(SKAction.removeFromParent())
                    }
                }
            } else if level.getTableAt(col: col, row: row ) < 0 { // cancel move
                rowSelected = row
                colSelected = col
                level.setTableAt(col: col, row: row, val: 0)
                let location = touch.location(in: self)
                let sprite: SKNode? = atPoint(location)
                sprite?.run(SKAction.removeFromParent())
                if selectedSprite != nil {
                    selectedSprite.run(SKAction.removeFromParent())
                }
                selectedSprite = SKSpriteNode(imageNamed: "Undef-Highlighted")
                selectedSprite.size = CGSize(width: TileWidth, height: TileHeight)
                selectedSprite.position = pointFor(col: col, row: row)
                selectedLayer.addChild(selectedSprite)
                showCandidate(col: col, row: row)
            }
        }
    }

プログラムは、非常に美しくありません。

UIKitとSpriteKit(2)

空白の場所をクリックすると、そこに入れることのできる数字が表示されます。

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        guard let touch = touches.first else { return }
        let location = touch.location(in: cookiesLayer)
        let (success, column, row) = convertPoint(location)
        if success && level.tableAt(column: column, row: row) == 0 {
            if row_touchedb4 >= 0 { // not the first time, recover to the original state
                let num = level.tableAt(column: column_touchedb4, row: row_touchedb4)
                print(row_touchedb4, column_touchedb4, num)
                let sprite = SKSpriteNode(imageNamed: spriteNames[num])
                sprite.size = CGSize(width: TileWidth, height: TileHeight)
                sprite.position = pointFor(column: column_touchedb4, row: row_touchedb4)
                cookiesLayer.addChild(sprite)
                selectionSprite.run(SKAction.removeFromParent())
            }
            column_touchedb4 = column
            row_touchedb4    = row
            let location = touch.location(in: self)
            let sprite: SKNode? = atPoint(location)
            sprite?.run(SKAction.removeFromParent())
            selectionSprite = SKSpriteNode(imageNamed: "Undef-Highlighted")
            selectionSprite.size = CGSize(width: TileWidth, height: TileHeight)
            selectionSprite.position = pointFor(column: column, row: row)
            cookiesLayer.addChild(selectionSprite)
            showCandidate(column: column, row: row)
 }

プログラムは、まだまだ改良の余地があります。