<?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 &#187; Adobe AIR</title> <atom:link href="http://www.larryullman.com/category/air/feed/" rel="self" type="application/rss+xml" /><link>http://www.larryullman.com</link> <description>Translating Geek Into English</description> <lastBuildDate>Wed, 08 Feb 2012 21:58:37 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <item><title>What is Larry Thinking? #42 =&gt; Doing What I Do, Part 3</title><link>http://www.larryullman.com/2011/07/04/what-is-larry-thinking-42-doing-what-i-do-part-3/</link> <comments>http://www.larryullman.com/2011/07/04/what-is-larry-thinking-42-doing-what-i-do-part-3/#comments</comments> <pubDate>Mon, 04 Jul 2011 21:02:19 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[Adobe AIR]]></category> <category><![CDATA[Flex]]></category> <category><![CDATA[JavaScript]]></category> <category><![CDATA[MySQL]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[Web Development]]></category> <category><![CDATA[app]]></category> <category><![CDATA[book]]></category> <category><![CDATA[ecom]]></category> <category><![CDATA[flash builder]]></category> <category><![CDATA[mobile]]></category> <category><![CDATA[newsletter]]></category> <category><![CDATA[phpmsyql4]]></category> <category><![CDATA[phpvqs4]]></category> <category><![CDATA[stored procedures]]></category> <category><![CDATA[writing]]></category> <category><![CDATA[yii]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=2674</guid> <description><![CDATA[In this edition… About This Newsletter What Were You Thinking? =&#62; The JavaScript Book On the Web =&#62; Flash Builder 4.5/Flex 4.5 for Mobile Apps On the Blog =&#62; Cookies and Sessions in Yii On the Forum =&#62; FALSE Comparisons in PHP Q&#38;A =&#62; Could You Say More About Stored Procedures? What is Larry Thinking [...]]]></description> <content:encoded><![CDATA[<p>In this edition…</p><ul><li><a
href="http://www.larryullman.com/2011/07/04/what-is-larry-thinking-42-doing-what-i-do-part-3/#about">About This Newsletter</a></li><li><a
href="http://www.larryullman.com/2011/07/04/what-is-larry-thinking-42-doing-what-i-do-part-3/#you">What Were You Thinking? =&gt; The JavaScript Book</a></li><li><a
href="http://www.larryullman.com/2011/07/04/what-is-larry-thinking-42-doing-what-i-do-part-3/#web">On the Web =&gt; Flash Builder 4.5/Flex 4.5 for Mobile Apps</a></li><li><a
href="http://www.larryullman.com/2011/07/04/what-is-larry-thinking-42-doing-what-i-do-part-3/#blog">On the Blog =&gt; Cookies and Sessions in Yii</a></li><li><a
href="http://www.larryullman.com/2011/07/04/what-is-larry-thinking-42-doing-what-i-do-part-3/#forum">On the Forum =&gt; FALSE Comparisons in PHP</a></li><li><a
href="http://www.larryullman.com/2011/07/04/what-is-larry-thinking-42-doing-what-i-do-part-3/#qa">Q&amp;A =&gt; Could You Say More About Stored Procedures?</a></li><li><a
href="http://www.larryullman.com/2011/07/04/what-is-larry-thinking-42-doing-what-i-do-part-3/#thinking">What is Larry Thinking =&gt; Doing What I Do: Web Development</a></li><li><a
href="http://www.larryullman.com/2011/07/04/what-is-larry-thinking-42-doing-what-i-do-part-3/#news">Larry Ullman&#8217;s Book News =&gt; &#8220;PHP and MySQL for Dynamic Web Sites&#8221; (4th Edition) and &#8220;Modern JavaScript: Develop and Design&#8221;</a></li></ul><p><span
id="more-2674"></span></p><h2 id="about">About This Newsletter</h2><p>Another three weeks(-ish), another newsletter! It may only matter to me, but I&#8217;m happy to say that since I started using <a
href="http://www.literatureandlatte.com/scrivener.php">Scrivener</a> to write this newsletter (in late 2010), I&#8217;ve done a much better job in getting these out regularly. Although, since they only go out once a month, or slightly better, it may always seem to you that the newsletters come from out of the blue. Anyway&#8230;in this newsletter I present a random collection of stuff, including the conclusion of my on-going series on building a career in IT. In my next newsletter, I plan on speaking, briefly, about quantum computing, having recently read a <em>fascinating</em> article on the subject.</p><p>As always, questions, comments, and all feedback are much appreciated. And thanks for your interest in what I have to say and do!</p><h2 id="you">What Were You Thinking? =&gt; The JavaScript Book</h2><p>In the previous newsletter, I <a
href="http://www.larryullman.com/2011/06/09/what-is-larry-thinking-41-doing-what-i-do-part-2/#you">posted a question</a> about whether it matters to you if I self-publish my intended JavaScript book or if I use a traditional publisher. I also asked the general question as to what readers look for in a book, beyond the content and perhaps writer. There was an excellent response and I thank everyone for their thoughts.</p><p>The bottom line was that most people don&#8217;t care about the publisher. Some people specifically like, say, O&#8217;Reilly books or the Visual Quick* Series, but many don&#8217;t pay much attention to the publisher (I&#8217;ve always suspected that many readers don&#8217;t pay much attention to who the writer is either). The strongest feedback was just for it being made available in specific formats—PDF, print, what-have-you, and that it be of good quality.</p><p>It was also nice, and quite flattering, to hear many people express their interest in purchasing the book, regardless of whether I self-publish or use a traditional publisher. I am, indeed, fortunate to have the readership that I do.</p><p>Thanks again to everyone that responded and to those of you interested in this book. The actual decision regarding this JavaScript book can be found in the &#8220;Larry Ullman&#8217;s Book News&#8221; section at the end of this newsletter (this is called &#8220;burying the lead&#8221;!).</p><h2 id="web">On the Web =&gt; Flash Builder 4.5/Flex 4.5 for Mobile Apps</h2><p>Version 4.5 of both the Flex framework and the Flash Builder IDE just came out and the outlook is very exciting. As announced some time ago, the focus in Flex 4.5 is on developing for mobile apps. This means a new wave of components optimized for mobile platforms. That alone might sound &#8220;kind of cool&#8221;, but this release is much, much bigger than that.</p><p>Instead of using Flex to write Flash content that runs in a Web browser in a mobile device (but not on Apple devices), thanks to <a
href="http://www.adobe.com/go/air/">Adobe AIR 2.6</a>, <em>you&#8217;ll be able to write true mobile apps in Flex</em>. With the initial release, you&#8217;re able to create apps for the Google Android platform (the largest platform, in terms of sales of mobile devices today). Version 4.5.1 was just released, which adds support for iOS (iPod Touch, iPhone, and iPad) devices and the Blackberry Tablet OS. To summarize:</p><blockquote><p>If you know Flex, you can create mobile applications that run on all major mobile platforms in no time at all!</p></blockquote><p>This could not come at a better time for me. I have a couple of mobile app ideas that I want to develop and was planning on learning how to do so later this year (yes, yes, I&#8217;m totally on the cutting edge of the mobile app craze, eh?). I was still hemming and hawing over whether to pursue the iOS route, which would be natural for me (I primarily use Macs and am comfortable with the C family of languages), or go the Google Android route, which would be harder (Java is the default language there), but technically has a broader market. And now, thanks to Flex 4.5 and Adobe AIR, I won&#8217;t have to choose between them.</p><p>To see the development process, and the output, in action, check out <a
href="http://tv.adobe.com/watch/adobe-technology-sneaks-2011/sneak-peek-of-mobile-application-development-with-flex-and-flash-builder/">this sneak peek video at Adobe</a>. There&#8217;s also <a
href="http://www.adobe.com/devnet/flex/articles/mobile-development-flex-flashbuilder.html">this pretty good article</a> on mobile development using Flex and Flash Builder. It&#8217;s a very impressive concept and, as far as I know, the only &#8220;write once, run everywhere&#8221; development solution for mobile apps. This, of course, is the promise of Adobe AIR itself, which allows you to write one application that can run on multiple operating systems (I still seem to be a bigger fan of AIR than the world at large).</p><h2 id="blog">On the Blog =&gt; Cookies and Sessions in Yii</h2><p>In my ever-ongoing series on the <a
href="http://www.yiiframework.com">Yii framework</a>, I&#8217;ve recently written two postings on managing state using the framework. The <a
href="http://www.larryullman.com/2011/05/03/using-sessions-with-the-yii-framework/">first is on sessions</a>; the <a
href="http://www.larryullman.com/2011/06/04/using-cookies-in-the-yii-framework/">second on cookies</a>. Neither is particularly difficult to do using Yii, once you know the right code, of course. With cookies, Yii has built-in extra security measures you can take, for example, to help prevent Cross-Site Request Forgery (CSRF) attacks.</p><h2 id="forum">On the Forum =&gt; FALSE Comparisons in PHP</h2><p>I&#8217;m hoping that you&#8217;ll take this as a comfort, but you should be aware that we all, no matter how long we&#8217;ve been programming, are capable of creating bugs when programming. Through the <a
href="http://www.larryullman.com/forums/index.php?/topic/301-problems-with-ecommerce-example-2-demo-site/">keen testing of a reader</a>, a bug was caught in the second example site from my &#8220;<a
href="http://www.larryullman.com/books/effortless-e-commerce-with-php-and-mysql/">Effortless E-Commerce with PHP and MySQL</a>&#8221; book. It&#8217;s a common enough mistake that I should have caught it myself and yet&#8230; You can read my formal explanation regarding the specific code <a
href="http://www.larryullman.com/forums/index.php?/topic/301-problems-with-ecommerce-example-2-demo-site/page__pid__2163#entry2163">in the forum</a>, but the premise is this:</p><p>Say you have the conditional <code>if ($var) {</code>. That conditional will be TRUE so long as <strong>$var</strong> has a TRUE value. But what is a TRUE value? It&#8217;s easiest to understand what a TRUE value is by knowing what a FALSE value is. These are all FALSE values:</p><ul><li>FALSE (case-insensitive)</li><li>NULL</li><li>(No actual value)</li><li>&#8220;&#8221; (An empty string)</li><li>0</li><li>0.0</li><li>‘0&#8242;</li></ul><p>There are a couple of other higher-end FALSEhoods, such as an empty array. It should be fairly obvious that FALSE, NULL, no actual value, and an empty string are all FALSE values; the bug arises when you forget that zero, in any form, is also FALSE. And here&#8217;s how it can manifest itself as a bug (this is a different example than the one in the book and referenced in the forum)…</p><p>The <strong>stripos()</strong> function is used to identify whether or not string Needle is found within another string Haystack. If the Needle is not found, <strong>stripos()</strong> returns FALSE. If the Needle is found, <strong>stripos()</strong> <em>does not return TRUE</em>, but rather <em>returns the indexed position where Needle begins in Haystack</em>. This code, therefore, could be a problem:</p><p><code>if (stripos($haystack, $needle)) {…</code></p><p>The intent is to see if <strong>$needle</strong> exists in <strong>$haystack</strong>. However, if <strong>$needle</strong> is the first part of <strong>$haystack</strong>, <strong>stripos()</strong> will return 0, which will be interpreted by that conditional as FALSE. The bug-free solution is to change the conditional to test if the value returned by <strong>stripos()</strong> is not identical to FALSE:</p><p><code>if (stripos($haystack, $needle) !== false) {…</code></p><p>Note that you have to explicitly use the <em>not identical</em> operator (<strong>!==</strong>), as using the <em>not equal</em> operator (<strong>!=</strong>) would again be a bug, as the zero returned by the function would, in fact, be equal (but not identical) to FALSE.</p><p>Again, I hope you can take some solace in knowing that we all make mistakes, no matter the level of experience (or maybe that&#8217;s depressing?). I personally find it frustrating to make mistakes that I&#8217;m already aware of as a possibility, but on the bright side, making mistakes you know about makes them easier to fix!</p><h2 id="qa">Q&amp;A =&gt; Could You Say More About Stored Procedures?</h2><p>Oguz had prompted me to write a bit about stored procedures in general and in MySQL in particular. Stored procedures are one of those higher-end database concepts which you may have heard about but never really used (other examples include VIEWs and UNIONs). I previously wrote about stored procedures in my &#8220;<a
href="http://www.larryullman.com/books/mysql-visual-quickstart-guide-2nd-edition/">MySQL: Visual QuickStart Guide</a>&#8221; and my &#8220;<a
href="http://www.larryullman.com/books/php-5-advanced-visual-quickpro-guide-2nd-edition/">PHP 5 Advanced: Visual QuickPro Guide</a>&#8220;, and then relied upon them extensively in the second example of my &#8220;<a
href="http://www.larryullman.com/books/effortless-e-commerce-with-php-and-mysql/">Effortless E-Commerce with PHP and MySQL</a>&#8220;.</p><p>Both <em>stored procedures</em> and <em>stored functions</em> fall under the category of <a
href="http://dev.mysql.com/doc/refman/5.1/en/stored-routines.html">stored routines</a>, added to MySQL in version 5.1 (and MySQL is still adding features in this area). A stored routine is simply a memorized set of SQL queries and code. Think of it like taking any block of PHP code that interacts with a database, has conditionals, does something with the query data, etc., but store all of that in the database itself. The primary difference between a stored procedure and a stored function is that a stored <em>function</em> can return only a single value whereas a stored <em>procedure</em> can return an entire result set (i.e., multiple rows of multiple columns of data). For example, in &#8220;PHP 5 Advanced&#8221;, a stored function is created that returns the distance in miles between two points on the globe, which involves complicated trigonometry using latitude and longitude. A call to that function is then part of a standard SELECT query, as if it were any other predefined MySQL function. Conversely, in &#8220;Effortless E-Commerce with PHP and MySQL&#8221;, stored procedures are used to update shopping carts, return a list of sale items, and much more. Both types of routines can also take arguments, just like functions in PHP.</p><p>Stored routines offer several benefits, the most important of which is improved security. Because all of the database references—table and column names—are in the stored routines, a PHP script using those routines need not have any knowledge of the particulars of the database. Further, a stored routine can use its arguments in queries with the same security as <em>prepared statements</em>, thereby preventing SQL injection attacks. Applications with the highest level of security requirements, such as banking, rely upon stored routines.</p><p>You can also get better performance using stored routines, both because the routines can be cached and because less data has to be transferred to the database (just the data itself gets transferred; all the SQL is already in the database). Using stored routines also offers improved application portability, in that many different types of clients—PHP scripts, command line tools, GUI applications, etc.—can make use of the same stored routines.</p><p>There are arguments against using stored routines, too. For starters, you&#8217;ll need a relatively current version of MySQL, and the ability to create an execute stored routines (these are permissions not necessarily offered by, for example, shared hosting environments). Stored routines also marry your applications to specific database applications (e.g., MySQL or Oracle), although stored routines are part of the SQL standard and may be somewhat translatable from one database application to the next. And, as with most things, there&#8217;s a learning curve involved and debugging applications that use stored routines becomes a bit harder.</p><p>You can find out more about stored routines in the books I mentioned, in the <a
href="http://dev.mysql.com/doc/refman/5.1/en/stored-routines.html">MySQL manual&#8217;s main page for stored routines</a>, and in the stored routines <a
href="http://dev.mysql.com/doc/refman/5.1/en/faqs-stored-procs.html">FAQ</a> and <a
href="http://dev.mysql.com/doc/refman/5.1/en/stored-program-restrictions.html">restrictions</a> pages of the MySQL manual.</p><h2 id="thinking">What is Larry Thinking? =&gt; Doing What I Do: Web Development</h2><p>In this newsletter I&#8217;m finishing what became a series on IT careers. I first wrote about becoming a better programmer, in two parts(<a
href="http://www.larryullman.com/2011/02/01/what-is-larry-thinking-36-becoming-a-better-programmer-and-more/#thinking">1</a> and <a
href="http://www.larryullman.com/2011/02/25/what-is-larry-thinking-37-becoming-a-better-programmer-part-2/#thinking">2</a>). Then I wrote about <a
href="http://www.larryullman.com/2011/03/22/what-is-larry-thinking-38-building-a-career/#thinking">building a career</a> and <a
href="http://www.larryullman.com/2011/04/16/what-is-larry-thinking-39-how-i-got-here-and-the-future/#thinking">how I got here</a>. Next, I wrote about <a
href="http://www.larryullman.com/2011/05/12/what-is-larry-thinking-40-doing-what-i-do-part-1/#thinking">some of the specifics of what I do</a>, focussing on the writing side. In the <a
href="http://www.larryullman.com/2011/06/09/what-is-larry-thinking-41-doing-what-i-do-part-2/#thinking">previous newsletter</a>, I discussed training. This leaves me with the last thing that I do: Web and application development (i.e., programming).</p><p>Web and application development jobs have a wide range of possibilities with a wide range of potential income. Small, simple jobs may pay a few hundred dollars; big, complex, and well-funded projects can pay tens of thousands or hundreds of thousands. Getting any job, regardless of size, is a two-step process: 1) finding out about the job; and, 2) convincing the client to hire you.</p><p>There are online sites for finding projects, but you&#8217;ll be competing with everyone else there. You&#8217;ll have better luck by networking: connecting with people, businesses, and organizations that might be able to make use of your abilities. For example, for a couple of years I was the outside programmer that did the dynamic functionality for a graphic designer. She got the projects, managed the clients, the contracts, and the billing, and I just did my share of the work. A perfect arrangement for me! Local user groups, schools, and similar communities can be good ways to hook up with people in a casual way that might pan out down the line.</p><p>As for convincing clients to hire you, the most important criteria in my mind are good communication skills. Everyone says that communication skills are important, but not that many people excel in this area, and way too many don&#8217;t even try to communicate well. <em>Be clear, responsive, and punctual in your communications!</em> Doing so demonstrates that you have a level of professionalism needed to do the work itself. If you can&#8217;t clearly express yourself in an email, if you fail to answer questions asked of you, or if you&#8217;re negligent in responding promptly, it suggests that the work you do will be poorly put together, will fail to meet expectations, and not be done on time, either.</p><p>Secondarily, you&#8217;ll need to have a portfolio showing what you&#8217;re capable of. If you don&#8217;t have a portfolio, then give them something that they can look at. One of my very first clients, for whom I&#8217;m still working, wanted a bit of JavaScript coding for his site. At that time I had no portfolio to show him, so as part of my bid, I did the work itself and presented that. Nothing more clearly indicates your ability to do a project than actually doing the project! Further, the client could also see, before he hired me, that the project would be finished quickly (because it already was). Yes, I ran the risk of making no money for my efforts, but at the time I needed the work and had to go out on a limb. It really panned out, and I would do it again if I felt I had to (arguably, I have had to in the past, as getting published involves some amount of writing on spec).</p><p>And this leads me to a point that you&#8217;ll (hopefully) learn in time as you grow your skills and your budget: you&#8217;ll always adjust your bids not just to the project and the client but to your situation. When I&#8217;m especially busy or if a project isn&#8217;t that interesting, clients will get the &#8220;I don&#8217;t really want to do this project but if I am going to do it, I&#8217;m going to get paid well&#8221; bid. When I&#8217;m not that busy or a project is interesting, I&#8217;ll provide a cheaper bid. Life is always a matter of time versus money, and the professional is constantly making adjustments along that scale.</p><p>As a final cornucopia of thoughts, first, don&#8217;t be afraid to overbid. Even if you&#8217;re desperate, you may really come to regret getting a project at a low bid. If anything, it tells you a lot about a client that wants the lowest price: you probably don&#8217;t want to work with people that want things on the cheap. There is no doubt you will sometimes make less money on a project than you should (and hopefully sometimes make more), but try not to plan on shortchanging yourself. For that matter, have a good contract in place with expectations clearly laid out so that you don&#8217;t get steamrolled.</p><p>Next, you could consider becoming a specialist in one area: CMS (e.g., Joomla), WordPress, etc. You run the risk of not being able to get work as easily, because you are so specialized, but you may also be able to make more money, and get better at a smaller set of skills faster, by narrowing your focus.</p><p>And lastly, if you&#8217;re working on a project and you&#8217;re having problems and aren&#8217;t going to make the deadline, handle the situation professionally. Never hide from clients, be as honest as you can, and always reply to emails promptly. For more strategies along these lines, check out <a
href="http://brainzooming.com/project-management-techniques-when-time-running-down/6869/">this nice article</a>.</p><p>So that&#8217;s it on my long series on building a career in IT. As happens with me, all the time, what started off as a simple idea expanded and expanded. I worry that I ran out of steam at the end here, but hopefully you&#8217;ve benefitted from this discussion somehow, and I&#8217;ve helped you, in whatever small way, in pursuing your dream of an IT career (as for me, my dream involves a hammock overlooking the Caribbean Sea).</p><h2 id="news">Larry Ullman&#8217;s Book News =&gt; &#8220;PHP and MySQL for Dynamic Web Sites&#8221; (4th Edition) and &#8220;Modern JavaScript: Develop and Design&#8221;</h2><p>I&#8217;m very pleased to say that I&#8217;ve completed the first draft of the fourth edition of &#8220;PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide&#8221; (and by &#8220;first draft&#8221;, I mean the first draft submitted to the publisher; there are multiple writing drafts just to get to that point). As with the fourth edition of &#8220;<a
href="http://www.larryullman.com/books/php-for-the-web-visual-quickstart-guide-4th-edition/">PHP for the Web: Visual QuickStart Guide</a>&#8220;, I added a &#8220;Review and Pursue&#8221; section to the end of each chapter. I also expanded the coverage of SQL and MySQL, including much more on JOINs. One new chapter introduces the <a
href="http://www.jquery.com">jQuery</a> JavaScript framework, with examples of form validation and performing Ajax requests. Another new chapter introduces the fundamentals of Object-Oriented Programming, using the MySQL Improved extension for several examples, and the <a
href="http://www.php.net/datetime">DateTime</a> class for another. In the appendix, I&#8217;ve included a few pages on configuring the Apache Web server, providing the syntax for performing common tasks such as password protecting directories and URL rewriting.</p><p>Last, but not least, I am pleased to announce that I have in my hands a contract to write the book &#8220;Modern JavaScript: Develop and Design&#8221; for Peachpit Press. This is the publisher I&#8217;ve worked with the most, and so I&#8217;m quite comfortable with them. The book will be in a new series, titled &#8220;Develop and Design&#8221;, specifically created for code-based books (the first title in the series is on ActionScript). The series does <em>not</em> use the two-column format like the Visual QuickStart/QuickPro series (which some people like, some people don&#8217;t), and will be in full color, a first for me. The publisher has allotted me up to 600 pages, which is quite a lot, and by using a publisher, the book will have the widest possible availability (Peachpit Press really worked with me on making this happen). I&#8217;ll begin formally writing the book in late July or early August so that it comes out by the end of the year. Once again, my thanks to everyone for their interest in this book, and for all of the feedback.</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2011/07/04/what-is-larry-thinking-42-doing-what-i-do-part-3/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>What is Larry Thinking? #41 =&gt; Doing What I Do, Part 2</title><link>http://www.larryullman.com/2011/06/09/what-is-larry-thinking-41-doing-what-i-do-part-2/</link> <comments>http://www.larryullman.com/2011/06/09/what-is-larry-thinking-41-doing-what-i-do-part-2/#comments</comments> <pubDate>Thu, 09 Jun 2011 13:23:04 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[Adobe AIR]]></category> <category><![CDATA[Flex]]></category> <category><![CDATA[JavaScript]]></category> <category><![CDATA[Mac OS X]]></category> <category><![CDATA[MySQL]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[Web Development]]></category> <category><![CDATA[api]]></category> <category><![CDATA[book]]></category> <category><![CDATA[dragonfly]]></category> <category><![CDATA[newsletter]]></category> <category><![CDATA[opera]]></category> <category><![CDATA[performance]]></category> <category><![CDATA[training]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=2606</guid> <description><![CDATA[In this edition… About This Newsletter What Are You Thinking? =&#62; The JavaScript Book On the Web =&#62; Improving Application Performance On the Web =&#62; Opera Dragonfly On the Blog =&#62; UTC and Time Zone Support in MySQL On the Blog =&#62; How I Cut My Bandwidth in Half Q&#38;A =&#62; Should I use PHP [...]]]></description> <content:encoded><![CDATA[<p>In this edition…</p><ul><li><a
href="http://www.larryullman.com/2011/06/09/what-is-larry-thinking-41-doing-what-i-do-part-2/#about">About This Newsletter</a></li><li><a
href="http://www.larryullman.com/2011/06/09/what-is-larry-thinking-41-doing-what-i-do-part-2/#you">What Are You Thinking? =&gt; The JavaScript Book</a></li><li><a
href="http://www.larryullman.com/2011/06/09/what-is-larry-thinking-41-doing-what-i-do-part-2/#web1">On the Web =&gt; Improving Application Performance</a></li><li><a
href="http://www.larryullman.com/2011/06/09/what-is-larry-thinking-41-doing-what-i-do-part-2/#web2">On the Web =&gt; Opera Dragonfly</a></li><li><a
href="http://www.larryullman.com/2011/06/09/what-is-larry-thinking-41-doing-what-i-do-part-2/#blog1">On the Blog =&gt; UTC and Time Zone Support in MySQL</a></li><li><a
href="http://www.larryullman.com/2011/06/09/what-is-larry-thinking-41-doing-what-i-do-part-2/#blog2">On the Blog =&gt; How I Cut My Bandwidth in Half</a></li><li><a
href="http://www.larryullman.com/2011/06/09/what-is-larry-thinking-41-doing-what-i-do-part-2/#qa">Q&amp;A =&gt; Should I use PHP or JavaScript to Handle API Data?</a></li><li><a
href="http://www.larryullman.com/2011/06/09/what-is-larry-thinking-41-doing-what-i-do-part-2/#thinking">What is Larry Thinking =&gt; Doing What I Do: Training</a></li><li><a
href="http://www.larryullman.com/2011/06/09/what-is-larry-thinking-41-doing-what-i-do-part-2/#news">Larry Ullman&#8217;s Book News =&gt; &#8220;PHP and MySQL for Dynamic Web Sites&#8221; (4th Edition) and More!</a></li></ul><p><span
id="more-2606"></span></p><h2 id="about">About This Newsletter</h2><p>No overarching theme to this newsletter, just some things that have popped up over the past three weeks, plus a preview of my next few months with respect to the books I&#8217;ll be writing. This newsletter also continues my spontaneous series on pursuing careers in IT, specifically focusing on training and teaching.</p><p>As always, questions, comments, and all feedback are much appreciated. And thanks for your interest in what I have to say and do!</p><h2 id="you">What Are You Thinking? =&gt; The JavaScript Book</h2><p>If you&#8217;ve been reading this newsletter for a while, you&#8217;re probably familiar with, if not sick of hearing about, my intent to self-publish a book on JavaScript (I&#8217;ve posted a rough <a
href="http://www.larryullman.com/2011/03/17/my-forthcoming-javascript-book-table-of-contents/">Table of Contents</a> and <a
href="http://www.larryullman.com/2011/03/15/previewing-my-forthcoming-javascript-book/">description</a> online). Part of the reason for self-publishing this particular book is that most every publisher already has their own JavaScript book already. Another part of the reason was to have the most control over the final product, both in terms of the content and the destination formats. I may or may not make more money self-publishing, so that&#8217;s not really a mitigating factor (I&#8217;ll make more per copy sold, electronic or print, but wouldn&#8217;t likely sell as many copies as I would through a publisher).</p><p>I&#8217;ve already started writing the book and done some research with respect to self-publishing, all with the hope of releasing the book some time this summer. In a surprising turn of events, a publisher has come to me wanting to put out the book. The publisher is very much willing to work with me on the concerns I have about control and the quality of electronic formats. And the publisher is better equipped to get the book into more places, including various electronic and online resources, international destinations, and translations. I&#8217;m clearly being coy about some of the details, but my question to those of you that might be interested in a JavaScript book written by me is whether you have a strong preference between a self-published book and one that&#8217;s traditionally published. Does it make a difference to you? Once you set aside the issues of subject and writer (which would be the same in both cases here), what criteria do you have for whether you buy a book and for how much you like a book?</p><p>As a writer, I have an entirely different sense of these things, so I would greatly appreciate any feedback you may have on this particular issue. I know which way I&#8217;m leaning here, but want to make sure I&#8217;m not overlooking something important. Thanks!</p><h2 id="web1">On the Web =&gt; Improving Application Performance</h2><p>I&#8217;m a big fan of <a
href="http://www.adobe.com/go/air">Adobe AIR</a>, and not just because <a
href="http://www.larryullman.com/books/adobe-air-adobe-integrated-runtime-with-ajax-visual-quickpro-guide/">I&#8217;ve written a book on it</a>! I&#8217;ve been developing AIR applications, for in-house and client use, for a few years now, in both JavaScript/HTML and Flex. I&#8217;ve recently, and not so recently, come across these two good articles on Adobe AIR:</p><ul><li><a
href="http://www.adobe.com/devnet/air/articles/air_performance.html">Performance-tuning Adobe AIR applications</a></li><li><a
href="http://www.adobe.com/devnet/air/articles/10_tips_building_on_air.html">Ten tips for building better Adobe AIR applications</a></li></ul><p>From the titles, the articles are self-explanatory, but the emphasis is on <em>performance</em>. The interesting thing about the first article is that it discusses the <em>theory</em> of performance, which people don&#8217;t think about enough (e.g., what does it mean to perform well?). The article uses a specific example for which one could easily come up with three different senses of &#8220;performance&#8221; (the article uses Flex for the code).</p><p>The second article has lots of specific, excellent tips, many of which being applicable to any application you develop (although the example also uses Flex for the code, it&#8217;s mostly ActionScript that you&#8217;ll see).</p><p>Even if you&#8217;re not using Adobe AIR, I would think these articles would be worth reading, as the subject of application performance is one we could all always continue to learn more about.</p><h2 id="web2">On the Web =&gt; Opera Dragonfly</h2><p>Admittedly, <a
href="http://www.opera.com">Opera</a> is about the fourth browser on my list (after, in order, Safari, Chrome, and Firefox), but the release of <a
href="http://www.opera.com/dragonfly/">Opera Dragonfly</a> may just change that for me, at least when it comes to Web development. Historically I&#8217;ve always relied upon Firefox&#8217;s <a
href="http://getfirebug.com">Firebug</a> extension when I need a good development debugging tool, but the Firefox browser has become such a memory hog for me that I&#8217;ve stopped using it on a regular basis. Of course, it&#8217;s probably a memory hog exactly because I&#8217;ve installed so many extensions (Firebug and the Web Developer Extension and …)!</p><p>On a cursory glance, Dragonfly may have everything I need:</p><ul><li>DOM viewer</li><li>JavaScript debugger: allowing you to set breakpoints, inspect the values of variables, and set conditions to watch for</li><li>HTML and CSS editor</li><li>Resource inspector: what resources are loaded by the page</li><li>Network traffic tool: a must for debugging Ajax, including the ability to craft your own requests to see the response</li><li>And more</li></ul><p>Unlike Firebug and other extensions, Dragonfly is built into Opera. Also unlike any comparable tool, Dragonfly can be used for remote debugging, including content destined for mobile devices or televisions!</p><p>I don&#8217;t know that Dragonfly alone will make me switch to Opera as my primary browser, but I have a strong feeling it will be my primary development browser for some time.</p><h2 id="blog1">On the Blog =&gt; UTC and Time Zone Support in MySQL</h2><p>In the third edition of my &#8220;<a
href="http://www.larryullman.com/books/php-6-and-mysql-5-for-dynamic-web-sites-visual-quickpro-guide-3rd-edition/">PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide</a>&#8221; book, and now in the fourth, too, I discuss using <em>Coordinated Universal Time</em> (strangely enough, abbreviated UTC) for storing dates and times in a MySQL database. I ran into a hiccup installing support for time zones in MySQL on my Mac, so I recently wrote <a
href="http://www.larryullman.com/2011/05/27/utc-and-time-zone-support-in-mysql/">a short blog post</a> introducing the subject and detailing the installation particulars on both Windows and Mac OS X.</p><h2 id="blog2">On the Blog =&gt; How I Cut My Bandwidth in Half</h2><p>Every so often I take a look at the Web stats for my site, as I expect we all do from time to time. It can be addicting stuff. Looking over the numbers in May, I realized that I managed to cut my bandwidth in half (since January), without ever intending to. In <a
href="http://www.larryullman.com/2011/05/16/how-i-cut-my-bandwidth-in-half/">this blog post</a>, I write about the steps I took that achieved this result, even though that wasn&#8217;t a goal.</p><h2 id="qa">Q&amp;A =&gt; Should I use PHP or JavaScript to Handle API Data?</h2><p>Daniel, who asks many good questions for use in these newsletters (thanks!), posed this:</p><blockquote><p>Can I use PHP or JavaScript to look through an array or parse data from a Web Service API in XML or JSON?</p></blockquote><p>The answer, in my opinion, depends upon what you intend to do with the data. If the data is needed temporarily, for example, to show something in the Web browser, you can use JavaScript. The benefit to JavaScript is that it will be the client (i.e., the Web browser) making the request, not the server, which can improve performance and reduce the server load. The downside is that JavaScript must be enabled in the browser and there are restrictions/tricks to performing cross-domain requests using JavaScript.</p><p>If the data will be needed for a longer period, if the same data might be presented to multiple users, or if you must do complex manipulation of the data, I would recommend using PHP. You&#8217;ll most likely want to use the <a
href="http://www.php.net/curl">cURL</a> library in PHP to do this, meaning your PHP version must support cURL and you&#8217;ll need to learn how to use it (although cURL isn&#8217;t that complicated and the PHP manual has good examples).</p><p>As with any time using an API (Application Programming Interface), I would strongly recommend you take the time to read the API&#8217;s usage terms to ensure compliance. For example, it may not be legal for your site to store data retrieved through an API, which would be another factor to consider.</p><h2 id="thinking">What is Larry Thinking? =&gt; Doing What I Do: Training</h2><p>In this newsletter I&#8217;m continuing what became a series on IT careers. I first wrote about becoming a better programmer, in two parts(<a
href="http://www.larryullman.com/2011/02/01/what-is-larry-thinking-36-becoming-a-better-programmer-and-more/#thinking">1</a> and <a
href="http://www.larryullman.com/2011/02/25/what-is-larry-thinking-37-becoming-a-better-programmer-part-2/#thinking">2</a>). Then I wrote about <a
href="http://www.larryullman.com/2011/03/22/what-is-larry-thinking-38-building-a-career/#thinking">building a career</a> and <a
href="http://www.larryullman.com/2011/04/16/what-is-larry-thinking-39-how-i-got-here-and-the-future/#thinking">how I got here</a>. In the previous newsletter, I wrote about <a
href="http://www.larryullman.com/2011/05/12/what-is-larry-thinking-40-doing-what-i-do-part-1/#thinking">some of the specifics of what I do</a>, focussing on the writing side. In this post, I&#8217;ll discuss another facet of my daily job: training. Unlike in the last newsletter, I&#8217;ll be more general about money here, as there&#8217;s just too much variation.</p><p>In the previous article, I said that about 60-70% of my income comes from writing, with the other 30-40% from training/teaching and Web/application development. In terms of <em>training</em> and <em>teaching</em>, early on I taught an online course on PHP through the <a
href="http://learn.berkeley.edu/">University of California at Berkeley</a>. Much like writing, it&#8217;s the type of work that sounds more impressive than it pays! I eventually stopped doing it, as it was a lot of work for not that much money, with quite a bit of responsibility and hassle. If you&#8217;ve done any teaching at all, you know of what I speak. But should you want to pursue this route, the best way to get such jobs is to already be associated with a school in some capacity (i.e., have an &#8220;in&#8221;). There is an argument to be made with this avenue that you&#8217;ll have somewhat regular income, albeit small, and it&#8217;s the kind of thing that you can perhaps use as a selling point for getting other work.</p><p>Off and on for the past several years, I&#8217;ve done more <em>training</em> jobs, by which I mean corporate on-site training over one or more days. Training jobs can pay very well, but are hard to get. If you&#8217;re interested in going that route, you should probably hook up with an organization that manages training. For example, <a
href="http://www.mysql.com/training/">MySQL arranges training courses</a>, so you could work with them (I don&#8217;t know how the arrangement has changed with Oracle&#8217;s purchase of MySQL, though). There are also companies that do all sorts of training, helping to market the courses, provide the facilities, and so forth. To work with one of these organizations (I&#8217;ve had discussions with them myself), it&#8217;s just a matter of proposing a class that appeals to them and extends their catalog. Much like trying to get a book or article published, it&#8217;s a matter of bringing a good idea to the right people. If you can get involved with training, and don&#8217;t mind traveling, you can make a very good living doing this. I personally consider it to be stressful, but I am deathly afraid of public speaking and put a lot of pressure on myself to have all the right answers going into such sessions. I still do training occasionally, though, as it gets me out of the house and pays some bills.</p><p>(As an aside, speaking at conferences is another kind of thing that sounds great but pays very poorly. In fact, at the entry level, speaking at conferences just earns you free admission to the conference. At the higher levels, perhaps your travel will be covered. But conferences are great networking opportunities and being a public speaker can, again, be a way to find other work, establish qualification to do certain work, and perhaps even allow you to charge more for other work.)</p><p>Whether you&#8217;re doing training or teaching (or speaking at conferences), do be mindful of who owns the copyright for the material you put together and whether the sessions can be recorded (and, if so, who owns those recordings). In these situations, a lot of your time and effort goes into the creation of the material, which isn&#8217;t how you will really make money. The true pay comes from actually teaching the course or providing the training. Make sure you&#8217;ll get your due for the work you put in.</p><p>I haven&#8217;t yet pursued this direction at all, but clearly the big push these days (or these past couple of years) is towards online video training. There are many companies, such as <a
href="http://www.lynda.com">Lynda</a>, that provide this service. To get these jobs, I expect, it&#8217;s a matter of convincing the right company that you&#8217;re the right person to create a training series on the right subject (like getting any other training job). I believe the economic model for these is a set sum to produce the video materials and then you&#8217;ll receive payments based upon usage (i.e., upon people watching them). Like with writing, you can help your cause in this area by producing your own low budget video training sessions to demonstrate your abilities. Post the videos you do on your own Web site and on YouTube, pay attention to the feedback you get, and build a career!</p><h2 id="news">Larry Ullman&#8217;s Book News =&gt; &#8220;PHP and MySQL for Dynamic Web Sites&#8221; (4th Edition) and More!</h2><p>May was a rough month for me, work-wise, which is to say I didn&#8217;t get nearly as much done as I would have liked. Now, I knew going into the month that that was going to be the case, but still… Anyway, I&#8217;m hoping June will be better. I am a couple of chapters away from completing the first draft of the fourth edition of my &#8220;PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide&#8221;, which puts it to be released at the end of the summer. I think the book is turning out well, with nice updates and added content.</p><p>I&#8217;m probably going to use July as a catch-up month, although I have a number of side projects to work on, just nothing with a deadline. Either in July, or immediately thereafter, all of my attention will go to the JavaScript book (déjà vu: I think I&#8217;ve said this a time or two before, but this time I really, really mean it). With as much as I&#8217;ve spoken about this alleged and wily JavaScript book, and as many readers have said they&#8217;re looking forward to it, I&#8217;m starting to get that dread of living up to expectations. But I&#8217;ve got a lot to say about JavaScript, I&#8217;ve been thinking about this book for years, and there&#8217;s so much that can be done with today&#8217;s JavaScript, that I feel optimistic.</p><p>In the Fall, I&#8217;m still hoping to self-publish a book on the <a
href="http://www.yiiframework.com">Yii framework</a>, although I may just do an e-publication of that. In 2012, I&#8217;m planning on (and the publisher has agreed to) doing the third edition of my &#8220;<a
href="http://www.larryullman.com/books/php-5-advanced-visual-quickpro-guide-2nd-edition/">PHP 5 Advanced: Visual QuickPro Guide</a>&#8220;.</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2011/06/09/what-is-larry-thinking-41-doing-what-i-do-part-2/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>What is Larry Thinking? #39 =&gt; How I Got Here and the Future</title><link>http://www.larryullman.com/2011/04/16/what-is-larry-thinking-39-how-i-got-here-and-the-future/</link> <comments>http://www.larryullman.com/2011/04/16/what-is-larry-thinking-39-how-i-got-here-and-the-future/#comments</comments> <pubDate>Sat, 16 Apr 2011 16:55:26 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[Adobe AIR]]></category> <category><![CDATA[JavaScript]]></category> <category><![CDATA[Mac OS X]]></category> <category><![CDATA[MySQL]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[Web Development]]></category> <category><![CDATA[android]]></category> <category><![CDATA[app]]></category> <category><![CDATA[career]]></category> <category><![CDATA[ios]]></category> <category><![CDATA[newsletter]]></category> <category><![CDATA[nosql]]></category> <category><![CDATA[oracle]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=2500</guid> <description><![CDATA[In this edition… About This Newsletter What Were You Thinking? =&#62; Building a Career On the Blog =&#62; MongoDB On the Blog =&#62; &#8220;PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide (4th Edition)&#8221; Rough Table of Contents Q&#38;A =&#62; How do you think Oracle&#8217;s acquisition of MySQL will impact MySQL? Q&#38;A =&#62; What [...]]]></description> <content:encoded><![CDATA[<p>In this edition…</p><ul><li><a
href="http://www.larryullman.com/2011/04/16/what-is-larry-thinking-39-how-i-got-here-and-the-future/#about">About This Newsletter</a></li><li><a
href="http://www.larryullman.com/2011/04/16/what-is-larry-thinking-39-how-i-got-here-and-the-future/#you">What Were You Thinking? =&gt; Building a Career</a></li><li><a
href="http://www.larryullman.com/2011/04/16/what-is-larry-thinking-39-how-i-got-here-and-the-future/#blog1">On the Blog =&gt; MongoDB</a></li><li><a
href="http://www.larryullman.com/2011/04/16/what-is-larry-thinking-39-how-i-got-here-and-the-future/#blog2">On the Blog =&gt; &#8220;PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide (4th Edition)&#8221; Rough Table of Contents</a></li><li><a
href="http://www.larryullman.com/2011/04/16/what-is-larry-thinking-39-how-i-got-here-and-the-future/#qa1">Q&amp;A =&gt; How do you think Oracle&#8217;s acquisition of MySQL will impact MySQL?</a></li><li><a
href="http://www.larryullman.com/2011/04/16/what-is-larry-thinking-39-how-i-got-here-and-the-future/#qa2">Q&amp;A =&gt; What are your thoughts on mobile apps?</a></li><li><a
href="http://www.larryullman.com/2011/04/16/what-is-larry-thinking-39-how-i-got-here-and-the-future/#thinking">What is Larry Thinking =&gt; How I Got Here</a></li><li><a
href="http://www.larryullman.com/2011/04/16/what-is-larry-thinking-39-how-i-got-here-and-the-future/#giveaway">Book Giveaway =&gt; &#8220;PHP for the Web: Visual QuickStart Guide (4th Edition)&#8221;</a></li><li><a
href="http://www.larryullman.com/2011/04/16/what-is-larry-thinking-39-how-i-got-here-and-the-future/#news">Larry Ullman&#8217;s Book News =&gt; &#8220;PHP and MySQL for Dynamic Web Sites&#8221; and the JavaScript Book</a></li></ul><p><span
id="more-2500"></span></p><h2 id="about">About This Newsletter</h2><p>The thrust of this newsletter is the future: how new and emerging technologies might change what we all do. Some links to online content, and some answers to questions I&#8217;ve received, fall under this important umbrella. I&#8217;m no great prognosticator, but as with anything, I have my theories and opinions!</p><p>In this newsletter I&#8217;m also continuing what is turning out to be a series. I first wrote about becoming a better programmer, in two parts(<a
href="http://www.larryullman.com/2011/02/01/what-is-larry-thinking-36-becoming-a-better-programmer-and-more/#thinking">1</a> and <a
href="http://www.larryullman.com/2011/02/25/what-is-larry-thinking-37-becoming-a-better-programmer-part-2/#thinking">2</a>). Then I wrote about <a
href="http://www.larryullman.com/2011/03/22/what-is-larry-thinking-38-building-a-career/#thinking">building a career</a>. In this newsletter it was my intention to write about some of the specifics of what I do, with the goal of helping you do those things, too, but a couple of people wrote in saying they were looking forward to hearing my story, so I thought maybe I should talk about how I got here, before providing suggestions as to how you can get here, too (should you want to, that is).</p><p>The newsletter is a bit longer than I prefer they be, but I felt it important to get in all the sections that I did.</p><p>As always, questions, comments, and all feedback are much appreciated. And thanks for your interest in what I have to say and do!</p><h2 id="were">What Were You Thinking? =&gt; Building a Career</h2><p>In <a
href="http://www.larryullman.com/2011/03/22/what-is-larry-thinking-38-building-a-career/#thinking">my previous newsletter</a>, I wrote about the various ways one can build up a career (as much as I actually know anything about that subject). Kevin replied with a suggestion well worth mentioning: <em>local startups</em>. As Kevin pointed out, local startups tend to have good working environments, interesting goals, and small, fun teams.</p><p>This leads me to a tangent: local technology-related <em>user groups</em>. Many communities have PHP groups, design groups, etc., attached to a school or not. Getting involved with such organizations is a great way to network, possibly find employment, or just learn what other people are doing. You could also use the networking capabilities of a group to build a team for your own local startup!</p><h2 id="blog1">On the Blog =&gt; MongoDB</h2><p>Someone, I forget who (sorry), referred me to <a
href="http://www.mongodb.org/">MongoDB</a>, some time back. MongoDB is in the family of <em>NoSQL</em> databases, which is an entirely different concept than the relational database to which you&#8217;re probably accustomed. It took me a while to &#8220;get&#8221; MongoDB, but I have a better sense of it now, and wrote a quick blip about it <a
href="http://www.larryullman.com/2011/04/12/looking-ahead-mongodb/">on my blog</a>. If you&#8217;re not curious enough yet, you should at least check out <a
href="http://www.mongodb.org/display/DOCS/Production+Deployments">who is already using MongoDB</a>.</p><h2 id="blog2">On the Blog =&gt; &#8220;PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide (4th Edition)&#8221; Rough Table of Contents</h2><p>As promised in the previous newsletter, the rough version of the Table of Contents for the fourth edition of my &#8220;PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide&#8221; has been <a
href="http://www.larryullman.com/2011/03/31/php-and-mysql-for-dynamic-web-sites-visual-quickpro-guide-4th-edition-rough-table-of-contents/">posted on my blog</a>.</p><h2 id="qa1">Q&amp;A =&gt; How do you think Oracle&#8217;s acquisition of MySQL will impact MySQL?</h2><p>Brett had asked me this question, after <a
href="http://www.oracle.com">Oracle</a> had purchased <a
href="http://www.oracle.com/us/sun/index.html">Sun</a> (which in turn owns <a
href="http://www.mysql.com">MySQL</a>). Historically, on non-Windows systems the database choices have been MySQL and Oracle. Period. Sure, some people used <a
href="http://www.postgresql.org">PostgreSQL</a> (not enough do, though). And maybe a few use <a
href="http://www.sqlite.org">SQLite</a>, but it&#8217;s largely been MySQL and Oracle. (On Windows, Microsoft&#8217;s <a
href="http://www.microsoft.com/sqlserver/en/us/default.aspx">SQL Server</a> is a major player, too.)</p><p>Oracle was actually moving in this direction for some time. Many years ago, Oracle purchased the InnoDB storage engine, which was MySQL&#8217;s second most important table type, after MyISAM. Among other features, InnoDB supports row-level locking (as opposed to MyISAM&#8217;s table-level) and transactions. Oracle&#8217;s earlier acquisition of InnoDB could have led to problems within MySQL in years to come. But now, miraculously, you&#8217;ll find that InnoDB is the default table type in MySQL and the documentation even claims that it&#8217;s faster than MyISAM (I take that statement with a grain of salt).</p><p>Before the sale of Sun to Oracle was approved, there was a campaign to stop it, largely by the original creators of MySQL. I personally found that to be a case of sour grapes. MySQL was bought by Sun for a reported ONE BILLION DOLLARS. I have no problems with that, but I do feel that once you sell your company, you lose the right to complain about, let alone attempt to prevent, what happens to it from there on out.</p><p>Anyway, a lot of people are pretty upset with Oracle these days, both because of what they fear might happen and what they think has already happened. For example, the person that created <a
href="http://www.java.com">Java</a>, James Gosling, recently left Oracle for Google (Java is owned by Sun). The <a
href="http://www.apache.org">Apache Foundation</a>, which is actively involved with Java development, has stopped working with Oracle on the Java group, too. And here&#8217;s what I think…</p><p>I doubt that Oracle would clearly and dramatically undercut MySQL. Nor do I think Oracle can just stop giving MySQL away, as the public fallout would be terrible. And Oracle does have a track record of supporting open source projects. What Oracle could do, though, is quietly undercut MySQL by not supporting it as wholeheartedly as, say, their Oracle database. But, in my opinion, should that happen, things will be fine.</p><p>First of all, while MySQL is certainly the most popular open source database application out there, there are many who would say it&#8217;s not the best. For years PostgreSQL has had features MySQL just recently added. And MySQL may already be bloated with too many features: arguably losing performance and reliability for the sake of adding bells and whistles. Second, if you do prefer MySQL, many of the key developers behind the original MySQL have already forked their own offshoot, embracing the core principles, with projects like <a
href="http://mariadb.org/">MariaDB</a>. Third, the rise of the &#8220;NoSQL&#8221; family of databases, such as MondoDB, already mentioned, is showing that not every problem is best solved by a relational database.</p><p>Finally, if, for some reason, I had to switch from MySQL to any other relational database, there&#8217;s not a Web site I&#8217;ve created that I couldn&#8217;t successfully convert in a day or two. If I were being overly cautious, I could use <a
href="http://php.net/manual/en/book.pdo.php">PDO</a>, a data-access abstraction layer, or the like, for all future sites, so that changing the underlying database would require only the change of a single line of code.</p><h2 id="qa2">Q&amp;A =&gt; What are your thoughts on mobile apps?</h2><p>Bill wrote in asking &#8220;What is your take on the whole mobile app craze from a developer&#8217;s standpoint?&#8221; He went on to say that he thought it would make more sense for existing Web developers to continue making Web sites that can be commercialized rather than learn the skills required to make applications that are only purchasable by a subset of the market.</p><p>As you may know, I&#8217;m not a &#8220;smart&#8221; phone person, or even much of a cell phone person, although I&#8217;m admittedly a dinosaur in these regards. To me, a Web site is universally available and an app, whether you decide to go the Android or the iOS route, is only available to a smaller market. But I get the sense that this mentality is partially a generational thing and that the future is in apps. I just don&#8217;t personally think in apps, but a lot of people do. It&#8217;s safe to say we&#8217;ve passed the &#8220;craze&#8221; phase. Further, for those of you that don&#8217;t regularly use a Mac, you may not know that Apple has also rolled out its own store where you can buy desktop apps. Access to that store is built into the operating system. Quite literally, people now shop for applications, for their mobile devices and even their computer, as if they were buying songs at iTunes. I can&#8217;t imagine that&#8217;s going to do anything but continue to expand for years to come, especially as the capacities and capabilities of mobile devices improve.</p><p>While it is true that Web development has a much larger potential market, the app market has something critical that Web sites do not: a trusted marketplace. Users can go to the iTunes store or the Android store, search, browse, and read reviews of applications in a way that&#8217;s not even remotely possible for Web sites. Even with the hundreds of thousands of apps out there, the one you create will be swimming in a much smaller pool than your site among everything on the Internet. And at these stores, customers are already accustomed to giving a couple of dollars and making a purchase. That&#8217;s all built in and tied to their account. Customers are in the habit of making purchases at Web sites, sure, but not at <em>your</em> Web site. Maybe an appropriate analogy is the difference between having your own restaurant on the street versus having a small setup in the mall&#8217;s food court: with the food court, you already have customers right there and thinking about food. So while I would not say we should all drop Web development for app development, I don&#8217;t think there&#8217;s a clear favorite between the two today.</p><p>But here&#8217;s the catch: it doesn&#8217;t have to be an &#8220;either…or&#8221; situation. Aside from the games, what all of the apps on my iPod Touch have in common is <em>data</em>. And the apps must get their data from somewhere. Beyond apps, data, and the Web services that provide data, are at the heart of whatever &#8220;Web 2.0&#8243; is. This means that no matter what happens with the evolution of Web sites, and the greater use of mobile-based apps, data-providing Web services will continue to be integral. This is good news for any Web developer.</p><p>All that being said, for my own edification, and because I do have a couple of specific ideas in mind, I am going to spend some time this year learning app development. I was originally debating Android vs. iOS to start (iOS would be more natural to me, but the Android market is technically bigger), but just saw <a
href="http://www.youtube.com/watch?v=5rp7UNCWbyc">this video about using Adobe AIR 2.6</a> to create apps that run on <em>all</em> platforms (if you&#8217;re intrigued by that, <a
href="http://www.flash-3d.net/2011/03/air-2-6-game-development/">also check out this link</a>). In any case, I expect I&#8217;ll have something different, or just more educated, to say in a year from now.</p><h2 id="thinking">What is Larry Thinking? =&gt; How I Got Here</h2><p>As I said in the introduction to this newsletter, my plan was to next write about how one can go about getting work writing, doing Web development, and training. I&#8217;ll still write about that in the next newsletter, but it&#8217;s probably worthwhile to discuss how I got to be where I am. Whether or not you&#8217;re interested in the personal anecdotes and history, I think there&#8217;s also plenty to learn, professionally, from my experiences. (As a warning, I sincerely hope that this doesn&#8217;t come off as patronizing, because that&#8217;s most certainly not my intention, but a patronizing tone is an easy trapping when being self-reflective.)</p><p>Let&#8217;s begin in 1999: for a number of reasons, I decided to start working for myself, doing something (I wasn&#8217;t sure what) in IT. I had no experience, clients, skills, or portfolio. I had a degree in English literature. I had intermittent experiences with various IT subjects (I had picked up a bit of HTML in 1997), but practically no formal training. I mention all this in order to suggest that many of you are probably better equipped for this industry than I was when I began. What I did have was the motivation to go out on my own, and the opportunity. Plus, more than anything, an interest in, and ability to learn, new things.</p><p>When you have no work to do, you have a huge opportunity to learn and experiment (that&#8217;s the &#8220;silver lining&#8221; viewpoint). In the Fall of 1999, with no work or experience, I decided to spend some of my ample time creating a dynamic Web site for a personal project. I started off using Perl to create CGI scripts and found that route to be stunningly difficult. In searching for alternatives, I came across PHP, in version 3 at the time. PHP was still relatively little known at the time (more people were doing CGI scripts, ColdFusion, or Java Server Pages), and I think there were only two books out on the subject. One was pretty much the PHP manual; the other was an advanced book. But in fairly short order, I was able to learn enough PHP to complete my personal project.</p><h4>A lesson learned: It can be advantageous to be an early adopter.</h4><p>Of course, if what you&#8217;re adopting turns out to be a bust, then you&#8217;ve just wasted a lot of time. Plus, being an early adopter can mean a much tougher learning curve. But for me, getting into PHP early on was immensely beneficial.</p><p>At the time, there were several online freelancing sites sprouting up, such as Guru and eLance. (I&#8217;m sure they, or similar sites, are still around, but it&#8217;s been years since I&#8217;ve used any of them.) I was able to get several projects, largely based upon PHP or JavaScript, through these sites. Sometimes my bid was cheaper than most, but I succeeded mostly because I had excellent communication skills and was able to convince the clients that I could do the work.</p><h4>A lesson learned: Strong communication skills are more important than anything.</h4><p>If real estate is about &#8220;location, location, location&#8221;, business is about &#8220;communication, communication, communication.&#8221; Being able to effectively communicate that you understand what a client needs, and that you are able to provide that service, is vital to success. Furthermore, about half the jobs I got were because the client said they needed X, and I went ahead and did X, and then showed it to them as part of my bid. Nothing does a better job of convincing a client you can do a job than actually doing the job! Through these online Web sites I eventually built up enough clients, several of whom still hire me for projects today.</p><p>After a few months of doing Web development, I put together a book proposal for what turned out to be my &#8220;PHP for the World Wide Web: Visual QuickStart Guide&#8221; (Peachpit Press). I had wanted to be a writer for years, long before I ever knew what that meant. I had dreams of glory about writing the next Great American Novel. With that in mind, I had taken a course on getting published, through a college&#8217;s continuing education department. Once I had a good grasp of PHP, I knew I had a good topic for a book proposal, considering how great of a language it is and that there were only two books published on the subject. I followed what I learned in the getting published course, and paid strict attention to the instructions on each publisher&#8217;s Web site, and then sent out proposals to three publishers: For Dummies, Idiot&#8217;s Guide, and Peachpit Press.</p><h4>A lesson learned: Follow directions!</h4><p>One of the biggest reasons book proposals get rejected is that the writer failed to follow directions. If you can&#8217;t follow a publisher&#8217;s clear instructions as to what a proposal should contain, how it should be formatted, and so forth, what confidence would they have that you&#8217;d be able to correctly do an entire book? But this is true in many areas: an ability to follow directions is an easy way for anyone to deny you your request.</p><p>I never heard back from the For Dummies and Idiot&#8217;s Guide publishers (which is definitely for the best), but after jumping through a couple of hoops, convincing them I could do the job, Peachpit Press signed me to write the book on PHP. And here&#8217;s an important thing that I later learned: they had another person proposing the same book at the same time.</p><h4>A lesson learned: Being good is more important than being original.</h4><p>At this point, having written a well-received book, on the right subject at the right time, my career changed significantly. From just the initial success of the first book, I was able to easily get a second, &#8220;PHP Advanced for the World Wide Web: Visual QuickPro Guide&#8221; (Peachpit Press), and a third, &#8220;MySQL: Visual QuickStart Guide&#8221; (Peachpit Press), and… As with many things, it&#8217;s just much easier to get a book deal having already written a book. Not that it&#8217;s some sort of secret club: you still have to have a good idea, follow directions, etc.</p><p>From the books I also got work doing corporate training, as well as other Web projects. But I don&#8217;t want you to think that you need to publish books to succeed like this, because you don&#8217;t. As an example, two years ago I discovered the Yii framework and really liked it. The documentation, as with so many things, was lacking, so I took the time to write up a series of tutorials based upon what I had learned. The creator of the Yii framework liked my work so much that he linked the series from the official documentation page. From the traffic that link sent to my site, I was able to sell more books and get more work doing Web sites (this time using Yii). Again: I adopted something early, and I communicated well, and it has so far paid off.</p><h4>A lesson learned: learn lessons!</h4><p>As important as whether you succeed or fail is that you learn from the success or failure (granted, I&#8217;d much rather learn by succeeding!). Of course, you can learn from other people&#8217;s successes and failures, too, which is perhaps one of the reasons you&#8217;ve subscribed to this newsletter. Well, that and the occasional free book.</p><p>So there&#8217;s my story…to date! If I were to throw in two more lessons, they&#8217;d be these:</p><ul><li>Be adaptive.</li><li>Never stop learning.</li></ul><p>Although much of my secondary success has come from the success of my books, I don&#8217;t want to convey that one has to publish to succeed. Also, while I feel I&#8217;ve been successful by my standards, I may or may not have achieved a level that you&#8217;d consider to be sufficiently successful. In any case, remember that I was able to do this without any formal training and experience. And I was able to do all this without spending much money at all at first. I needed a computer, Internet access, and Web hosting. From there it was all free software for quite some time. In short: if I can pull this off, perhaps you can too!</p><p>In my next newsletter, I&#8217;ll give some hints as to getting and doing specific kinds of jobs.</p><h2 id="giveaway">Book Giveaway =&gt; &#8220;PHP for the Web: Visual QuickStart Guide (4th Edition)&#8221;</h2><p>Once again, if I ever want to get a wave of feedback to my newsletters, or am looking for shameless flattery (and really, who isn&#8217;t?), a book giveaway is the way to go. By now all the recipients have been notified. My thanks to everyone for their interest.</p><p>There was a bit of confusion, it seemed, in that much of the previous newsletter talked about the fourth edition of my &#8220;PHP and MySQL for Dynamic Web Sites&#8221; book, which I&#8217;m working on now, but I was giving away copies of the fourth edition of my &#8220;<a
href="http://www.larryullman.com/books/php-for-the-web-visual-quickstart-guide-4th-edition/">PHP for the Web: Visual QuickStart Guide</a>.&#8221; Some people, having already read the PHP and MySQL book, and sometimes even my &#8220;PHP 5 Advanced: Visual QuickPro Guide&#8221; book, asked for a copy of the &#8220;PHP for the Web&#8221;. It&#8217;s a beginner&#8217;s guide to PHP, and I prefer to give away books to those that will get the most out of them. Come late summer, when the PHP and MySQL book is published, I&#8217;ll give away copies of that.</p><h2 id="news">Larry Ullman&#8217;s Book News =&gt; &#8220;PHP and MySQL for Dynamic Web Sites&#8221; and the JavaScript Book</h2><p>The good news is that I&#8217;m making pretty good progress on the fourth edition of my &#8220;PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide.&#8221; I&#8217;ve finished the first draft through Chapter 8 (possibly Chapter 9, by the time you get this). Chapters 6 and 7, on advanced SQL and MySQL, were heavily edited, reorganized, and expanded, per your feedback. First, I created a new Chapter 6, &#8220;Database Design,&#8221; which covers normalization, indexing, table types, collations, time zones, and foreign key constraints. Along with the last section being entirely new, this chapter results in the creation of two normalized databases, instead of just one. Chapter 7, &#8220;Advanced SQL and MySQL,&#8221; now covers joins, groupings, transactions, and encryption, plus the new topics of explaining queries, advanced selections using <code>IF()</code>, <code>CASE()</code>, <code>COALESCE()</code>, and the like, and I tripled the coverage of joins. Plus, with the second normalized database created in Chapter 6, there are more and different examples. Overall, I think this book will have about 30% more material on just SQL and MySQL. Chapters 8-13 will stick somewhat closely to the previous edition, and then I&#8217;ll try to introduce two entirely new chapters. More on that in the next newsletter or so!</p><p>The bad news is that I&#8217;ve spent so much time on the PHP and MySQL book (you know: the one with an actual deadline), that I haven&#8217;t written a single word on the JavaScript book in the past two weeks. Also, it&#8217;s not looking good for doing anything with it in April, either. I can hear your groans! But rest assured that the JavaScript book is still on my mind and it will get my attention as much as it can. I do hope to reward your patience when all is said and done.</p><p>Speaking of the JavaScript book, Kenoli had put forth an interesting payment option: selling individual chapters for maybe $2 each, like how you can buy individual songs at iTunes. I don&#8217;t know all the answers as to how the book will be available when it&#8217;s done, but I&#8217;m dedicated to putting it out there in as many ways, and as conveniently as possible. Currently this means I&#8217;m thinking about:</p><ul><li>As a series of HTML pages (freely viewable)</li><li>Per chapter as PDFs</li><li>The entire book, as a PDF</li><li>The entire book, as a printed book!</li><li>ePub format</li><li>mobi Format (Amazon Kindle)</li><li>mobile app versions</li></ul> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2011/04/16/what-is-larry-thinking-39-how-i-got-here-and-the-future/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Fun Tools at Adobe Labs</title><link>http://www.larryullman.com/2011/03/26/fun-tools-at-adobe-labs/</link> <comments>http://www.larryullman.com/2011/03/26/fun-tools-at-adobe-labs/#comments</comments> <pubDate>Sat, 26 Mar 2011 20:31:45 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[Adobe AIR]]></category> <category><![CDATA[Flex]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=2429</guid> <description><![CDATA[As I&#8217;ve written before, I&#8217;m a fan of Adobe AIR, although it hasn&#8217;t yet caught on as much as I would have thought. You may also know that Adobe develops a ton of cool things in their Adobe Labs. Many things go from the Labs to a full-scale release, others never do. In any case, [...]]]></description> <content:encoded><![CDATA[<p>As I&#8217;ve written before, I&#8217;m a fan of <a
href="http://www.adobe.com/go/air">Adobe AIR</a>, although it hasn&#8217;t yet caught on as much as I would have thought. You may also know that Adobe develops a ton of cool things in their <a
href="http://labs.adobe.com">Adobe Labs</a>. Many things go from the Labs to a full-scale release, others never do. In any case, it&#8217;s often worth while scrolling through the Labs to see what Adobe&#8217;s up to lately (the same goes for <a
href="http://www.googlelabs.com/">Google labs</a>).</p><p>I recently came across two interesting things at Adobe Labs:</p><ul><li><a
href="http://labs.adobe.com/technologies/flashplatformruntimes/incubator/">Adobe AIR and Adobe Flash Player Incubator</a>, a technology preview program for experimenting with &#8220;bleeding-edge&#8221; capabilities of the Flash platform.</li><li><a
href="http://labs.adobe.com/technologies/airlaunchpad/">Adobe AIR Launchpad</a>, a desktop tool that helps to create Flex-based applications to be run through Adobe AIR. Run the tool, select a destination (desktop or mobile device), establish some base settings, select the features the application will want to use, and the Launchpad will generate a ready-to-compile AIR application with those features and settings. Or you can use the generated ZIP to open and edit the project in Flash Builder. It&#8217;s just a nice little automated tool to further expedite an already fast process.</li></ul><p>I haven&#8217;t played with these others yet, but plan on doing so (they look useful):</p><ul><li><a
href="http://labs.adobe.com/technologies/ascode_coverage/">ActionScript Code Coverage Plug-in for Flash Builder</a></li><li><a
href="http://labs.adobe.com/technologies/squiggly/">Squiggly</a> (a spell check engine for Flash and AIR)</li></ul><p>And, of course, you can check out the beta versions of Flex (&#8220;Hero&#8221;), Flash Builder (&#8220;Burrito&#8221;), and other more common software. You may have also caught wind of <a
href="http://labs.adobe.com/technologies/wallaby/">Wallaby</a>, which converts Flash to HTML.</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2011/03/26/fun-tools-at-adobe-labs/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>What’s New in Adobe AIR 2.5</title><link>http://www.larryullman.com/2010/10/28/whats-new-in-adobe-air-2-5/</link> <comments>http://www.larryullman.com/2010/10/28/whats-new-in-adobe-air-2-5/#comments</comments> <pubDate>Thu, 28 Oct 2010 15:16:14 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[Adobe AIR]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=1406</guid> <description><![CDATA[In conjunction with Adobe MAX 2010, which just wrapped up in Los Angeles, Adobe has announced the release of version 2.5 of Adobe AIR. The most significant addition in version 2.5 is the ability to create applications that will run on the Android platform (i.e., mobile devices). Using AIR, you can now create applications to [...]]]></description> <content:encoded><![CDATA[<p>In conjunction with Adobe MAX 2010, which just wrapped up in Los Angeles, Adobe has announced the <a
href="http://www.adobe.com/devnet/air/articles/air25_whatsnew.html">release of version 2.5 of Adobe AIR</a>. The most significant addition in version 2.5 is the ability to create applications that will run on the Android platform (i.e., mobile devices). Using AIR, you can now create applications to be sold through the Android Market.</p><p>AIR version 2.5 also has support for some TVs and a couple of added desktop application features.</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2010/10/28/whats-new-in-adobe-air-2-5/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Creating Multilingual AIR Applications</title><link>http://www.larryullman.com/2010/03/02/creating-multilingual-air-applications/</link> <comments>http://www.larryullman.com/2010/03/02/creating-multilingual-air-applications/#comments</comments> <pubDate>Tue, 02 Mar 2010 11:15:07 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[Adobe AIR]]></category><guid
isPermaLink="false">http://www.larryullman.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://www.larryullman.com/2010/03/02/creating-multilingual-air-applications/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Adobe AIR 2.0 Desktop Integration</title><link>http://www.larryullman.com/2009/12/15/adobe-air-2-0-desktop-integration/</link> <comments>http://www.larryullman.com/2009/12/15/adobe-air-2-0-desktop-integration/#comments</comments> <pubDate>Tue, 15 Dec 2009 15:46:21 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[Adobe AIR]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=814</guid> <description><![CDATA[This video at Adobe&#8217;s Web site previews two of the file system additions forthcoming in Adobe AIR 2.0. It&#8217;s only six minutes long but shows some cool new features for launching files and for accessing mounted drives. The specific code being used is Flex, but the same functionality will be capable using Ajax, too.]]></description> <content:encoded><![CDATA[<p><a
href="http://tv.adobe.com/watch/adc-presents/preview-desktop-integration-in-adobe-air-2/" class="broken_link">This video at Adobe&#8217;s Web site</a> previews two of the file system additions forthcoming in Adobe AIR 2.0. It&#8217;s only six minutes long but shows some cool new features for launching files and for accessing mounted drives. The specific code being used is Flex, but the same functionality will be capable using Ajax, too.</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2009/12/15/adobe-air-2-0-desktop-integration/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Adobe AIR 2.0 Preview</title><link>http://www.larryullman.com/2009/10/20/adobe-air-2-0-preview/</link> <comments>http://www.larryullman.com/2009/10/20/adobe-air-2-0-preview/#comments</comments> <pubDate>Tue, 20 Oct 2009 01:47:52 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[Adobe AIR]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=540</guid> <description><![CDATA[Adobe announced last week details for the forthcoming 2.0 version of their Adobe AIR (of which I&#8217;m a big fan). It&#8217;ll be released in beta format by the end of 2009, with the official release in the first half of 2010 (theoretically). The updated AIR 2.0 will be able to make use of mounted mass [...]]]></description> <content:encoded><![CDATA[<p>Adobe announced last week details for the forthcoming <a
href="http://blogs.adobe.com/air/2009/10/previewing_adobe_air_2_at_adob.html?sdid=EVVUN">2.0 version of their Adobe AIR</a> (of which I&#8217;m a big fan). It&#8217;ll be released in beta format by the end of 2009, with the official release in the first half of 2010 (theoretically). The updated AIR 2.0 will be able to make use of mounted mass storage devices, like flash drives and cameras, will be able to communicate with native applications running on the computer, should have improved performance, and more.</p><p>For more on Adobe AIR, you can check the <a
href="http://www.adobe.com/products/air/">official Adobe AIR Web site</a>, <a
href="http://www.infoworld.com/d/developer-world/test-center-review-adobe-air-soars-loftier-heights-505?source=fssr">read this review (of AIR 1.5)</a>, or see <a
href="http://www.amazon.com/Adobe-AIR-Integrated-Runtime-Ajax/dp/0321524616/ref=sr_1_9?ie=UTF8&amp;s=books&amp;qid=1255910324&amp;sr=1-9">my book on developing AIR applications using HTML and JavaScript</a>.</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2009/10/20/adobe-air-2-0-preview/feed/</wfw:commentRss> <slash:comments>9</slash:comments> </item> <item><title>Improving (Adobe AIR) Application Performance</title><link>http://www.larryullman.com/2009/05/24/improving-adobe-air-application-performance/</link> <comments>http://www.larryullman.com/2009/05/24/improving-adobe-air-application-performance/#comments</comments> <pubDate>Sun, 24 May 2009 14:51:11 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[Adobe AIR]]></category> <category><![CDATA[Flex]]></category> <category><![CDATA[actionscript]]></category> <category><![CDATA[flash builder]]></category> <category><![CDATA[performance]]></category> <category><![CDATA[tips]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=426</guid> <description><![CDATA[I&#8217;m a big fan of Adobe&#8217;s AIR, and not just because I&#8217;ve written a book on it! I&#8217;ve been developing AIR applications, for in-house and client use, for a couple of years now, in both JavaScript/HTML and Flex. I&#8217;ve recently, and not so recently, come across these two good articles on Adobe AIR: Performance-tuning Adobe [...]]]></description> <content:encoded><![CDATA[<p>I&#8217;m a big fan of <a
href="http://www.adobe.com/go/air">Adobe&#8217;s AIR</a>, and not just because <a
href="http://www.larryullman.com/books/adobe-air-adobe-integrated-runtime-with-ajax-visual-quickpro-guide/">I&#8217;ve written a book on it</a>! I&#8217;ve been developing AIR applications, for in-house and client use, for a couple of years now, in both JavaScript/HTML and Flex. I&#8217;ve recently, and not so recently, come across these two good articles on Adobe AIR:</p><ul><li><a
href="http://www.adobe.com/devnet/air/articles/air_performance.html">Performance-tuning Adobe AIR applications</a></li><li><a
href="http://www.adobe.com/devnet/air/articles/10_tips_building_on_air.html">Ten tips for building better Adobe AIR applications</a></li></ul><p>From the titles, the articles are self-explanatory, but the emphasis is on performance. The interesting thing about the first article is that it discusses the <em>theory</em> of performance, which people don&#8217;t think about enough (e.g., what does it mean to perform well?). The article uses a specific example for which one could easily come up with three different senses of &#8220;performance&#8221; (the article uses Flex for the code).</p><p>The second article has lots of specific, excellent tips, many of which being applicable to any application you develop (although the example also uses Flex for the code, it&#8217;s mostly ActionScript).</p><p>Even if you&#8217;re not using Adobe AIR, I would think these articles would be worth reading, as the subject of application performance is one we could all always continue to learn more about.</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2009/05/24/improving-adobe-air-application-performance/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Using an Encrypted Local Database in Adobe AIR</title><link>http://www.larryullman.com/2009/04/07/using-an-encrypted-local-database-in-adobe-air/</link> <comments>http://www.larryullman.com/2009/04/07/using-an-encrypted-local-database-in-adobe-air/#comments</comments> <pubDate>Tue, 07 Apr 2009 22:00:46 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[Adobe AIR]]></category> <category><![CDATA[JavaScript]]></category> <category><![CDATA[database]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=383</guid> <description><![CDATA[An article I wrote for Peachpit Press titled Using an Encrypted Local Database in Adobe AIR was just published at Peachpit&#8217;s Web site. In this article I discuss and demonstrate a feature added to Adobe AIR in version 1.5. This addition allows you to securely store data in a database on the client&#8217;s computer (previous [...]]]></description> <content:encoded><![CDATA[<p>An article I wrote for <a
href="http://www.peachpit.com">Peachpit Press</a> titled <em>Using an Encrypted Local Database in Adobe AIR</em> was just <a
href="http://www.peachpit.com/articles/article.aspx?p=1330176">published at Peachpit&#8217;s Web site</a>. In this article I discuss and demonstrate a feature added to Adobe AIR in version 1.5. This addition allows you to securely store data in a database on the client&#8217;s computer (previous versions of AIR supported both databases and encrypted local storage, but not encrypted local databases).</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2009/04/07/using-an-encrypted-local-database-in-adobe-air/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Served from: www.larryullman.com @ 2012-02-09 14:30:22 by W3 Total Cache -->
