micro:bit プログラミング可能な小さなコンピュータ

プログラミング可能な小さなコンピュータ
http://microbit.org/ja/

Amazonで書籍を見つけるまで知りませんでした。

micro:bitではじめるプログラミング ―親子で学べるプログラミングとエレクトロニクス (Make:PROJECTS)

「micro:bitではじめるプログラミング――親子で学べるプログラミングとエレクトロニクス」はオライリージャパンから11/25に発売されます。

オライリージャパンの書籍紹介より
micro:bitは、イギリス生まれのSTEM教育用マイコンボードです。英国放送協会(BBC)が主体となって開発したこのボードには、ボタンスイッチ、LED、加速度センサー、光センサー、地磁気センサー、温度センサー、BLE(Bluetooth Low Energy)などが搭載されており、これ1つでさまざまな動きを表現できます。また、ブラウザ上でブロックを組み合わせるだけでプログラムを作れるので、子どもでもかんたんにプログラミングを習得することができます。本書では、はじめてマイコンボードに触れる小学校高学年以上を対象に、ハードウェアの基本からプログラミングのしかた、さまざまな作品の作り方までをていねいに解説。親子で学ぶプログラミングとエレクトロニクスの入門書にぴったりの一冊です。

ボタン、LED、センサーと色々搭載されているとのことです。
学習用にいいですね。

Amazonで購入できます。

BBC micro:bit (マイクロビット)

JavaScriptブロックエディター、Pythonエディター、AndroidとiOSのアプリと環境は揃っているようですね。

1台購入してみようかな。。。

JJUG CCC 2017 Fall memo

JJUG CCC 2017 Fall
http://www.java-users.jp/ccc2017fall/

参加セッション
・サーバサイドKotlin
・Java SE 9の紹介: モジュール・システムを中心に
・オレオレJVM言語を作ってみる(四則演算するだけだけど)

「オレオレJVM言語を作ってみる(四則演算するだけだけど)」memo
使用しているもの
ANTLR:http://www.antlr.org
Truffle:https://github.com/graalvm/graal/tree/master/truffle
EBNF:https://ja.wikipedia.org/wiki/EBNF

PDFKitフレームワークを試す。usePageViewControllerを使うと、色々いらなくなる。

PEAKS「iOS 11 Programming」第10章 PDF Kitを読んでPDF Kitをお試し。
https://peaks.cc

Example:usePageViewControllerを使ってみる。色々いらなくなる。

ViewController.swift

import UIKit
import PDFKit

class ViewController: UIViewController {
    
    @IBOutlet weak var pdfView: PDFView!

    var document:PDFDocument? = nil
    var filePath:URL? = nil

    override func viewDidLoad() {
        super.viewDidLoad()
        
        pdfView?.autoresizingMask = [.flexibleWidth, .flexibleHeight]
        pdfView?.displayMode = .singlePage
        pdfView?.displayDirection = .horizontal
        pdfView?.displaysPageBreaks = false
        pdfView?.autoScales = true
        pdfView?.usePageViewController(true, withViewOptions: nil)
        if filePath == nil {
            document = PDFDocument(url: Bundle.main.url(forResource: "PDFKitTest", withExtension: "pdf")!)
        }
        else {
            document = PDFDocument(url: filePath!)
        }
        pdfView?.document = document
        print(pdfView.frame)
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
    
    func dispPDF() {
        if filePath == nil {
            document = PDFDocument(url: Bundle.main.url(forResource: "PDFKitTest", withExtension: "pdf")!)
        }
        else {
            document = PDFDocument(url: filePath!)
        }
        pdfView?.document = document
    }
    
}

AppDelegate.swift

import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        return true
    }

    func applicationWillResignActive(_ application: UIApplication) {
        // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
        // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.
    }

    func applicationDidEnterBackground(_ application: UIApplication) {
        // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
        // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
    }

    func applicationWillEnterForeground(_ application: UIApplication) {
        // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
    }

    func applicationDidBecomeActive(_ application: UIApplication) {
        // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
    }

    func applicationWillTerminate(_ application: UIApplication) {
        // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
    }
    
    func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
        let viewController = app.windows[0].rootViewController as! ViewController
        viewController.filePath = url
        viewController.dispPDF()
        
        return true
    }

}