Web Applications frontend – future or already present?
This weekend I was going to implement one really simple & fast web enabled source code editor frontend. Such task in general seemed to be more or less trivial as I use source code editors all the time. So I started to mock up the proof-of-concept.
First an technology/platform should be selected on which the frontend will be written. Possibilities so far:
- Flash
- Silverlight
- Java Applets, Java FX & family
- HTML & JavaScript
Because Flash is widely distributed across the net - I've started mocking up the prototype right there, but after 1 day of trials, performance improvements & etc I ended up with something which wasn't quite good as I expected:
http://wizartworx.com/hSourceEditorInstance.air (there is used optimized version of http://code.google.com/p/as3syntaxhighlight/ )
As you can see the end result isn't fast enough to support hundreds of source code lines. So eventually flash platform isn't suitable for implementation of robust fast performance code editor. So I questioned myself - what platform eventually will go further than its current state. Silverlight is great, Java too, but all of them actually are plugins and "workarounds" to features which web browser does not has. And with the ongoing HTML5 integration this "workarounds" actually won't be needed anymore. And a proof for that is these path links which I've gathered during the research process:
demos:
- http://3.paulhamill.com/node/39
- http://www.whatwg.org/demos/2008-sept/color/color.html
- http://xant.us/ext-ux/lib/ext-3.0.0/examples/desktop/desktop.html
- http://jeko.free.fr/megapong/
- http://demo.nextapp.com/echo3csjs/
- http://glimr.rubyforge.org/cake/redesign.html
some highlight libs & editors/components:
- http://mihai.bazon.net/projects/javascript-syntax-highlighting-engine
- http://code.google.com/p/google-code-prettify/
- http://marijn.haverbeke.nl/codemirror/
- http://shjs.sourceforge.net/
- http://guillaume.bort.fr/textile-editor/index.html
frameworks:
- http://sproutcore.com/
- http://prototypejs.org/
- http://sizzlejs.com/
- http://www.extjs.com/
- http://www.gapjumper.com/
- http://labs.adobe.com/technologies/spry/home.html
And many many more implementations on the pathway.
Conclusion
I'll leave this section without stating my own opinion, but one is for sure -> HTML5 will change the way how browsers interact with the web, not by themselfs but generally as how developers implement it.
on the way for ITM
Today I've decided to turn head up & look for better ITM (issue task management) system. And because after going into various examples and TRAC and Mantis and etc. and etc. I found myself in nowhere.
So as been curios what is going on with the head line of development turned to Github & Google Code . Sadly didn't found anything covering my expectations (the same situation as DAssistA though). And while still been curious how other people handle working together in easy enough convenient way decided to give a try to the history:
Project management is the discipline of planning, organizing, and managing resources to bring about the successful completion of specific project goals and objectives. It is sometimes conflated with program management, however technically a program is actually a higher level construct: a group of related and somehow interdependent projects.
Flex 4 + AIR 1.5 on Linux
At last after a loooong several hours digging and (re)searching how to setup my ubuntu(9.04 32bit) workstation to be able to develop in somehow _avarage_ speed I found a way doing it so with Flex Builder for Linux alpha 5 (and hopefully there will be alpha 6 supporting fully Flex4
.
I've lost around 2 hours to understand why Flexbuilder can not debug Flex4 based AIR project, when suddenly I've opened project's ".actionScriptProperties" file and found what really was happening preventing me with all of the possible errors found during such setup...
So the problem is in the target version which was used (Flex Builder for Linux is generating air template projects for flex 4.0.0 sdk using 'old' .actionScriptProperties file, a template one you can get from the attached template-workspace-0.1-bla.tar)
And here are the essential parts which needed me quite a lot of time to figure out (may be one day this all will be one click setup?)
0. Ubuntu 9.04 32 bit with java installed (there are a lot of tutorials, mine is just to select its as package via Applications-> Add/Remove UI)
1. You need 32bit Eclipse 3.3.x (extract, mine is /home/outbounder/eclipse)
2. You need Flex Builder of course (run as normal console application ala "ALT+F2 - > xterm")
3. After that you need all the sdks for development:
3.1 flex 4.0
3.1.2 (optional) I still work on flex 3 projects, so sdk 3.4 is needed)
3.3 Air SDK is needed, where strangely for one day I encountered several changes resulting in such download page at this moment (2010.03.17, 2:07 am)
4. Extract flex 4 sdk to install location of flex builder (mine destination is at /home/outoubnder/flexbuilder/sdks/4.0.0)
5. Extract AIR sdk on top of flex 4 sdk destination folder
6. Rename adl & adt (those are located at the ./bin folder of the flex 4 sdk destination folder) to adl_lin & adt_lin
7. Fire up eclipse, add flex 4 sdk (more info here)
8. You can use the above mentioned template workspace for flex3/4 +/- AIR projects
9. You'll need to follow also the instructions for installing Adobe Flash Player 10 — Debugger Version. as well and for even faster coding -> snippets
And now I can dream of abstract GUIs managing complex data relationships...
ActiveBotNetwork ~ concept & something more…
Hello Reader.
I've been talking in real for ABN - written bellow - so many times, that it is final time to me as developer to enter all the thoughts, road blocks and something more in digital form.
The entire purpose of the following is to get the overall picture 'sticked' as much as possible and make it transparent for further improvements. Take in mind that what is stated bellow is subject to change during next meeting follow ups, as it was modified so far. See while I've been talking to people so far, we all had targeted and solved one or another problematic aspect on the concept been discussed.
Don't get scary of the long text bellow, this is the short version
Let's start with Active Bot Network concept in one sentence...
Activebot.net – live
So after many hours spent on researching what is the most simple & stable solution covering all the needs (today's & tomorrow's) http://activebot.net is finally out...
What you may expect from it in the near future is actually what ABN concept stands for: a lot of re-usable apps talking to each other...
But now - coming with modular & scalable API for apps/bots communications through several channels first to be supported:
- REST
- XMPP
... next to come - who knows
DAssitA repo 0.0.7
As DAssitA had moved to almost version been used in more than 3 private projects of mine so far + 2 projects for the East company to which I'm working for it is time to make a quick release of the current repo & its tools/modules.
I have to note that the repo includes some external tools which licenses I've didn't found/included yet, where this will be done for the next major release of DAssitA's repo 0.1.
Let's get started:
Minimum requirements:
- Windows 7 OS
- Adobe AIR runtime installed
You can download the repo_0.0.7
And here are the steps required to get it moving:
0) unzip the downloaded repo to a folder where appropriate (mine setup is that the repo is extracted at D:\pd-repo\)
1) install haxe compiler with batteries included from here
2) install last revision of ActionPdmlToolbar
3) install last revision of PdmlEditor
4) to be able to use Svn module - install slick subversion command line client
5) add to your apache new virtual host pointing to your unziped repo root folder using similar to this syntax:
<VirtualHost *:80>
ServerAdmin webmaster@pdrepo.dev DocumentRoot <<YOUR PATH TO THE REPO's ROOT FOLDER>> ServerName pdrepo.dev ServerAlias pdrepo.dev ErrorLog pdrepo.dev-error_log CustomLog pdrepo.dev-access_log common </VirtualHost>
Note that pdrepo.dev servername alias should not be changed, otherwise ActionPdmlToolbar & PdmlEditor won't boot.
6) add the following entry in C:\windows\system32\drivers\hosts file:
127.0.0.1 pdrepo.dev
7) enable mod_neko2 for your apache by placing the following in httpd.conf:
LoadModule neko_module "C:/Program Files (x86)/Motion-Twin/neko/mod_neko2.ndll" AddHandler neko-handler .n
place the ndll file from <<repo>>/haxe/org/dassista/tools/Prc.ndll to your neko directory
And that you go.
To test is DAssitA is installed properly try the following:
1) launch ActionPdmlToolbar
2) open explorer to <<repo>>\haxe\org\dassista\_pdmls\
3) drag the file compile.pdml to the ActionPdmlToolbar
4) double click on the compile.pdml entry from the action toolbar and see that there are no exceptions or anything scary outputed (usually compiling DAssitA itself requires around 5 to 6 secs and should ouput only empty lines)
Development fundamental problem in evolving context
As things are going really streamlined about Active Network & its immediate possibilities there is one very early scenario problem which should be solved:
1) developer A builds a simple 'mailman' bot, responsible only to sending given mail content + attachments using specified mail server to specified end recipient(s).
2) other developers build bots based on the 'mailman' bot just after its initial version is released.
3) developer A find issue/adds new feature to the mailman bot, thus makes a new version of it (the mailman bot evolves)
4) all other developers need either to use the old version of the mailman bot or to change/fix their bots to be able to use the new version.
The problem is that if bots are kept alive in separate versions - then we'll develop as the nature had been developing our world for million years until now (even today it still does) -> all bot 'branches' based on old versions of bots will eventually fail or will need to evolve to be able to keep them-selfs stable...
But as we are building the context where bots will reside, therefore we can make it to shorten to minimum the evolving time & amount of 'dead' bot branches...
There will be an open realtime discussion about that in skype today (25.11.09) at 21:00 BG/FI time. If you want to participate just place a comment on this post or contact me at skype : b.filipov , so upon the time we can gather all in one conversation.
DAssistA on the long run
Currently there is running development on the ActionPdmlToolbar which will support PdmlEditor for execution/parsing of pdml files. Where there current solutions defined into applications is as follows:
DAssistA shell can do only one thing: invoke & pass any command line arguments to specified multi-module.
DAssistA rest can do only one thing which is the same as the shell, but made in rest-like context via http request/responses
ActionPdmlToolbar can do only two simple things:
- list available (cached) pdmls & triggers their parsing/execution also providing feedback as pop up window.
- list available runtime modules returned by ModuleInfo impl. & trigger their execution.
PdmlEditor can do only one simple thing:
- edit pdml files. Currently it supports drag & drop operations for all available runtime modules returned by ModuleInfo impl.
So far so good.
There are still some little issues which should be fixed before new repo release can be made + engaging auto-update features for both PdmlEditor & ActionPdmlToolbar.
One of the biggest challenges so far is to build 'universal' application while keep the code needed to minimum, where this is so far hard near to impossible even for so simple things like fast & cross-platform command line invokes... But all this soon will be past
DAssistA now has PdmlEditor integration
As the pdml editor evolved into very useful tool for writing down pdml scripts, today I've bundled a simple repo setup pdml script for automatic download & install of it. Take a look at :
Note: you'll need haxe compiler installed to be able to engage the system
Here is simple steps to be followed (later will make them automatic):
1) you need a repo(swarm) & haxe compiler installed
2) type within the repo "parser.bat haxe.org.dassista._pdmls.setup" - this will install PdmlEditor
3) start DAssistA's restService by typing within the repo "restService.bat"
4) Use PdmlEditor as separate application for editing pdml files.
Next to come:
PdmlToolbar - separate quick access to avarage pdml files
ProjectModeler - separate project modeling tool (just the top of the iceberg indeed)
A snip into the future
Today one quote took a spinning turn in my mind:
Graph oriented data persistence is just the beginning of AI
That's all it goes...

