<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-36816731</atom:id><lastBuildDate>Wed, 13 Feb 2008 04:03:34 +0000</lastBuildDate><title>davidwatson.org</title><description/><link>http://davidwatson.org/</link><managingEditor>David Watson</managingEditor><generator>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-36816731.post-823530559928234047</guid><pubDate>Wed, 13 Feb 2008 04:03:00 +0000</pubDate><atom:updated>2008-02-12T20:03:34.900-08:00</atom:updated><title>out with the old, in with the new</title><description>&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt; &lt;a href="http://www.flickr.com/photos/davidwatson/2261389619/" title="photo sharing"&gt;&lt;img src="http://farm3.static.flickr.com/2326/2261389619_830ebef583_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;  &lt;a href="http://www.flickr.com/photos/davidwatson/2261389619/"&gt;out with the old, in with the new&lt;/a&gt;  &lt;br /&gt;  Originally uploaded by &lt;a href="http://www.flickr.com/people/davidwatson/"&gt;David Watson&lt;/a&gt; &lt;/span&gt;&lt;/div&gt;After 9 years with my trusty Minimed 507c insulin pump, I've finally gotten the replacement - a Minimed paradigm 522 with the wireless continuous glucose monitor, etc. I can't wait to get started. The trainer is coming in a few days to teach me how not to hurt myself with this decidedly more complex device, but it's all in the name of progress. I look forward to the fact that I won't have to do the carb/insulin math in my head anymore. And the fact that the bolus function knows how much insulin is active in the body and takes that into account on a secondary bolus is awesome. I'll have to adjust to the silhouette's and sil-serter but that should be a welcome change with my disappearing stomach.&lt;br clear="all" /&gt;</description><link>http://davidwatson.org/2008/02/out-with-old-in-with-new.html</link><author>David Watson</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-36816731.post-1240696759173215466</guid><pubDate>Wed, 01 Aug 2007 02:37:00 +0000</pubDate><atom:updated>2007-07-31T19:41:05.383-07:00</atom:updated><title>Uptown Rhythm &amp; Brass at the Rex - Pittsburgh Music Festival</title><description>My band, Uptown Rhythm &amp;amp; Brass, will be performing Thursday, August 9th from 7-9 PM at the Rex Theatre sponsored by the Pittsburgh Music Festival. Come out and support live music in Pittsburgh. See &lt;a href="http://uptown-rb.com/pghmusicfest.html"&gt;this page&lt;/a&gt; for more details and a link for purchasing tickets.</description><link>http://davidwatson.org/2007/07/uptown-rhythm-brass-at-rex-pittsburgh.html</link><author>David Watson</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-36816731.post-7397957700640093129</guid><pubDate>Mon, 23 Jul 2007 03:54:00 +0000</pubDate><atom:updated>2007-07-22T21:16:03.084-07:00</atom:updated><title>Paypal -&gt; UPS: You have entered an invalid value</title><description>Since the people who write code at paypal need a brain transplant, you may run into this problem where you go to ship a package via UPS and no matter what you put in the shipping page regarding weight, size of package, etc. paypal returns an error stating, "You have entered an invalid value." Turns out &lt;a href="http://www.paypaldev.org/topic.asp?TOPIC_ID=12468"&gt;the solution&lt;/a&gt; is to delete the UPS account information from your account profile and then reinstate it. See the last post on that forum. This saved me a lot of heartache having to ship via UPS without the online integration.</description><link>http://davidwatson.org/2007/07/you-have-entered-invalid-value.html</link><author>David Watson</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-36816731.post-7383729100260811011</guid><pubDate>Fri, 04 May 2007 03:30:00 +0000</pubDate><atom:updated>2007-05-03T20:35:47.680-07:00</atom:updated><title>ext3cow - A Versioning Filesystem For Linux</title><description>The race is on. The only question now is how long it will take linux hackers to produce a GUI on top of the ext3cow file system to compete with &lt;a href="http://www.apple.com/macosx/leopard/timemachine.html"&gt;Apple's Time Machine&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;One thing's for certain, Apple's gotten the design right with the zoomable UI. It ain't easy. But the results will be worth it.&lt;br /&gt;&lt;br /&gt;It seems to me that the short route to the zoomable versioning UI on linux would be to simply build the implementation on top of Beryl/Emerald. Beryl already has support for the zooming. The only problem is that in order to make it work right, you've got to throw away all of the layout management that both GNOME and KDE have built-in. Nevertheless, I still believe this is the right answer.</description><link>http://davidwatson.org/2007/05/ext3cow-versioning-filesystem-for-linux.html</link><author>David Watson</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-36816731.post-1140537925924398398</guid><pubDate>Fri, 04 May 2007 01:57:00 +0000</pubDate><atom:updated>2007-05-03T20:11:46.487-07:00</atom:updated><title>Tuning MythTV Font Sizes (Watch Recordings)</title><description>If you've struggled tuning MythTV's font sizes; for instance, those in the watch recordings screen, &lt;a href="http://lists.freedesktop.org/archives/xorg-bugzilla-noise/2004-August/002006.html"&gt;try this&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;On my prehistoric 27" television, the following settings in the monitor section of xorg.conf got the watch recordings fonts to grow without the other screen fonts getting out of control:&lt;br /&gt;&lt;br /&gt;  DisplaySize    280 210 # 559 419&lt;br /&gt;&lt;br /&gt;I noted the actual mm size of the screen in the comments. I used half of those numbers to get the fonts right. YMMV.&lt;br /&gt;&lt;br /&gt;Once you make the change to xorg.conf, you can restart X by keying Ctrl-Alt-Backspace.</description><link>http://davidwatson.org/2007/05/mythtv-font-sizes-watch-recordings.html</link><author>David Watson</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-36816731.post-4304730876086992712</guid><pubDate>Fri, 04 May 2007 01:44:00 +0000</pubDate><atom:updated>2007-08-25T08:14:04.548-07:00</atom:updated><title>Broadcom BCM4306 on Ubuntu Feisty Fawn</title><description>I've now completed upgrading all of my machines to various versions of Ubuntu Feisty Fawn and I'm pleased to report that it has gone more smoothly than any previous version of Ubuntu in each case. I've got 3 machines running Ubuntu and 2 running Kubuntu, and with the exception of the nvidia drivers on my dual opteron AMD64 Kubuntu at work, everything works great.&lt;br /&gt;&lt;br /&gt;One thing that may not be obvious, even for seasoned Linux users, is that much less configuration is required with ndiswrapper on Feisty. If you're using a wireless laptop with Feisty, and like me, you've got a Broadcom bcm4306 card, you actually don't have to do much of anything to get wireless working with Feisty.&lt;br /&gt;&lt;br /&gt;Simply install the package bcm43xx-fwcutter from your favorite package manager (synaptic, adept, or good ole apt-get or aptitude) and it will prompt you to download and install the firmware required for the Broadcom chipset. Once this install is complete, just reboot and the wireless chipset will connect without issue.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UPDATE&lt;/span&gt;&lt;br /&gt;&lt;dl id="comments-block"&gt;&lt;dt class="comment-poster" id="c7157067833477223888"&gt;Thanks to &lt;a href="profile/09636108865386694514" rel="nofollow"&gt;Thomas&lt;/a&gt; who commented on this post below:       &lt;/dt&gt;&lt;dd class="comment-body"&gt;          &lt;p&gt;Just wanted to update everyone on bcm43xx-fwcutter. Because the boredlinks.googlepages.com/wl_apsta.o is no longer existent the setup is not automatic as it was before. Now you must download the driver yourself and extract the firmware and place it in your /lib/firmware folder.&lt;br /&gt;&lt;/p&gt;&lt;/dd&gt;&lt;dd class="comment-body"&gt;&lt;p&gt;Link to driver:&lt;/p&gt;&lt;/dd&gt;&lt;dd class="comment-body"&gt;&lt;p&gt; &lt;a href="http://sidulus.textdrive.com/bcmwl5sys.zip"&gt;http://sidulus.textdrive.com/bcmwl5sys.zip&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;/dd&gt;&lt;dd class="comment-body"&gt;&lt;p&gt;Command:&lt;br /&gt;&lt;/p&gt;&lt;/dd&gt;&lt;dd style="font-style: italic;" class="comment-body"&gt;&lt;p&gt;sudo bcm43xx-fwcutter -w /lib/firmware ~/Desktop/bcmwl5.sys&lt;/p&gt;       &lt;/dd&gt;&lt;/dl&gt;</description><link>http://davidwatson.org/2007/05/broadcom-4306-on-feisty-fawn.html</link><author>David Watson</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-36816731.post-6352117446223181842</guid><pubDate>Mon, 19 Feb 2007 10:05:00 +0000</pubDate><atom:updated>2007-02-19T02:29:08.123-08:00</atom:updated><title>On the merits of Evans EC Snare Drum Head</title><description>I had a Gretsch maple snare drum I'd used off and on for a while that I could never quite get the &lt;span style="font-style: italic;"&gt;right&lt;/span&gt; sound out of, as if there is such a thing. Trying to describe the sound is difficult, but I describe it as too much head and not enough shell. The drum just didn't have the bark that it should given the shell and a certain crispness was lacking, despite the fact that I've used a Grover Club Dark snare bed on it from the beginning.&lt;br /&gt;&lt;br /&gt;I had spied the new &lt;a href="http://evansdrumheads.com/EVProducts.aspx?ID=1&amp;CLASS=RCJM"&gt;Evans EC Reverse Dot snare drum heads&lt;/a&gt; while browsing &lt;span style="font-style: italic;"&gt;Modern Drummer&lt;/span&gt; magazine at the news stand and decided to give them a try. First of all, I don't believe the pictures at Evans site (or the myriad music stores on the web) adequately depict the frosted coating on the head, so here's a picture:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/davidwatson/394761537/"&gt;&lt;img src="http://farm1.static.flickr.com/149/394761537_bc9fd5d363.jpg?v=0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I was afraid the head would look like one of those old Ludwig silver dots that we used on our TDR's (that's Slingerland for you youngsters) in high school. Nevertheless, the frosting is whiter than the pics would indicate which is what I wanted.&lt;br /&gt;&lt;br /&gt;I sampled the sound of my drum before making the change and beyond the aforementioned imbalance of head/shell, it had a certain plastic quality to the sound. I put the new EC Reverse Dot on the batter side and a new Evans Hazy 300 on the snare side.&lt;br /&gt;&lt;br /&gt;The sound was transformed! Now, the balance of the sound had shifted to the shell - exactly what I wanted. The drum had a thick, barking backbeat when played in the center and yet, when played from the edge to the dot, a crisp, well-defined orchestral and rudimental character. Brush sounds are just right too, the frosted coating definitely gives a nice brush sound.&lt;br /&gt;&lt;br /&gt;If you've struggled to get the snare sound you're looking for, try the Evans EC Reverse Dot snare drum head. Don't forget to change the bottom too as it may be half-responsible for the sound. The best of all worlds for only $15.</description><link>http://davidwatson.org/2007/02/on-merits-of-evans-ec-snare-drum-head.html</link><author>David Watson</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-36816731.post-1718171493345326541</guid><pubDate>Sun, 21 Jan 2007 15:44:00 +0000</pubDate><atom:updated>2007-02-04T09:57:40.257-08:00</atom:updated><title>Uptown Rhythm &amp; Brass Performing at Penn State's THON!</title><description>Uptown Rhythm &amp;amp; Brass will be performing at Penn State's THON this year. There are two upcoming gigs related to this event. See &lt;a href="http://uptown-rb.com/thon.html"&gt;this page&lt;/a&gt; for more details.</description><link>http://davidwatson.org/2007/01/uptown-rhythm-brass-performing-at-penn.html</link><author>David Watson</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-36816731.post-1588408046200965740</guid><pubDate>Tue, 02 Jan 2007 03:21:00 +0000</pubDate><atom:updated>2007-01-21T07:43:29.821-08:00</atom:updated><title>Happy New Year: mythtv on ubuntu</title><description>The wife and I rang in the new year with a nice meal at the &lt;a href="http://sewickleyhotel.com/"&gt;Sewickley Hotel&lt;/a&gt;. Lobster risotto and grilled scallops, a lovely cabernet, and delectable desserts. I dig the atmosphere there better than just about any restaurant in Pittsburgh.&lt;br /&gt;&lt;br /&gt;It's been over a year since I installed &lt;a href="http://www.ubuntu.com/"&gt;ubuntu&lt;/a&gt; on my wife's Dell. I've been running linux desktops for  years, but I was really amazed when my wife, who is not a technical person, began espousing the benefits of her ubuntu system to relatives over the holidays. This is the result of a user experience that provides usable office software, web, email, IM, ipod and digital camera support, while being free of reboots, viruses, malware, and spyware. I really believe there is a sea change going on here.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://davidwatson.org/uploaded_images/retro_theme-780335.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://davidwatson.org/uploaded_images/retro_theme-772992.jpg" alt="" border="0" /&gt;&lt;/a&gt;Anyhow, in the copious spare time I've had around the holidays, I decided to build my first myth boxen. I've been watching &lt;a href="http://mythtv.org/"&gt;mythtv&lt;/a&gt; develop for about 3 years and finally felt I was ready to put it all together. I had a dell poweredge 2.4ghz P4 machine laying around with 512 MB of RAM and an 80GB disk so I figured this was an adequate base for my DVR system.&lt;br /&gt;&lt;br /&gt;I replaced the feeble video card with a geforce 6200 (s-video,VGA,and DVI) and used a &lt;a href="http://www.hauppauge.com/pages/products/data_pvr150.html"&gt;Hauppauge PVR-150&lt;/a&gt; as the TV card.&lt;br /&gt;&lt;br /&gt;I decided to use &lt;a href="http://linuxmint.com/"&gt;linux mint&lt;/a&gt; as a base for this box as I had been experimenting with it lately, and felt it was a good start for this purpose. As you'll see, that turned out to be a good decision, mainly from the standpoint of saving some work with configuration. The &lt;a href="http://albertomilone.com/nvidia_scripts1.html"&gt;envy script&lt;/a&gt; is really handy. The only trouble I had is that it fails silently when you run it from an xterm, I started it from another VT and it ran fine. Also, there appears to be a problem with the nvidia binary driver and updates to xorg from apt. That is, if you do an update after installing the binary driver and it includes an update to xorg, it will reset the driver to use the one from xorg, and this will result in the xserver failing to start on reboot with a &lt;span style="font-style: italic;"&gt;no screens found&lt;/span&gt; error. I was able to correct this by merely running the envy script again.&lt;br /&gt;&lt;br /&gt;I used several guides along the process, which went smoothly for the most part:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://revision3.com/systm/mythtv/"&gt;Systm video about mythtv&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://youtube.com/watch?v=jwcB88yFeZ0"&gt;youtube: Exploring mythtv and mediamvp&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.ehomeupgrade.com/entry/2934/how-to_build_your"&gt;Background information for mythtv on unbuntu&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.ubuntuforums.org/showthread.php?t=98456"&gt;Run X across TV and monitor&lt;/a&gt; (note: this can be done completely in the nvidia-settings)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.djlosch.com/post_retrieve.php?pid=70"&gt;Installing mythtv on ubuntu edgy&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.mythtv.org/wiki/index.php/LIRC_on_Ubuntu_Edgy_Eft"&gt;Getting the remote working&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.extremetech.com/article2/0%2C1697%2C2062433%2C00.asp"&gt;Converting mythtv to ipod video&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;I had some trouble with the channel configuration  after the intial mythfilldatabase. There were two unknown channels that appeared in place of channel 2 and 3 which caused all of the correct channels to be offset by 2 so that channel 2 was 4, 3 was 5, etc. This was solved by deleting all the channels from the mythfrontend interface, exiting mythfrontend, and re-running mythfilldatabase. I've still got no idea why the problem occurred in the first place, but it was relatively minor given the complexity of the install.&lt;br /&gt;&lt;br /&gt;At this point, the TV functions work, the remote works, the music player works, the video player works, the news module works, the images module works, the web module works, the weather module works but appears to have some bugs where the extended forecast will be off by a few days from the current day +1. &lt;span style="font-weight: bold;"&gt;Update:&lt;/span&gt; The weather bug corrected itself this morning. No idea why, but it's been fine ever since. &lt;span style="font-weight: bold;"&gt;Update: &lt;/span&gt;I was wrong. The weather bug is recurring frequently. I'm guessing that the date math is off, but I haven't had time to look at the source.&lt;br /&gt;&lt;br /&gt;In addition, my mythtv user doesn't appear in the ubuntu user administration GUI, and ripping CDs fails with a permission denied error. I believe this is due to the mythtv user not having the proper access to the devices but I'm not sure how to fix it yet, or why it didn't get setup properly. The only other issue is that transcoding fails with a 247 error code, which I've yet to figure out. &lt;span style="font-weight: bold;"&gt;Update: &lt;/span&gt;All of the issues with ripping and burning went away after I installed k9copy. I'm guessing that there were dependency and/or permission issues that k9copy's installer somehow fixes as I'm able to rip and burn as the mythtv user now with no issues.&lt;br /&gt;&lt;br /&gt;I'm using the &lt;a href="http://www.aldorf.no/mythtv/"&gt;retro theme and OSD&lt;/a&gt;, which I hacked to use my own custom logo that I put together in gimp since I'd taken to calling my system "davo" and I sound like I have a speech impediment every time I say "mythtv".&lt;br /&gt;&lt;br /&gt;Overall, I'm thrilled with the mythtv system. For a small investment in hardware, and a bit of sweat equity, you get a really useful DVR system with features to spare.</description><link>http://davidwatson.org/2007/01/happy-new-year-mythtv.html</link><author>David Watson</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-36816731.post-8334552193590616069</guid><pubDate>Sun, 17 Dec 2006 03:05:00 +0000</pubDate><atom:updated>2006-12-16T19:09:44.030-08:00</atom:updated><title>Uptown Rhythm &amp; Brass at the Hard Rock 12/21</title><description>If you're bored 4 days before Christmas, why not come out to the Hard Rock Cafe in Station Square and &lt;a href="http://www.post-gazette.com/events/default.asp?mode=3&amp;id=170"&gt;listen to some live music&lt;/a&gt;. Just in case you've never heard of us...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://uptown-rb.com/"&gt;Uptown Rhythm &amp;amp; Brass&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Happy Holidays!&lt;/span&gt;</description><link>http://davidwatson.org/2006/12/uptown-rhythm-brass-at-hard-rock-1221.html</link><author>David Watson</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-36816731.post-2652291310430201837</guid><pubDate>Mon, 20 Nov 2006 03:21:00 +0000</pubDate><atom:updated>2006-11-19T19:47:11.226-08:00</atom:updated><title>Coffee-mate: It's not just for coffee anymore</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.verybestcoffee.com/coffee%2Dmate/"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://davidwatson.org/uploaded_images/new_coconut_creme-702299.jpg" alt="" border="0" /&gt;&lt;/a&gt;Some will consider me insane for suggesting that you should buy an artificial coffee creamer product and use it in a manner inconsistent with its labeling, but stick with me and you will be treated to pleasures known only to a rare few.&lt;br /&gt;&lt;br /&gt;What's the great innovation? I was crazy enough to pour coffee creamer over a bowl of &lt;a href="http://www.quakeroatmeal.com/"&gt;quaker oatmeal&lt;/a&gt;. When I tasted how delectable that was, I didn't stop there. I poured the same creamer over &lt;a href="http://www.quakergrits.com/"&gt;quaker grits&lt;/a&gt;. And that too was delightful.&lt;br /&gt;&lt;br /&gt;And how did I envision such insanity? I recalled that when the wife and I used to brunch at &lt;a href="http://www.salishlodge.com/"&gt;Salish Lodge&lt;/a&gt; the steel cut oats were bathed in real cream. And then I considered how little creativity there was in hot cereal flavoring, while noting that there was an explosion of flavor occurring in coffee creamers, despite the fact that I drink my coffee black. So bringing together flavored coffee creamer with oatmeal or grits opens up a whole world of flavors that perhaps we hadn't considered.&lt;br /&gt;&lt;br /&gt;Enjoy!</description><link>http://davidwatson.org/2006/11/coffee-mate-its-not-just-for-coffee.html</link><author>David Watson</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-36816731.post-116217516198773270</guid><pubDate>Mon, 30 Oct 2006 02:11:00 +0000</pubDate><atom:updated>2006-10-29T18:51:33.696-08:00</atom:updated><title>qt4 for full-featured rapid prototypes</title><description>&lt;a href="http://www.flickr.com/photos/davidwatson/283057946/"&gt;&lt;img src="http://static.flickr.com/51/283057946_7dc9ef5bbd.jpg?v=0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Note: The title bar is missing from the screenshot since KDE's screenshot utility doesn't see the beryl-rendered title bar - yet. However, I can assure you that the sample code renders and runs properly on linux and windows.&lt;br /&gt;&lt;br /&gt;I've been working in  qt4 for a few months now and I'm really starting to enjoy it. After some crashes in qt designer with the 4.1 release, I've upgraded to 4.2 and abandoned the designer completely.&lt;br /&gt;&lt;br /&gt;Some people look at me like I'm crazy when I explain that I won't use the tool unless it's reliable. I can see them thinking... what? you're going to turn back the clock 15 years? Even then, I think qt designer's usability is poor, at best. Just try editing rows and columns in a table or tree view. Truly painful. Why not just let me manipulate the data in the rows and columns directly? How a modal dialog will ever be a better solution than direct manipulation is beyond me.&lt;br /&gt;&lt;br /&gt;But I digress. My real point here was to offer some code that demonstrates qt's power, high level API, and ease-of-use, which makes my &lt;span style="font-style: italic;"&gt;maniacal code hacking is better than designing resources&lt;/span&gt; method look like real fun. It's where the rubber meets the road. One of the beautiful things about qt is that it leaves the declarative vs. imperative choice up to the implementor.&lt;br /&gt;&lt;br /&gt;What's not clear is why so many of the samples are so damned convoluted. Oh sure, this isn't the kind of well-structured c++ that you'd put in a shipping app, but I'm talking about going from concept to wireframe to prototype in a day.&lt;br /&gt;&lt;br /&gt;If you thought a full-featured app with title bar,  menu, tool bar, status bar, docks, tool boxes and an MDI workspace, mostly layout managed with clearly defined UI physics required a bunch of drag and drop in the designer, or more than a hundred lines of code, think again:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;#include &amp;lt;qapplication&amp;gt;&lt;br /&gt;#include &amp;lt;qfile&amp;gt;&lt;br /&gt;#include &amp;lt;qtgui&amp;gt;&lt;br /&gt;&lt;br /&gt;QWidget * makeNewMdiChild( void )&lt;br /&gt;{&lt;br /&gt;QGridLayout * mdiChildLayout = new QGridLayout;&lt;br /&gt;QWidget * mdiChild = new QWidget;&lt;br /&gt;QScrollArea *sa = new QScrollArea;&lt;br /&gt;QLabel *imageLabel = new QLabel;&lt;br /&gt;QImage image("/home/david/264287866_f7001afc44_o.jpg");&lt;br /&gt;imageLabel-&gt;setPixmap(QPixmap::fromImage(image));&lt;br /&gt;sa-&gt;setWidgetResizable( true );&lt;br /&gt;sa-&gt;setWidget( imageLabel );&lt;br /&gt;mdiChildLayout-&gt;addWidget(sa);&lt;br /&gt;mdiChild-&gt;setLayout(mdiChildLayout);&lt;br /&gt;return mdiChild;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int main( int argc, char ** argv )&lt;br /&gt;{&lt;br /&gt;int rc = 0;&lt;br /&gt;QApplication a(argc, argv);&lt;br /&gt;QMainWindow w;&lt;br /&gt;QTextEdit edit;&lt;br /&gt;QWorkspace workSpace;&lt;br /&gt;w.setCentralWidget(&amp;workSpace);&lt;br /&gt;QWidget * mdiChild = makeNewMdiChild();&lt;br /&gt;workSpace.addWindow(mdiChild);&lt;br /&gt;w.setWindowTitle("Hello Dock");&lt;br /&gt;QMenuBar menuBar;&lt;br /&gt;menuBar.addMenu("&amp;File");&lt;br /&gt;menuBar.addMenu("&amp;Edit");&lt;br /&gt;menuBar.addMenu("&amp;View");&lt;br /&gt;menuBar.addMenu("&amp;Help");&lt;br /&gt;w.setMenuBar(&amp;menuBar);&lt;br /&gt;QStatusBar statusBar;&lt;br /&gt;statusBar.showMessage("Status Bar");&lt;br /&gt;w.setStatusBar(&amp;statusBar);&lt;br /&gt;QToolBar toolBar("Tool Bar");&lt;br /&gt;QAction* tileAction = new QAction("Tile", &amp;w);&lt;br /&gt;toolBar.connect(tileAction, SIGNAL(triggered()), &amp;workSpace, SLOT(tile()));&lt;br /&gt;toolBar.addAction(tileAction);&lt;br /&gt;w.addToolBar(&amp;toolBar);&lt;br /&gt;QDockWidget leftDock("Left Dock", &amp;w);&lt;br /&gt;QGridLayout leftDockLayout1;&lt;br /&gt;QWidget leftDockWidget1;&lt;br /&gt;QToolBox tb1(&amp;leftDock);&lt;br /&gt;QLineEdit leftEdit1;&lt;br /&gt;QWidget leftDockWidget2;&lt;br /&gt;QGridLayout leftDockLayout2;&lt;br /&gt;QLineEdit leftEdit2;&lt;br /&gt;leftDockLayout1.addWidget(&amp;leftEdit1);&lt;br /&gt;leftDockWidget1.setLayout(&amp;leftDockLayout1);&lt;br /&gt;leftDockLayout2.addWidget(&amp;leftEdit2);&lt;br /&gt;leftDockWidget2.setLayout(&amp;leftDockLayout2);&lt;br /&gt;tb1.addItem(&amp;leftDockWidget1, "toolbox1");&lt;br /&gt;tb1.addItem(&amp;leftDockWidget2, "toolbox2");&lt;br /&gt;leftDock.setWidget(&amp;tb1);&lt;br /&gt;QDockWidget rightDock("Right Dock", &amp;w);&lt;br /&gt;QGridLayout rightDockLayout;&lt;br /&gt;QWidget rightDockWidget;&lt;br /&gt;QLineEdit rightEdit;&lt;br /&gt;rightDockLayout.addWidget(&amp;rightEdit);&lt;br /&gt;rightDockWidget.setLayout(&amp;rightDockLayout);&lt;br /&gt;rightDock.setWidget(&amp;rightDockWidget);&lt;br /&gt;QDockWidget topDock("Top Dock", &amp;w);&lt;br /&gt;QGridLayout topDockLayout;&lt;br /&gt;QWidget topDockWidget;&lt;br /&gt;QLineEdit topEdit;&lt;br /&gt;topDockLayout.addWidget(&amp;topEdit);&lt;br /&gt;topDockWidget.setLayout(&amp;topDockLayout);&lt;br /&gt;topDock.setWidget(&amp;topDockWidget);&lt;br /&gt;QDockWidget bottomDock("Bottom Dock", &amp;w);&lt;br /&gt;QGridLayout bottomDockLayout;&lt;br /&gt;QWidget bottomDockWidget;&lt;br /&gt;QLineEdit bottomEdit;&lt;br /&gt;bottomDockLayout.addWidget(&amp;bottomEdit);&lt;br /&gt;bottomDockWidget.setLayout(&amp;bottomDockLayout);&lt;br /&gt;bottomDock.setWidget(&amp;bottomDockWidget);&lt;br /&gt;w.addDockWidget(Qt::LeftDockWidgetArea, &amp;leftDock);&lt;br /&gt;w.addDockWidget(Qt::RightDockWidgetArea, &amp;rightDock);&lt;br /&gt;w.addDockWidget(Qt::TopDockWidgetArea, &amp;topDock);&lt;br /&gt;w.addDockWidget(Qt::BottomDockWidgetArea, &amp;bottomDock);&lt;br /&gt;w.show();&lt;br /&gt;a.connect(&amp;a, SIGNAL(lastWindowClosed()), &amp;amp;a, SLOT(quit()));&lt;br /&gt;rc = a.exec();&lt;br /&gt;return rc;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/qtgui&gt;&lt;/qfile&gt;&lt;/qapplication&gt;&lt;/code&gt;&lt;/pre&gt;</description><link>http://davidwatson.org/2006/10/qt4-for-full-featured-rapid-prototypes.html</link><author>David Watson</author></item></channel></rss>