<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="http://unfoldingneurons.com/"
	>

<channel>
	<title>Larry Ullman&#039;s Blog</title>
	<atom:link href="http://blog.dmcinsights.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.dmcinsights.com</link>
	<description>flotsam and jetsam abounds</description>
	<lastBuildDate>Sun, 14 Mar 2010 23:28:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Validation Suggestions</title>
		<link>http://blog.dmcinsights.com/2010/03/13/validation-suggestions/</link>
		<comments>http://blog.dmcinsights.com/2010/03/13/validation-suggestions/#comments</comments>
		<pubDate>Sat, 13 Mar 2010 21:00:25 +0000</pubDate>
		<dc:creator>Larry</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[ui]]></category>
		<category><![CDATA[user interface]]></category>
		<category><![CDATA[validate]]></category>
		<category><![CDATA[validation]]></category>

		<guid isPermaLink="false">http://blog.dmcinsights.com/?p=956</guid>
		<description><![CDATA[I was reading some articles about validation routines in Flex (as part of a book I&#8217;m writing on Flex + PHP), when I came across a particular article that&#8217;s part of  the Adobe Developer Connection. The specifics of the article revolve around validation in Flex, of course, but I thought that the section on &#8220;Best [...]]]></description>
			<content:encoded><![CDATA[<p>I was reading some articles about validation routines in Flex (as part of a <a href="http://blog.dmcinsights.com/2010/01/22/my-next-book/">book I&#8217;m writing on Flex + PHP</a>), when I came across a <a href="http://www.adobe.com/devnet/flex/quickstart/validating_data/">particular article</a> that&#8217;s part of  the <a href="http://www.adobe.com/devnet/">Adobe Developer Connection</a>. The specifics of the article revolve around validation in Flex, of course, but I thought that the section on &#8220;Best Practices for Client-Side Validation&#8221; would be good reading for any one doing user interface. There are four suggestions there, all on how an application should <span style="text-decoration: underline;">treat</span> the user. Those suggestions are:</p>
<ol>
<li>Prevent, Don&#8217;t Scold</li>
<li>Give Immediate Feedback</li>
<li>Let the User Work</li>
<li>Innocent Until Proven Guilty</li>
</ol>
<p>The first rule ties in nicely to a post I just wrote on <a href="http://blog.dmcinsights.com/2010/02/27/the-first-rule-of-user-interface/">putting the user in a place where they can succeed</a>. I don&#8217;t want to waste time here re-iterating what&#8217;s said there, but give it a read—at least that part about best practices—and keep that perspective in mind the next time you go to design a user interface.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmcinsights.com/2010/03/13/validation-suggestions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP 6 Hosting</title>
		<link>http://blog.dmcinsights.com/2010/03/06/php-6-hosting/</link>
		<comments>http://blog.dmcinsights.com/2010/03/06/php-6-hosting/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 06:37:13 +0000</pubDate>
		<dc:creator>Larry</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[php 6]]></category>
		<category><![CDATA[php6]]></category>

		<guid isPermaLink="false">http://blog.dmcinsights.com/?p=954</guid>
		<description><![CDATA[A reader posted a question in the forum the other day and indicated they were using PHP 6 on a shared hosting account. It&#8217;s absolutely fantastic when people include their PHP (or whatever) version when they ask questions, but, more to the point, I was surprised to see PHP 6 being offered, since it hasn&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>A reader posted a question in the <a href="http://www.dmcinsights.com/phorum/">forum</a> the other day and indicated they were using PHP 6 on a shared hosting account. It&#8217;s absolutely fantastic when people include their PHP (or whatever) version when they ask questions, but, more to the point, I was surprised to see PHP 6 being offered, since it hasn&#8217;t been officially released yet. But, yes, <a href="http://www.siteground.com">SiteGround</a> offers hosting accounts with <a href="http://www.siteground.com/php-hosting.htm">several different versions of PHP</a>. I know nothing of the company or the quality of their hosting, but if you want to try PHP 6, without installing it on your own computer, this is a cheap option.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmcinsights.com/2010/03/06/php-6-hosting/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Economics of Publishing</title>
		<link>http://blog.dmcinsights.com/2010/03/04/the-economics-of-publishing/</link>
		<comments>http://blog.dmcinsights.com/2010/03/04/the-economics-of-publishing/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 07:57:03 +0000</pubDate>
		<dc:creator>Larry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[ebook]]></category>
		<category><![CDATA[publishing]]></category>

		<guid isPermaLink="false">http://blog.dmcinsights.com/?p=959</guid>
		<description><![CDATA[Recently, the New York Times had a nice two-page article on the economics of book publishing and electronic book publishing. I&#8217;ve been thinking about writing on this topic myself, specifically about the money, as I suspect many people are curious about the financial aspects of the publishing business. However, I only have access to my [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, the <a href="http://www.nytimes.com">New York Times</a> had a nice two-page article on the <a href="http://www.nytimes.com/2010/03/01/business/media/01ebooks.html">economics of book publishing and electronic book publishing</a>. I&#8217;ve been thinking about writing on this topic myself, specifically about the money, as I suspect many people are curious about the financial aspects of the publishing business. However, I only have access to my numbers as a writer, so it was interesting to see the publisher side of things. I write <a href="http://www.dmcinsights.com/bk_pages/books.php">computer books</a> published as paperbacks, so my experience may differ from what the Times reported. That being said&#8230;<span id="more-959"></span></p>
<p>The first key number is that if the book lists for $30 (all numbers are in US dollars), then the publisher probably gets around $15. This is why Amazon and bookstores can mark the price down 20 or 40% and still make money on the sale.</p>
<p>Now the <em>Times</em> article suggests that the writer gets a 15% royalty on the $30. That may be the case for some, but, in working with two publishers (and having preliminary contract negotiations with another), a 14% royalty rate is the best I&#8217;ve personally seen. For many books the rate is actually 10 or 12%, and one contract I had started with royalties in the single digits, possibly escalating up to 10% or so as sales increased. As far as I can tell, the royalty rate a writer gets is based upon the expected and actual sales of the book and what the publisher thinks they can get you to agree to.</p>
<p>But, most importantly, the royalties are calculated <strong>on the price the publisher gets</strong>, not the list price (in my experience; I don&#8217;t want to question the accuracy of the <em>Times</em> article, but it&#8217;d really surprise me if any writer is getting paid royalties on the list price). So, if you do the math, a fortunate computer book writer can hope to get maybe $2.10 for each book sold (14% of $15). As for myself, I need to take out payroll taxes and cover business expenses, so at the end of the day, for each book sold, I&#8217;ll probably have $1 or thereabouts in my bank account that can be used to pay the mortgage and buy groceries. Yes, one dollar. (Not to belabor the point, but you may want to ponder that $1 the next time you go making demands of a writer or think they&#8217;re just doing X, Y, or Z to make money.) If I sell a copy of an eBook or a translation, I&#8217;ll get half that. This means that when a reader in India insisted that I put PHP, Apache, and MySQL on a CD, along with whatever other materials I may have (and I don&#8217;t have any that I&#8217;m keeping to myself, really), and ship that out to him in India, at my expense, that was after he had given me about 50 cents (or four-bits if you&#8217;re old-school). Kind of crazy, eh? Of course, I&#8217;m not trying to disparage readers, and people in all situations make unreasonable requests, I&#8217;m just saying that this is my experience as a computer book writer—but I&#8217;m a fairly successful writer—and this is pretty eye-opening for most readers.</p>
<p>Looking at the publisher again, the <em>Times</em> article puts their net, after the writer&#8217;s royalties, printing and shipping the book, marketing, and other book-specific expenses, at about $4 ($4.50-$5.50 for eBooks). And from that four to five dollars, the publisher has to pay employees, provide health care, have physical offices, etc., etc. So there&#8217;s not a ton of money being made by the publishers either, and that&#8217;s when a book sells. When a book doesn&#8217;t sell, it&#8217;s just a loss of money, because the publisher still paid the printing and shipping costs, plus they gave the writer an advance. My understanding is that about the top 20% of bestselling books helps cover the losses associated with the other 80% (and that most of these numbers are also appropriate to the music industry).</p>
<p>So there&#8217;s a little insight into the publishing business, from a money perspective (again, read the whole <em>NY Times</em> article if you want more and better details). As always, thanks for reading what I have to say!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmcinsights.com/2010/03/04/the-economics-of-publishing/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Creating Multilingual AIR Applications</title>
		<link>http://blog.dmcinsights.com/2010/03/02/creating-multilingual-air-applications/</link>
		<comments>http://blog.dmcinsights.com/2010/03/02/creating-multilingual-air-applications/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 16:15:07 +0000</pubDate>
		<dc:creator>Larry</dc:creator>
				<category><![CDATA[Adobe AIR]]></category>

		<guid isPermaLink="false">http://blog.dmcinsights.com/?p=193</guid>
		<description><![CDATA[Quite some time ago I came across this article at Adobe&#8217;s Web site that describes how to create multilingual HTML-based AIR applications. I haven&#8217;t personally had the need to create a multilingual AIR application, but I found the concept worth being aware of should the need later arise (it&#8217;s always easy to be obvious as [...]]]></description>
			<content:encoded><![CDATA[<p>Quite some time ago I came across <a href="http://www.adobe.com/devnet/air/ajax/quickstart/multilingual_air_apps.html">this article at Adobe&#8217;s Web site</a> that describes how to create multilingual HTML-based AIR applications. I haven&#8217;t personally had the need to create a multilingual AIR application, but I found the concept worth being aware of should the need later arise (it&#8217;s always easy to be obvious as to what&#8217;s possible).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmcinsights.com/2010/03/02/creating-multilingual-air-applications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The First Rule of User Interface</title>
		<link>http://blog.dmcinsights.com/2010/02/27/the-first-rule-of-user-interface/</link>
		<comments>http://blog.dmcinsights.com/2010/02/27/the-first-rule-of-user-interface/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 16:47:50 +0000</pubDate>
		<dc:creator>Larry</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[ui]]></category>
		<category><![CDATA[user interface]]></category>

		<guid isPermaLink="false">http://blog.dmcinsights.com/?p=946</guid>
		<description><![CDATA[The other day I was registering to use a state government Web site. I think government sites often tend to be among the worst offenders when it comes to usability. In part this is because they&#8217;re always outdated and, I suspect, because the financing for the site was based upon meeting the government organization&#8217;s specific [...]]]></description>
			<content:encoded><![CDATA[<p>The other day I was registering to use a state government Web site. I think government sites often tend to be among the worst offenders when it comes to usability. In part this is because they&#8217;re always outdated and, I suspect, because the financing for the site was based upon meeting the government organization&#8217;s specific needs, not giving the end users what they want (generally speaking, there are exceptions, of course). This particular site had the added deficit of being developed using aspects of ASP.NET that make the site only usable for Internet Explorer (that&#8217;s acceptable? really?). So I have to dust off off my Windows setup (I primarily use Macs), just to run Internet Explorer (really?), and I go to register&#8230;</p>
<p>I fill out the form properly, I thought, then click submit. At that point I see a message about my chosen password being invalid because it didn&#8217;t contain both upper- and lowercase letters, plus at least one number. That&#8217;s a fine requirement, of course, but <em>why didn&#8217;t the registration form indicate those requirements</em>? It&#8217;s obvious that an email field needs a valid email address, but if you&#8217;re developing a site and you know that you&#8217;re going to validate a field to confirm that it includes both upper- and lowercase letters, plus at least one number, how about telling the end user that, too? So here&#8217;s the first, most important rule of a good user interface:</p>
<p><strong>A proper user-interface sets the user up to succeed. </strong></p>
<p>Whether you&#8217;re designing a Web site, managing a group of people, or being a parent, you have to put your users, employees, and children in a place where they can do things well. And by &#8220;well&#8221;, I mean: they can do things they way you think they should!</p>
<p>Conversely, I just finished doing my United States taxes, which I always do online using <a href="http://www.turbotax.com">TurboTax</a>. I use TurboTax primarily because the user interface is extraordinarily well done. For example, it&#8217;ll ask you a seemingly random, strange question, like &#8220;Did you roll over the proceeds from a farming operation into a non-work-related 403b?&#8221; I might look at that and go &#8220;huh?&#8221; but one great thing TurboTax does is add parenthetical notes like &#8220;This is not common.&#8221; Simple and brilliant. And TurboTax has other nice features, like indicating where you are in the process, reviewing the data you&#8217;ve entered, and so forth, but the clear messages—right where I&#8217;m focusing at that moment—make it easy for me to use the system properly.</p>
<p>It can be tricky for developers, who are theoretically quite knowledgeable about computers, to put themselves in the mindset of an end user, but there here is one simple way to create a successful user-interface: look at what you&#8217;re doing on the server side of things. If you&#8217;re going to check a password field for a number, put a message on the form saying a number is required. The same goes for a length requirement. If a date will be validated against a given format (like four digits for the year), have the form indicate the proper format, too. The same goes for phone numbers. If a username can&#8217;t contain a space, say as much. Set the user up to succeed instead of making them feel stupid for not doing something they weren&#8217;t told to do in the first place!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmcinsights.com/2010/02/27/the-first-rule-of-user-interface/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Yii Framework Version 1.1</title>
		<link>http://blog.dmcinsights.com/2010/02/26/yii-framework-version-1-1/</link>
		<comments>http://blog.dmcinsights.com/2010/02/26/yii-framework-version-1-1/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 22:47:07 +0000</pubDate>
		<dc:creator>Larry</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[yii]]></category>

		<guid isPermaLink="false">http://blog.dmcinsights.com/?p=929</guid>
		<description><![CDATA[A significant upgrade to the Yii framework—1.1—came out in January, just over a year after the original 1.0 release. I&#8217;ve already updated my series on Learning the Yii Framework to make sure it&#8217;s technically accurate, but I thought I&#8217;d highlight a few of changes in Yii 1.1 here.

One significant change, which I&#8217;ll have to address [...]]]></description>
			<content:encoded><![CDATA[<p>A significant upgrade to the <a href="http://www.yiiframework.com">Yii framework</a>—1.1—came out in January, just over a year after the original 1.0 release. I&#8217;ve already updated my series on <a href="http://blog.dmcinsights.com/series/learning-the-yii-framework/">Learning the Yii Framework</a> to make sure it&#8217;s technically accurate, but I thought I&#8217;d highlight a few of changes in Yii 1.1 here.</p>
<p><span id="more-929"></span></p>
<p>One significant change, which I&#8217;ll have to address in a separate post, is support for unit-based testing. The concept of unit testing has become more and more popular over the past few years, and has slowly been making its way into PHP development. The premise is simple: as you develop an application, you write a series of tests that evaluate bits of code. With unit testing, you really want to test isolated, atomic parts of an application. One of the many benefits of unit testing is that as your application grows and becomes more complicated, you can quickly apply the established unit tests to insure that the core components are still working as they should. Yii now auto-generates some testing code for you. Again, I&#8217;ll try to write up how you&#8217;d use unit testing at a later point.</p>
<p>A second change, that&#8217;s perhaps more evident, is the creation of an official library of Yii extensions. These are all filed under the Zii heading (i.e., in the <strong>framework/zii</strong> directory). To start, there&#8217;s a group of jQuery User Interface (jui) extensions, plus several for creating data grids and lists. A couple of standard Yii components, like Menu and Portlet, have been moved to <a href="http://code.google.com/p/zii/">Zii</a>, and I like having the breadcrumbs extension in there. I&#8217;ll try to write about that separately as well.</p>
<p>Third, Yii now has a <a href="http://www.yiiframework.com/doc/guide/form.builder">form builder</a>. Much like PEAR&#8217;s <a href="http://pear.php.net/package/HTML_QuickForm2">HTML_QuickForm2</a>, Yii&#8217;s form builder makes it easier to create and validate forms without lots of redundant code. I think the Yii manual has a <a href="http://www.yiiframework.com/doc/guide/form.builder">fairly good explanation of this</a>, but I&#8217;ll write it up separately if people feel there&#8217;s the need.</p>
<p>There are also a number of behind-the-scenes changes, especially as to how related Models are fetched using the Active Record Model. In terms of existing code, Yii 1.1 dropped the <strong>safeAttributes()</strong> method from Models. This is smart, because I for one never fully understood when something should or should not be marked as a safe attribute. Now <a href="http://www.yiiframework.com/doc/guide/form.model#securing-attribute-assignments">safe attributes</a> are those that are validated by other Model rules.</p>
<p>Finally, if you&#8217;re already using Yii for some projects, here&#8217;s what the <a href="http://www.yiiframework.com/forum/index.php?/topic/6525-yii-1-1-0-is-released/">Yii managers say about using Yii 1.1</a>: <em>If you are already using Yii 1.0 to develop your project which is about half-way done, we suggest you do not upgrade to 1.1 because there are quite some changes that break backward compatibility. If you just started a new project, we recommend you upgrade to 1.1 because it will receive most of our maintenance effort from now on. While we will continue to maintain 1.0, we expect it will only receive bug fixes in future. If you are new to Yii, you should start with 1.1.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmcinsights.com/2010/02/26/yii-framework-version-1-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Yii Framework 1.1 Updates, Part 2</title>
		<link>http://blog.dmcinsights.com/2010/02/19/yii-framework-1-1-updates-part-2/</link>
		<comments>http://blog.dmcinsights.com/2010/02/19/yii-framework-1-1-updates-part-2/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 06:51:27 +0000</pubDate>
		<dc:creator>Larry</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[yii]]></category>

		<guid isPermaLink="false">http://blog.dmcinsights.com/?p=901</guid>
		<description><![CDATA[The latest version of the Yii framework, 1.1, came out in January and has a few significant changes, so I&#8217;ve been reviewing my &#8220;Learning the Yii Framework&#8221; series to make sure it&#8217;s all still correct. In a , I made note of the new config bootstrap files for testing purposes, as well as the changes [...]]]></description>
			<content:encoded><![CDATA[<p>The latest version of the <a href="http://www.yiiframework.com">Yii framework</a>, 1.1, came out in January and has a few significant changes, so I&#8217;ve been reviewing my &#8220;<a href="http://blog.dmcinsights.com/series/learning-the-yii-framework/">Learning the Yii Framework</a>&#8221; series to make sure it&#8217;s all still correct. In a <a href="http://blog.dmcinsights.com/2010/02/09/yii-framework-1-1-updates/">previous post</a>, I made note of the new config bootstrap files for testing purposes, as well as the changes in the auto-generated Views. Here I&#8217;m going to look at the Models, Views, and Controllers in more detail.<span id="more-901"></span></p>
<p>From my <a href="http://blog.dmcinsights.com/2009/11/10/basic-model-edits-in-yii/">post on Models</a>&#8230;</p>
<p>The only difference I found is that Yii did a better job of recognizing the relationships between the Department and Employee Models. Specifically, it picked up both relationships: that multiple employees are in a single department and that one employee is the department head. Here&#8217;s the <strong>relations()</strong> method from the Department Model:</p>
<pre>public function relations()
{
    return array(
    'deptHead' =&gt; array(self::BELONGS_TO, 'Employee', 'deptHeadId'),
    'employees' =&gt; array(self::HAS_MANY, 'Employee', 'departmentId'),
    );
}
</pre>
<p>The Employee Model&#8217;s <strong>relations()</strong> method also reflects both relationships.</p>
<p>From my <a href="http://blog.dmcinsights.com/2009/11/12/basic-view-edits-in-yii/">post on Views</a>&#8230;</p>
<p>Yii 1.1 has taken a bunch of the best extensions and placed them in their own namespace, <em>zii</em>. A lot of functionality is now added to sites by using widgets from within the zii library. Whereas earlier versions of Yii created a MainMenu component, Yii 1.1 uses the CMenu widget. The default layout also makes use of the CBreadcrumbs widget, include in the zii extensions.</p>
<p>There are a number of View file changes, although none that are dramatic: What was previously the list (<strong>list.php</strong>) View file is now index (<strong>index.php</strong>). The index page makes use of a CListView widget to list the records. The admin page makes use of a CGridView widget to display all the records. The show file (<strong>show.php</strong>) is now called view (<strong>view.php</strong>). It makes use of the CDetailView widget to show the information for a specific record. Multiple View files can make use of the <strong>_view.php</strong> script, which is a template for showing an individual record. Every view file identifies breadcrumb information at the top, which will tie into the CBreadcrumbs widget referenced in the main layout file. I&#8217;ll try to write up using the breadcrumbs widget at a later time.</p>
<p>From my <a href="http://blog.dmcinsights.com/2009/11/15/basic-controller-edits-in-yii/">post on Controllers</a>&#8230;</p>
<p>No major changes here. The <strong>$defaultAction</strong> line is no longer present. Also, the names of some of two of the action methods have changed to match the new names of the corresponding View files: <strong>actionView()</strong> and <strong>actionIndex()</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmcinsights.com/2010/02/19/yii-framework-1-1-updates-part-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Effortless Flex 4 Development Book Outline</title>
		<link>http://blog.dmcinsights.com/2010/02/11/effortless-flex-4-development-book-outline/</link>
		<comments>http://blog.dmcinsights.com/2010/02/11/effortless-flex-4-development-book-outline/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 18:23:28 +0000</pubDate>
		<dc:creator>Larry</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[book]]></category>

		<guid isPermaLink="false">http://blog.dmcinsights.com/?p=914</guid>
		<description><![CDATA[I&#8217;m currently working on my next book, Effortless Flex 4 Development. This is an entirely new title for me and my first full-length book on Flex. It&#8217;ll be published by New Riders, which is a sister publisher to Peachpit Press, that I normally work with. Most of the books I&#8217;ve written have been in the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m currently working on my next book, <em>Effortless Flex 4 Development</em>. This is an entirely new title for me and my first full-length book on Flex. It&#8217;ll be published by New Riders, which is a sister publisher to <a href="http://www.peachpit.com">Peachpit Press</a>, that I normally work with. Most of the books I&#8217;ve written have been in the Visual QuickStart/QuickPro Guide series, which has a scripted format. This book will not be, so you won&#8217;t see the step-by-step instructions everywhere (there will be some) or the two-column format. I just submitted the third chapter, so I&#8217;ve now written about 90 pages or so, approximately one-quarter of the book. Here&#8217;s the rough table of contents, for those that are interested.<span id="more-914"></span>The book is structured in three roughly-equal parts. The first part discusses the absolute basics: the framework, the tools, creating basic applications, user interface elements, ActionScript, and events. The second part of the book focuses on data and client-server communications. This includes: the different data formats; displaying, formatting, and validating data in the client; and then retrieving data from the server. All of the server examples will use PHP and you&#8217;ll see the PHP code, the underlying database structure, and the MXML/ActionScript involved. The emphasis here will be on lots of real-world examples using all the different formats and likely actions (e.g., posting to PHP, retrieving XML from a server, using AMF, and so forth). The third part of the book rounds out the application development know-how. There are two primary threads in these chapters: UI improvements (menus, skins, styles, effects, etc.) and development process improvements (modularization, profiling, etc.)</p>
<p>So, with that in mind, here&#8217;s what I&#8217;m working with for starters. It&#8217;ll undoubtedly change and there are a few things I want to fit in somewhere, like accessibility. As always, any thoughts, questions, and suggestions are most welcome!</p>
<pre>Introduction
--------------
Part 1: The Fundamentals

Chapter 1: Building Flex Applications
 A Survey of the Parts
 Using Flash Builder
 A Cheaper, Slower Alternative
 Deploying Applications
 Getting Help

Chapter 2: Basic User Interface Elements
 Application Layouts
 Simple Controls
 Creating Forms

Chapter 3: The ActionScript You Need to Know
 Data Binding
 Syntax
 Comments
 Simple Data Types
 Control Structures
 Arrays
 Creating Functions
 Best practices

Chapter 4: Event Management
 The Event Phases
 User Events
 Application Events
 Handling Events with ActionScript
 Preventing Events

--------------

Part 2: Data and Communications

Chapter 5: Common Data Formats
 XML
 JSON
 AMF

Chapter 6: Simple Local Data Interactions
 Displaying Data
 Formatting Data
 Validating Data
 Using Local Data Files

Chapter 7: Simple Remote Data Interactions
 Sending and Retrieving Text (HTTPService)
 Sending and Retrieving XML (HTTPService)
 Sending and Retrieving JSON (HTTPService)

Chapter 8: Smarter Remote Data Interactions
 WebServices/SOAP/WSDL
 RemoteObjects/AMF

--------------

Part 3: Application Development

Chapter 9: Modularization
 Creating Custom Components
 Using Modules
 Using Runtime Shared Libraries

Chapter 10: Creating a Fuller Experience
 Menus
 Navigation
 View States
 Creating Histories
 Deep Linking
 Accessibility

Chapter 11: Windows and Popups
 Alerts
 Popups
 ToolTips
 Changing Window Behavior

Chapter 12: Improving the Appearance
 Multimedia
 Style Sheets
 Skins

Chapter 13: Effects and More Events
 Effects
 Drag and Drop
 Custom Events

Chapter 14: Testing and Deploying
 Testing Techniques
 Profiling an Application
 Improving Performance
 Network Monitoring
 Customizing the Deployment</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmcinsights.com/2010/02/11/effortless-flex-4-development-book-outline/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Yii Framework 1.1 Updates</title>
		<link>http://blog.dmcinsights.com/2010/02/09/yii-framework-1-1-updates/</link>
		<comments>http://blog.dmcinsights.com/2010/02/09/yii-framework-1-1-updates/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 14:51:32 +0000</pubDate>
		<dc:creator>Larry</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[yii]]></category>

		<guid isPermaLink="false">http://blog.dmcinsights.com/?p=889</guid>
		<description><![CDATA[Version 1.1 of the Yii framework was released just recently. I&#8217;m going back through the series I wrote on learning Yii and updating it for the latest version. Here&#8217;s what I found so far&#8230;From my Configuring Yii post&#8230;
Yii now creates two bootstrap files in the Web root directory: index.php and index-test.php. They are exactly the [...]]]></description>
			<content:encoded><![CDATA[<p>Version 1.1 of the Yii framework was released just recently. I&#8217;m going back through the series I wrote on learning Yii and updating it for the latest version. Here&#8217;s what I found so far&#8230;<span id="more-889"></span>From my <a href="http://blog.dmcinsights.com/2009/11/03/configuring-yii/">Configuring Yii</a> post&#8230;</p>
<p>Yii now creates two bootstrap files in the Web root directory: <strong>index.php</strong> and <strong>index-test.php</strong>. They are exactly the same except that <strong>index-test.php</strong> includes a different configuration file: <strong>/protected/config/test.php</strong> instead of <strong>/protected/config/main.php</strong>. However, the test configuration file just includes the main configuration file, then also enables the <em>CDbFixtureManager</em> component. This component is used to perform <em>unit testing</em>, a new addition in Yii 1.1.</p>
<p><a href="http://en.wikipedia.org/wiki/Unit_testing">Unit testing</a> is all the rage in programming the past few years and it goes like this: you define very specific tests for different aspects of an application, then you run the application against those tests to confirm that things work as they should. As you build up and even refactor your code, you can continue to run those same tests to confirm that you haven&#8217;t broken some functionality in the process of adding new.</p>
<p>Anyway, Yii is suggesting now that you run your site through <strong>index-test.php</strong> to use unit testing during development stage, then switch to <strong>index.php </strong>for the live stage. Even if you don&#8217;t use unit testing, this is a nice model for having two configuration files: one for development and testing and one for live settings.</p>
<p>From my <a href="Creating Models, Views, and Controllers in Yii">Creating Models, Views, and Controllers in Yii</a> post&#8230;</p>
<p>The files generated by the CRUD commend have changed. You still get the controller and all of the View files, but the <strong>show.php</strong> file is now called <strong>view.php</strong> and the <strong>list.php</strong> file is now <strong>index.php</strong>. Both are still used to show the specifics of an individual record and list them all, respectively. There&#8217;s also a new View file called <strong>_view.php</strong>. This is a little template to display the information for a specific record. It&#8217;ll be used by <strong>view.php</strong>. Also three files for unit testing purposes are generated and stored in three subdirectories of <strong>protected/tests</strong>.</p>
<p>It looks like supporting unit testing is the main change thus far (for what you&#8217;ll see as you just get started). I&#8217;ve gone through five of the eight posts in the series and everything still works, you just get more stuff now. I&#8217;ll try to write up a post on unit testing separately and in a couple of days I&#8217;ll go through the separate Models, Controllers, and Views posts to check them for changes (at the very least, we know that some of the View files have changed names).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmcinsights.com/2010/02/09/yii-framework-1-1-updates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eight PHP Power Tools</title>
		<link>http://blog.dmcinsights.com/2010/02/04/eight-php-power-tools/</link>
		<comments>http://blog.dmcinsights.com/2010/02/04/eight-php-power-tools/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 16:45:11 +0000</pubDate>
		<dc:creator>Larry</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[ide]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://blog.dmcinsights.com/?p=883</guid>
		<description><![CDATA[Yesterday, InfoWorld posted an in-depth review of eight PHP-capable IDE&#8217;s. Eclipse with PDT, Netbeans, Zend Studio, NuSphere PhpED, and ActiveState Komodo all get &#8220;very good&#8221; marks. Of these, Eclipse and Netbeans are free, which is always a bonus. If you&#8217;re looking for a new IDE for your PHP development, do read this article.
Personally, I use [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday, InfoWorld posted an <a href="http://www.infoworld.com/d/developer-world/infoworld-review-eight-php-power-tools-737?source=IFWNLE_nlt_daily_2010-02-03">in-depth review of eight PHP-capable IDE&#8217;s</a>. Eclipse with PDT, Netbeans, Zend Studio, NuSphere PhpED, and ActiveState Komodo all get &#8220;very good&#8221; marks. Of these, Eclipse and Netbeans are free, which is always a bonus. If you&#8217;re looking for a new IDE for your PHP development, do read this article.</p>
<p>Personally, I use a text editor for my PHP development (<a href="http://www.micromates.com">TextMate</a> for Mac OS X). But I have used Eclipse quite a bit, just not for PHP. Eclipse is a standard foundation for lots of IDEs, like Flex Builder/Flash Builder and Aptana Studio. I&#8217;ve used Netbeans for Ruby development. Both Netbeans and Eclipse are quite good and extremely extendable, but not as user-friendly as some commercial products, in my opinion. I never really took to Zend Studio, for no particular reason. Maybe the price! I did use NuSphere PhpEd for a while (I did some consulting work for that company) and it seemed to be a very likable solution, but it only runs on Windows, which rules it out for me.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmcinsights.com/2010/02/04/eight-php-power-tools/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>
