<?xml version="1.0" encoding="iso-8859-1"?>
<!-- name="generator" content="pyblosxom/1.3.2 2/13/2006" -->
<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">

<rss version="0.91">
<channel>
<title>Dabo News   </title>
<link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi</link>
<description>Messages from the Dabo developers</description>
<language>en</language>
<item>
  <title>Web Update revision 5924 Posted</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/Web_Update_revision_5924_Posted.html</link>
  <description><![CDATA[
<p>- Reverts a behavioral change introduced accidentally in r5846. Now scan() will requery child bizobjs by default.<br />
- Created the 'ustr()' method in dabo.lib.utils. This is designed to replace all of our calls to str() in order to eliminate the unicode encoding errors that pop up frequently when non-American developers use Dabo.<br />To use, include the line:<br />&nbsp;&nbsp;&nbsp;from dabo.lib.utils<br />&nbsp;&nbsp;&nbsp; import ustr<br />in your import statements, and then replace all instances of str(val) with ustr(val).<br />
- Added some sizer outline code to dFormMixin that was inadvertantly left out of the last Web Update.<br />
- dRichTextBox: Changed the 'InsertionPoint' property to 'InsertionPosition' to be consistent with other editing controls.<br />
- dRichTextBox: Renamed the 'loadFromFile()' and 'saveToFile()' methods to 'load()' and 'save()', respectively, as they can use any file-like object.</p>
]]></description>
</item>

<item>
  <title>Web Update revision 5910 Posted</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/Web_Update_revision_5910_Posted.html</link>
  <description><![CDATA[
<p>- Added the dRichTextBox class, which allows for basic rich text editing and display.<br />
- Fixed a bug in Web Update that prevented apps from recognizing that Web Update had not yet been run for that Dabo installation.<br />
- Changed the PreferenceDialog to use a basic dPageFrame instead of dPageList, due to wx warnings.<br />
- Fixed a potential problem in list controls where the control could try to access its value before the correct DataSource had been set.<br />
- Added code to reduce dGrid flickering under Windows.<br />
- Added the ImageRenderer class to display images in grid cells.<br />
- The code that handles dropped text/files now preserves the x,y location of the drop so that you can tell where on the control the user dropped.<br />
- Added a textbox-level NoneDisplay property so that individual text box controls can determine how they display None values instead of all controls using dApp.NoneDisplay.<br />
- Fixed an incompatibility with a recent wxPython change to the foldpanelbar class.<br />
- Several visual improvements to the dPageStyled class.<br />
- Fixed a bug in dSlider that prevented reversed display.<br />
- Fixed some inheritance issues with sizers.<br />
- Improved sizer outlining to be more flexible. This is mostly for app design uses.<br />
- Added support for the dPageStyled class to the Class Designer.<br />
- Added visual indication of sizers in the Class Designer when a sizer is the selected object.<br />
- Added the HomeDirectoryStatusBar to the visual tools to display your current app's HomeDirectory.<br />
- Updated the standard directory structure for Dabo apps to include 'cache' and 'lib' directories.<br />
- Fixed some import errors in reportWriter.py<br />
- Added an optimization to dDataSet that improves performance when doing multiple queries against the same data.<br />
- Added an optional optimization to dBizobj that avoids having to requery child bizobjs during a scan().</p>

]]></description>
</item>

