Informations displays are everywhere, and this presentations explores Go tools (SVGo, OpenVG on the Raspberry Pi, and the Deck presentation package) for making compelling visualizations, status displays, generative art, and other illustrations.
analysis. Design of the high-resolution displays, small multiples and optimizing the data-ink ratio. Visual and beautiful evidence. Designing for the context: The data visualizer asks: “What’s the data?”, the infographics designer: “What’s the Story?”
y, r VGfloat) (x, y, w, h VGfloat) (x, y, w, h VGfloat) (x, y, w, h, rw, rh VGfloat) (x1, y1, x2, y2 VGfloat) (x, y []VGfloat) (x, y []VGfloat) Arc Qbezier Cbezier Image Text TextMid TextEnd (x, y, w, h, sa, aext VGfloat) (sx, sy, cx, cy, ex, ey VGfloat) (sx, sy, cx, cy, px, py, ex, ey VGfloat) (x, y VGfloat, w, h int, s string) (x, y VGfloat, s, font string, size int) (x, y VGfloat, s, font string, size int) (x, y VGfloat, s, font string, size int)
bg="white" fg="black"> <image xp="70" yp="60" width="640" height="480" name="follow.png" sp="1" caption="Dreams"/> <text xp="20" yp="80" sp="5" link="http://goo.gl/Wm05Ex">Deck elements</text> <list xp="20" yp="70" sp="3" type="bullet"> <li>text, list, image</li> <li>line, rect, ellipse</li> <li>arc, curve, polygon</li> </list> <line xp1="20" yp1="10" xp2="30" yp2="10" /> <rect xp="35" yp="10" wp="4" hr="75" color="rgb(127,0,0)" /> <ellipse xp="45" yp="10" wp="4" hr="75" color="rgb(0,127,0)" /> <arc xp="55" yp="10" wp="4" hp="3" a1="0" a2="180" color="rgb(0,0,127)" /> <curve xp1="60" yp1="10" xp2="75" yp2="20" xp3="70" yp3="10" /> <polygon xc="75 75 80" yc="8 12 10" color="rgb(0,0,127)" /> </slide> </deck> Start the deck Set the canvas size Begin a slide Place an image Draw some text Make a bullet list End the list Draw a line Draw a rectangle Draw an ellipse Draw an arc Draw a quadratic bezier Draw a polygon End the slide End of the deck
List (x, y float64, s, font string, size float64, color string, opacity ...float64) (x, y float64, s, font string, size, margin float64, color string, opacity ...float64) (x, y float64, s, font string, size float64, color string, opacity ...float64) (x, y float64, s, font string, size float64, color string, opacity ...float64) (x, y float64, s string, size, margin float64, color string, opacity ...float64) (x, y, size float64, items []string, ltype, font, color string)
Line Polygon (x, y float64, w, h int, name string) (x, y, w, h, size, a1, a2 float64, color string, opacity ...float64) (x, y, w float64, color string, opacity ...float64) (x, y, w, h float64, color string, opacity ...float64) (x, y, w float64, color string, opacity ...float64) (x, y, w, h float64, color string, opacity ...float64) (x1, y1, x2, y2, x3, y3, size float64, color string, opacity ...float64) (x1, y1, x2, y2, size float64, color string, opacity ...float64) (x, y []float64, color string, opacity ...float64)
People title A View of User Experience: Designing for People Anthony Starks / [email protected] / @ajstarks section Design gray white caption eames.png Ray Eames What works good is better than what looks good, because what works good lasts.
[bytes] GET GET GET POST POST POST DELETE POST POST POST POST / /deck/ /deck/?filter=[type] /deck/content.xml?cmd=1s /deck/content.xml?cmd=stop /deck/content.xml?slide=[num] /deck/content.xml /upload/ Deck:content.xml /table/ Deck:content.txt /table/?textsize=[size] /media/ Media:content.mov List the API List the content on the server List content filtered by deck, image, video Play a deck with the specified duration Stop playing a deck Play deck starting at a slide number Remove content Upload content Generate a table from a tab-separated list Specify the text size of the table Play the specified video
doc show documentation for package or symbol env print Go environment information fix run go tool fix on packages fmt run gofmt on package sources generate generate Go files by processing source get download and install packages and dependencies install compile and install packages and dependencies list list packages run compile and run Go program test test packages tool run specified go tool version print Go version vet run go tool vet on packages
beast of the field which the LORD God had made. And he said unto the woman, Yea, hath God said, Ye shall not eat of every tree of the garden? And the woman said unto the serpent, We may eat of the fruit of the trees of the garden: But of the fruit of the tree which is in the midst of the garden, God hath said, Ye shall not eat of it, neither shall ye touch it, lest ye die. And the serpent said unto the woman, Ye shall not surely die: For God doth know that in the day ye eat thereof, then your eyes shall be opened, and ye shall be as gods, knowing good and evil.
NJ “I don’t care if a tool is the best, but please stop changing things so often. I don’t have time to learn something new.” SUMMARY In general things things work ok for Annie, but the rate of change and lack of effective communication can be challenging. It can also be frustrating when things change, just she's used to the system. She's busy, and wants tools to just get out of the way, and not give her “a case of the Mondays” TECHNOLOGY IT and Internet Software PERSONALITY Extravert Introvert Sensing Intuition Thinking Feeling Judging Percieving GOALS/LIKES FRUSTRATIONS RELATED QUESTIONS Lunch and Learns, how-to sessions Networking in person A stable set of tools Last minute communications Collaboration across time zones Social tools are not useful Why do other countries use different systems? Why don't we have more surveys to understand needs? Why do we get so many email blasts? Why does IT assume a certain technical ability?
LOCATION Bridgewater, NJ “I’m all about applying great design to all our products. We should provide a good experience in everything we do.” SUMMARY Technically savvy, and demanding, Samir appreciates the value of good design, and is frustrated when the collaboration products fall short in this regard. On the other hand, he will actively promote tools that are designed well, and is very willing to share his knowledge and insights. Further, Samir will be a strong advocate for new effective ways of working togther. TECHNOLOGY IT and Internet Software PERSONALITY Extravert Introvert Sensing Intuition Thinking Feeling Judging Percieving GOALS/LIKES FRUSTRATIONS RELATED QUESTIONS To have simple intuitive tools Be open to new tools and methods To apply good design across the whole environment One size fits all mentality IT imposing tools with no real input Not designing for multiple form-factors and use-cases Why do we use outdated products? What are the cultural aspects of collaboration? When will design be included in our requirements? Is the concept of the Intranet outdated? What is the cost to start over with new technologies?
communicating. Concurrency is not parallelism. Channels orchestrate; mutexes serialize. The bigger the interface, the weaker the abstraction. Make the zero value useful. interface{} says nothing. Gofmt’s style is no one’s favorite, yet gofmt is everyone’s favorite. A little copying is better than a little dependency. Syscall must always be guarded with build tags. Cgo must always be guarded with build tags. Cgo is not Go. With the unsafe package there are no guarantees. Clear is better than clever. Reflection is never clear. Errors are values. Don’t just check errors, handle them gracefully. Design the architecture, name the components, document the details. Documentation is for users. Don’t panic.