History: Visual Programming
Source of version: 106 (current)
Copy to clipboard
^ See also ((Business process management)) which permits to build diagrams which become active code. ^
"In computing, a visual programming language (VPL) is any programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually"
Source: http://en.wikipedia.org/wiki/Visual_programming_language
"End-user development (EUD) is a research topic within the field of computer science and human-computer interaction, describing activities or techniques that allow end-users to program computers. People who are not professional developers can use EUD tools to create or modify software artifacts (descriptions of automated behavior) and complex data objects without significant knowledge of a programming language. The most popular EUD tool is the spreadsheet."
Source: http://en.wikipedia.org/wiki/End-user_development
"Simple reflex agents act only on the basis of the current percept, ignoring the rest of the percept history. The agent function is based on the condition-action rule: if condition then action."
Source: http://en.wikipedia.org/wiki/Intelligent_agent
! What
Tiki is fantastic to manage data of many types. Many Tiki users build end-user applications from the existing feature-set, mainly ((doc:Trackers)) and ((doc:Wiki Plugins)) (Some are pretty powerful). We often want to automate processes based on conditions. This can be done with custom code. How can we make a Visual Programming tool to act on data in Tiki? How can we make easier and more powerful?
! Who
* Marc Laporte
* Pablo Duboue
! When
* No set date
! What happens, Why and When
So we need a visual wizard to make things happen when certain conditions are met. Perhaps a new feature called "Tiki Agent"?
See also:
* ((Business process management))
* ((Category Transitions)) and ((Group Transitions))
* ((Approval Workflow))
!! What (The action)
* A pop up -> ((doc:PluginDialog))
* Send a ((doc:message)) or email to a user or group
* Generate a report
* Update a wiki page (append info X)
* Update value of a spreadsheet cell
* Update tracker item
* Send a ((newsletter))
* Send a ((doc:Notification))
* Apply a ((doc:profile))
** And given there are many profile handlers, a lot can be done: http://profiles.tiki.org/Handlers
* Add an item in the shopping cart
* Add an invoice
* Redirect to URL
* Play a video
* Open (execute) plugin listExecute page
!! Why (what triggers it)
* A button is clicked
* Calculation / condition of Value of a spreadsheet cell ((doc:Advanced Rating)), Value of tracker item field, etc.
** If value of sheet1:A1>=4
** Date and duration threshold is reached
* Email comes in, with certain info in it
* Page is visited
* A test fails in Tiki ((doc:Check))
* ((Machine Learning)) or ((Machine Learning for Email))
!! When
* Now
* In or every x minutes / days / weeks
** Cron job or Tiki Scheduler
! Related tools
!! Huginn
[https://github.com/cantino/huginn/blob/master/README.md|"Huginn is a system for building agents that perform automated tasks for you online. They can read the web, watch for events, and take actions on your behalf. Huginn's Agents create and consume events, propagating them along a directed event flow graph. Think of it as Yahoo! Pipes plus IFTTT on your own server. You always know who has your data. You do."]
{HTML()}<script type="text/javascript" src="https://www.ohloh.net/p/245816/widgets/project_factoids_stats.js"></script>{HTML}
!! Exobrain
{HTML()}<script type="text/javascript" src="https://www.ohloh.net/p/715990/widgets/project_factoids_stats.js"></script>{HTML}
!! Blockly
{HTML()}<script type="text/javascript" src="https://www.ohloh.net/p/602778/widgets/project_factoids_stats.js"></script>{HTML}
* http://code.google.com/p/google-blockly/ __Very nice!__
** http://www.wired.com/wiredenterprise/2012/06/google-blockly/
** http://developers.slashdot.org/story/12/06/12/183236/google-blockly-a-language-with-a-difference
** https://code.google.com/p/blockly/wiki/Alternatives
!! SNAP!
{HTML()}<script type="text/javascript" src="https://www.ohloh.net/p/669939/widgets/project_factoids_stats.js"></script>{HTML}
* http://snap.berkeley.edu/
** http://snap.berkeley.edu/snapsource/snap.html
!! jsPlumb
{HTML()}<script type="text/javascript" src="https://www.ohloh.net/p/716129/widgets/project_factoids_stats.js"></script>{HTML}
!! MIT App Inventor
{HTML()}<script type="text/javascript" src="https://www.ohloh.net/p/628279/widgets/project_factoids_stats.js"></script>{HTML}
* http://en.wikipedia.org/wiki/Google_App_Inventor
!! Meemoo iframework
{HTML()}<script type="text/javascript" src="https://www.ohloh.net/p/716130/widgets/project_factoids_stats.js"></script>{HTML}
* http://meemoo.org/
!! NoFlo
{HTML()}<script type="text/javascript" src="https://www.ohloh.net/p/585432/widgets/project_factoids_stats.js"></script>{HTML}
* http://news.cnet.com/8301-11386_3-57602285-76/noflos-crowd-funding-effort-helps-coders-go-with-the-flow/
* http://meemoo.org/blog/2013-08-24-fbp-and-noflo/
!!! PhpFlo
PhpFlo is a simple flow-based programming implementation for PHP 5.3+. It is a PHP port of NoFlo.
{HTML()}
<script type="text/javascript" src="https://www.ohloh.net/p/586491/widgets/project_factoids_stats.js"></script>
{HTML}
!! LiveCode
{HTML()}<script type="text/javascript" src="https://www.openhub.net/p/713043/widgets/project_factoids_stats.js"></script>{HTML}
http://en.wikipedia.org/wiki/LiveCode
https://www.kickstarter.com/projects/1755283828/open-source-edition-of-livecode
! Related wiki pages
* ((Business process management))
* ((Wiki Syntax))
* ((Web-based source code editor))
* ((Data Visualization))
* ((doc:PluginAppFrame))
* ((doc:PluginDialog))
* ((doc:PluginJS)) and ((doc:PluginJQ))
* ((doc:PluginListExecute)) -> perhaps the starting point?
* ((Video Editor))
* ((Report))
* ((Decision))
* ((Game Development))
* ((Scraper))
* Make a non-linear animated story ((Online Publishing House - Nonlinear story telling))
! Rapid prototyping
* http://www.keycontent.org/Prototyping+and+Wireframing
* http://www.axure.com/
* http://www.invisionapp.com/
* http://www.hotgloo.com/
* http://confoo.ca/en/2013/session/death-to-wireframes-long-live-rapid-prototyping
! Related links
* http://worrydream.com/Tangle/
* http://elastalert.readthedocs.org/en/latest/elastalert.html#overview
* [http://www.ictdialer.org/content/ivr-designer|IVR Designer allows you to create advanced telephony systems with a simple drag-and-drop interface]
* http://pencil.evolus.vn/Features.html
* http://c2.com/cgi/wiki?GuiPrototypingTools
* http://blog.okfn.org/2012/03/09/from-cms-to-dms-c-is-for-content-d-is-for-data/
* http://www.dataprotocols.org/
* http://en.wikipedia.org/wiki/Scratch_programming_language
* http://www.khanacademy.org/cs/
* http://pantherprogramming.weebly.com/
* [http://www.benmoskowitz.com/?p=385|Mozilla and the Maker Spirit of Hypercard, ResEdit, and iMovie]
* http://phonegap.com/2011/12/15/building-mobile-apps-in-the-cloud-with-tiggr-and-phonegap/
* http://jsplumb.org/jquery/demo.html
* http://c2.com/cgi/wiki?MockupTiger
** http://www.youtube.com/watch?v=nML7ma4w844
* http://webdesigneraid.com/top-3-free-wireframing-and-mockup-tools-lumzy-mockup-builder-and-tiggr-compared-and-reviewed/ Tiggr uses ((Apache Callback))
* http://processingjs.org __Made by the creator of jQuery__
** [http://hascanvas.com/|HasCanvas] is a tool for creating and sharing Processing sketches and runs on John Resig’s Processing.js.
** [http://p5js.org/|p5.js is a JavaScript library that starts with the original goal of Processing, to make coding accessible for artists, designers, educators, and beginners, and reinterprets this for today’s web.]
* http://sourceforge.net/blog/podcast-programming-without-coding-technology/
* http://doublesvsoop.sourceforge.net/pwcthelp/main.htm
* http://en.wikipedia.org/wiki/Pure_Data
* http://docs.jquery.com/UI/Dialog
* http://mashable.com/2012/01/03/codeacademy-code-year/
* http://technaute.cyberpresse.ca/nouvelles/201202/09/01-4494377-savoir-programmer-bientot-indispensable.php
* http://research.microsoft.com/en-us/collaboration/tools/trident.aspx
* http://mobile.conduit.com/How-to-Create-Mobile-Apps.aspx
* http://www.readwriteweb.com/hack/2010/11/visual-programming.php
* http://lunduke.com/?p=1744
* http://arstechnica.com/information-technology/2011/07/visual-studio-lightswitch-hits-the-market-but-misses-its-markets/
* http://developer.catrobat.org/
* http://www.lastcalc.com/
* https://www.cloudpipes.com/
* https://ifttt.com/
* https://zapier.com/zapbook/
* http://www.twiki.org/cgi-bin/view/Blog/BlogEntry201504x2
* https://www.vtiger.com/crm/workflow-automation/
* https://www.drupal.org/project/rules (Triggers, Conditions and Actions
* https://brionv.com/log/2017/06/18/brain-dump-javascript-sandboxing/
* https://www.theatlantic.com/technology/archive/2017/09/saving-the-world-from-code/540393/
!! Abandoned projects
* http://www.lilyapp.org/
* http://maqetta.org/
* http://code.google.com/p/coral-repo/ (2012)
* http://code.google.com/p/mindscript/
* https://mayhem.codeplex.com/
-=alias=-
* (alias(VPL))
* (alias(Visual programming language))
* (alias(End-user Programming))
* (alias(Interactive Apps))
* (alias(IFTTT))
* (alias(Agents))
* (alias(Trigger))