$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ergo
Search
Romain François
July 05, 2018
Programming
0
280
ergo
Talk about ergo at the rencontres R 2018
Romain François
July 05, 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
1k
dplyr episode 9: summarise() of the vctrs
romainfrancois
0
350
n() cool #dplyr things
romainfrancois
2
3k
dance
romainfrancois
0
280
rap and splice girls
romainfrancois
0
370
rap
romainfrancois
0
110
arrow + ergo
romainfrancois
0
370
Other Decks in Programming
See All in Programming
まだ間に合う!Claude Code元年をふりかえる
nogu66
5
840
モデル駆動設計をやってみようワークショップ開催報告(Modeling Forum2025) / model driven design workshop report
haru860
0
270
MAP, Jigsaw, Code Golf 振り返り会 by 関東Kaggler会|Jigsaw 15th Solution
hasibirok0
0
250
30分でDoctrineの仕組みと使い方を完全にマスターする / phpconkagawa 2025 Doctrine
ttskch
4
880
これだけで丸わかり!LangChain v1.0 アップデートまとめ
os1ma
6
1.9k
認証・認可の基本を学ぼう後編
kouyuume
0
240
chocoZAPサービス予約システムをNuxtで内製化した話
rizap_tech
0
140
Navigation 3: 적응형 UI를 위한 앱 탐색
fornewid
1
340
20251212 AI 時代的 Legacy Code 營救術 2025 WebConf
mouson
0
180
Why Kotlin? 電子カルテを Kotlin で開発する理由 / Why Kotlin? at Henry
agatan
2
7.3k
AIコーディングエージェント(Gemini)
kondai24
0
230
AtCoder Conference 2025「LLM時代のAHC」
imjk
2
500
Featured
See All Featured
Facilitating Awesome Meetings
lara
57
6.7k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Into the Great Unknown - MozCon
thekraken
40
2.2k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Building an army of robots
kneath
306
46k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
YesSQL, Process and Tooling at Scale
rocio
174
15k
4 Signs Your Business is Dying
shpigford
186
22k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Transcript
ergo
[email protected]
@romain_francois http://bit.ly/ergo-rr2018
None
None
•Open source •Google •Simple •Fast enough
https://www.docker.com
https://bookdown.org/yihui/blogdown/
https://www.rstudio.com/products/connect/
example
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
research
bit.ly/ergorigin purrple.cat/tags/go/
bit.ly/ergorigin purrple.cat/tags/go/
None
http://bit.ly/grrr-join
wttr.in/Rennes
library(rvest) library(glue) library(fahrenheit) library(tibble) library(dplyr) temperature <- function(where = "Rennes"){
glue("https://wttr.in/{where}") %>% read_html() %>% html_node("span:nth-child(3)") %>% html_text() %>% as.numeric() } temperature("Rennes") %>% tibble(celcius = .) %>% mutate(fahrenheit = fahrenheit(celcius)) #> # A tibble: 1 x 2 #> celcius fahrenheit #> <dbl> <dbl> #> 1 19 66.2 #' Created on 2018-07-05 by the [reprex package](http://reprex.tidyverse.org) (v0.2.0).
romain@purrplex ~/git/rstats-go/rencontresr2018/fahrenheit $ 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
ergo
[email protected]
@romain_francois http://bit.ly/ergo-rr2018