See the Subversion log for all the details (svn log). =========================================================================== daboIDE 0.8 (2007-05-20) (Revision 845): + Added Float types to the quick layout wizard (thanks John Fabiani). + Fixed Editor to show the line even if folded during the function popup, plus other enhancements to Editor. + AppWizard now building apps using datanav2 instead of original datanav. + Added support for postgres schemas (thanks John Fabiani). + Fixed bugs related to setting custom properties and custom classes in the class designer. + AppWizard-generated bizobjs now explicitly set DataStructure. + Fixed a bug that kept image controls from resizing in the Class Designer. + Fixed the problem with incorrect relative paths being stored for CxnFile values. + Converted the pref editor to single-file structure. + In general, the Class Designer is moving forward, with better sizer control, better propsheet options, saving classes inside other designs, getting inheritance working correctly, etc. + Added dScrollPanel as a potential container class. + Turned off continuous mouse event handling. This was responsible for a lot of performance problems, such as the 100% CPU usage noted in Ticket #1008. It should also eliminate the layout panels repeatedly redrawing themselves unless one of them is selected. + Appwizard-generated apps now use the tango icon set, resulting in much prettier applications. + Added some defensive code to alert the user when writing to the disk fails. Ticket [1057]. + Only store a relative path for the database if it is a file-based backend. Tracker [1024]. =========================================================================== daboIDE 0.7.1 (2007-01-15) (Revision 753): + Illegible fontsize in AppWizard's convert_to_spaces option. Fixed. + Added necessary pathing for AppWizard to find its template files. + Fixed AppWizard code to call the dabo method, not the wx method. =========================================================================== daboIDE 0.7 (2006-11-21) (Revision 687): + AppWizard improved courtesy suggestions by Norman Winn. Better output options, including being able to choose the application name and target directory. + Class Designer now has the option of using sizers or not in non-form classes. + Further bugfixes and inconsistency fixes, including one that prevented control classes from being properly saved and reused. + New preference manager tool, kind of similar to regedit on Windows. + Enabled Windows XP Theme support for AppWizard-generated apps. + Improved sizer handling in the class designer. + Class Designer supports designing trees and splitters. + Class Designer now saves method code in an actual python file, instead of embedded in the .cdxml file. This makes it possible to edit the code using any text editor or your favorite python editor. + Class Designer now allows for non-sizer designs, such as what we old VFP'ers are used to. Absolute positioning gives you absolute control, but remember the price: your design may look awful when you try to run it on a different platform. + Class Designer now allows for marquee selection. + You can now visually drag controls around the Class Designer surface. + You can now align controls by selecting a menu option. + Improved relative pathing. + You sadists can now generate apps from the AppWizard using spaces instead of tabs for indentation. + QuickLayoutWizard can now automatically generate your bizobj's. + Lots of incremental improvements and bug fixes to the Class Designer. + A few minor fixes to the Report Designer. =========================================================================== daboIDE 0.5 (2006-03-27) (Revision 510): ------------------------------------------------------------------------ r387 | ed | 2006-01-26 11:05:53 -0800 (Thu, 26 Jan 2006) | 2 lines Modified the app so that when there are no more Designer windows open, the app terminates. ------------------------------------------------------------------------ r388 | paul | 2006-01-26 14:20:33 -0800 (Thu, 26 Jan 2006) | 8 lines Implemented tab navigation for report objects, making it easier to stick with a pure-keyboard report designer experience. Implemented a nice feature where if you press Ctrl+Enter on a selected object, the propsheet takes the focus, and in the case of string objects, the expr property editor takes the focus. So you don't need to reach for the mouse. ------------------------------------------------------------------------ r390 | ed | 2006-01-26 15:12:22 -0800 (Thu, 26 Jan 2006) | 2 lines The Editor now remembers the path of your last selection when opening files. ------------------------------------------------------------------------ r391 | ed | 2006-01-26 17:40:39 -0800 (Thu, 26 Jan 2006) | 2 lines Implemented a right-click context menu for the Object Tree. Right now only controls and all sizers except for the main sizer have an option, and that one option is 'Delete'. Selecting that will delete the control/sizer; deleting a sizer deletes everything contained within that sizer, so perhaps this might need an 'are you sure' warning. ------------------------------------------------------------------------ r394 | ed | 2006-01-26 21:49:44 -0800 (Thu, 26 Jan 2006) | 2 lines Changed the Rows and Columns properties of the LayoutGridSizer to be real live properties. Modifying their values in the Designer will change the layout accordingly. ------------------------------------------------------------------------ r405 | ed | 2006-01-28 15:34:39 -0800 (Sat, 28 Jan 2006) | 4 lines Added a function button that, when clicked, produces a list of all class definitions and 'def' statements. Selecting any of these moves you to that class/method. Also added a keyboard shortcut of Ctrl-Shift-S for 'Save as'. ------------------------------------------------------------------------ r408 | ed | 2006-01-29 20:07:44 -0800 (Sun, 29 Jan 2006) | 2 lines Implemented cut/copy/paste for sizers. You can select a sizer, either through the Object Tree or by the keyboard shortcuts, and choose Cut/Copy from the Edit menu, or use the keyboard shortcuts. You can also right-click on any object in the Object Tree and cut/copy/delete from there. You can also right-click on an empty sizer slot and paste the contents of the app clipboard into that slot. ------------------------------------------------------------------------ r413 | paul | 2006-01-30 16:31:20 -0800 (Mon, 30 Jan 2006) | 4 lines (Re)Added moving and sizing of report objects using the mouse. The flicker on Windows is probably horrible, but on Gtk it looks good. I need to add more feedback to the move action, but this is a start. ------------------------------------------------------------------------ r415 | ed | 2006-01-30 17:38:07 -0800 (Mon, 30 Jan 2006) | 4 lines Added cut/copy/paste methods to LayoutGridSizer. Added a missing call to Tree.select() that was preventing some updates to the Designer from updating the currently selected node in the tree. ------------------------------------------------------------------------ r425 | paul | 2006-02-03 16:24:25 -0800 (Fri, 03 Feb 2006) | 6 lines Right-click on a band, choose "new object", and along with "String", "Rectangle", "Image", etc., you will now get presented with a list of fields from the TestCursor. Choosing one of those will result in a String object being created with the expression already filled in for you. ------------------------------------------------------------------------ r427 | ed | 2006-02-03 17:45:29 -0800 (Fri, 03 Feb 2006) | 2 lines Added the ability to set bookmarks in documents. This is all handled through the new bookmark button (with the 'M' at the top of the editor). I plan on adding right-click support, but this will have to do for now. I also plan on making the bookmarks persistent when you save the file, but again, that will be done at a later time. ------------------------------------------------------------------------ r428 | ed | 2006-02-04 14:07:39 -0800 (Sat, 04 Feb 2006) | 4 lines Added right-click access to the bookmark menu. Now you can right-click on a line of code to set the bookmark directly, instead of having to select the line and then clicking on the Bookmark button. ------------------------------------------------------------------------ r433 | ed | 2006-02-07 07:35:38 -0800 (Tue, 07 Feb 2006) | 4 lines Added the Sizer_RowSpan and Sizer_ColSpan properties to items in the Designer. This now allows you to set the span properties of items in GridSizers in the Designer. ------------------------------------------------------------------------ r437 | paul | 2006-02-09 12:00:20 -0800 (Thu, 09 Feb 2006) | 18 lines Added an option to generate an app that doesn't use fieldSpecs. Instead, it generates the code that otherwise happens inside the datanav classes. Currently, much of this code is kind of ugly, but I hope to clean it up over time. The hope is that more useful boilerplate code is available for people to learn from. The downside to generating more code is that if we later find a bug in it, people will have to manually fix them or regenerate and lose any changes they may have made. Using fieldSpecs, you have the benefit of being able to protect your fieldSpecs file and regenerate everything else, which wasn't likely modified. So, consider this experimental at this point. One of my thoughts is that when the IDE is ready we can have an option to generate .cdxml files instead of .py files, which could be easily edited and tweaked in the designer. ------------------------------------------------------------------------ r438 | ed | 2006-02-10 18:34:07 -0800 (Fri, 10 Feb 2006) | 2 lines This is a really cool improvement I've been thinking about ever since Don Taylor started asking about being able to work with sizer settings in a manner similar to wxGlade. Now you can right-click on any object, select 'Edit Sizer Settings' from the context menu, and you get a dialog that allows you to edit the sizer properties live. That means that as you change the values in the dialog, the Designer surface updates to reflect the new setting. If you click 'OK' for the dialog, the settings are preserved, but if you click 'Cancel', everything reverts back to the way it was. ------------------------------------------------------------------------ r443 | ed | 2006-02-11 17:46:31 -0800 (Sat, 11 Feb 2006) | 10 lines Lots of changes, many of which will be appreciated by the Windows-using folks out there. As I begin to prepare for PyCon, I'm making sure that things look as good as possible under Windows, since that is what I'll be presenting on. First off, all forms now include a base panel to hide that ugly dark grey that is the default for Windows frames. This includes the Designer; the panel in the Designer form doesn't show up in the object tree, nor does it get saved in your design. I'm looking into ways to make this become part of the default design, but for now it's just a visual thing. Improved the sizer settings dialogs. You can now launch them from the Object Tree, too. I don't know if this is due to my lame video on my laptop, but the pale color I was using for LayoutPanels was showing up as indistinguishable from white, so I changed it to a more visible color. Changed the Editor to display classes and methods in sorted format when clicking the Function button. ------------------------------------------------------------------------ r447 | ed | 2006-02-12 12:02:17 -0800 (Sun, 12 Feb 2006) | 2 lines Added support for the Header* props when editing dColumns in the Designer. ------------------------------------------------------------------------ r452 | ed | 2006-02-14 18:38:14 -0800 (Tue, 14 Feb 2006) | 2 lines Now that the matter of multiple UI app instances is resolved, most scripts can now be run from the Editor. I fixed the problem of running under the Mac, but didn't spend time making a non-blocking version with useful output, etc. ------------------------------------------------------------------------ r453 | paul | 2006-02-15 09:57:47 -0800 (Wed, 15 Feb 2006) | 36 lines The field list is now sorted in the "Add object" context menu. It is also in a sub-sub menu of its own. Also, there is a new "Variables" submenu that lets you easily add an object based on a variable. Less typing, inspired by constructive feedback by Charlie Coleman. I also made the report string objects only display the record or variable name, in the case that that was all the expression was showing. Complex expressions still show the full expression (or try to). This is also inspired by Charlie's comments. Some other things mentioned were: + select lasso: to be implemented + object alignment: I never used this in VFP, so I may need to be bugged about it in the future to get it implemented. + layering: Yes, objects are layered. The first object is drawn first, and subsequent objects are drawn on top. This is important if you have e.g. an opaque rectangle that you want to put a string inside of. + dynamic props: Dynamic props like the UI of Dabo is on my radar screen, however there's already built-in dynamism in that all the properties are expressions that will get evaluated at runtime. So, if you wanted to have a field print larger if the amount is > 0, you could make the FontSize property have a value of "18 if self.amount > 0 else 12". Note that that syntax doesn't exist in current Python but will in the next version. It will make things like this really simple and killer. + "print when" is implemented already. I call it "Show", and it defaults to True. ------------------------------------------------------------------------ r454 | ed | 2006-02-15 14:24:54 -0800 (Wed, 15 Feb 2006) | 4 lines Added the ability to open files that are dropped on the Editor window. This was developed and tested on Windows; I will now test to make sure it works on other platforms, too. ------------------------------------------------------------------------ r458 | ed | 2006-02-16 09:15:36 -0800 (Thu, 16 Feb 2006) | 2 lines Added the ability to edit sizers directly in the 'Sizer Settings' dialog. You can now right-click on any item in the object tree (well, except for the form itself), and edit sizer properties there. ------------------------------------------------------------------------ r459 | echo | 2006-02-16 09:59:23 -0800 (Thu, 16 Feb 2006) | 3 lines The output of when running something from Editor now shows up in Editor. It also remembers if you want the output hidden or not and the size of it. Editor now remembers the last directory that was opened from even when you get out. ------------------------------------------------------------------------ r460 | paul | 2006-02-16 10:19:41 -0800 (Thu, 16 Feb 2006) | 11 lines Factored out getShortExpr() into the designer controller, and made it better shorten all kinds of things: "Description" -> Description self.Application.getAppInfo("companyName") -> companyName "Subtotal: %s" % (self.subtotal) -> Subtotal: %s self.Record["name"] -> name self.name -> name (if name is a record or variable) Applied this shortening to both the designer surface and the object tree. ------------------------------------------------------------------------ r467 | paul | 2006-02-16 13:08:02 -0800 (Thu, 16 Feb 2006) | 3 lines Added a dashed box around unselected controls, for convenience when placing other objects. ------------------------------------------------------------------------ r474 | ed | 2006-02-17 18:21:30 -0800 (Fri, 17 Feb 2006) | 8 lines This is the first half of the process of being able to save non-form classes from Designer and re-use them in your own classes. Right now it's at the point where it will properly save a class design, and allow you to drop an instance of that design into another design. It will then save the combined class, preserving the class characteristics of the added component. Next on the agenda is being able to open up a saved .cdxml file containing such a saved file and properly restore the added class object. This does not work yet. Watching Paul's screencasts reminded me of the ability of the PropSheet to edit multiple controls at once. I had deliberately disabled that in order to keep things simple while developing the whole Designer framework, but see no reason to keep it disabled. You can now select multiple objects by shift-clicking, and their common props will be visible in the Prop Sheet, where they can be edited. Changed the shortcut key for "Save as Class" to Ctrl+Shift+S. ------------------------------------------------------------------------ r475 | ed | 2006-02-19 10:04:18 -0800 (Sun, 19 Feb 2006) | 4 lines Improved the process of saving an item as a class. A key problem was how to track complex classes containing many objects; the user should be able to modify those objects, including deleting them and adding others, while still maintaining inheritance. I've added an attribute named 'classID' that tracks this relation, and allows for a container to identify its child objects. The implementation still needs work as far as re-creating and running forms that use contained classes, but that should be done real soon. ------------------------------------------------------------------------ r476 | ed | 2006-02-19 19:13:48 -0800 (Sun, 19 Feb 2006) | 4 lines Continued improvement on the implementation of classes in the Designer. You can now save a complex item as a class, and use that class in another design. If you later change the saved class, the changes will be reflected the next time you open the design that uses it, unless you already overrode the affected properties. Next step is to get the runtime version of the forms to work with embedded classes. ------------------------------------------------------------------------ r477 | ed | 2006-02-20 14:35:39 -0800 (Mon, 20 Feb 2006) | 4 lines Added menu options for creating a new, blank Designer surface, as well as reverting any open Designer to the last copy saved to disk. ----------------------------------------------------------------------- r481 | paul | 2006-02-23 18:27:22 -0800 (Thu, 23 Feb 2006) | 4 lines Added DesignerLock property to all drawable objects, not just Band objects. Now when you try to move an object with the mouse or keyboard, if DesignerLock evaluates to True, it won't budge. Keeps you from making stupid mistakes. ------------------------------------------------------------------------ r485 | ed | 2006-02-25 12:20:12 -0800 (Sat, 25 Feb 2006) | 2 lines Enabled modification of spacers via the 'Edit Sizer Settings' dialog. ------------------------------------------------------------------------ r486 | ed | 2006-02-25 12:42:53 -0800 (Sat, 25 Feb 2006) | 2 lines Implemented cut/copy/paste for spacers both on the designer surface and in the tree. ------------------------------------------------------------------------ r487 | ed | 2006-02-26 07:30:56 -0800 (Sun, 26 Feb 2006) | 2 lines Box sizers can now be switched between plain and bordered. There is no way to do this on the design surface, since there is no direct means of accessing the sizer, so you need to right-click the sizer in the Object Tree. There is now an option to 'Add Border' or 'Remove Border', depending on the current type of sizer selected. ------------------------------------------------------------------------ r488 | ed | 2006-02-28 14:06:11 -0800 (Tue, 28 Feb 2006) | 3 lines Changed all the Designer* classes to be named ClassDesigner*. Updated all old references to these classes with the new names. ------------------------------------------------------------------------ r490 | paul | 2006-03-02 07:31:35 -0800 (Thu, 02 Mar 2006) | 2 lines Added ruler marks for points. This is just a start, and a bit hackish. ------------------------------------------------------------------------ r496 | ed | 2006-03-05 08:27:06 -0800 (Sun, 05 Mar 2006) | 2 lines Added the beginning of the code to support adding custom properties to objects in the Class Designer. Right now you can add and edit them, but it doesn't actually create the getter/setter/deller methods, nor persist them when the class is saved and/or run. ------------------------------------------------------------------------ r498 | ed | 2006-03-12 17:14:07 -0800 (Sun, 12 Mar 2006) | 2 lines Added support for defining properties for classes in the ClassDesigner. Next step is to make these properties editable in the Prop Sheet, just like all the other properties. ------------------------------------------------------------------------ r499 | ed | 2006-03-13 16:56:05 -0800 (Mon, 13 Mar 2006) | 9 lines Fixed some of the previews in the QuickLayoutWizard. Fixed some bugs that was preventing the QuickLayoutWizard from finishing properly, resulting in nothing being added to the Designer form, or it being added incorrectly. Added the ability to specify a default value in the Custom Property dialog. Custom properties now display in the Prop Sheet, and can be edited. Right now they are limited to strings; the next change will allow the type of the property to be specified. ------------------------------------------------------------------------ r500 | paul | 2006-03-14 13:14:59 -0800 (Tue, 14 Mar 2006) | 4 lines Added the (essential) ability to be able to rearrange the ordering of groups and variables. For now, it is only "move to top" and "move to bottom", but at least it satisfies the basic need. ------------------------------------------------------------------------ r501 | ed | 2006-03-15 19:46:41 -0800 (Wed, 15 Mar 2006) | 8 lines Added the MenuDesigner. This is a first pass, that establishes the base classes used to design menus. Most of the functionality is still to be added, and there is no capability for generating usable menus. But this is a basis to build upon. Added the ability to specify the type of a custom property in the ClassDesigner. Added a button for deleting a custom property. Improved the dynamic enabling/disabling of the buttons for custom properties. ------------------------------------------------------------------------ daboIDE 0.4 (2006-01-25) (Revision 378): AppWizard: Removed the automatic importing from ui, db, and biz packages in generated applications. It is much clearer and less problem-prone to import explicitly... I had run into issues on Mac, and with frozen apps on Windows. Also added some code to the main file to reroute the dabo errorLog to an error.log file if we are running frozen. Added explicit setting of the form Icon property to the generated code, so it is immediately obvious to the developer where to change this for their own app. Added generation of a __version__.py which the developer can update as necessary. Added missing 'self' argument to example commented code. Thanks to Matthew Fairclough for finding this and pointing it out! Added a setup.py and buildwin.bat for creating py2exe executables of apps generated from AppWizard. This contains code to find and include the dabo icons as well as the directory structure of the app including the resources and reports directory. Dabo Designer: Added code editing to the designer. You can now add whatever methods you like to your designs. Methods tied to events (i.e., those that begin with 'on') will be auto-bound to those events. Added the option to run a form directly from the Designer for the purpose of doing quick tests. Besides making it easier for developers, it makes demos much easier, too! Enabled dragging and dropping of controls in the Designer. Now you can drag any control to any open sizer slot to reposition it. Added the ability to save a short .py file that will run any valid .cdxml file. While this isn't the same as creating a full-blown app, it allows for the first time the ability to create a self-contained, functioning application from the Designer. Added cut/copy/paste of controls in the Designer surface. The normal menu commands are still for text copying only and don't integrate with the objects yet; you have to do these operations through the right click menu. Added the option of adding a dBorderSizer instead of a plain dSizer to the Designer. Added support for sizer spacers in the Designer. Added the BorderSides property to the list of sizer props to be edited. Added an editor for editing this property. Changed all old 'borderFlags' references to 'borderSides'. Added an object tree to the report designer, and got object selection working from either the designer surface or from the object tree. Added a box at the bottom of the propsheet that shows the docstring for the property. Improved the RowHeight of the PropSheet when running under Windows Added dynamic menus to the main Designer form. These menus now properly reflect the shown/hidden state of the various windows. The code that manages the supporting windows (e.g., prop sheet, layout tree) now handles when the user closes the window instead of simply hiding them. Improved separation of these items from their containing form in case we combine them into another form at a later date. Cleaned up some of the property updating routines. Added support for changing the ControllingSizer of sizers as well as regular controls. Fixed a bug that prevented the Control Palette from working. Internationalized the Designer Menu. Gave the LayoutPanel object a minimum size so that when you set their sizer to not expand and a proportion of 0 they don't disappear. Also gave them a light blue color to make them more visible. Modified the Designer windows so that they are not children of the initial Designer form opened. Now if you are editing multiple designs, the app doesn't quit when you close the first one. Implemented copy/paste in a much more flexible manner, using the system clipboard. You can have two instances of the Report Designer open, editing different reports, and you can copy/paste between them. Reworked how objects are drawn on the designer. Previously, each object was a dPanel with its own overridded onPaint handler. Now, each object just gets drawn by the Band's onPaint. Performance is improved, as is the look. The designer can draw rectangles and lines now. And it properly clips the drawing of the objects to the bounds of the object. Nudging objects with the keyboard works again (but mouse dragging still does not), with the additional feature of not messing with the unit of measure: if the x property was originally '0.5 in', and you hit right- arrow, the code first converts that into points (36), adds 1 (37), and then converts that back to inches ('0.5139 in'). Added conditional enabling of the 'Controls' menu items, depending on whether the current target could accept that item. daboide-0.3 (2005-11-29) (Revision 260): Greatly improved AppWizard. It now generates a directory/file structure that mirrors Dabo's structure: App at the top, and packages for db, ui, and biz. Instead of everything being in one big file, you get individual files for each form, bizobj, etc. and good boilerplate to run with. Much more scalable! The new AppWizard also generates a sample report, along with a menu item to launch the report. The new AppWizard now generates code that makes MDI forms on Windows and SDI forms on Mac and Linux. This is an easily-overridable one-liner, in case you want different runtime behavior. The work on the ReportDesigner continues. You still can't use it to develop new reports, but the designer property sheet is working well, as is the 2-way editing (visual and xml). I've added copy/paste, bring to top/send to bottom, and better dragging of report objects. The Dabo Class Designer has made the transition from a curiosity to a potentially useful tool. You are now able to create complex layouts, save those layouts, and then create forms that match those layouts from the saved .cdxml file. The nesting of sizers is now much cleaner and reliable, and the various paged controls (e.g., PageFrames) are also fully supported. Next up on the ToDo list for the Designer is to add the ability to create and edit code for events of the various controls, have that code saved, and then have the running form created from the saved file properly execute that code. daboide-0.2.2 (2005-10-07) (Revision 187): Updated the wizard to use the new biz.DefaultValues property. Updated the designer propsheet to follow all the dGrid changes. daboide-0.2.1 (2005-08-30) (Revision 176): Work continues on the Dabo Report Designer. Renamed to ReportDesigner. Fixed dIDE to load, but it still doesn't do much other than load Python scripts to edit in dEditor. Renamed to IDE. Generated applications using AppWizard now have extra hooking opportunities, such as subclassing a MyBizobj instead of directly from dBizobj, allowing the developer to set some common things. Also, the FileOpen code was made easier for beginners to follow along with the code. Added myEditPages module to generated apps, making it even easier for people to supply their own custom edit pages which override the automatically generated ones. Grid columns now autosize by default instead of defaulting to a fixed width of 100. AppWizard can now generate apps based on SQLite databases. Made dEditor's zoom factor save/restore to user settings. Added a first-stab of a "run script" funtion to dEditor, although it is very braindead at the moment. daboide-0.2 (2005-08-08) (Revision 148): UI designer revamped to take a sizer-first POV. The designer is looking really great, but still isn't usable for production use yet. There's an object browser tree, a properties sheet, and a design surface. It will save your UI design to XML, and then reload it back from the saved XML for editing. Report designer moved from dabo, and coming together. It can load a report layout from a saved .rfxml file, present it in the designer, allow you to change properties of report objects, and let you preview to pdf and save your changes back to the rfxml file. So... most of the basic underlying structure is there, but details need to be filled in. daboide-0.1.2 (2005-03-21) (Revision 97): Lots of bug fixes and incremental progress. daboide-0.1.1 (2005-02-16) (Revision 76): Designer --------- Added Data Environment to form class. Simple controls can be added to form class. Added Methods tab (empty for now) to Prop Sheet. AppWizard --------- Now creates XML files for connection info. Refactored to generate code compatible with new lib/datanav classes. DaboIDE-0.1 (2005-01-10): The appWizard was moved from dabodemo into daboide/wizards. The FieldSpecEditor was moved from dabodemo into daboide. A dEditor was added which can edit python scripts. There is a connection editor that can set up your dbConnectionDefs.py file. A new graphical designer is underway but in flux and not included in the 0.1 release (but available via subversion). Everything here in daboide will eventually come together in an integrated development environment, but for now it is all very alpha.