Camlistore: Android, ARM, App Engine, anywhere.

25 June 2014

Brad Fitzpatrick

Gopher, Google

Me

2

Camlistore

3

Camlistore

4

Camlistore

Stores on:

5

Camlistore screenshots

6

Web UI

7

Location search

8

Panos

9

Paris + Portrait

10

Non-images

11

FUSE

12

Android

13

Camlistore Demo

14

Camlistore does much, in many places

15

Camlistore

does:

on:

16

Desktops, personal servers

$ go {get,build,install,test} camlistore.org/{cmd,pkg,server}/...
17

Raspberry Pi

$ GOARCH=arm GOOS=linux go build camlistore.org/server/camlistored
18

App Engine

// +build !appengine
19

Cloud

20

fileembed

Definition:

package fileembed
func (f *Files) Open(filename string) (http.File, error)

Use in Camlistore:

package server
uistatic.Files = &fileembed.Files{
    DirFallback: ui.uiDir,
    Listable:    true,
    // In dev_appserver, allow edit-and-reload without
    // restarting. In production, though, it's faster to just
    // slurp it in.
    SlurpToMemory: uistatic.IsProdAppEngine,
}
21

Camlistore's genfileembed

$ genfileembed ./path/to/dir
22

Embedding resources

23

Web server

24

FUSE

25

Android

26

Command-line tools

$ cmdtool [--global=foo] subcmd [--subcommand opts]
27

In summary

Go is awesome and runs lots of places, easily.

28

Thank you

25 June 2014

Use the left and right arrow keys or click the left and right edges of the page to navigate between slides.
(Press 'H' or navigate to hide this message.)