<?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; JavaScript</title> <atom:link href="http://www.larryullman.com/category/javascript/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>Modern JavaScript: Develop and Design Off To the Printer!</title><link>http://www.larryullman.com/2012/02/06/modern-javascript-develop-and-design-off-to-the-printer/</link> <comments>http://www.larryullman.com/2012/02/06/modern-javascript-develop-and-design-off-to-the-printer/#comments</comments> <pubDate>Mon, 06 Feb 2012 15:25:36 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[JavaScript]]></category> <category><![CDATA[Web Development]]></category> <category><![CDATA[book]]></category> <category><![CDATA[jsdd]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=3023</guid> <description><![CDATA[I am very happy to say that last week my latest book, Modern JavaScript: Develop and Design, went off to the printer. It&#8217;s still slated for a late February release (in the US). Because of the increased page count (624 pages), the price of the book was raised $5.00. However, it seems that Amazon only [...]]]></description> <content:encoded><![CDATA[<p>I am very happy to say that last week my latest book, <em>Modern JavaScript: Develop and Design</em>, went off to the printer. It&#8217;s still slated for a late February release (in the US). Because of the increased page count (624 pages), the price of the book was raised $5.00. However, it seems that Amazon only raised its price like 50 cents. Amazon is currently selling it at $31 (US) and you can buy it using the link below (note: I&#8217;ll get an extra dollar or so if you use the Amazon link).</p><p>For the first time ever, I plan on selling copies of select books myself. The books will, of course, be signed (inscribed however you want). For the <em>Modern JavaScript: Develop and Design</em> book, I believe I will be able to offer it at <del>$35</del> $40 (US), plus shipping. This is slightly more than the Amazon price, but I have more overhead (well, different overhead) and fewer employees than Amazon! Plus, Amazon has that whole &#8220;economies of scale&#8221; thing working for it. I&#8217;ll confirm the price and get the e-commerce system setup in the next couple of weeks. If you have any questions or comments, let me know.</p><p><strong>ADDITION:</strong> Presumably, the book will be available internationally in time, starting with English-language countries such as Canada, the UK, and Australia, followed by translations in other European countries and Asia (that&#8217;s my educated guess, based upon how things have gone in the past). Buying the book directly from me will be the fastest way for international recipients to get a copy, by far. I&#8217;ll need to receive my copies of the book before I can estimate the shipping costs.</p><p><strong>UPDATE: I just heard back from my contact at the publisher and it will cost me more than I had thought to purchase the book for resale. In order to cover my costs, I&#8217;ll need to charge $40 (US) plus shipping. Admittedly, this is almost $10 more than Amazon, but the $40 covers the cost of: the book itself, getting the book shipped to me, and packing materials. I think shipping within the United States via media rate will be around $4.</strong></p><p><iframe
style="width: 120px; height: 240px;" src="http://rcm.amazon.com/e/cm?t=larrullm09-20&amp;o=1&amp;p=8&amp;l=as1&amp;asins=0321812522&amp;nou=1&amp;ref=qf_sp_asin_til&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=FFFFFF&amp;bg1=FFFFFF&amp;f=ifr" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" width="320" height="240"></iframe></p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2012/02/06/modern-javascript-develop-and-design-off-to-the-printer/feed/</wfw:commentRss> <slash:comments>8</slash:comments> </item> <item><title>Top 100 E-Commerce Tips</title><link>http://www.larryullman.com/2012/02/03/top-100-e-commerce-tips/</link> <comments>http://www.larryullman.com/2012/02/03/top-100-e-commerce-tips/#comments</comments> <pubDate>Fri, 03 Feb 2012 15:31:35 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[JavaScript]]></category> <category><![CDATA[MySQL]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[Web Development]]></category> <category><![CDATA[e-commerce]]></category> <category><![CDATA[ecom]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=2982</guid> <description><![CDATA[I just recently came across this somewhat old post titled Top 100 E-commerce Tips from WebmasterWorld. Despite the fact that the article was published over four years ago, and it&#8217;s based upon a slightly older forum thread, there&#8217;s still a lot of material in the article worth reading if you do any e-commerce. Even though [...]]]></description> <content:encoded><![CDATA[<p>I just recently came across this somewhat old post titled <a
href="http://www.soloseo.com/blog/2007/06/18/top-100-e-commerce-tips-webmasterworld/">Top 100 E-commerce Tips from WebmasterWorld</a>. Despite the fact that the article was published over four years ago, and it&#8217;s based upon a slightly older forum thread, there&#8217;s still a lot of material in the article worth reading if you do any e-commerce. Even though there are a full 100 tips here, they&#8217;re short—most are just a single sentence—and quite valid. Admittedly, I disagree with a couple, and feel like a few could be tossed out, but there are many good points made, and many reminders of things that perhaps you&#8217;ve forgotten to emphasize on your most recent e-commerce. project.</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2012/02/03/top-100-e-commerce-tips/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>What is Larry Thinking? #50 =&gt; OOP Design, Part 1</title><link>http://www.larryullman.com/2012/01/30/what-is-larry-thinking-50-oop-design-part-1/</link> <comments>http://www.larryullman.com/2012/01/30/what-is-larry-thinking-50-oop-design-part-1/#comments</comments> <pubDate>Mon, 30 Jan 2012 06:58:39 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[JavaScript]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[Web Development]]></category> <category><![CDATA[jsdd]]></category> <category><![CDATA[newsletter]]></category> <category><![CDATA[oop]]></category> <category><![CDATA[security]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=2987</guid> <description><![CDATA[In this edition… What Were You Thinking? =&#62; Bimonthly Newsletters On the Web =&#62; Security and Privacy Made Simpler On the Blog =&#62; My January 2012 Non-Resolutions List Q&#38;A =&#62; How do you go about designing the main OOP classes for a project? Larry Ullman&#8217;s Book News =&#62; “Modern Javascript: Develop and Design” Done! What [...]]]></description> <content:encoded><![CDATA[<p>In this edition…</p><ul><li><a
href="http://www.larryullman.com/2012/01/30/what-is-larry-thinking-50-oop-design-part-1/#you">What Were You Thinking? =&gt; Bimonthly Newsletters</a></li><li><a
href="http://www.larryullman.com/2012/01/30/what-is-larry-thinking-50-oop-design-part-1/#web">On the Web =&gt; Security and Privacy Made Simpler</a></li><li><a
href="http://www.larryullman.com/2012/01/30/what-is-larry-thinking-50-oop-design-part-1/#web">On the Blog =&gt; My January 2012 Non-Resolutions List</a></li><li><a
href="http://www.larryullman.com/2012/01/30/what-is-larry-thinking-50-oop-design-part-1/#qa">Q&amp;A =&gt; How do you go about designing the main OOP classes for a project?</a></li><li><a
href="http://www.larryullman.com/2012/01/30/what-is-larry-thinking-50-oop-design-part-1/#news">Larry Ullman&#8217;s Book News =&gt; “Modern Javascript: Develop and Design” Done!</a></li></ul><p><span
id="more-2987"></span></p><h2 id="you">What Were You Thinking? =&gt; Bimonthly Newsletters</h2><p>In <a
href="http://www.larryullman.com/2012/01/07/what-is-larry-thinking-49-a-new-year/#you">the previous newsletter</a>, I asked for input on the idea of changing the newsletter from going out every 3-4 weeks but being longer to going out every 2 weeks but being shorter. You were also able to vote in <a
href="http://www.larryullman.com/2012/01/06/newsletter-opinion-poll/">an online poll</a>. About two-thirds of the votes were for the change, although the more passionate responses were against the change, as those recipients already felt they received too many newsletters and emails. I think what I’m going to do, as a happy medium, is to shoot for a schedule where the newsletters come out slightly faster, like every 2-3 weeks, and are slightly shorter. This should be feasible for me to pull off without overwhelming you.</p><p>Towards that end, you may note that there’s no “What is Larry Thinking?” section in this particular newsletter. With the new plan for the newsletter, I’m not going to be quite so rigid about what goes into each newsletter, limiting myself to just five or so significant pieces. The bulk of this newsletter answers a question on OOP design.</p><p>My thanks to everyone for their input. And please always feel free to provide any feedback, questions, comments, etc., that you may have. (Postscript: Several of you rightfully pointed out that I misused “biweekly” in the text of the newsletter, despite correctly using “bimonthly” in the heading. I indeed meant “bimonthly”, although “biweekly” has the same inexactitude in that it can mean both every two weeks and twice a week.)</p><h2 id="web">On the Web =&gt; Security and Privacy Made Simpler</h2><p>When I was writing my <a
href="http://www.larryullman.com/books/effortless-e-commerce-with-php-and-mysql/">Effortless E-Commerce with PHP and MySQL</a> book, I naturally did a bunch of research, particularly with regards to the various laws that apply. Understanding the programming behind an e-commerce site is relatively simple; understanding all the applicable laws and implications of doing e-commerce is complex. One of the sites I found to be quite useful was the United States <a
href="http://www.bbb.org/">Better Business Bureau</a> (BBB).</p><p>I’m currently going through some items in my “to read” folder, and am reading, or perhaps re-reading, the Better Business Bureau’s PDF titled “<a
href="http://www.bbb.org/us/corporate-engagement/security/">Security &amp; Privacy – Made Simpler</a>. If you do any e-commerce, or even just Web development, in the U.S. or not, it’s worth your time. It’s a 22-page document that discusses almost every facet of e-commerce, such as:</p><ul><li>Developing a security and privacy plan</li><li>Creating and communicating your security and privacy policies</li><li>Good employee screening and policies</li><li>Common hack/theft strategies</li><li>General Internet security</li><li>Proper handling of customer data</li><li>Payment processing</li><li>What to do in the event of a data breach</li><li>A preview of international e-commerce considerations</li></ul><p>The document also has many resources listed in these and other categories. You can download the PDF from that page, but there are also related FAQs and more on the BBB’s site.</p><h2 id="blog">On the Blog =&gt; My January 2012 Non-Resolutions List</h2><p>I’ve never been much of a New Year’s Resolution person: if something is important enough to do, start today, not on some arbitrary date that happens to be the first day of the year. (Or, you know, January 2nd, because the first is a holiday and all.) But this year I happen to have quite a long non-resolutions list. The timing is entirely coincidental: I just happen to be done with my “Modern JavaScript: Develop and Design” book around this time, and I always have a long list of things to do between books. I recently <a
href="http://www.larryullman.com/2012/01/03/my-january-2012-non-resolutions-list/">posted on my blog</a> about my immediate plans (aka, my non-resolutions list).</p><h2 id="qa">Q&amp;A =&gt; How do you go about designing the main OOP classes for a project?</h2><p>While “diving into” Object-Oriented Programming development in PHP, Chris had emailed me about how one sets up the core classes for an OOP-based site. The specific example—user management with login/logout, roles, etc.—is common and not complex, but Chris didn’t know where to start. In my opinion, OOP is easy enough to <em>use</em> once the classes have been defined; the difficulties arise from coming up with the proper classes in the first place. So let’s look at that process, in the abstract.</p><p><em>Programming is a matter of taking actions with data.</em> In a linguistic sense, it’s very much a noun-verb relationship: the user submits form data to a server; the server stores data in a database; the user requests another page; the server pulls data from a database. Whether you’re using OOP or procedural code, you need to identify both the actions and the data first. What are all the <em>verbs</em> that the user or Web site needs to be able to do? What are all the <em>nouns</em> that will be involved in those actions? Once you’ve identified those attributes of the site, procedural programming focuses first on the verbs, OOP focuses first on the nouns.</p><p>To start designing OOP classes, one must first organize the types of data the site will work with, in detail. In a user management system, there’s one obvious noun: a <strong>User</strong>. The properties of a User include: userId, username, userPass, userRole, dateRegistered, and so forth. (Conventionally, OOP uses camel-case for variable and property names.) When you think you’ve identified the nouns involved, go back and see if all of the actions now have the data that needs to be involved. When a new person registers, a User is created (as both a PHP variable and a record in the database). When a person logs in, a User is retrieved from the database and created as a PHP variable. When a person logs out, the User PHP variable can be destroyed. To see if a person has authority to do X, you’d check the <strong>User-&gt;userRole</strong> property.</p><p>In some situations, there will be nouns with overlapping roles and properties, which would suggest that you should create a hierarchy of classes. I think of shapes as being the easiest example to comprehend. All two-dimensional shapes have some common attributes, such as area and perimeter, but triangles have three sides, rectangles have four, and circles have none (but do have a radius). When you find yourself in situations like this, you’ll want to design one master class, in this case, <strong>Shape</strong>, which you never create instances of. Then you define derived classes—<strong>Triangle</strong>, <strong>Rectangle</strong>, and <strong>Circle</strong>—that you would create instances of. Admittedly, knowing when to create a hierarchy can be tough. You might think with a user roles situation that you’d want common users and administrators as two separate classes, but the only difference between the two types is in what actions each can take, which is easily managed using Access Control Lists (ACLs) or the like. Or, put another way, everything about the two users is exactly the same except for the type, so there’s no need to create separate classes (unlike, by comparison, circles and triangles that have some overlapping properties but other very different ones).</p><p>Another common class to use on a site would be one for interacting with the database. You could create your own class for this purpose, or just use the <a
href="http://www.php.net/mysqli">MySQLi object</a> or <a
href="http://www.php.net/pdo">PDO</a> or the like.</p><p>Even in a simple site with content and users, there are other clear nouns: the pages of content. Going back to the language analogy, there are some sentences that have a single noun—<em>Johnny runs</em> or <em>A User logs out</em>—but many have more than one noun—<em>Johnny reads a book</em> or <em>A User views a page of content</em>. The content, then, would also be represented by one or more classes, depending upon the variety in the content displayed. If the content is just information displayed within a template of HTML, then <strong>Content</strong> might have these attributes: contentId, title, body, createdBy, dateCreated, and dateUpdated. The createdBy could be as simple as a userID integer, or more formally be an actual User instance.</p><p>Depending upon how OOP-y you want to be, you may also create classes for generating the HTML pages (i.e., View classes) and for handling actions (i.e., Controller classes). Those move you into the realm of a true MVC architecture, which isn’t always necessary, though.</p><p>In asking the question, Chris didn’t originally know how to handle the logging in and logging out and registration and such, not knowing if one makes classes for those. Those are actions performed on, or using, objects, and don’t get represented as classes themselves.</p><p>Because I’m going to be writing the third edition of my “<a
href="http://www.larryullman.com/books/php-5-advanced-visual-quickpro-guide-2nd-edition/">PHP 5 Advanced: Visual QuickPro Guide</a>” this year, I expect I’ll be doing a lot of writing on the subject of OOP, design patterns, and the like. If anyone has any more questions or comments regarding these topics, let me know.</p><h2 id="news">Larry Ullman’s Book News =&gt; “Modern Javascript: Develop and Design” Done!</h2><p>I am very, very happy to say that my latest book, “Modern JavaScript: Develop and Design”, is officially done. Like done, done. Last week Monday, I submitted the last chapter to be written, Chapter 13, Frameworks. In it, I quickly discuss how to choose a framework, when you should use a framework, and some common libraries (as a framework alternative). The bulk of the chapter introduces and uses <a
href="http://jquery.com/">jQuery</a> and the <a
href="http://yuilibrary.com/">Yahoo! User Interface (YUI) Library</a>. For both I explain how to perform common tasks—selecting DOM elements, DOM manipulation, event handling, and Ajax, and then walk through more advanced examples. For both, the chapter explains an autocomplete example, using a PHP script as the data source. For jQuery, I also discuss the <a
href="http://datatables.net/">DataTables</a> plug-in. For YUI, I also discuss and demonstrate the <a
href="http://developer.yahoo.com/yql/">Yahoo! Query Language</a> (YQL). For it, I go through a couple of examples, including fetching a weather report and a stock quote. (For the record, I specifically target YUI3, which is an improvement over YUI1 and 2, even if some of the framework is currently in beta.)</p><p>Chapter 13 is the first chapter in Part 3 of the book, Next Steps. I already wrote Chapter 14, Advanced JavaScript, which has a heavy focus on closures. Chapter 15, A PHP and JavaScript Example, creates a pseudo-complete auction system. Auctions are set to expire on a certain date and time. Logged-in users can bid on items. All dates and times are shown using Coordinated Universal Time (UTC) or the user’s timezone, if the user is logged-in. Then, JavaScript used to enhance the experience. This includes using Ajax for the login and bid forms, retrieving the latest bids via Ajax (and updating the table of bids with them), and creating countdown timers that show the amount of time left in an auction, when that’s less than an hour. I think the chapter turned out well, and it emphasizes the various ways to pass data back and forth between PHP and JavaScript, a common point of confusion.</p><p>Not only is all of the initial writing is complete, but I’ve also done the rewrites on the entire book, and I just—moments ago—finished reviewing the PDF layouts, which is the last step before the book goes to the printer. (As you can tell, there are a lot of overlapping steps here at the end.) I believe the book will still ship, as originally planned, at the end of February.</p><p>In support of the book, I’ll also be writing a couple of articles (published online for free) and create some screencasts (to be provided in various places).</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2012/01/30/what-is-larry-thinking-50-oop-design-part-1/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>The impress.js Presentation JavaScript Library</title><link>http://www.larryullman.com/2012/01/20/the-impress-js-presentation-javascript-library/</link> <comments>http://www.larryullman.com/2012/01/20/the-impress-js-presentation-javascript-library/#comments</comments> <pubDate>Fri, 20 Jan 2012 06:55:43 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[JavaScript]]></category> <category><![CDATA[css3]]></category> <category><![CDATA[html5]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=2975</guid> <description><![CDATA[I recently stumbled upon impress.js, a truly amazing Web-based presentation tool. You have got to check out the demo page (in a modern browser), you will be blown away. After running through the presentation (which will only take a minute), check out the HTML source code to be further amazed. I&#8217;m normally not this hyperbolic, but [...]]]></description> <content:encoded><![CDATA[<p>I recently stumbled upon <a
href="https://github.com/bartaz/impress.js">impress.js</a>, a truly amazing Web-based presentation tool. You have got to check out the <a
href="http://bartaz.github.com/impress.js/">demo page</a> (in a modern browser), you will be blown away. After running through the presentation (which will only take a minute), check out the HTML source code to be further amazed. I&#8217;m normally not this hyperbolic, but I was quite stunned by what was possible with <strong>impress.js</strong>. Besides being a useful tool for HTML-based presentations, this library is capable of changing how one thinks of presentations as a concept. Instead of presenting information in a linear, traditional format, with <strong>impress.js</strong>, you can do things like go from a bigger picture to a smaller picture, to be able to zoom in on content, as it were. If you pay attention to the URLs, you&#8217;ll note that <strong>impress.js</strong> also creates bookmark-able pages, which is an added bonus.</p><p>If you check out the <a
href="https://github.com/bartaz/impress.js/blob/master/README.md">corresponding README file</a> on GitHub, you&#8217;ll find links to other presentations created with impress.js. A couple of presentations are quite useful in that they demonstrate, in my opinion, an overuse of <strong>impress.js</strong>. Those particular presentations use the rotation feature to such as extent that it makes one dizzy, which is normally not a good quality in a presentation (although one presentation is talking about 3D transformations, so there&#8217;s some justification there). One does worry that if <strong>impress.js</strong> catches on too much, we&#8217;ll all be sick of rotating transitions in no time.</p><p>For an example of another interesting use of <strong>impress.js</strong>, check out <a
href="http://lioshi.com/">lioshi toiles</a>, where <strong>impress.js</strong> creates a site that displays artwork in a truly interesting way. Taken a step further, <a
href="http://www.alingham.com/">Al Ingham&#8217;s site</a>, uses <strong>impress.js</strong> for custom navigation and presentation, while still providing direct links to specific pages across the top of the page (because walking through all the &#8220;slides&#8221; to get where you needed to be is unreasonable).</p><p>If only I had any design skills whatsoever&#8230;</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2012/01/20/the-impress-js-presentation-javascript-library/feed/</wfw:commentRss> <slash:comments>14</slash:comments> </item> <item><title>Modern JavaScript: Develop and Design Done! (kind of)</title><link>http://www.larryullman.com/2012/01/16/modern-javascript-develop-and-design-done-kind-of/</link> <comments>http://www.larryullman.com/2012/01/16/modern-javascript-develop-and-design-done-kind-of/#comments</comments> <pubDate>Mon, 16 Jan 2012 20:55:18 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[JavaScript]]></category> <category><![CDATA[datatables]]></category> <category><![CDATA[jquery]]></category> <category><![CDATA[jsdd]]></category> <category><![CDATA[yql]]></category> <category><![CDATA[yui]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=2973</guid> <description><![CDATA[UPDATE: Amazon currently has the book for sale at $30.47, as I write this. I am very happy to say that my latest book, Modern JavaScript: Develop and Design, is official done. Well, not done, but close enough to blog about it. I just submitted the last chapter to be written, Chapter 13, Frameworks. In [...]]]></description> <content:encoded><![CDATA[<p><strong>UPDATE</strong>: <a
href="http://amzn.to/wsdmkq">Amazon currently has the book for sale at $30.47</a>, as I write this.</p><p>I am very happy to say that my latest book, <em>Modern JavaScript: Develop and Design</em>, is official done. Well, not done, but close enough to blog about it. I just submitted the last chapter to be written, Chapter 13, Frameworks. In it, I quickly discuss how to choose a framework, when you should use a framework, and some common libraries (as a framework alternative). The bulk of the chapter introduces and uses <a
href="http://jquery.com/">jQuery</a> and the <a
href="http://yuilibrary.com/">Yahoo! User Interface (YUI) Library</a>. For both I explain how to perform common tasks—selecting DOM elements, DOM manipulation, event handling, and Ajax, and then walk through more advanced examples. For both, the chapter explains an autocomplete example, using a PHP script as the data source. For jQuery, I also discuss the <a
href="http://datatables.net/">DataTables</a> plug-in. For YUI, I also discuss and demonstrate the <a
href="http://developer.yahoo.com/yql/">Yahoo! Query Language</a> (YQL). For it, I go through a couple of examples, including fetching a weather report and a stock quote. (For the record, I specifically target YUI3, which is an improvement over YUI1 and 2, even if some of the framework is currently in beta.)</p><p>Chapter 13 is the first chapter in Part 3 of the book, Next Steps. I already wrote Chapter 14, Advanced JavaScript, which has a heavy focus on <em>closures</em>. Chapter 15, A PHP and JavaScript Example, creates a pseudo-complete auction system. Auctions are set to expire on a certain date and time. Logged-in users can bid on items. All dates and times are shown using <a
href="http://en.wikipedia.org/wiki/Coordinated_Universal_Time">Coordinated Universal Time</a> (UTC) or the user&#8217;s timezone, if the user is logged-in. Then, JavaScript used to enhance the experience. This includes using Ajax for the login and bid forms, retrieving the latest bids via Ajax (and updating the table of bids with them), and creating countdown timers that show them amount of time left in an auction, when that&#8217;s less than an hour. I think the chapter turned out well, and it emphasizes the various ways to pass data back and forth between PHP and JavaScript, a common point of confusion.</p><p>All of the initial writing is now complete. I&#8217;ve also done the rewrites on the first nine chapters. I still have to do the rewrites on the last six chapters, but that won&#8217;t take long. I will also be doing supporting videos and articles related to the book.</p><p>I believe the book will still ship, as originally planned, at the end of February. I am now going to go celebrate!</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2012/01/16/modern-javascript-develop-and-design-done-kind-of/feed/</wfw:commentRss> <slash:comments>12</slash:comments> </item> <item><title>Examples from &#8220;Building a Web Site with Ajax: Visual QuickProject&#8221;</title><link>http://www.larryullman.com/2011/12/27/examples-from-building-a-web-site-with-ajax-visual-quickproject/</link> <comments>http://www.larryullman.com/2011/12/27/examples-from-building-a-web-site-with-ajax-visual-quickproject/#comments</comments> <pubDate>Tue, 27 Dec 2011 22:18:56 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[JavaScript]]></category> <category><![CDATA[MySQL]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[Web Development]]></category> <category><![CDATA[ajax]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=2936</guid> <description><![CDATA[Although I don&#8217;t normally do this, per a reader request, I&#8217;ve made the book&#8217;s examples available to be seen and used here. The book has three primary examples, each in an Ajax and non-Ajax form. The pages are: dept_form.html This page returns all of the employees in a selected department. add_employee.html This page uses Ajax [...]]]></description> <content:encoded><![CDATA[<p>Although I don&#8217;t normally do this, per a reader request, I&#8217;ve made the book&#8217;s examples available to be seen and used here. The book has three primary examples, each in an Ajax and non-Ajax form. The pages are:</p><dl><dt><a
href="http://demo.larryullman.com/ajax/examples/dept_form.html">dept_form.html</a></dt><dd>This page returns all of the employees in a selected department.</dd><dt><a
href="http://demo.larryullman.com/ajax/examples/add_employee.html">add_employee.html</a></dt><dd>This page uses Ajax to add an employee to the database (note: the version running on this site does not actually execute the INSERT query that updates the database.)</dd><dt><a
href="http://demo.larryullman.com/ajax/examples/search_form.html">search_form.html</a></dt><dd>This page provides a simple search to retrieve employees by last name.</dd></dl><p>There&#8217;s no navigation within or among the pages. You&#8217;ll need to click Back to return to this page to see another example. To run one of the examples without Ajax (to see what that&#8217;d be like for visitors that can&#8217;t use the Ajax version), disable JavaScript in your Web browser.</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2011/12/27/examples-from-building-a-web-site-with-ajax-visual-quickproject/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Finding Book Bonus Content</title><link>http://www.larryullman.com/2011/12/20/finding-book-bonus-content/</link> <comments>http://www.larryullman.com/2011/12/20/finding-book-bonus-content/#comments</comments> <pubDate>Tue, 20 Dec 2011 19:27:36 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[C and C++]]></category> <category><![CDATA[Flex]]></category> <category><![CDATA[JavaScript]]></category> <category><![CDATA[MySQL]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[Ruby]]></category> <category><![CDATA[Web Development]]></category> <category><![CDATA[jsdd]]></category> <category><![CDATA[phpmysql4]]></category> <category><![CDATA[phpvqs4]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=2925</guid> <description><![CDATA[For many of my books, bonus content is made available through the publisher. Sometimes this is material that was intended for the book but had to be cut, such as an appendix or a chapter, and sometimes the material is a true bonus, such as a video screencast. Because it&#8217;s not clear for everyone how [...]]]></description> <content:encoded><![CDATA[<p>For many of my books, bonus content is made available through the publisher. Sometimes this is material that was intended for the book but had to be cut, such as an appendix or a chapter, and sometimes the material is a true bonus, such as a video screencast. Because it&#8217;s not clear for everyone how to access this bonus material, I thought I&#8217;d quickly post instructions here.</p><ol><li>Head to <a
href="http://www.peachpit.com">Peachpit.com</a> (almost all of my books are published by Peachpit Press)</li><li>Click on <a
href="https://memberservices.informit.com/my_account/login.aspx?partner=52">Account Sign In</a> at the top of the page.</li><li>If you don&#8217;t already have an account with Peachpit.com, click the <a
href="https://memberservices.informit.com/my_account/register.aspx">Create a new one&#8230;</a> link to register.</li><li>After you have registered, login.</li><li>On your account page (after logging in), click <em>Registered Products</em>.</li><li>On the Registered Products tab, click <em>Register Another Product</em>.</li><li>Follow the instructions to register the book.</li><li>Return to the Registered Products page.</li><li>For the book in question, click the <em>Access Bonus Content</em> link. That will take you to a page with all the bonus content for a given book.</li></ol><p>Besides being able to access bonus content, there are other benefits to registering at Peachpit&#8217;s site. And while you&#8217;re there, you can also check out <a
href="http://www.peachpit.com/authors/bio.aspx?a=2a14d669-06f6-48cf-a5b8-907169808b9f">my author page</a>, which lists the books I&#8217;ve written for Peachpit, the articles I&#8217;ve published there, and the blog postings I&#8217;ve published there. Both the articles and blog postings are viewable without registration or logging in.</p><p>I hope that helps anyone having trouble finding the material they&#8217;re looking for.</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2011/12/20/finding-book-bonus-content/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>What Is Larry Thinking? #48 =&gt; The Philosophy Issue</title><link>http://www.larryullman.com/2011/12/16/what-is-larry-thinking-48-the-philosophy-issue/</link> <comments>http://www.larryullman.com/2011/12/16/what-is-larry-thinking-48-the-philosophy-issue/#comments</comments> <pubDate>Fri, 16 Dec 2011 22:45:00 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[JavaScript]]></category> <category><![CDATA[hosting]]></category> <category><![CDATA[jsdd]]></category> <category><![CDATA[newsletter]]></category> <category><![CDATA[scrivener]]></category> <category><![CDATA[writing]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=2920</guid> <description><![CDATA[In this edition… About This Newsletter What Were You Thinking? =&#62; Looking Both Ways On the Web =&#62; Columbia&#8217;s Break Writing Series On the Web =&#62; The Heisenbug and Others On the Web =&#62; Take Control of Scrivener 2 On the Blog =&#62; Another &#8220;Modern JavaScript: Develop and Design&#8221; Update Q&#38;A =&#62; Should One Enforce [...]]]></description> <content:encoded><![CDATA[<p>In this edition…</p><ul><li><a
href="http://www.larryullman.com/2011/12/16/what-is-larry-thinking-48-the-philosophy-issue/#about">About This Newsletter</a></li><li><a
href="http://www.larryullman.com/2011/12/16/what-is-larry-thinking-48-the-philosophy-issue/#you">What Were You Thinking? =&gt; Looking Both Ways</a></li><li><a
href="http://www.larryullman.com/2011/12/16/what-is-larry-thinking-48-the-philosophy-issue/#web1">On the Web =&gt; Columbia&#8217;s Break Writing Series</a></li><li><a
href="http://www.larryullman.com/2011/12/16/what-is-larry-thinking-48-the-philosophy-issue/#web2">On the Web =&gt; The Heisenbug and Others</a></li><li><a
href="http://www.larryullman.com/2011/12/16/what-is-larry-thinking-48-the-philosophy-issue/#web3">On the Web =&gt; Take Control of Scrivener 2</a></li><li><a
href="http://www.larryullman.com/2011/12/16/what-is-larry-thinking-48-the-philosophy-issue/#blog">On the Blog =&gt; Another &#8220;Modern JavaScript: Develop and Design&#8221; Update</a></li><li><a
href="http://www.larryullman.com/2011/12/16/what-is-larry-thinking-48-the-philosophy-issue/#qa">Q&amp;A =&gt; Should One Enforce Business Ethics?</a></li><li><a
href="http://www.larryullman.com/2011/12/16/what-is-larry-thinking-48-the-philosophy-issue/#thinking">What is Larry Thinking =&gt; The Dangers of Shared Hosting</a></li><li><a
href="http://www.larryullman.com/2011/12/14/what-is-larry-thinking-48-the-philosophy-issue/#news">Larry Ullman&#8217;s Book News =&gt; &#8220;Modern JavaScript: Develop and Design&#8221;</a></li></ul><p><span
id="more-2920"></span></p><h2 id="aboutthisnewsletter">About This Newsletter</h2><p>I don’t know if references to just a couple of philosophers or philosophical movements makes a true newsletter theme, but I haven’t had a <em>philosophy</em> theme yet, and as my minor in college was in philosophy and religion, it’s about time. So, a couple of minor, not scary philosophy mentions, and a bunch of somewhat random stuff that I hope will have use and meaning for you.</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="whatwereyouthinkinglookingbothways">What Were You Thinking? =&gt; Looking Both Ways</h2><p>In <a
href="http://www.larryullman.com/2011/09/18/what-is-larry-thinking-45-olio/#thinking">a previous newsletter</a>, I referenced a quote I had encountered, attributed to Doug Linder:</p><blockquote><p>A good programmer is someone who always looks both ways before crossing a one-way street.</p></blockquote><p>Because I was unfamiliar with the name, I tried researching who Doug Linder was, but to no avail. Surprisingly, sometime after sending out that newsletter, I received an email from the actual Doug Linder and he and I exchanged a few nice messages. Doug said that he wasn’t intending to come up with something quotable, of course, but had made the comment, specific to error trapping, in a USEnet discussion during the mid-90’s. Someone started using the quote as his or her signature file and eventually the comment got put onto someone’s “collected quotes” list. From there it spread.</p><p>Doug said that every so often he pings for references to his “15 minutes of fame” quote, and was pleased to find my use of his comment to be something worth responding to. And I was pleased to hear from him!</p><h2 id="onthewebcolumbiasbreakwritingseries">On the Web =&gt; Columbia’s Break Writing Series</h2><p>Columbia University has a BreakWriting program that encourages students to write during their December-January semester break, which is nigh upon us. <a
href="http://www.columbia.edu/cu/gsas/pages/cstudents/dean/break-writing/index.html">Last year’s series of 16 posts have been put online</a> and are well worth reading if you do any writing (or think about doing any). Each post has oodles of useful, real-world advice, with plenty of tips and recommendations for being as successful as possible when it comes to writing (success here being measured in terms of actually writing, not commercial success).</p><h2 id="onthewebtheheisenbugandothers">On the Web =&gt; The Heisenbug and Others</h2><p>I recently came across the term <a
href="http://en.wikipedia.org/wiki/Unusual_software_bug#Heisenbug">heisenbug</a>, which I really like. It comes from Walter Heisenberg’s uncertainty principle, a tenet of quantum mechanics. Loosely speaking, the principle says that you can either know where a particle is, or how fast it’s going, but not both. Mistakenly, people often think the uncertainty principle says that the act of observing a particle affects it. Regardless of the conventional misunderstanding, heisenbug plays off of this misinterpretation of that principle, describing a bug that behaves differently when you go to observe and debug it. Misnomer aside, I think we’ve all been witness to this on more than one occasion.</p><p>The Wikipedia description of the heisenbug is on a page of <a
href="http://en.wikipedia.org/wiki/Unusual_software_bug">unusual software bugs</a>. There’s the Mandelbug, the Schrödinbug, and a couple of others. I’m not sure that naming bugs helps, but sometimes it helps to truly know one’s enemy!</p><h2 id="onthewebtakecontrolofscrivener2">On the Web =&gt; Take Control of Scrivener 2</h2><p>I’m a pretty big fan of <a
href="http://www.literatureandlatte.com/scrivener.php">Scrivener</a>, a writing application for Macs (there is a Windows version currently in beta). For a year now I’ve been using Scrivener to write my newsletter, and I’ve even been writing the JavaScript book starting with it, too. (The entire book is in Scrivener, including all of my notes and research. When I finish the first draft of a chapter, I export it from Scrivener to Word, and then complete it, with formatting, in Word, which is the format required by the publisher.)</p><p>There’s something about Scrivener that just works for me: first and foremost, that I’m able to keep everything about a project—the writing, references, notes, etc.—in one place. As with any good piece of software, though, I’ve got a nagging feeling in the back of my mind that I’m not using Scrivener to its fullest potential. And by that I mean I’m absolutely convinced that I could be using Scrivener better.</p><p>For this reason, I was quite happy to see the release of the book <a
href="http://www.takecontrolbooks.com/scrivener-2">Take Control of Scrivener 2</a>. I haven’t read it yet (ironically, I’m waiting to complete the book I’m currently working on first), but it’s high on my “to-read” list. Just scanning the 22-page sample that’s available, this looks like a good, quickly-readable resource. And at $10 (US) for the book, it’s a steal.</p><h2 id="onthebloganothermodernjavascript:developanddesignupdate">On the Blog =&gt; Another “Modern JavaScript: Develop and Design” Update</h2><p>I’ll provide a brief update on the JavaScript book at the end of this newsletter, but for a more detailed update status, see <a
href="http://www.larryullman.com/2011/12/08/another-modern-javascript-develop-and-design-update/">this recent blog post</a>.</p><h2 id="qashouldoneenforcebusinessethics">Q&amp;A =&gt; Should one enforce business ethics?</h2><p>Richard wrote me some time ago, asking about “honor”. Specifically, Richard said that he knew of someone ripping off clients by charging them too much for Web development work, taking advantage of the customer’s lack of knowledge. Richard was wondering what my thoughts were about tipping off the customer, mostly in terms of being a professional and trying to better represent the business he (and many of us) is in. It’s not the kind of question I’m had before (and I’m not sure that my Q&amp;A synopsis does it justice), so I thought I’d take a crack at it.</p><p>I have three initial thoughts, and the third speaks more towards what kind of person I am and how I think, than towards how I think anyone else should behave. Which is my third point, as you’ll see. My first thought I that I realized some time ago that gossiping or speaking ill of someone almost always reflects more poorly on the speaker (i.e., you) than on the target. If person A, someone I don’t know that well, says something negative to me about person B, all I’ve really learned is something (negative) about person A. I would think that would definitely be a factor in a case like this, especially when person A represents a business that could benefit from person B being discredited (deserving or not).</p><p>My second thought is that people don’t like to <em>look</em> foolish, let alone be <em>told</em> that they look foolish, even—or especially—when they do. Finding out you have spinach in your teeth is embarrassing, but easily overcome. Finding out you’re wasting money is much harder to hear and accept. That may sound like a poor reason not to say something, but it’s a factor. In fact, I’d go further and say that I don’t think most people really want to hear what other people think, unless being directly asked (and sometimes not even then, but perhaps I’m being too cynical). In any case, with these first two thoughts in mind, I would question how effective saying something would be.</p><p>My third thought goes directly to who I am. I learned about <a
href="http://en.wikipedia.org/wiki/Existentialism">existentialism</a> in high school and it really struck a chord for me. In particular, I like the notion that we define our own meaning and values (see <a
href="http://en.wikipedia.org/wiki/Existentialism#Existence_precedes_essence">“Existence Precedes Essence”</a>, if you’re curious). My acceptance of existentialism applies here because, in my mind, we’re responsible for our own actions. If someone else is doing something unethical, that’s on them. One’s ethics dictate one’s own behavior, they’re not a basis for how others should behave.</p><p>My final thought, which came later, but should have come first, is that any time one is deciding how to act in a situation, one has to start by verifying what is known. Taking actions under the possibility of false pretenses has a different governing rules and implications than taking actions when certain of what’s true. In Richard’s particular case, what may seem like one person taking advantage of another, may not really be so.</p><p>As I said, I did find this to be a good question, although I’m not sure I gave a good answer. To me, the simple answer is: you must be ethical yourself, in your dealings. Time spent thinking about whether other people are behaving appropriately is time that would be better spent doing just about anything else. Of course, that’s much easier said than done. I encourage your feedback on this question.</p><h2 id="whatislarrythinkingthedangersofsharedhosting">What is Larry Thinking? =&gt; The Dangers of Shared Hosting</h2><p>In my <a
href="http://www.larryullman.com/books/effortless-e-commerce-with-php-and-mysql/">“Effortless E-Commerce with PHP and MySQL”</a> book, I write a lot about security, naturally, including the security considerations that come from the Web hosting itself. The absolutely most important thing to understand about security is that it’s not a binary thing that can be turned on and off, enabled and disabled. <em>Security is a relative criteria</em>, and as programmers and developers it’s our responsibility to select the appropriate degree of security for the task at hand. There’s nothing you can do that can make a site or application secure or not secure, only <em>more secure</em> or <em>less secure</em>. And here’s the kicker: less secure isn’t always bad and more secure isn’t always better. The only criteria is: Is everything put together secure enough for the situation?</p><p>When it comes to Web sites, one major impact on the security of the site itself is the hosting being used, as I also write about in the book. One has to select the right hosting for the site, both in terms of performance (i.e., can the hosting handle the demand) and in terms of security. Both qualities are impacted by the number of clients on the same server. For example, if you have a dedicated server, which will cost you hundreds of dollars (US) per month, it’s your server, and no one else can do anything on that server to undermine your site’s security. (On the other hand, you either need to pay someone to manage the server or be a server security expert in order to maintain the optimum level of security.) Conversely, with shared hosting, you can have literally hundreds of users on the same system. If one of those users does something bad, accidentally or maliciously, that could easily affect your own sites. For example, if there’s a security hole on someone’s site, that hole could be used to bring down the entire server. Or, worse yet, a security hole could be used to exploit the other clients and sites. I’m not saying you should never use shared hosting, but the potential for problems is greater simply because there are more users on the same machine. Still, even among shared hosting, not all hosting companies are equal.</p><p>A while back, I wrote a somewhat popular blog posting titled <a
href="http://www.larryullman.com/2011/08/28/how-web-hosts-prey-on-beginners/">How Web Hosts Prey on Beginners</a>. In the piece, I write about some of the deceptive marketing things companies do to lure new customers. The specific company, not actually named in that piece, is 1&amp;1 hosting, and I’ve heard plenty of negative feedback about them. The worst hosting experience I ever had was with Dotster, who is primarily a domain registrar. I originally used Dotster as a registrar, and when they had a great deal on a <a
href="http://en.wikipedia.org/wiki/Virtual_private_server">Virtual Private Server (VPS)</a>, I began using Dotster for my hosting, too. That was a big mistake. They were so terrible as hosts that I didn’t even complete the paid year of hosting. Really, they had no business acting as a hosting company, and I don’t mean that in terms of security, but in terms of customer service and technical support. Dotster, as a registrar, was just not up to the task of being a good Web host. I’ve heard similar comments about GoDaddy (another registrar) when it comes to hosting, and I just think it’s a good policy not to use a registrar for Web hosting. There’s really no need to use the same company for both, anyway. I would also not be inclined to use my Internet Service Provider as a host. The rule of thumb is this: when it comes to finding Web hosting, use a company that only does hosting!</p><p>Recently, Scott had emailed me (all the way from Alaska!) about a problem he had discovered through his GoDaddy! shared hosting account. Scott realized one day that he could, using his FTP application, see all the other client directories. This means he was able to see all the client names, which is a fairly bad security hole as those names are likely to be used for access to the server and as the basis of database users.</p><p>If you know about <a
href="http://www.larryullman.com/2011/10/21/what-is-larry-thinking-46-javascript-sexism-and-bad-user-interface/#qa">security permissions</a>, you know that a client directory is owned by the client, and so Scott wouldn’t have been able to browse through those other directories (not that he would have, anyway). However, if those clients have any files or folders with open permissions on them, then Scott could have seen them (had he wanted to). When you think about it, with any open-source piece of software, there’s a clearly-known structure involved. With WordPress in particular, it’s easily known that the <strong>wp-config.php</strong> file, found in the root Web directory, defines a the site’s database access information. During the WordPress installation process, this file needs to have open permissions, so that the installer can write to it. The permissions need to be closed up after the installation is complete. If someone installed WordPress and failed to change the permissions afterward, that configuration file would be readable by someone in Scott’s position, even if the parent client directory wasn’t otherwise readable! In other words, anyone with a Go Daddy! account can get access to anyone’s database if the person installed WordPress and made the simple, beginner’s mistake of not correcting the permissions after the installation.</p><p>Even if a person does fix those permissions, it’s standard to make the <strong>wp-content</strong> directory world-writable, so that WordPress can upload files there. This is an even bigger concern, as anyone on the Go Daddy! server could copy a PHP script to that directory and then execute that script in the Web browser, doing all kinds of damage.</p><p>The mere visibility of other client directories on a server is a terrible security hole, one that Scott responsibly pointed out to GoDaddy! hoping they would correct it. Thus far, they’ve given him what seems like a bogus response. Again, I’m not saying that you should never use shared hosting—it’s a logical choice for many people, but one has to be aware of the potential security implications. And to start, you should probably check to make sure you can’t see any folders outside of your client directory on the server, because if you can, that means other people on the server can see your directory, too.</p><p>Thanks to Scott for sharing this information with me, so that I could pass it along!</p><h2 id="bookgiveawayphpandmysqlfordynamicwebsites:visualquickproguide4thedition">Book Giveaway =&gt; “PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide” (4th Edition)</h2><p>There was a nice response, again, to my second giveaway of the fourth edition of my “PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide” book, published in September. Thanks to everyone for their interest. I have no contacted all the winners and I should be mailing out those books this week.</p><h2 id="larryullmansbooknewsmodernjavascript:developanddesign">Larry Ullman’s Book News =&gt; “Modern JavaScript: Develop and Design”</h2><p>The short version of the update (see the <a
href="http://www.larryullman.com/2011/12/08/another-modern-javascript-develop-and-design-update/">aforementioned blog posting</a> for the longer version) on “Modern JavaScript: Develop and Design” is that I just submitted Chapter 10, which means I’m about two-thirds done, with maybe five or six chapters left. I’ve also done the rewrites on the first four chapters and the first two chapters have been laid out as PDFs (which is the next step before being printed). By the time I send this newsletter out, I’ll be about halfway through the rough draft of Chapter 11, on Ajax.</p><p>I’m still way, way behind schedule, but I really do think the book is turning out well, which is the most important thing. Hopefully those of you that have been wanting this book will feel that way, too.</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2011/12/16/what-is-larry-thinking-48-the-philosophy-issue/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Another &#8220;Modern JavaScript: Develop and Design&#8221; Update</title><link>http://www.larryullman.com/2011/12/08/another-modern-javascript-develop-and-design-update/</link> <comments>http://www.larryullman.com/2011/12/08/another-modern-javascript-develop-and-design-update/#comments</comments> <pubDate>Fri, 09 Dec 2011 02:56:58 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[JavaScript]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=2909</guid> <description><![CDATA[I last posted an update on my forthcoming JavaScript book, Modern JavaScript: Develop and Design, just over two months ago, so it&#8217;s high time I posted another update. Of course, I&#8217;ve been working so hard on the book that I haven&#8217;t done a very good job of putting out regular, good blog posts in the interim. [...]]]></description> <content:encoded><![CDATA[<p>I last posted an update on my forthcoming JavaScript book, <em>Modern JavaScript: Develop and Design</em>, just over two months ago, so it&#8217;s high time I posted another update. Of course, I&#8217;ve been working so hard on the book that I haven&#8217;t done a very good job of putting out regular, good blog posts in the interim. Still, here&#8217;s where things stand&#8230;</p><p>The good news is that I just submitted the first draft of Chapter 10, &#8220;Working with Forms.&#8221; Although forms have been used to some degree since Chapter 2, &#8220;JavaScript in Action,&#8221; this chapter rounds out the knowledge of forms with respect to JavaScript. The chapter worked out much like a &#8220;recipe&#8221; type of chapter, with discussions of common tasks plus specific code for performing that task. Some of the examples are:</p><ul><li>Inline error messages</li><li>Tooltips</li><li>Creating a master checkbox (that toggles a group of other checkboxes)</li><li>Linked select menus</li><li>Enabling/disabling submit buttons</li></ul><p>The chapter also covers regular expressions, with a focus on validation. Because  regular expressions are complicated, and there&#8217;s already a lot of material in the book, I tried to keep the coverage as accessible as possible, without going into too much high-end stuff. The chapter ends with a good and realistic form validation example that combines most of the above.</p><p>Before Chapter 10, I finished Chapter 9, &#8220;JavaScript and the Browser,&#8221; and Chapter 8, &#8220;Event Handling&#8221;. Chapter 9 in particular was quite long. But now that I&#8217;ve covered events in detail, plus DOM manipulation, CSS interactions, and so forth, the possibilities have greatly expanded when it comes to what examples I can use, which makes writing the book easier and more rewarding. By this point in the book, the reader has also created a couple of mini-libraries that make things like event handler registration easy and cross-browser compliant. The book is continuing to emphasize&#8211;and demonstrate&#8211;<em>progressive enhancement</em> along the way.</p><p>I&#8217;ve also done the rewrites on the first four chapters and have seen the PDF layouts for the first two. This is my first full-color book and it looks great. Unfortunately, as seems to always happen with me, the page counts are coming back quite high. Between that and how grossly behind schedule I am, I&#8217;ll have to make some decisions as to what to keep in Part 3 of the book. Part 2 of the book, which is the meat, has two more chapters remaining: Ajax (Chapter 11) and Debugging and Error Handling (12). Part 3 of the book will definitely have one chapter on frameworks and another on advanced JavaScript programming. There will be at least one more chapter, but I&#8217;m not sure what that will be. Possible candidates are:</p><ul><li>HTML5</li><li>Mobile Development</li><li>An example chapter of PHP and JavaScript</li></ul><p>I&#8217;ve already decided not to do the server-side JavaScript chapter, as I don&#8217;t think that many people are doing server-side JavaScript yet, at least not among those that would be reading this book.</p><p>As always, if there&#8217;s not space to put something in the book, I&#8217;ll probably end up writing about those subjects here, or as articles elsewhere (so you&#8217;ll still get all the important content, you just won&#8217;t have to pay for it).</p><p>So that&#8217;s where things stand. Thanks to everyone for their interest in the book. Now I&#8217;m off to write Chapter 11!</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2011/12/08/another-modern-javascript-develop-and-design-update/feed/</wfw:commentRss> <slash:comments>13</slash:comments> </item> <item><title>Programming Video Courses</title><link>http://www.larryullman.com/2011/12/04/programming-video-courses/</link> <comments>http://www.larryullman.com/2011/12/04/programming-video-courses/#comments</comments> <pubDate>Mon, 05 Dec 2011 02:52:16 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[C and C++]]></category> <category><![CDATA[JavaScript]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[Ruby]]></category> <category><![CDATA[Web Development]]></category> <category><![CDATA[programming]]></category> <category><![CDATA[video]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=2885</guid> <description><![CDATA[I&#8217;ve recently come across a couple of free, public programming courses, as a series of videos, that may be of interest to those of you out there (I haven&#8217;t had the time to view many of the individual episodes, but they look promising). The first is an Introduction to Computer Science and Programming, from an [...]]]></description> <content:encoded><![CDATA[<p>I&#8217;ve recently come across a couple of free, public programming courses, as a series of videos, that may be of interest to those of you out there (I haven&#8217;t had the time to view many of the individual episodes, but they look promising).</p><p>The first is an <a
href="http://academicearth.org/courses/introduction-to-computer-science-and-programming">Introduction to Computer Science and Programming</a>, from an instructor at MIT. It&#8217;s definitely for beginners and although it uses Python as its primary language, the goal is to convey the fundamentals and the theories involved. It probably gets a bit too high-end for some, but worth taking a gander at regardless.</p><p>The second series is <a
href="http://proglit.com/core-units/">programming literacy&#8217;s Core units</a>. This series is much more broad and covers a range of languages and topics. As I write this, the first six units have been completed and are available as YouTube videos, with downloadable PDFs (and other formats) for the slides and notes. On the other hand, the last one was finished about 20 months ago, so there may never be more in the series. Still, it&#8217;s approachable and I like that the materials are available for viewing separately. And the price is right!</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2011/12/04/programming-video-courses/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> </channel> </rss>
<!-- Served from: www.larryullman.com @ 2012-02-09 15:22:47 by W3 Total Cache -->
