Swiperを使って、ブラウザでプレゼンのスライドを回す。
プレゼン用の仕組みは色々あるが、
Swiperはionicでも採用されていて、
洗練されていて信頼もできそうだったので使ってみた。
ページ切り替えのデモ
があったので、それを自分なりに整理してみた。
ライセンスはMIT。
スライドが遷移するとき、そのページ数と時刻を記録に取るようにしている。
Swiper
のインスタンス化のときのオプションで、
import Control.Arrow | |
import qualified Data.ByteString.Char8 as B | |
type Stack = ([Int], Int) | |
height :: Stack -> Int | |
height = snd | |
pop :: Stack -> Stack | |
pop (x:xs, h) = (xs, h-x) | |
go :: (Stack, Stack, Stack) -> Int |
import Control.Monad.Trans | |
import Control.Monad.Trans.Maybe | |
import Control.Monad.Trans.Reader | |
import Control.Monad.IO.Class | |
import System.Random | |
type DescReaderIO = ReaderT Int IO | |
main = do | |
fd <- openSth "foo.txt" |
Swiperを使って、ブラウザでプレゼンのスライドを回す。
プレゼン用の仕組みは色々あるが、
Swiperはionicでも採用されていて、
洗練されていて信頼もできそうだったので使ってみた。
ページ切り替えのデモ
があったので、それを自分なりに整理してみた。
ライセンスはMIT。
スライドが遷移するとき、そのページ数と時刻を記録に取るようにしている。
Swiper
のインスタンス化のときのオプションで、
Bootstrapを使って、簡単にデザイン
デザインの微調整はよく手こずるので、
Bootstrapで簡単に済ます。
ドキュメントを見ながら適当にやるだけで、
普段よりかなりマシになった(普段のデザインがダメすぎる…)。
container
やら、table
やらalert
のクラスを使った。
あまり理解していなくても、
ドキュメントを見つつ実験すれば一応何とかなる感じ。
AWSのLambdaで、DynamoDBにデータを突っ込む。 LambdaではPython等も使えるが、昔からあるnodeを素直に使った。 入り口は、インタネットからAPI Gatewayで。
exports.handler
に実行したい関数を設定する。
DynamoDBはスキーマレスで、カラム定義なしに色々データを突っ込める。
が、レコードのカラムには、S
という不思議なものを渡す。
API Gatewayでは、宛先となるリソースやメソッドを定義する。 パラメータは、node側で取り出すのではなく、
import Clr.Inline | |
rotate :: (Double, Double) -> Double -> IO (Double, Double) | |
rotate (x, y) t = do | |
rotated <- [fsharp| System.Numerics.Complex { | |
let org = new System.Numerics.Complex(($x:double), ($y:double)) | |
let r = new System.Numerics.Complex(cos ($t:double), sin $t ) | |
org * r | |
} |] | |
x' <- [fsharp| double { ($rotated:System.Numerics.Complex).Real } |] |
import Language.R.Instance(runRegion) | |
import Language.R.QQ | |
xorLearnAndPredict :: [[Double]] -> IO () | |
xorLearnAndPredict table = do | |
let [xs, ys, zs] = table | |
runRegion $ do | |
[r| | |
library("neuralnet") |
Mac上のMonoから、Rを呼んでみる。
Rの統計関係の関数や簡単な描画機能は、たまに使いたくなることがある。
だが、Rは統計向けなので、イベントやネットワークといった、
一般のプログラミングでよくやる手法がイマイチわかりにくい。
とはいえ、その勉強にわざわざ労力を割きたくもない。
.NetからRを呼ぶR.NETというライブラリがあるので、
それを使うのが良さそう。
逆に、Rから.Netを使うには、R側のパッケージがあるらしい。
import java.util.*; | |
import static spark.Spark.get; | |
import spark.ModelAndView; | |
import spark.template.velocity.*; | |
public class HelloSpark { | |
public static void main(String[] args) { | |
get("/", (req, res) -> { | |
Map<String, Object> model = new HashMap<>(); | |
model.put("title", "favorite food"); |
using System; | |
class I2CController { | |
static void Main() { | |
string i2cFilename = "/dev/i2c-1"; | |
int i2cAddress = 0x68; | |
try | |
{ | |
var reader = I2CReader.Open(i2cFilename, i2cAddress); | |
byte x = reader.GetDataAt(0x80); |