Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
arrow + ergo
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Romain François
July 12, 2018
Programming
400
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
arrow + ergo
Presentation at useR! 2018, Brisbane.
Romain François
July 12, 2018
More Decks by Romain François
See All by Romain François
dplyr 1.0.0 / Paris R-addicts
romainfrancois
0
260
dplyr 1.0.0
romainfrancois
1
1.3k
dplyr episode 9, summarise() of the vctrs
romainfrancois
0
1k
dplyr episode 9: summarise() of the vctrs
romainfrancois
0
370
n() cool #dplyr things
romainfrancois
2
3k
dance
romainfrancois
0
310
rap and splice girls
romainfrancois
0
430
rap
romainfrancois
0
140
ergo
romainfrancois
0
290
Other Decks in Programming
See All in Programming
AI に Inclusive UI を書かせよう — Design Rules Skill で Compose UI を作り直す
theoriatec2024
1
500
Intent as Code
shoppingjaws
6
1k
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
150
FreeBSDでZabbixを動かす
kenkino
0
310
動作中のプログラムの中身をリアルタイムに覗く / Realtime Debugger for CSharp with Roslyn
prota
1
610
App Intentsのビルドプロセスを支える技術
kntkymt
0
400
Webの地図
yosuke_furukawa
PRO
6
4.6k
『寄り添うラジオ』をAIで作る 体験価値から逆算した、会話しないUXと品質設計
theoriatec2024
3
180
新卒PdEのリアル
ryu1013
1
510
WebMCP Challenge に星空観察アプリで参加した話
okajun35
0
180
そのリトライ、死んだコネクションを使い回していませんか ── GoのHTTPクライアントとHTTP/2を実プロダクト障害から学び直す
myus4a
0
160
LoopHub - ローカルで動く GitHub で、AI と共同開発
jugyo
1
560
Featured
See All Featured
Thoughts on Productivity
jonyablonski
76
5.4k
A Modern Web Designer's Workflow
chriscoyier
699
190k
Marketing to machines
jonoalderson
1
5.8k
Making the Leap to Tech Lead
cromwellryan
135
10k
Building Adaptive Systems
keathley
44
3.2k
How to build a perfect <img>
jonoalderson
1
6k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
810
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
Statistics for Hackers
jakevdp
799
230k
Transcript
http://bit.ly/romain-useR2018 aerrrgow
[email protected]
@romain_francois ergo arrow
None
None
None
cross-language development platform for in-memory data Apache Arrow
None
future •sparklyr integration •dplyr backend •...
[email protected]
@romain_francois e r go
None
None
•Open source •Google •Simple •Fast enough •Concurrent
https://www.docker.com
https://bookdown.org/yihui/blogdown/
https://www.rstudio.com/products/connect/
package main import "fmt" func fahrenheit(celcius float64) float64 { return
celcius * 1.8 + 32 } func main() { var freezing float64 = fahrenheit(0.0) boiling := fahrenheit(100.0) fmt.Printf("Water freezes at %4.2f F\n", freezing) fmt.Printf("Water boils at %4.2f F\n", boiling) }
package main import "fmt" func fahrenheit(celcius float64) float64 { return
celcius * 1.8 + 32 } func main() { var freezing float64 = fahrenheit(0.0) boiling := fahrenheit(100.0) fmt.Printf("Water freezes at %4.2f F\n", freezing) fmt.Printf("Water boils at %4.2f F\n", boiling) }
$ go run fahrenheit.go Water freezes at 32.00 F Water
boils at 212.00 F
purrple.cat/tags/go/
purrple.cat/tags/go/
None
library(rvest) library(glue) library(fahrenheit) library(tibble) library(dplyr) temperature <- function(where){ glue("https://wttr.in/{where}") %>%
read_html() %>% html_node("span:nth-child(3)") %>% html_text() %>% as.numeric() } temperature("Brisbane") %>% tibble(celcius = .) %>% mutate(fahrenheit = fahrenheit(celcius)) #> # A tibble: 1 x 2 #> celcius fahrenheit #> <dbl> <dbl> #> 1 20 68 #' Created on 2018-07-12 by the [reprex package](http://reprex.tidyverse.org) (v0.2.0).
$ tree . !"" DESCRIPTION !"" NAMESPACE !"" R #
$"" fahrenheit.R !"" fahrenheit.Rproj !"" man $"" src !"" Makevars !"" fahrenheit.h !"" fahrenheit.so $"" go $"" src !"" fahrenheit # $"" fahrenheit.go $"" main !"" main.c $"" main.go 7 directories, 10 files fahrenheit main } }
package fahrenheit func Fahrenheit(celcius float64) float64 { return celcius *
1.8 + 32 } src/go/src/fahrenheit/fahrenheit.go
package main import "C" import "fahrenheit" //export Fahrenheit func Fahrenheit(x
float64) float64 { return fahrenheit.Fahrenheit(x) ; } func main() {} src/go/src/main/main.go
#include <R.h> #include <Rinternals.h> #include "_cgo_export.h" SEXP _fahrenheit(SEXP x){ return
Rf_ScalarReal(Fahrenheit(REAL(x)[0]); } src/go/src/main/main.c
#' @useDynLib fahrenheit #' @export fahrenheit <- function(celcius) { .Call("_fahrenheit",
celcius, PACKAGE = "fahrenheit" ) } R/fahrenheit.R
.PHONY: go CGO_CFLAGS = "$(ALL_CPPFLAGS)" CGO_LDFLAGS = "$(PKG_LIBS) $(SHLIB_LIBADD) $(LIBR)"
GOPATH = $(CURDIR)/go go: CGO_CFLAGS=$(CGO_CFLAGS) CGO_LDFLAGS=$(CGO_LDFLAGS) \ GOPATH=$(GOPATH) /usr/local/go/bin/go \ build -o $(SHLIB) -x -buildmode=c-shared main src/Makevars
future
None
None
None
[email protected]
@romain_francois http://bit.ly/romain-useR2018