<item>
  <title>New Screencast: The Dabo Shell and the UI Browse Command</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/New_Screencast%3A_The_Dabo_Shell_and_the_UI_Browse_Command.html</link>
  <description><![CDATA[
<p>I've just created a new screencast that I wanted to do based on feedback<br />
from the tutorial session Paul and I did at the most recent PyCon. It<br />
was apparent that many people were not familiar with the shell/command<br />
window in Dabo, so I wanted to demonstrate some time-saving tips. Also,<br />
when I demonstrated the dabo.ui.browse() command, John Fabiani noted<br />
that he had never known about it, despite it being available from the<br />
very early versions of Dabo.<br />
<br />
The URL for the screencast is:<br />
<br />
http://cdn.cloudfiles.mosso.com/c129431/browse_shell.html<br />
( -or- http://j.mp/9r8XL7 )<br />
<br />
I also wanted to mention that this is the first screencast I recorded<br />
using Jing (http://www.jingproject.com/), and it's a fantastic product.<br />
The free version is limited to 5 minute recordings, but I think I may<br />
upgrade to the paid version for only $15/year.<br />
</p>

]]></description>
</item>

<item>
  <title>Web Update revision 5765 Posted</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/Web_Update_revision_5765_Posted.html</link>
  <description><![CDATA[
<p>- Fixed a bug in the JsonConverter imports.<br />
- Corrected the bizobj isChanged() function to reflect new records as well as modified records.<br />
- Added dApp.AutoImportConnections property. When False, dApp will skip the process of finding and loading dConnectInfo objects from found cnxml files. My app is being enhanced to use cnxml files, but I use my own logic on which cnxml file to use.<br />
- Augmented biz.getTempCursor() with some optional arguments, allowing the appdev to set sql, params, and have automatic requerying before returning the cursor reference.<br />
- dSlider: added the Reversed and TickPosition properties, as requested by Mike Mabey.<br />
- Finally fixed a dMenuItem bug that's been bothering me for (I think) years now. On Windows, sometimes there would be double captions, and the "Close Window" item in the File menu would be corrupted. Apparently, the timing of calling SetBitmap() is crucial: it must happen before SetText().<br />
- Fixed the language problems withthe code to find menus in AppWizard applications. <br />
- dDateTextBox: allows the user to clear the date (set to None) by adding a shortcut ('N')<br />
- dReportWriter: Fixed bug with spanning objects: if the group didn't print for whatever reason, the spanning never started. Therefore, we can't try to draw the object.<br />
- Fixed a bug in dGrid's incremental search on Windows.<br />
- Refactored the 'resolvePathAndUpdate()' method into dabo.lib.utils instead of dabo.ui.uiwx<br />
- Added window scrolling events to dGrid and dScrollPanel, so that your code can now handle them if needed.<br />
- Added optional argument to cur.execute() to convert any ?'s to the backend's paramPlaceholder.<br />
- Made the localization installation process a little more sane, as it seems that it is especially prone to errors. Now, instead of abending when the dabo localization file isn't found, it prints an error and continues. The app will continue to work fine, but no translations will be done.<br />
- Fixed a bug that prevented boolean values in grid columns from being properly restored. Trac issue #1247.<br />
- Added a flag to avoid an unnecessary pointer movement caused by setting the DataSource of the grid to a bizobj after the bizobj had already been created and had its record pointer set. Trac issue #1314.<br />
- The logic for constructing the filtering WHERE clause in child bizobjs has been corrected to by fully paramterized, instead of 'injecting' the value directly into the SQL.<br />
- Fixed a problem when re-opening designs for custom classes. Reported by Martinecz Miklós.<br />
- Added the 'GridCellEditEnd' event, which is raised when a grid cell editor is hidden, whether the value has been changed or not.<br />
- Fixed a potential issue in the Class Designer Property Sheet in which you could be editing the value of a property of one control, and then navigate to a different control and have your change accidentally be applied to the second control.<br />
- Fixed the Crypto property so that setting it to a crypto object will result in the encrypt() and decrypt() methods using that object.<br />
- Fixed a bug in the filterByExpression() method that only replace the first occurrence of a field name in the expression. Reported by Ricardo Aráoz.<br />
- Changed the Face setter to ignore attempts to set it to 'MS Shell Dlg*' font face names, which can happen when a cdxml file created on Windows is opened on Mac or Linux.<br />
- Changed the HomeDirectory setter to write an errorLog entry instead of throwing an exception when an invalid path is passed. Again, this is an issue with moving a cdxml from one system to another.<br />
- Changed the behavior when attempting to set the Face to a non-existent fontface. Instead of throwing an error, an entry is written to the Dabo error log describing the issue. <br />
- Updated dLed to make it data-aware. It can now be bound to a DataSource and DataField, and have its Color reflect the underlying boolean value.</p>
]]></description>
</item>

<item>
  <title>Web Update revision 5694 Posted</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/Web_Update_revision_5694_Posted.html</link>
  <description><![CDATA[
<p>- POTENTIAL BREAKAGE: Revamped the handling of pathing. If you have file path references in your cdxml or cnxml files, this could break your old files. Pathing is now relative to the HomeDirectory of your app, instead of the location of the tool that created the file.<br />
- POTENTIAL BREAKAGE: Updated the internal encryption code to support the use of DES3 cryptography if you have the PyCrypto package installed. There is also a write-only property of dApp called 'CryptoKey': when you set that property, if you have PyCrypto installed, it will create a new SimpleCrypt instance that uses DES3 encryption, with that value as the encryption key. And to avoid having to pass a plain-text value to the app creation, you can set this property at any time, passing either a string or any callable. By passing a callable, you can more effectively hide the way your key is stored; the actual key never has to appear in your code at all. If you have cnxml files created with the old code, they may no longer work. Simple re-run the CxnEditor to re-save them with the new encryption.<br />
- Added the UIAppClass property to dApp. It can be set to a custom subclass of dabo.ui.uiApp, to enable developers to add ui toolkit-specific behaviors. <br />
- Fixed an issue with the cursor's _mementos attribute getting inadvertantly altered by record cloning. Trac #1316<br />
- Overrode the removeAll() method of this control to work properly with the underlying wx control. Trac #1308<br />
- Added some code to ensure a minimal wx version.<br />
- Fixed the problem described by Jacek in dabo-users today where the cursor won't save a new unchanged record even if the bizobj is set to SaveNewUnchanged.<br />
- Fixed a problem in the seek() method when called from the bizobj when the table has a compound pk. Also improved the algorithm for matching and near-matching. Trac issue #1330.<br />
- Major fix to how resizing is handled for panels. Previously, there were cases where panels would get "stuck" at a large size and were not able to be resized smaller. This should fix that problem. Also added the 'Square' property. When set to True, the panel will confine itself to a square shape.<br />
- If a dBizobj.filter() call filters out all records, a NoRecordsException was being raised. This is generally not necessary, so this is now caught. Trac #1331<br />
- Added code to handle the case in dGrid where a case-insensitive search is being done on a string type column with null values.<br />
- Corrects a problem identified by Jacek Kałucki in which some columns that don't have defined data types only get their type corrected the first time a query is run.<br />
- Fixed a bug that only happened if you called the layout() method of the StatusBar. The attribute '_platformIsWindows' had been previously defined in dPanel, but dStatusBar no longer inherits from that.<br />
- Fixed getCaptureBitmap() to use a WindowDC for panels and dialogs instead of the parent's ClientDC.<br />
- Added the StatusBarClass property, which will allow a form to create any status bar subclass that is needed. Defaults to the standard dStatusBar.<br />
- Fixed a problem when using direct object references as the DataSource, discovered by Jacek Kałucki.<br />
- Added biz.hasPK() method. It answers the question "is this PK value present in the dataset?" It doesn't move the pointer or have any side-effects, and is optimized to return the answer to this question as fast as possible.<br />
- Fixed a bug in cdxml rendering: if it contained a boolean value False, it was stored as the word 'False'. But when the attProperties were being read back in, we were doing bool(val) to convert it back, and bool("False") is True.<br />
- Added a bit of verbosity to quickStart(). Also changed it so that it requires an app name.<br />
- Deprecated ShowColumnLabels; added ShowHeaders. Fixed ShowHeaders and HeaderHeight to not have side-effects on each other.<br />
- Fixed some display issues when the grid has at least one column with Expand=True.<br />
- Made history searches in the Command Window case-insensitive.<br />
- Fixed an issue when opening up the preferences dialog for the first time: since no update frequency preference had been set, an error was raised when the frequency radio list was bound to that pref.<br />
- Changed the order in which we import the app subdirectory modules. This is necessary when using a customized uiApp subclass, which would typically be added as a class in the ui module, and then used by overriding the app creation line: app = App(SourceURL=remotehost, UIAppClass=ui.MyCustomUIClass)<br />
- Fixed a typo that caused an exception when pressing <Enter> when a report object was selected. Now it brings up the default property in the property sheet like was intended.<br />
- Corrected an error when saving/running a non-sizer-based form.<br />
- Enhanced copy/paste in the report designer: if objects from multiple bands are selected when copied, paste them into the same bands instead of the currently selected band. Allows for copy/pasting a header and a detail item, for example.<br />
- The recent change to make dImage a data-aware control had an unintended effect in the Class Designer: saving an image resulted in not only saving the path, but also the complete byte stream of that image in the Value property. This fixes that oversight.<br />
- Added build scripts for Linux to AppWizard. Now you can 'buildwin', 'buildmac' *and* 'buildlin'.</p>
]]></description>
</item>

<item>
  <title>Web Update revision 5580 Posted</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/Web_Update_revision_5580_Posted.html</link>
  <description><![CDATA[
<p>- Added support for the pudb debugger if it is installed.<br />
- Improved the flow when controls have their value changed from an update() call. Now the flushValue() is no longer called, which avoids unnecessary data validation calls.<br />
- Fixed some issues with establishing HomeDirectory when running from the runtime engine.<br />
- Restored the call to flushValue() that was removed in the recent changes to dSpinner. It was breaking anything that used a data-bound spinner, especially the Class Designer.<br />
- Corrected the issues raised by Jacek Kałucki regarding the navigation problems of dComboBox under Windows. <br />
- Made some changes designed to better support images as data-bound controls. Also allowed for the image's Picture property to accept a wx.Bitmap as the image source, as that's what is returned from the clipboard methods.<br />
- Added the convenience methods dabo.ui.copyToClipboard() and dabo.ui.getFromClipboard(). They work with both text and bitmap types.<br />
- Added a menu option to the Dabo Editor for toggling whitespace visibility.</p>
]]></description>
</item>

<item>
  <title>Web Update revision 5561 Posted</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/Web_Update_revision_5561_Posted.html</link>
  <description><![CDATA[
<p>- Fixed the download_url in setup.py to match the current download location. I guess easy_install has been broken for a while. Thanks Carl Karsten for finding and reporting the problem, along with a solution!<br />
- Fixed setup.py to work with pip, per Carl Karsten.<br />
- Fixed a problem in the SQL generation of AppWizard-generated apps when using full text searches.<br />
- Fixed the issues with custom classes in the Class Designer not being properly inherited when running inside other class designs. The problem came down to pathing, as have most similar issues, so I approached it by adding some smarter pathing code.<br />
- Consolidated the logic for app standard directories. Recent changes had not kept the different locations where they were referenced in sync, so now there is an attribute of dApp called '_standardDirs' that is a tuple of the subdirectory names. There is also now a method of dApp called 'getStandardDirectories()' that will return a tuple containing the HomeDirectory and the full paths to all these subdirectories.<br />
- Enhanced the Editor app by adding an option for setting the number of characters before AutoAutoComplete fires, and another option for toggling whether line numbers are visible.</p>
]]></description>
</item>

<item>
  <title>Web Update revision 5550 Posted</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/Web_Update_revision_5550_Posted.html</link>
  <description><![CDATA[
<p>
- Added some events to dReportWriter: ReportCancel, ReportBegin, ReportEnd, and ReportIteration. Your code can bind to them like any other Dabo event.<br />
- Fixed an issue when setting the DataSource to a dPref object.<br />
- Wrapped the creation of the status bar to hopefully not give artifacts when created too close to form creation/resize time.<br />
- Updated dSecurityManager and added dApp.LoginDialogClass.<br />
- Lots of functional and cosmetic updates to dSpinner.<br />
- Fixed color settings in dLed.<br />
- Added the EditorStyleNeeded event to support custom styling in dEditor.<br />
- Fixed an occasional problem with dObject.__repr__() calls.<br />
- Removed code that was slowing searches on virtual fields.<br />
- Implemented full parameter passing to backend SQL instead of using string substitution.<br />
- Several bugs in dGridSizer were fixed.<br />
- Added a lib directory into the standard Dabo structure.<br />
- Fixed datanav Form to not keep the edit page active after a delete or cancel if that action resulted in the RowCount going to 0.<br />
- Revert the changes in r5372, which automatically sorted the file extensions passed to any of the getFile-type functions alphabetically.<br />
</p>

]]></description>
</item>

<item>
  <title>Dabo 0.9.0 Released</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/Dabo_0.9.0_Released.html</link>
  <description><![CDATA[
<p>We are proud (and relieved!) to finally release Dabo 0.9.0, the first  
official release of the framework in six months. We haven't been  
taking it easy during that period; rather, we made some changes that  
clean up some weak spots in the codebase, and as a result can offer a  
much more solid framework, and are on course for a 1.0 release in the  
near future.</p>

<p>To do this, we made some decisions that break backwards compatibility.  
We dropped support for Python versions earlier than 2.4, and wxPython  
versions below 2.8. Supporting everything is nice to aim for, but  
completely impractical.</p>

<p>There is also a major addition to the framework: the ability to deploy  
Dabo applications as true web apps. Imagine: being able to develop a  
rich internet app using nothing but Python on both the client and  
server! It's still early in the development process, so it's lacking a  
lot of the supporting tools, and almost no documentation has been  
created, but that will be coming in the next few weeks/months. When  
you deploy your app as a web app, all data access and business logic  
is on the server, and the framework automatically handles the  
communication between the client and server. The framework also  
automatically grabs file changes from the server, making UI updates  
seamless and quick. Lots more interesting stuff will be happening in  
this area in the near future, so stay tuned!</p>

<p>You can grab the latest version from the <a href="http://dabodev.com/download">Download Page</a></p>

<p>A fairly comprehensive list of the changes we've made since the last  
release can be found here: <a href="http://svn.dabodev.com/dabo/tags/dabo-0.9.0/ChangeLog">ChangeLog</a>.</p>

<p>-- Ed Leafe</p>

]]></description>
</item>

<item>
  <title>Dabo 0.8.4 Released</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/Dabo-0.8.4.html</link>
  <description><![CDATA[
Six months since the last release, but many improvements have been made!
<a href="http://svn.dabodev.com/dabo/tags/dabo-0.8.4/ChangeLog">[changelog]</a>



]]></description>
</item>

<item>
  <title>Dabo 0.8.3 Released</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/Dabo-0.8.3.html</link>
  <description><![CDATA[
We've gotten good feedback from a number of you - it feels like the number of
people trying out Dabo is growing. From now on we'll try to keep to a 5-week 
point release cycle. But once you download and install a point release, you
can always use the new Web Update feature to stay updated. The changes in
0.8.3 can be seen in the <a href="http://svn.dabodev.com/dabo/tags/dabo-0.8.3/ChangeLog">change log</a> . Enjoy!



]]></description>
</item>

<item>
  <title>Dabo 0.8.2 Released</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/Dabo-0.8.2.html</link>
  <description><![CDATA[
We are pleased to announce Dabo 0.8.2, which has many many changes since the last version, including web update, better performance, more widgets, a preference dialog you can use in your apps, and better database support. For a full list of changes, view the 
<a href="http://svn.dabodev.com/dabo/tags/dabo-0.8.2/ChangeLog">change log</a> . Enjoy!



]]></description>
</item>

<item>
  <title>Using raiseEvent()</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Tips/Using_raiseEvent.html</link>
  <description><![CDATA[
<p>Sometimes, even if you know the framework as well as I do, you re- 
discover a feature that you had forgotten about. This happened  
tonight as I was going over the interaction between a grid and its  
form, so I thought I'd pass it along.</p>

<p>	When any of the events that cause the current record pointer to move  
are handled by the form, it generates a dEvents.RowNumChanged event,  
to which grids can bind so that they can update their display. The  
form code looked like:</p>

<p>dabo.ui.callAfter(self.raiseEvent, dEvents.RowNumChanged)</p>

<p>and the event handler in the grid would run this code:</p>

<p>try:
	self.CurrentRow = self.getBizobj().RowNumber
except AttributeError:
	pass</p>

<p>	In other words, the grid knew that the row had changed, but had no  
idea what the new row was. It had to then get a reference to the  
bizobj for that grid, if any, and then ask that bizobj for its  
current row number.</p>

<p>	Why is this inefficient? Because the code that raised the event  
*knew* the old and new row numbers; the fact that they were different  
was why it was raising the event in the first place. Then I  
remembered that you can pass data along to raiseEvent(); any keyword  
parameters you add are set as event data. So I changed the form code  
to read:</p>

<p>dabo.ui.callAfter(self.raiseEvent, dEvents.RowNumChanged,
		newRowNumber=biz.RowNumber, oldRowNumber=oldRowNum)</p>

<p>...and now the grid's event handler can just reference those values  
directly! They will have the same names as the parameter keys:</p>

<p>try:
	self.CurrentRow = evt.newRowNumber
except AttributeError:
	pass</p>

<p>	This may be a small savings overall, but I thought that it  
illustrated a handy mechanism built into the Dabo event class that  
you might use to improve your applications.</p>
]]></description>
</item>

<item>
  <title>Dabo 0.8 Released</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/Dabo-0.8.html</link>
  <description><![CDATA[
<p>I guess we shouldn't have said that Dabo 0.8 is just around the corner! 
Oh, well... here it is finally. We've really been ramping up the development
in anticipation of 1.0 later this year. Please see the 
<a href="http://svn.dabodev.com/dabo/tags/dabo-0.8/ChangeLog">change log</a> 
for all the details, and grab Dabo 0.8 from the 
<a href="http://dabodev.com/download">download page</a>. Enjoy!</p>



]]></description>
</item>

<item>
  <title>Dabo Session at PyCon 2007 available online</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/Dabo_Session_at_PyCon_2007_available_online.html</link>
  <description><![CDATA[
<p>Last weekend was PyCon 2007 in Dallas, Texas. We recorded my session  
on <b>Developing Desktop Applications with Dabo</b>, and have posted  
the video for those who could not make the conference. It's available  
at: <b><a href="http://dabodev.com/pycon2007">http://dabodev.com/ 
pycon2007</a></b>.</p>
]]></description>
</item>

<item>
  <title>Dabo 0.7.2 Released (with wxPython 2.8 Support). Dabo 0.8 Around the Corner.</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/Dabo-0.7.2.html</link>
  <description><![CDATA[
<p>We've released Dabo 0.7.2, DaboIDE 0.7.1, and DaboDemo 0.7.2. These are all
stable releases and the most important fix is that wxPython 2.8 is finally 
supported.</p>

<p>See the <a href="http://svn.dabodev.com/dabo/tags/dabo-0.7.2/ChangeLog">ChangeLog</a>, and <a href="http://dabodev.com/download">download here</a>. Enjoy!</p>


]]></description>
</item>

<item>
  <title>Dabo Runtime Engine For Windows 0.7.1 Released</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/Dabo_Runtime_Engine_For_Windows_0.7.1_Released.html</link>
  <description><![CDATA[
<p>I've just posted an update to the <b>Runtime Engine</b> that fixes some  
pathing issues that could arise in a few situations - thanks to Joe  
Brown for helping me work this out. Otherwise the contents are the  
same as the 0.7 release.</p>

<p>	As usual, you can grab it from the <a
href="http://dabodev.com/download"><b>Download Page</b></a>, or via FTP at
<a href="ftp://dabodev.com/dabo/win">ftp://dabodev.com/dabo/win</a>.</p>
]]></description>
</item>

<item>
  <title>Dabo Runtime Engine For Windows 0.7 Released</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/Dabo_Runtime_Engine_For_Windows_0.7_Released.html</link>
  <description><![CDATA[
<p><b>The Dabo Runtime Engine for Windows</b> is a self-contained environment that allows you to <b>run Dabo on Windows without having to first install all of the requirements</b>. It comes with its own version of Python 2.4.4, wxPython 2.6.3.3, and all of the other modules used in Dabo.</p>

<p>The Dabo Runtime Engine is designed for people who are curious about Dabo, but who don't want the bother of installing all the required modules just to see what Dabo can do. It doesn't change any Windows Registry settings, so it will not affect any existing applications on your machine.</p>

<p>This version installs several shortcuts that allow you to simple double-click an icon to run the desired file. Such shortcuts include the <b>AppWizard</b>, <b>Class Designer</b> and <b>Report Designer</b>, as well as several of the demo applications, including the new <b>DaboDemo</b> application, which allows you to see the demo and the code behind it. You can then modify that code to see how your changes affect the output.</p>

<p>The Dabo Runtime Engine comes in two versions: the regular version that just runs the applications, and the Console version that display a command line window containing the application output and debuggng information. They are otherwise identical.</p>

<p>You can download either version, along with all other things Dabo, from: the <a href="http://dabodev.com/download"><b>Dabo Download Page</b></a>.</p>

]]></description>
</item>

<item>
  <title>Dabo IDE 0.7 Released</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/DaboIDE-0.7.html</link>
  <description><![CDATA[
<p>We are pleased to announce the release of DaboIDE 0.7. This will eventually
be a true Integrated Development Environment, but currently contains a
few key tools that aren't yet integrated. Nonetheless, you can visually
design your GUI forms and controls, including adding code to methods,
assigning property values, and laying out the form elements using the
Class Designer. You can design custom reports using the Report Designer.
You can build a full-featured application for very easily using the App
Wizard.</p>

<p>We'd also like to announce the new 0.7.1 bugfix release of Dabo and
DaboDemo. Get all this from the <a href="http://dabodev.com/download">download page.</a></p>



]]></description>
</item>

<item>
  <title>Dabo Demo 0.7 Released</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/DaboDemo-0.7.html</link>
  <description><![CDATA[
This version introduces a new demo application written in Dabo that 
demonstrates various Dabo UI classes. You can see the objects in 
action, and the view/modify the code that instantiated the objects.
This is based on the excellent demo application framework in wxPython,
but rewritten in Dabo code. Oh, and minesweeper is faster. :)


]]></description>
</item>

<item>
  <title>Finally! Dabo 0.7!</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/Dabo-0.7.html</link>
  <description><![CDATA[
<p>It's been a busy year for Paul and Ed, but somehow they've managed, with
the help of a growing number of users and contributors, to keep the ball
rolling and end up with the next incremental release. There have been lots
of enhancements and bugfixes (see the 
<a href="http://svn.dabodev.com/dabo/tags/dabo-0.7/ChangeLog">ChangeLog</a>), 
and we are proud of what we've created. You can get the latest release from the 
<a href="http://dabodev.com/download">download page</a>. Enjoy!</p>


]]></description>
</item>

<item>
  <title>Warning: Current Dabo Not Compatible With wxPython 2.7</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/WarningAboutWx27.html</link>
  <description><![CDATA[
<p>We weren't worried about wxPython 2.7 introducing properties, because we
knew it would be a while until wxPython 2.8 (the stable release that would 
go in all the distributions and application developers would use) came into 
the wild. However, the good folks over at wxWidgets have decided to turbo
charge the effort to get wx2.8 out the door so it can be included in the
next release of Apple's OS X. The upshot: wxWidgets 2.7 only just appeared
on the scene, yet 2.8 is just around the corner, and current Dabo does not
work with it, because of the way property definitions work in Python 
mix-in classes. Basically, some of wxPython's properties are trumping 
Dabo's, even though Dabo should be the subclass and thus trump everything.</p>

<p>No worries, though. We know how to proceed, but have decided to wait until
after the first release of Dabo-0.7. Once we have the fix in 0.8, we'll
backport it to the Dabo-0.7 stable version. So, just be patient for now and
keep using wxPython 2.6.x with Dabo.</p>


]]></description>
</item>

<item>
  <title>New Stable Release (0.6.6s)</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/Dabo-0.6.6.html</link>
  <description><![CDATA[
<p>We've uploaded a new stable release, the first since April. Get it from the 
usual download page. However, stay tuned: hopefully next week we'll be rolling
out Dabo-0.7 as the new stable release, and starting development on Dabo-0.8.
Ed's been doing most of the work on this, but Paul's been benefitting from 
the ever-increasing power of the Dabo system in developing several client
applications. Thanks as always to everyone asking questions and contributing
to the Dabo vision.</p>

]]></description>
</item>

<item>
  <title>Installing Dabo Requirements on WinXP</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/Installing_Dabo_Requirements_on_WinXP.html</link>
  <description><![CDATA[
<p>I just installed a fresh copy of WinXP on a new VM, and wanted to  
set it up for Dabo development. So I went through the required steps  
to get all the packages installed, and documented all the necessary  
URLs. Wow, things have improved on the installation front in the 2  
years since I last set up a Windows machine! Every package has a  
binary installer, making setting up pretty painless. It's documented on this
<a href="http://dabodev.com/wiki/InstallingRequirementsForWindows">Wiki
Page</a>.</p>
]]></description>
</item>

<item>
  <title>Screencast: Populating a Grid Using Business Objects&lt;p&gt;</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/Screencast%3A_Populating_a_Grid_Using_Business_Objects.html</link>
  <description><![CDATA[
In response to a question posted on the <a href="http://opentech.leafe.com/viewforum.php?f=19">Dabo Forum on OpenTech</a>, I've put together a <a href="http://leafe.com/screencasts/populategrid.html"><b>screencast</b></a> that shows how to create a grid using the Class Designer, and then populate it using business objects to get the data. It's about 10.5 minutes long, and the file size is about 10MB, so please be patient if it takes a while to download.</p>
]]></description>
</item>

<item>
  <title>Dabo-0.6.5 and DaboIDE-0.5.6 Released</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/Dabo-0.6.5.html</link>
  <description><![CDATA[
These are just some very minor fixes but I wanted to get them released as
our activity has waned over the Easter break. Get the new downloads from
<a href="http://dabodev.com/download">http://dabodev.com/download</a>.

]]></description>
</item>

<item>
  <title>The Dabo website is down temporarily</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/DaboDevDown.html</link>
  <description><![CDATA[
Sorry for the inconvenience, but our website and mailing lists will be 
down until Monday most likely. You can still access the Subversion
repositories (see the links in the next blog entry).

]]></description>
</item>

<item>
  <title>Browsing the Subversion Repository</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/SubversionHTTP.html</link>
  <description><![CDATA[
<p>With the new Apache server for Subversion, you can now browse the Dabo
source code with your web browser. Here are some links:</p>

<blockquote>
<a href="http://svn.dabodev.com/dabo">http://svn.dabodev.com/dabo</a><br>
<a href="http://svn.dabodev.com/dabodemo">http://svn.dabodev.com/dabodemo</a><br>
<a href="http://svn.dabodev.com/daboide">http://svn.dabodev.com/daboide</a><br>
</blockquote>

<p>For any given repository, the stable branch is in branches/stable and the
development branch is in trunk. Official released versions can be found in
tags.</p>


]]></description>
</item>

<item>
  <title>New Subversion Repository Access</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/SubversionSwitch.html</link>
  <description><![CDATA[
We've switched from using Subversion's built-in svnserve server, to using the
Apache server with full WebDAV capabilities. We've also changed the DNS name
from 'paulmcnett.com' to 'svn.dabodev.com'. The new way to check out the 
Dabo repositories is: 

<blockquote>
svn checkout http://svn.dabodev.com/dabo/trunk dabo<br>
svn checkout http://svn.dabodev.com/daboide/trunk daboide<br>
svn checkout http://svn.dabodev.com/dabodemo/trunk dabodemo
</blockquote>

To switch your current working copy, you can use:

<blockquote>
svn switch --relocate svn://paulmcnett.com http://svn.dabodev.com
</blockquote>


]]></description>
</item>

<item>
  <title>Dabo Runtime Engine For Windows 0.6.4 Released</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/Dabo_Runtime_Engine_For_Windows_0.6.4_Released.html</link>
  <description><![CDATA[
<p>This is a minor update to the Runtime Engine. Besides containing the  
latest version of the Dabo libraries, it also fixes some problems  
with ReportLab that was preventing the ReportDesigner from running.  
Just run the Uninstall for the old version, and install this, and you  
should be good to go.</p>

<p>As usual, grab your copy from the Dabo Download Page: <a href="http://dabodev.com/download">http://dabodev.com/download</a>.</p>

]]></description>
</item>

<item>
  <title>Dabo-0.6.4 and DaboIDE-0.5.5 Released</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/Dabo-0.6.4.html</link>
  <description><![CDATA[
The AppWizard's table selection page isn't so hokey anymore, allowing one click
to toggle the checkbox values. Fixed some unicode problems in dEditor and in 
saving data back to a database. Fixed a fast cpu problem in the Class Designer.
We'd like to thank everyone that is contributing to Dabo by asking questions,
submitting issues to the tracker, or just engaging us in discussion.

]]></description>
</item>

<item>
  <title>Dabo-0.6.3 and DaboIDE-0.5.4 Released</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/Dabo-0.6.3.html</link>
  <description><![CDATA[
A few minor issues have been fixed in Dabo and DaboIDE since last week.

]]></description>
</item>

<item>
  <title>DaboIDE-0.5.3 Released</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/DaboIDE-0.5.3.html</link>
  <description><![CDATA[
This contains an important fix for the Class Designer, which may not have 
been finding your class files due to pathing issues previously.

]]></description>
</item>

<item>
  <title>Dabo Runtime Engine For Windows 0.6.2 released</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/DaboRuntimeEngine-0.6.2Released.html</link>
  <description><![CDATA[
<p><b>The Dabo Runtime Engine for Windows</b> is a self-contained environment that allows you to <b>run Dabo on Windows without having to first install all of the requirements</b>. It comes with its own version of Python 2.4.2, wxPython 2.6.3.0, MySQLdb 1.2.0, kinterbasdb 3.2.0a1, ReportLab v.2463, and several other modules used in Dabo.</p>
<p>The Dabo Runtime Engine is designed for people who are curious about Dabo, but who don't want the bother of installing all the required modules just to see what Dabo can do. It doesn't change any Windows Registry settings, so it will not affect any existing applications on your machine.</p>
<p>This version installs several shortcuts that allow you to simple double-click an icon to run the desired file. Such shortcuts include the AppWizard, ClassDesigner and ReportDesigner, as well as several of the demo applications.</p>
<p>The Dabo Runtime Engine comes in two versions: the regular version that just runs the applications, and the Console version that display a command line window containing the application output. Besides that, they are identical.</p>
<p>You can download either version, along with all other things Dabo, from: the <a href="http://dabodev.com/download"><b>Dabo Download Page</b></a>.</p>

]]></description>
</item>

<item>
  <title>Dabo-0.6.2 and DaboIDE-0.5.2 Released</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/Dabo-0.6.2.html</link>
  <description><![CDATA[
<p>We've begun a stable/dev branch strategy for Dabo; currently, the stable branch is 0.6.x and the dev branch is 0.7a. When we find bugs, we'll backport to the stable branch after fixing the dev branch, and then roll out a new point release when we feel it is appropriate. Anyway, the new releases are available as always from the download page.</p>

]]></description>
</item>

<item>
  <title>Dabo 0.6.1 Released</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/Dabo-0.6.1.html</link>
  <description><![CDATA[
<p>This fixed a small bug after we had already released 0.6.</p>

]]></description>
</item>

<item>
  <title>Dabo 0.6 Released</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/Dabo-0.6.html</link>
  <description><![CDATA[
<p>Grab the latest from the <a href="/download"><b>Download Page</b></a>. Dabo is really shaping up, and it has been a while since the last release, 0.5.1 back in January. There are too many things to list here, but you can always check the ChangeLog file in the root of the Dabo distribution to see what has changed. Also, Ed has summarized the changes <a href="http://dabodev.com/announcements/changeLog-0.6">here</a>.</p>

<p>In addition to what we've improved in Dabo, we can't forget to mention the Dabo Class Designer, and Dabo Report Designer. Both of these visual design tools are really coming together, and can be found in the DaboIDE repository, which got bumped from version 0.4 to 0.5 today as well. Coming soon will be a graphical menu designer, and coming down the pipe will be an integration of these design tools into an Integrated Development Environment.</p>


]]></description>
</item>

<item>
  <title>RSS Feeds for Source Code Updates.</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/RSS_Feeds_for_Source_Code_Updates..html</link>
  <description><![CDATA[
<p>There is a new service, courtesy of http://www.repocaster.com/, that  
generates RSS feeds from Subversion repositories. I've registered 3  
of the Dabo repositories: the main framework, the IDE code, and the  
Demo code. The RSS URLs are:</p>

<p>Framework: <a href="http://www.repocaster.com/main/get_feed/17">http://www.repocaster.com/main/get_feed/17</a></p>
<p>IDE: <a href="http://www.repocaster.com/main/get_feed/18">http://www.repocaster.com/main/get_feed/18</a></p>
<p>Demo: <a href="http://www.repocaster.com/main/get_feed/19">http://www.repocaster.com/main/get_feed/19</a></p>

<p>The service isn't completed yet, but I like the idea. If you have an  
RSS reader, you can add these links and keep up with all the latest  
changes in Dabo!</p>
]]></description>
</item>

<item>
  <title>Saved Classes and Inheritance in the UI</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/Saved_Classes_and_Inheritance_in_the_UI.html</link>
  <description><![CDATA[
<p>The Dabo Designer now supports component classes that can be used in  
multiple forms, with full inheritance maintained. This allows you to  
not only re-use some useful components, but to have updates to those  
components automatically appear in the designs that use them.</p>

<p>	Let's say you created a 'mover' control: one that moves items  
between two lists. This can be handy in lots of forms, so you save it  
as a class. Later on you need to create another form that needs a  
mover, so you add an instance of your mover class to this new design  
surface. It will simply work as expected. But now suppose that a few  
weeks later, after you've used this class in dozens of forms, you  
discover a bug in your mover code. No problem: just fix the bug in  
your class, and all the forms that use your mover are also fixed!</p>
]]></description>
</item>

<item>
  <title>Screencast: Dabo Report Designer Overview</title>
  <link>http://paul.dabodev.com/cgi-bin/pyblosxom.cgi/Announcements/Screencast-ReportDesignerOverview.html</link>
  <description><![CDATA[
<p>I've just posted a new screencast that goes through the basics of designing reports. It takes a quick report as generated by a datanav application, and modifies it to provide grouping and subtotaling. Along the way, the viewer should get a good feeling about the capabilities of the report designer as it stands now.</p>

<p>Running time is 23 minutes.</p>

<p>View this and our previous screencasts at <a href="http://dabodev.com/documentation">http://dabodev.com/documentation</a>.</p> --Paul

]]></description>
</item>

</channel>
</rss>
