Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
arrow + ergo
Search
Romain François
July 12, 2018
Programming
0
360
arrow + ergo
Presentation at useR! 2018, Brisbane.
Romain François
July 12, 2018
Tweet
Share
More Decks by Romain François
See All by Romain François
dplyr 1.0.0 / Paris R-addicts
romainfrancois
0
250
dplyr 1.0.0
romainfrancois
1
1.2k
dplyr episode 9, summarise() of the vctrs
romainfrancois
0
990
dplyr episode 9: summarise() of the vctrs
romainfrancois
0
340
n() cool #dplyr things
romainfrancois
2
2.9k
dance
romainfrancois
0
280
rap and splice girls
romainfrancois
0
360
rap
romainfrancois
0
100
ergo
romainfrancois
0
270
Other Decks in Programming
See All in Programming
11年かかって やっとVibe Codingに 時代が追いつきましたね
yimajo
1
240
QA x AIエコシステム段階構築作戦
osu
0
240
それ CLI フレームワークがなくてもできるよ / Building CLI Tools Without Frameworks
orgachem
PRO
17
3.6k
iOS開発スターターキットの作り方
akidon0000
0
230
バイブコーディングの正体——AIエージェントはソフトウェア開発を変えるか?
stakaya
5
720
DynamoDBは怖くない!〜テーブル設計の勘所とテスト戦略〜
hyamazaki
0
180
LLMは麻雀を知らなすぎるから俺が教育してやる
po3rin
3
1.9k
なぜあなたのオブザーバビリティ導入は頓挫するのか
ryota_hnk
5
560
ソフトウェア設計とAI技術の活用
masuda220
PRO
25
7.3k
実践 Dev Containers × Claude Code
touyu
1
120
Gemini CLIの"強み"を知る! Gemini CLIとClaude Codeを比較してみた!
kotahisafuru
3
920
Strands Agents で実現する名刺解析アーキテクチャ
omiya0555
1
110
Featured
See All Featured
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
420
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
Become a Pro
speakerdeck
PRO
29
5.5k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
283
13k
Automating Front-end Workflow
addyosmani
1370
200k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
How to Ace a Technical Interview
jacobian
278
23k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
Designing for humans not robots
tammielis
253
25k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
We Have a Design System, Now What?
morganepeng
53
7.7k
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