Intro to some diagram auto-generation tools. For more info and sample files, head over to http://www.mbarsinai.com/blog/2014/01/12/draw-more-work-less/.
ECMAScript 6: A Better JavaScript for the Ambient Computing EraAllen Wirfs-Brock
We've entered the Ambient Computing Era and JavaScript is its dominant programing language, But a new computing era needs a new and better JavaScript. It's called ECMAScript 6 and it's about to become the new JavaScript standard. Why do we need it? Why did it take so long? What's in it? When can you use it? Answers will be given.
ECMAScript 6: A Better JavaScript for the Ambient Computing EraAllen Wirfs-Brock
We've entered the Ambient Computing Era and JavaScript is its dominant programing language, But a new computing era needs a new and better JavaScript. It's called ECMAScript 6 and it's about to become the new JavaScript standard. Why do we need it? Why did it take so long? What's in it? When can you use it? Answers will be given.
Golang Performance : microbenchmarks, profilers, and a war storyAerospike
Slides for Brian Bulkowski's talk about Golang performance:
microbenchmarks, profilers, and a war story about optimizing the Aerospike Database Go client.
http://www.meetup.com/Go-lang-Developers-NYC/events/216650022/
Treasure Data is providing Embulk(Open Source bulk load tool) as a hosted bulkload tools.
This slide contains our usercase, relationship with community,and architectures.
Groovy & Grails: Scripting for Modern Web Applicationsrohitnayak
Dynamic scripting languages are a powerful addition to a software designer’s toolbox. Rails/Ruby and Python have not gained much acceptance in the enterprise. Grails and Groovy are an attempt to bridge the gap between the modern scripting world and the Enterprise Java world.
This talk is an introduction towards building web applications in Grails. First we will go about creating a REST based webservice. We will also show how to replace the default database backend of Grails with MySQL.
We will then build a web application that consumes this webservice. The emphasis will be on the design patterns and idioms in Grails that address the web application development lifecycle.
Golang Performance : microbenchmarks, profilers, and a war storyAerospike
Slides for Brian Bulkowski's talk about Golang performance:
microbenchmarks, profilers, and a war story about optimizing the Aerospike Database Go client.
http://www.meetup.com/Go-lang-Developers-NYC/events/216650022/
Treasure Data is providing Embulk(Open Source bulk load tool) as a hosted bulkload tools.
This slide contains our usercase, relationship with community,and architectures.
Groovy & Grails: Scripting for Modern Web Applicationsrohitnayak
Dynamic scripting languages are a powerful addition to a software designer’s toolbox. Rails/Ruby and Python have not gained much acceptance in the enterprise. Grails and Groovy are an attempt to bridge the gap between the modern scripting world and the Enterprise Java world.
This talk is an introduction towards building web applications in Grails. First we will go about creating a REST based webservice. We will also show how to replace the default database backend of Grails with MySQL.
We will then build a web application that consumes this webservice. The emphasis will be on the design patterns and idioms in Grails that address the web application development lifecycle.
Sprockets is an easy solution to managing large JavaScript codebases by letting you structure it, bundle it with related assets, and consolidate it as one single file, with pre-baked command-line tooling, CGI front and Rails plugin. It's a framework-agnostic open-source solution that makes for great serving performance while helping you structure and manage your codebase better.
Confoo - Javascript Server Side : How to startQuentin Adam
nodeJS, claypool, APE, map reduce en nosql, yql... Le javascript server side est un sujet d'actualité, une tendance de fond est en train d'émerger. Et la mise en avant des outils dans la communauté progresse rapidement.
La promesse d'un seul langage sur le client et le serveur d'une application web est très attirante alors que HTML5, les websockets, les webworker, les local storage sont en train de se faire une place dans le futur du web.
Cette conférence a pour but de vous permettre de mieux appréhender cet écosystème à travers son historique, l'exposé des standards émergeant, des avantages et défauts des différentes solutions proposées et en présentant les briques communes.
Quels projets pouvez vous entreprendre sur ces technologies ?
Est-ce possible à intégrer en production ?
L'administration et l'intégration de ces outils au SI d'une entreprise est il possible ?
Ces technologies vont elles s'implanter ou rester des expérimentations de techniciens sous stéroïdes ?
Posons-nous et profitons de ce talk pour prendre un peu de hauteur sur l’état de l’industrie tech autour de la création d’API de persistence (CRUD).
D’où venons-nous, ou allons-nous ? Pourquoi le choix entre RPC, SOAP, REST et GraphQL n’est peut-être qu’un sujet de surface qui cache un problème bien plus profond…
Youtube: https://www.youtube.com/watch?v=IskE3m3VjRY
Polyglot Programming as a technique is not new and as a paradigm was coined in 2006 by Neal Ford. In today's world, we often architect solutions which need to be highly scalable, secure, efficient, have an engaging GUI, be extensible with low technical debt in parts or whole. To work with a single tech stack promotes a sense of mono culture which is detrimental and limiting the way a solution can be designed. Moreover, with multi-core machines available, processing now can leverage parallel processing and it maybe make more sense to use a language which takes away the overhead of the intricacies of multi-thread programming.
In other words, in many cases, engaging in Polyglot Programming helps you focus more on the domain and adds to developer productivity.
On the flip side, increasing the moving parts also means that if not designed well, Polyglot Programming could be a double edged sword and produce more mess in the way different pieces interact with each other.
In this talk, we will showcase an ecosystem we built, involving a desktop device configuration backed, an OS-agnostic desktop GUI, a cloud service, a cloud cluster configuration tool and how we used the Agile principles, namely TDD, Continuous Integration and the works to be able to keep the polyglot ecosystem sane.
Name wise, the languages/tools/etc which we used in our Polyglot case -- Google Go, Node-Webkit, JS (Knockout/RequireJS), Ruby, Cucumber, RIAK, Chef, Lisp, Jenkins
Dianne Finch, visiting assistant professor of communications at Elon University, presented "Data Visualization: A Hands-On Primer for Business Journalists." This training took place during the Society of American Business Editors and Writers' Spring Conference in Phoenix, March 27, 2014. Sponsored by the Donald W. Reynolds National Center for Business Journalism, this hands-on workshop was geared toward journalists with little to no experience in creating data visualizations.
For more information about training for journalists, please visit http://businessjournalism.org.
Fine-tuning your development environment means more than just getting your editor set up just so -- it means finding and setting up a variety of tools to take care of the mundane housekeeping chores that you have to do -- so you have more time to program, of course! I'll share the benefits of a number of yak shaving expeditions, including using App::GitGot to batch manage _all_ your git repos, App::MiseEnPlace to automate getting things _just_ so in your working environment, and a few others as time allows.
Delivered at OpenWest 2016, 13 July 2016
Introducing BPjs to the IoT class at BGU, Winter 2018 semester.
Includes short BP intro, BPjs overview, and samples for running and verifying b-programs.
DataTags, The Tags Toolset, and Dataverse IntegrationMichael Bar-Sinai
This presentation describes the concept of DataTags, which simplifies handling of sensitive datasets. It then shows the Tags toolset, and how it is integrated with Dataverse, Harvard's popular dataset repository.
These are the slides for the talk I gave in Harvard IQSS's "tech talk" series. The commands and files for the demo ("REPL") part of the lecture can be obtained here: http://www.mbarsinai.com/blog/2013/08/04/invitation-to-scala/.
Welcome to the Program Your Destiny course. In this course, we will be learning the technology of personal transformation, neuroassociative conditioning (NAC) as pioneered by Tony Robbins. NAC is used to deprogram negative neuroassociations that are causing approach avoidance and instead reprogram yourself with positive neuroassociations that lead to being approach automatic. In doing so, you change your destiny, moving towards unlocking the hypersocial self within, the true self free from fear and operating from a place of personal power and love.
1. Draw More, Work Less
Computer Generated Diagrams
IQSS Tech talk
2014-01-09
Michael Bar-Sinai
2. Today:
Why and when computer-generated diagrams make sense?
GraphViz
PlantUML (and, also, UML)
Summary
3. Why Let a Computer Draw
Work on semantic level
“From A to B”
Play with parameters (layouts, skins)
A
B
Not that strange (HTML, LaTeX)
A
B
A
B
Play well with CVSs (git/svn/...)
Easy updates
Inspiration for DSLs/APIs
A
B
23. Circo - Radial Layout
chicken
main
Organic
Tofu
meat
rice
inside
burrito
inside
side
outside
beans
corn
tortilla
wheat
24. neato - Spring model
beans
corn
wheat
tortilla
outside
side
inside
burrito
inside
main
Organic
Tofu
chicken
meat
rice
25. fdp - Spring model, force direction
corn
beans
rice
wheat
outside burrito
tortilla
inside
inside
side
main
Organic
Tofu
meat
chicken
26. sfdp - Spring model, force direction
Organic
Tofu
wheat
tortilla
chicken
outside
corn
main
burrito inside
inside
side
meat
rice
beans
27. osage - Clustered, packed
Filling
Organic
Tofu
chicken
beans
tortilla
meat
main
side
inside
rice
corn
outside
burrito
wheat
28. Power to the printf
(generated from a ruby script simulating a logic circuit)
29. Playing well with others
GraphViz native format
Easy to parse. Allows other programs to use it as a layout
engine
SVG
30. Playing well with others
GraphViz native format
Easy to parse. Allows other programs to use it as a layout
engine
SVG
Combine with Javascript, HTML and JSON to get instant HTML5
website!
31. Playing well with others
GraphViz native format
Easy to parse. Allows other programs to use it as a layout
engine
SVG
Combine with Javascript, HTML and JSON to get instant HTML5
website!
32. Much more
dot User’s Manual, December 22, 2009
17
credit: dot User Manual, Gansner, Koutsofios, North
past
SCCS
Bourne sh
Reiser cpp
1978
Bézier curves
make
vi
build
RCS
1985
1987
C*
DAG
CIA++
DOT
<curses-i>
fdelta
SBCS
APP
DIA
Software IS
future
Ansi cpp
CIA
1989
1990
TTU
Peggy
ncpp
CSAS
3D File System
IMX
IFS
nmake
1988
Colors, gradients…
SYNED
ksh
Complex nodes (HTML tables)
Layout Constraints
emacs
<curses>
1983
1986
cron
Cshell
1980
1982
yacc
ksh-i
PG2
nmake 2.0
PAX
ksh-88
PEGASUS/PML
SHIP
backtalk
DataShare
libft
CoShell
sfio
Configuration Mgt
IFS-i
ML-X
Architecture & Libraries
Adv. Software Technology
Figure 12: Drawing with constrained ranks
ryacc
Mosaic
kyacc
yeast
Process
34. Unified Modeling Language
Developed by OMG, a standard body
OMG Unifie
Version 2.5
A diagram for every aspect of software
Structure, interactions, state, deployment…
OMG Document Num
Normative Reference:
Diagrams are also useful outside of the software world
Consumable
Machine
Meta models and Formal Definitions
http://www.om
http://www.om
http://www.om
http://www.om
35. Unified Modeling Language
Developed by OMG, a standard body
OMG Unifie
Version 2.5
A diagram for every aspect of software
Structure, interactions, state, deployment…
OMG Document Num
Normative Reference:
Diagrams are also useful outside of the software world
Consumable
Machine
Meta models and Formal Definitions
http://www.om
http://www.om
http://www.om
http://www.om
36. PlantUML
Creates some UML diagrams from text files
Java component - embeddable
plugins include Netbeans, MS Word, Redmine, servlet…
http://plantuml.sourceforge.net/index.html
37. Sequence Diagram
@startuml
!
actor researcher
participant website
participant team as "Murray archive team"
participant owner as "Data Owner"
database archive
!
researcher -> website : Fill form
researcher -> website : Submit form
website -> team : new file!
team -> owner : approve?
!
@enduml
*process NOT accurate
38. Sequence Diagram
@startuml
!
actor researcher
participant website
participant team as "Murray archive team"
participant owner as "Data Owner"
database archive
plantuml sequence.uml
!
researcher -> website : Fill form
researcher -> website : Submit form
website -> team : new file!
team -> owner : approve?
!
@enduml
*process NOT accurate
39. Sequence Diagram
@startuml
!
actor researcher
participant website
participant team as "Murray archive team"
participant owner as "Data Owner"
database archive
plantuml sequence.uml
!
researcher -> website : Fill form
researcher -> website : Submit form
website -> team : new file!
team -> owner : approve?
!
@enduml
*process NOT accurate
40. @startuml
!
actor researcher
participant website
participant team as "Murray archive team"
participant owner as "Data Owner"
database archive
!
researcher -> website : Fill form
researcher -> website : Submit form
website -> team : new file!
team -> owner : approve?
!
alt owner agrees
owner -> team : OK
team -> researcher : more forms
researcher -> team : filled more forms
team -> researcher : grant access
researcher -> archive : read
!
else owner declines
owner -> team : No
team -> researcher : Sorry...
end
!
@enduml
*process NOT accurate
41. @startuml
!
actor researcher
participant website
participant team as "Murray archive team"
participant owner as "Data Owner"
database archive
!
researcher -> website : Fill form
researcher -> website : Submit form
website -> team : new file!
team -> owner : approve?
!
alt owner agrees
owner -> team : OK
team -> researcher : more forms
researcher -> team : filled more forms
team -> researcher : grant access
researcher -> archive : read
!
else owner declines
owner -> team : No
team -> researcher : Sorry...
end
!
@enduml
*process NOT accurate
42. @startuml
actor researcher
participant website
participant team as "Murray archive team"
participant owner as "Data Owner"
database archive
!
researcher -> website : Fill form
researcher -> website : Submit form
website -> team : new file!
team -> owner : approve?
...Time goes by...
alt owner agrees
owner -[#green]> team : OK
team -> researcher : more forms
researcher -> team : filled more forms
team -> researcher : grant access
researcher -> archive : read
!
else owner declines
owner -[#FF0000]> team : No
team -> researcher : Sorry...
note right: Researcher may try again.
end
@enduml
*process NOT accurate
44. Activity Diagram
@startuml
start
!
:Get to room;
:Hang Coat;
:Try to pour coffee;
if (Got coffee?) then (yes)
:fill cup;
else (no)
:comlain loudly;
:prepare;
:wait;
:fill cup;
endif
:go to desk;
:start working;
!
stop
@enduml
45. Activity Diagram
@startuml
start
:Get to room;
:#FFDDDD:Hang Coat;
:Try to pour coffee;
if (Got coffee?) then (yes)
:#AAFFAA:fill cup;
else (no)
:#red:comlain loudly;
:prepare;
note right
make sure to
only press the
"brew" button
<b>once</b>!
end note
:wait;
:fill cup;
endif
:go to desk;
:start working;
stop
@enduml
46. Activity Diagram - Parallel Work
@startuml
start
:Recognize need for burrito;
:Get Cookin';
fork
:mix ingredients;
:bake;
fork again
:grind;
:fry;
fork again
:chop;
:cook;
:drain;
end fork
:roll up;
:eat;
stop
@enduml
47. Activity Diagram
@startuml
:Recognize need for burrito;
repeat
:Get Cookin';
fork
:mix ingredients;
:bake;
fork again
:grind;
:fry;
fork again
:chop;
:cook;
:drain;
end fork
:roll up;
:eat;
repeat while (still hungry?)
@enduml
48. Use Case
Analyze user types, usages for the system, and how they all relate to
each other (useful!)
@startuml
actor user
actor admin
!
usecase ingest as "Ingest data
into the system
--various formats supported
"
usecase manage as "Manage system
===
Also make sure the
grants are mentioned
properly"
usecase analyze as "Analyze Data"
(Use Zelig)
@enduml
49. Use Case
Analyze user types, usages for the system, and how they all relate to
each other (useful!)
@startuml
actor user
actor admin
!
usecase ingest as "Ingest data
into the system
--various formats supported
"
usecase manage as "Manage system
===
Also make sure the
grants are mentioned
properly"
usecase analyze as "Analyze Data"
(Use Zelig)
@enduml
50. Use Case
@startuml
actor user
actor admin
!
usecase ingest as "Ingest data
into the system
--various formats supported
“...”
usecase analyze as "Analyze Data”
(Use Zelig)
!
user <|-- admin
analyze <|--(Use Zelig)
!
user --> analyze
user --> ingest
admin --> manage
!
@enduml
51. Use Case
@startuml
left to right direction
actor user
actor admin
rectangle System {
usecase ingest as "Ingest data
into the system
--various formats supported
"
usecase manage as "Manage system
===
Also make sure the
grants are mentioned
properly"
usecase analyze as "Analyze Data"
(Use Zelig)
}
...
@enduml
52. Salt - ASCII art GUI modeling
@startsalt
{
Hello...
[X] World
[] Kitty
[] There
[Submit]
}
@endsalt
53. Salt - ASCII art GUI modeling
@startsalt
{
Hello...
[X] World
[] Kitty
[] There
[Submit]
}
@endsalt
____________________________
< ASCII art is Moo-gnificent >
---------------------------
^__^
(oo)_______
(__)
)/
||----w |
||
||
54. Salt - ASCII art GUI modeling
@startsalt
{
Hello...
[X] World
[] Kitty
[] There
[Submit]
}
@endsalt
____________________________
< ASCII art is Moo-gnificent >
---------------------------
^__^
(oo)_______
(__)
)/
||----w |
||
||
55. Salt - ASCII art GUI modeling
@startsalt
{
Hello...
[X] World
[] Kitty
[] There
[Submit]
}
@endsalt
____________________________
< ASCII art is Moo-gnificent >
---------------------------
^__^
(oo)_______
(__)
)/
||----w |
||
||
56. Salt - ASCII art GUI modeling
@startsalt
{
Hello...
[X] World |(X) World
[] Kitty |() Kitty
[] There |() There
[Submit All] | [Submit one]
}
@endsalt
57. Salt - ASCII art GUI modeling
@startsalt
{+
Hello...
{/<b>Select Many | Select one | like us on LinkedBook }
{
[X] World
[] Kitty
[] There
[] other | ^Select....^
}
===
{
[Submit] | [Cancel] | [Tweet us on FaceIn]
}
}@endsalt
58. …Summing Up
Sometimes its better to concentrate on the structure, and let the
computer do the layout
There are free, capable tools for diagraming
Both GraphViz and PlantUML have numerous features not
covered in this talk