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
diagramize it
Search
Taras Kalapun
February 07, 2014
Programming
1.7k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
diagramize it
Presentation about free & open source tools to produce diagrams from textural description
Taras Kalapun
February 07, 2014
Other Decks in Programming
See All in Programming
R8 の設定見直しでアプリサイズ削減
andpad
0
210
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
8
5.7k
Jetpack Compose Mechanisms
skydoves
2
720
Atomic Design, Enforced: Scaling Mobile Design Systems (next.app devCon / droidCon Berlin 2026)
steliosf
PRO
0
160
コードで差別化できない時代の ソフトウェアエンジニアリング / Software Engineering in an Era Where Code Doesn’t Differentiate
kishida
2
160
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Rails World 2026, Austin, Texas
marcoroth
0
210
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
290
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.6k
Turning Architecture into Unit Tests in the AI Era (NSSpain XIV)
steliosf
PRO
1
140
AI が書く Go コードの品質を劇的に向上させる Linter: “declscope”
mpyw
0
490
HTML-in-Canvasで作る未来のWeb UI表現
clockmaker
4
4.7k
コーディング自動化の次へ。人の介入をゼロにするファクトリーとサポートAIによる実践
timakin
0
410
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
28
2.9k
Code Review Best Practice
trishagee
74
20k
The Limits of Empathy - UXLibs8
cassininazir
2
720
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Building Adaptive Systems
keathley
44
3.2k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Music & Morning Musume
bryan
48
7.4k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.5k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Balancing Empowerment & Direction
lara
6
1.3k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.9k
From π to Pie charts
rasagy
1
400
Transcript
DIAGRAMIZE IT TARAS KALAPUN
BLOCK DIAGRAMS
YUML.ME [Customer]<>-orders*>[Order]! [Order]++-0..*>[LineItem]! [Order]-[note:Aggregate root.]
BLOCKDIAG blockdiag {! A -> B -> C -> D;!
A -> E -> F -> G;! }
BLOCKDIAG blockdiag {! WeatherApi [shape = ellipse];! AdMob [shape =
ellipse];! Cloud [shape = cloud];! User [shape = actor];! ! WeatherApi -> Cloud! AdMob -> Cloud! Cloud -> App! App -> User! }
GRAPHVIZ
digraph G {! ranksep = 1! rankdir = TD! node
[! shape = "record"! height = 0.50! fontsize = 10! margin = 0.20,0.05! ]! A2 [! label = "Customer]"! style = "filled"! fillcolor = ""! ]! node [! shape = "record"! height = 0.50! GRAPHVIZ
USE CASE DIAGRAMS
YUML.ME [Customer]-(Make Cup of Tea)! (Make Cup of Tea)<(Add Milk)!
(Make Cup of Tea)>(Add Tea Bag)
GRAPHVIZ digraph G {! rankdir=LR;! ! subgraph clusterUser {label="User"; labelloc="b";
peripheries=0; user};! user [shapefile="stick.png", peripheries=0, style=invis];! login [label="Log In", shape=ellipse];! ! user->login [arrowhead=none];! }
GRAPHVIZ http://martin.elwin.com/blog/2008/05/uml-use-case-diagrams-graphviz/
ACTIVITY DIAGRAMS
YUML.ME (start)->|a|! |a|->(Make Coffee)->|b|! |a|->(Make Breakfast)->|b|! |b|-><c>[want more coffee]->(Make Coffee)!
<c>[satisfied]->(end)
GNU PIC .PS! ellipse "document";! arrow;! box "\fIgpic\fP(1)"! arrow;! box
width 1.2 "\fIgtbl\/\fP(1) or \fIgeqn\/\fP(1)" "(optional)" dashed;! arrow;! box "\fIgtroff\/\fP(1)";! arrow;! ellipse "PostScript"! .PE http://floppsie.comp.glam.ac.uk/Glamorgan/gaius/web/pic.html
GRAPHVIZ
digraph untitled {! rankdir=TD! size="4,4"! edge[fontsize="11" arrowhead=open]! start[shape=circle, label="", style=filled]!
end[shape=doublecircle, label="", style=filled]! action1[shape=box,style=rounded, label="action"]! action2[shape=box,style=rounded, label="action"]! action3[shape=box,style=rounded, label="action"]! if1[shape=diamond, label="decision"]! if2[shape=diamond, label="decision"]! ! start -> action1! action1 -> if1[headport=n]! if1 -> action2[label="condition" tailport=w]! if1 -> action3[taillabel="condition" labeldistance=2.5 tailport=e]! action2 -> if2[headport=w]
ACTDIAG actdiag {! write -> convert -> image! ! lane
user {! label = "User"! write [label = "Writing reST"];! image [label = "Get diagram IMAGE"];! }! lane actdiag {! convert [label = "Convert reST to Image"];! }! }
SEQUENCE DIAGRAMS
WEBSEQUENCEDIAGRAMS A->+B: text! B-->-A: text! A->B: text2
SEQDIAG seqdiag {! browser -> webserver [label = "GET /index.html"];!
browser <-- webserver;! browser -> webserver [label = "POST /blog/comment"];! webserver -> database [label = "INSERT comment"];! webserver <-- database;! browser <-- webserver;! }
PIC2PLOT brew install plotutils! https://github.com/dspinellis/UMLGraph/blob/master/sequence.pic! ! http://projetos.edugraf.ufsc.br/2011/1/convidado/jgzeni/ ProjetoFinal/JogoDeCartas/002/bin/src/UMLGraph-5.4/doc/uml- appa.html!
.PS! ! copy "sequence.pic";! ! boxwid = 1.1;! movewid =
0.5;! ! # Define the objects! object(C,"c:Client");! pobject(T);! object(P,"p:ODBCProxy");! ! # Message sequences! step();! active(C);! cmessage(C,T,":Transaction");! oconstraint("{Transient}");
OTHER COOL DIAGRAMS
NWDIAG
nwdiag {! network dmz {! address = "210.x.x.x/24"! ! //
set multiple addresses (using comma)! web01 [address = "210.x.x.1, 210.x.x.20"];! web02 [address = "210.x.x.2"];! }! network internal {! address = "172.x.x.x/24";! ! web01 [address = "172.x.x.1"];! web02 [address = "172.x.x.2"];! db01;! db02;! }! }
RACKDIAG rackdiag {! // define height of rack! 16U;! !
// define rack items! 1: UPS [2U];! 3: DB Server! 4: Web Server 1 // put 2 units to r 4: Web Server 2! 5: Web Server 3! 5: Web Server 4! 7: Load Balancer! 8: L3 Switch! }
ASCII DITAA +--------+ +-------+ +-------+! | | --+ ditaa +-->
| |! | Text | +-------+ |diagram|! |Document| |!magic!| | |! | {d}| | | | |! +---+----+ +-------+ +-------+! : ^! | Lots of work |! +-------------------------+ http://ditaa.sourceforge.net
GRAPHVIZ IC
digraph G {! graph [rankdir = LR];! ! node[shape=record];! Bar[label="{
\"Bar\"|{<p1>pin 1|<p2> 2|<p3> 3|<p4> 4| <p5> 5} }"];! Foo[label="{ {<data0>data0|<data1>data1|<data2>data2|<data3>data3| <data4>data4}|\"Foo\" |{<out0>out0|<out1>out1|<out2>out2|<GND>gnd| <ex0>ex0|<hi>hi|<lo>lo} }"];! ! Bew[label="{ {<clk>clk|<syn>syn|<mux0>mux0|<mux1>mux1| <signal>signal}|\"Bew\" |{<out0>out0|<out1>out1|<out2>out2} }"];! Bar:p1 -> Foo:data0;! Bar:p2 -> Foo:data1;! Bar:p3 -> Foo:data2;! Bar:p4 -> Foo:data3;! Bar:p5 -> Foo:data4;
THX! Q?