<?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; Mac OS X</title> <atom:link href="http://www.larryullman.com/category/mac-os-x/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>MAMP Pro Sale</title><link>http://www.larryullman.com/2011/08/05/mamp-pro-sale/</link> <comments>http://www.larryullman.com/2011/08/05/mamp-pro-sale/#comments</comments> <pubDate>Fri, 05 Aug 2011 13:48:42 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[Mac OS X]]></category> <category><![CDATA[MySQL]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[Web Development]]></category> <category><![CDATA[mamp]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=2717</guid> <description><![CDATA[I don&#8217;t normally do this kind of thing, but I saw a deal today at MacUpdate Promo, which is 58% off of MAMP Pro. In US dollars, that brings the price from $59 down to $25. If you were ever considering paying for the pro version of MAMP, today&#8217;s the day! Unfortunately the offer ends [...]]]></description> <content:encoded><![CDATA[<p>I don&#8217;t normally do this kind of thing, but I saw a deal today at <a
href="http://www.mupromo.com/">MacUpdate Promo</a>, which is <a
href="http://www.mupromo.com/deal/1592/7024/mamp-pro">58% off of MAMP Pro</a>. In US dollars, that brings the price from $59 down to $25. If you were ever considering paying for the pro version of <a
href="http://www.mamp.info/en/index.html">MAMP</a>, today&#8217;s the day! Unfortunately the offer ends shortly, but hopefully some people will be able to take advantage of it. (And, no, I&#8217;m not affiliated with either MacUpdate or MAMP).</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2011/08/05/mamp-pro-sale/feed/</wfw:commentRss> <slash:comments>1</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>UTC and Time Zone Support in MySQL</title><link>http://www.larryullman.com/2011/05/27/utc-and-time-zone-support-in-mysql/</link> <comments>http://www.larryullman.com/2011/05/27/utc-and-time-zone-support-in-mysql/#comments</comments> <pubDate>Fri, 27 May 2011 03:29:29 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[Mac OS X]]></category> <category><![CDATA[MySQL]]></category> <category><![CDATA[time zone]]></category> <category><![CDATA[timezone]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=2582</guid> <description><![CDATA[I&#8217;m currently working on the fourth edition of my &#8220;PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide&#8221; book, due out later this summer. In it, I discuss how to effectively use MySQL&#8217;s support for time zones. Specifically, there&#8217;s an argument to be made for storing dates using Coordinated Universal Time (strangely enough, abbreviated [...]]]></description> <content:encoded><![CDATA[<p>I&#8217;m currently working on the fourth edition of my &#8220;PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide&#8221; book, due out later this summer. In it, I discuss how to effectively use MySQL&#8217;s support for time zones. Specifically, there&#8217;s an argument to be made for storing dates using <em>Coordinated Universal Time</em> (strangely enough, abbreviated <em>UTC</em>). UTC is commonly the same time as Greenwich Mean Time (GMT), except during the summer when the UK is an hour ahead of UTC. And that&#8217;s the point of using UTC: storing times (and therefore dates) in a format indifferent to any particular time zone. By comparison, my forum software or my blogging software may likely be storing times using the local time zone for the server. That may not seem like a problem until I move the site from one server to another in a another time zone, thereby introducing a disparity in the times. How critical of an issue is that? Well, it depends upon the application, but there&#8217;s an easy fix: storing times and dates in UTC.</p><p>As I write in the book, three things are required to use UTC. You do not have to change anything about the column that&#8217;s storing the date and time, but you do have to change how you <strong>INSERT</strong> or <strong>UPDATE</strong> records. Instead of using the <strong>NOW()</strong> function to get the current timestamp, you&#8217;ll want to use <a
href="http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_utc-timestamp">UTC_TIMESTAMP()</a>. You can alternatively use <a
href="http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_utc-date">UTC_DATE()</a> and <a
href="http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_utc-time">UTC_TIME()</a>, to just return the current UTC date or time, respectively. That&#8217;s the first step.</p><p>Presumably, even though the times are being stored as UTC, you&#8217;ll probably want to present them using another time zone. (In the book the specific example converts all times to the user&#8217;s selected time zone.) To convert from one time zone to another, use MySQL&#8217;s <a
href="http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_convert-tz">CONVERT_TZ()</a> function. Its first argument is the date and time being converted; the second argument is the original time zone; and, the third argument is the destination time zone. For example, to convert the posted column from UTC to Sydney, Australia&#8217;s time zone, you&#8217;d use <strong>CONVERT_TZ(posted, &#8216;UTC&#8217;, &#8216;Australia/Sydney&#8217;)</strong>.</p><p>The third thing you&#8217;ll need to do is <a
href="http://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html">install time zone support in MySQL</a>. In other words, the MySQL database needs to be notified of all the time zones that exist and what their offsets are (from UTC). If you don&#8217;t take this step, the <strong>CONVERT_TZ()</strong> function will return NULL values for every conversion. How you install the time zones depends upon your OS. If you&#8217;re using Windows, you&#8217;ll want to <a
href="http://dev.mysql.com/downloads/timezones.html">download the time zone description tables from MySQL&#8217;s Web site</a>. The download contains the files that correspond to the time zone tables. You just need to shut down MySQL, unzip the downloaded files, and copy/move them to the folder that represents the <strong>mysql</strong> database.</p><p>If you&#8217;re using most versions of Unix, including Mac OS X, the operating system itself has time zone definitions built in, and those should be used to populate MySQL&#8217;s tables. The most likely location of the system&#8217;s time zone files is <strong>/usr/share/zoneinfo</strong>. After you&#8217;ve confirmed the directory exists, you can populate the time zone tables in the database by executing the <strong>mysql_tzinfo_to_sql</strong> script that comes with MySQL:</p><pre class="brush: bash; title: ; notranslate">mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql</pre><p>That would be executed from a command line interface, of course, and you&#8217;d need to enter the (MySQL) root user password when prompted.</p><p>When I executed this command on my Mac, I saw an odd error:</p><blockquote><p><em>Warning: Unable to load &#8216;/usr/share/zoneinfo/+VERSION&#8217; as time zone. Skipping it. </em></p></blockquote><p><em></em>What the what? The problem occurred because in the <strong>zoneinfo</strong> folder, the very first file, named <strong>+VERSION</strong>, indicated the <em>zoneinfo</em> version. This, of course, was not a time zone file, so when the MySQL script encountered it, it didn&#8217;t know how to handle the file and therefore just terminated the import. After deleting (or temporarily moving) the <strong>+VERSION</strong> file from the <strong>zoneinfo</strong> directory, I was able to install the time zones in MySQL without a problem. Well, actually, a handful of warnings popped up for a few unusable time zones, but the other 568 time zones imported just fine (yes, who knew there were 568 time zones?).</p><p>And that&#8217;s all it takes to use UTC in MySQL. But do note that you&#8217;ll occasionally need to update the time zone tables, as the particulars of time zones do change, albeit rarely.</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2011/05/27/utc-and-time-zone-support-in-mysql/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Quicksilver for the Mac is Back!</title><link>http://www.larryullman.com/2011/04/26/quicksilver-for-the-mac-is-back/</link> <comments>http://www.larryullman.com/2011/04/26/quicksilver-for-the-mac-is-back/#comments</comments> <pubDate>Tue, 26 Apr 2011 17:29:31 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[Mac OS X]]></category> <category><![CDATA[quicksilver]]></category> <category><![CDATA[utilities]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=2512</guid> <description><![CDATA[For years I was a devotee of Quicksilver, an application launcher and power utility for Mac OS X. And I was not alone: Quicksilver was such an excellent product that the developer got hired by Google to create a similar application for them. Despite Quicksilver&#8217;s source code being available, the project languished. Bugs created by [...]]]></description> <content:encoded><![CDATA[<p>For years I was a devotee of <a
href="http://www.blacktree.com/">Quicksilver</a>, an application launcher and power utility for Mac OS X. And I was not alone: Quicksilver was such an excellent product that the developer got hired by Google to create a similar application for them. Despite Quicksilver&#8217;s source code being available, the project languished. Bugs created by the Snow Leopard operating system (or maybe just Leopard) led me, and many others, to finally give up on Quicksilver, begrudgingly, and turn to alternative products (I went back to what I was using before Quicksilver: <a
href="http://www.obdev.at/products/launchbar/index.html">Launchbar</a>, with which I&#8217;m still quite pleased).</p><p>Well, I&#8217;m thrilled to say that Quicksilver is back! In fact, a new release, b59 went out on April 24th. Quicksilver now has a new Web site, at <a
href="http://qsapp.com/">QSapp.com</a>, and a corresponding blog at <a
href="http://lovequicksilver.com/">LoveQuicksilver.com</a>. Quicksilver is still free, with tons of plug-ins, many of which have been recently updated.</p><p>If you&#8217;re using a Mac, and aren&#8217;t already familiar with Quicksilver, Launchbar, or <a
href="http://www.alfredapp.com/">Alfred</a>, you owe it to yourself to check one or more of them out. It&#8217;s totally diminishing to label these applications as just a launchers, although that&#8217;s the easiest label to apply. You can launch applications with these programs, or open files, but you can also do thinks such as: perform arithmetic, send emails, move and copy files and folders, and much more.</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2011/04/26/quicksilver-for-the-mac-is-back/feed/</wfw:commentRss> <slash:comments>0</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>MAMP Pro</title><link>http://www.larryullman.com/2010/09/11/mamp-pro/</link> <comments>http://www.larryullman.com/2010/09/11/mamp-pro/#comments</comments> <pubDate>Sat, 11 Sep 2010 01:31:16 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[Mac OS X]]></category> <category><![CDATA[MySQL]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[Web Development]]></category> <category><![CDATA[mamp]]></category> <category><![CDATA[server]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=1267</guid> <description><![CDATA[I primarily use a Mac for everything I do (and by &#8220;primarily&#8221; I mean just about 99.9% of the time), and have for years. I&#8217;m not trying to start an argument over the best computer, I&#8217;m just saying I like the Mac. One of the main reasons I prefer Macs is that it&#8217;s Unix (based [...]]]></description> <content:encoded><![CDATA[<p>I primarily use a Mac for everything I do (and by &#8220;primarily&#8221; I mean just about 99.9% of the time), and have for years. I&#8217;m not trying to start an argument over the best computer, I&#8217;m just saying I like the Mac. One of the main reasons I prefer Macs is that it&#8217;s Unix (based on Free BSD, since the creation of Mac OS X) without being too Unix-y. For many people I know and work with—great with computers but not a geek, it&#8217;s easy to appreciate the nice interface and reliability and features and so forth, without an awareness of the underlying Unix stuff. For me, who regularly works with Web servers, I can do anything on my personal computer just the same as I can on a Web server. When I develop projects on my computer, transferring them to a Web server is completely smooth process. But why is this post about <a
href="http://mamp.info/en/mamp-pro/index.html">MAMP Pro</a>?</p><p>For years, Mac OS X was a 32-bit operating system with a 32-bit version of Apache included. When Mac OS X went to 64-bit, a couple of years back, it started including the 64-bit Apache, too. This caused some problems with PHP, because PHP wasn&#8217;t ready as a 64-bit version (or, more specifically, some of the libraries PHP uses weren&#8217;t 64-bit ready). Like many people on a Mac, I used <a
href="http://www.entropy.ch/software/macosx/php/">Marc&#8217;s PHP installer</a> to update my version of PHP, rather than build my own (with some exceptions, like when I wanted to play with PHP 6). So, for some time, it was challening getting PHP to play along nicely with Apache on Mac OS X (one option was to tell Mac OS X to run the 32-bit Apache by default). It&#8217;s at this time that I started using <a
href="http://mamp.info/">MAMP</a>.</p><p>MAMP is a all-in-one MySQL, PHP, and Apache installer for Mac OS X (for Windows, <a
href="http://www.apachefriends.org/en/xampp-windows.html">XAMPP</a> is the most common equivalent). In my opinion, there are three great things about MAMP:</p><ul><li>It just works.</li><li>It doesn&#8217;t conflict with the built-in Apache.</li><li>It&#8217;s free.</li></ul><p>Really, my only complaint is that MAMP doesn&#8217;t, by default, store the databases in a separate directory. If MAMP were to store the databases (MySQL and SQLite) elsewhere, upgrading the version of MAMP wouldn&#8217;t overwrite the existing databases. This isn&#8217;t a big problem, but would be a nice feature to use. (Conversely, it&#8217;s easy in MAMP to use a different directory for the Web files; I use the <strong>Sites</strong> folder in my home directory, which is more in keeping with the standard of not putting user files in <strong>/Applications</strong>.)</p><p>MAMP comes in a free version that I&#8217;ve been using, happily, for years. I&#8217;ve thought about upgrading to the Pro version off and on, but, when looking at the features, didn&#8217;t see the need. One feature MAMP Pro offers is the ability to use dynamic DNS to serve your sites from your computer, even if your IP address changes regularly (which is the case for most home access). This is not something I do or recommend others do (at the very least, it&#8217;s probably a violation of most ISP&#8217;s terms). But just the other day I needed a Web site to actually send out email, even while testing it on my computer. I came across a quick fix for MAMP (non-Pro) but that didn&#8217;t work for me. So I finally upgraded to MAMP Pro, which I really had intended to do by now anyway (as an act of supporting a product that I value that&#8217;s made available for free).</p><p>It turns out that I&#8217;m so glad I upgraded to MAMP Pro. The cost was $59 (US), which was slightly high, but not unreasonable. MAMP Pro is does not install a new or different version of Apache, PHP, or MySQL, it&#8217;s just a nicer interface to the MAMP installation. That may not sound significant, but the interface let&#8217;s you control MAMP more easily. For example, the basic MAMP interface looks like this, plus its moderate preferences panel:</p><div
id="attachment_1276" class="wp-caption aligncenter" style="width: 310px"><a
href="http://cloudfront.larryullman.com/wp-content/uploads/2010/09/Screen-shot-2010-09-10-at-9.14.10-PM.png"><img
class="size-medium wp-image-1276" title="MAMP Standard Interface" src="http://cloudfront.larryullman.com/wp-content/uploads/2010/09/Screen-shot-2010-09-10-at-9.14.10-PM-300x252.png" alt="MAMP Standard Interface" width="300" height="252" /></a><p
class="wp-caption-text">MAMP Standard Interface</p></div><div
id="attachment_1277" class="wp-caption aligncenter" style="width: 310px"><a
href="http://cloudfront.larryullman.com/wp-content/uploads/2010/09/Screen-shot-2010-09-10-at-9.14.25-PM.png"><img
class="size-medium wp-image-1277" title="MAMP Standard Preferences" src="http://cloudfront.larryullman.com/wp-content/uploads/2010/09/Screen-shot-2010-09-10-at-9.14.25-PM-300x197.png" alt="MAMP Standard Preferences" width="300" height="197" /></a><p
class="wp-caption-text">MAMP Standard Preferences</p></div><p>The MAMP Pro interface has many more options. The highlights are:</p><ul><li>Quickly enabling outgoing mail (even if using a custom SMTP server)</li><li>Dynamic DNS, as already mentioned (not that I&#8217;ll use it)</li><li>Fine control over all logs, including an easy way to view them (great debugging feature!)</li><li>Checkboxes for enabling/disabling Apache modules</li><li>And more</li></ul><div
id="attachment_1282" class="wp-caption aligncenter" style="width: 310px"><a
href="http://cloudfront.larryullman.com/wp-content/uploads/2010/09/Screen-shot-2010-09-10-at-9.16.33-PM.png"><img
class="size-medium wp-image-1282" title="MAMP Pro Interface" src="http://cloudfront.larryullman.com/wp-content/uploads/2010/09/Screen-shot-2010-09-10-at-9.16.33-PM-300x271.png" alt="MAMP Pro Interface" width="300" height="271" /></a><p
class="wp-caption-text">MAMP Pro Interface</p></div><p>But what MAMP Pro does, which I was unaware of but appreciate most, is make it really easy to create virtual hosts. I&#8217;m frequently working on multiple Web sites at one time. With MAMP standard, to switch back and forth, I had to go into the MAMP panel and change the server directory, then restart MAMP. And when I went to look at another site, I had to repeat this process. With MAMP Pro I just create virtual hosts: <em>somesite1</em> points to this directory; <em>somesite2</em> points to this one, etc. Then I just go to <span
style="text-decoration: underline;">http://somesite1:8888 </span>in my Web browser or <span
style="text-decoration: underline;">http://somesite2:8888</span>, etc.</p><div
id="attachment_1279" class="wp-caption aligncenter" style="width: 310px"><a
href="http://cloudfront.larryullman.com/wp-content/uploads/2010/09/Screen-shot-2010-09-10-at-9.16.42-PM.png"><img
class="size-medium wp-image-1279" title="MAMP Pro Virtual Hosts" src="http://cloudfront.larryullman.com/wp-content/uploads/2010/09/Screen-shot-2010-09-10-at-9.16.42-PM-300x271.png" alt="MAMP Pro Virtual Hosts" width="300" height="271" /></a><p
class="wp-caption-text">MAMP Pro Virtual Hosts</p></div><p>For each virtual host, I can also tweak the server settings:</p><div
id="attachment_1280" class="wp-caption aligncenter" style="width: 310px"><a
href="http://cloudfront.larryullman.com/wp-content/uploads/2010/09/Screen-shot-2010-09-10-at-9.16.47-PM.png"><img
class="size-medium wp-image-1280" title="MAMP Pro Virtual Hosts Settings" src="http://cloudfront.larryullman.com/wp-content/uploads/2010/09/Screen-shot-2010-09-10-at-9.16.47-PM-300x271.png" alt="MAMP Pro Virtual Hosts Settings" width="300" height="271" /></a><p
class="wp-caption-text">MAMP Pro Virtual Hosts Settings</p></div><p>This is very useful and it makes me wish I had purchased MAMP Pro a long time ago (and no, I&#8217;m not getting paid by MAMP to say this; I have no relationship with them at all). To be clear, MAMP Pro is just a sophisticated interface and there&#8217;s nothing that MAMP Pro can do that you can&#8217;t do yourself by editing the proper configuration files, going into the command line, etc. These days, for me, I&#8217;d rather spend the $59 (US) and have something working the way I need it to, quickly and easily, then to spend a frustrating hour trying to get the right syntax to work in a configuration file.</p><p>I consider myself to be pretty cheap, preferring not to spend money if at all possible (my policy is: the money I don&#8217;t spend today is money I&#8217;ll have not to spend tomorrow). But sometimes it&#8217;s worth it to part with some cash. I just learned that MAMP Pro is one of those times.</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2010/09/11/mamp-pro/feed/</wfw:commentRss> <slash:comments>14</slash:comments> </item> <item><title>100 Incredibly Useful &amp; Free Mac Apps &#124; Mac.AppStorm</title><link>http://www.larryullman.com/2010/08/06/100-incredibly-useful-free-mac-apps-mac-appstorm/</link> <comments>http://www.larryullman.com/2010/08/06/100-incredibly-useful-free-mac-apps-mac-appstorm/#comments</comments> <pubDate>Fri, 06 Aug 2010 19:31:53 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[Mac OS X]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=1183</guid> <description><![CDATA[I&#8217;ve recently StumbledUpon just about the best list of free Mac software I&#8217;ve ever seen: 100 Incredibly Useful &#38; Free Mac Apps by Mac.AppStorm. Very well organized, this list includes many apps that I&#8217;ve not heard of but have since added to my computer. If you scroll through the comments, you&#8217;ll find some more recommendations, [...]]]></description> <content:encoded><![CDATA[<p>I&#8217;ve recently StumbledUpon just about the best list of free Mac software I&#8217;ve ever seen: <a
href="http://mac.appstorm.net/roundups/100-incredibly-useful-free-mac-apps/">100 Incredibly Useful &amp; Free Mac Apps by Mac.AppStorm</a>. Very well organized, this list includes many apps that I&#8217;ve not heard of but have since added to my computer. If you scroll through the comments, you&#8217;ll find some more recommendations, including several strong recommendations for <a
href="http://www.alfredapp.com/">Alfred</a>, as a QuickSilver replacement (as much as I loved QuickSilver, I&#8217;ve since returned to using <a
href="http://www.obdev.at/products/launchbar/index.html">LaunchBar</a>, as QuickSilver isn&#8217;t quite reliable on Snow Leopard).</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2010/08/06/100-incredibly-useful-free-mac-apps-mac-appstorm/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>BumpTop, a Snazzy Desktop Application</title><link>http://www.larryullman.com/2010/04/01/bumptop-a-snazzy-desktop-application/</link> <comments>http://www.larryullman.com/2010/04/01/bumptop-a-snazzy-desktop-application/#comments</comments> <pubDate>Thu, 01 Apr 2010 01:19:20 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[Mac OS X]]></category> <category><![CDATA[desktop]]></category> <category><![CDATA[software]]></category> <category><![CDATA[ui]]></category> <category><![CDATA[windows]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=1000</guid> <description><![CDATA[I recently StumbledUpon BumpTop, a commercial product that greatly changes (dare I say &#8220;revolutionizes&#8221;?) how you use your computer&#8217;s desktop. It runs on both Windows and Mac OS X and is quite reasonably priced. The best way to get a sense of BumpTop is to watch the videos available at their site. It&#8217;s just cool.]]></description> <content:encoded><![CDATA[<p>I recently <a
href="http://www.stumbleupon.com">StumbledUpon</a> <a
href="http://bumptop.com/">BumpTop</a>, a commercial product that greatly changes (dare I say &#8220;revolutionizes&#8221;?) how you use your computer&#8217;s desktop. It runs on both Windows and Mac OS X and is quite reasonably priced. The best way to get a sense of BumpTop is to watch the videos available at their site. It&#8217;s just cool.</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2010/04/01/bumptop-a-snazzy-desktop-application/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Alkaline Browser Testing for Macs</title><link>http://www.larryullman.com/2009/05/09/alkaline-browser-testing-for-macs/</link> <comments>http://www.larryullman.com/2009/05/09/alkaline-browser-testing-for-macs/#comments</comments> <pubDate>Sat, 09 May 2009 05:51:15 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[Mac OS X]]></category> <category><![CDATA[Web Development]]></category> <category><![CDATA[software]]></category> <category><![CDATA[utilities]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=411</guid> <description><![CDATA[I came across a product called Alkaline the other day, put out by Litmus. Alkaline is a Mac application that allows you to test a Web site on up to 17 different Windows browsers. It&#8217;s much like a Windows-specific version of BrowserShots, but guaranteed to always return quick results and with a few bonus features [...]]]></description> <content:encoded><![CDATA[<p>I came across a product called <a
href="http://litmusapp.com/alkaline/">Alkaline</a> the other day, put out by <a
href="http://litmusapp.com/">Litmus</a>. Alkaline is a Mac application that allows you to test a Web site on up to 17 different Windows browsers. It&#8217;s much like a Windows-specific version of <a
href="http://browsershots.org/">BrowserShots</a>, but guaranteed to always return quick results and with a few bonus features such as plug-ins that work with common text editors and IDE&#8217;s like <a
href="http://macromates.com/">TextMate</a> or <a
href="http://www.panic.com/coda/">Coda</a>. For more, check out <a
href="http://litmusapp.com/alkaline/screencast">this screencast</a>. You should also check out BrowserShots, if you haven&#8217;t already. For the occassional browser test, BrowserShots is fantastic. For more frequent and reliable Windows tests, you may find that Alkaline is worth the money (they have a free version, a day pass, or different subscription rates).</p><p>Litmus also makes an application for testing how a newsletter will look in different email clients.</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2009/05/09/alkaline-browser-testing-for-macs/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Enabling SSL on Mac OS X Leopard</title><link>http://www.larryullman.com/2009/03/06/enabling-ssl-on-mac-os-x-leopard/</link> <comments>http://www.larryullman.com/2009/03/06/enabling-ssl-on-mac-os-x-leopard/#comments</comments> <pubDate>Fri, 06 Mar 2009 15:08:35 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[Mac OS X]]></category> <category><![CDATA[Web Development]]></category> <category><![CDATA[apache]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=326</guid> <description><![CDATA[Sometime ago I was asked by someone in the forums if I could assist in setting up SSL on Mac OS X Leopard to enable HTTPS connections. The good news is that after a huge delay, I was able to get this to work, without that much effort. The bad news is that I accomplished [...]]]></description> <content:encoded><![CDATA[<p>Sometime ago I was asked by someone in the <a
href="http://www.larryullman.com/forum/">forums</a> if I could assist in setting up SSL on Mac OS X Leopard to enable HTTPS connections. The good news is that after a huge delay, I was able to get this to work, without that much effort. The bad news is that I accomplished this over two different attempts, so my notes may not be foolproof. And, um, I&#8217;ve already slightly reconfigured my Apache, so that might come into play. Anyway&#8230;</p><p>So follow these instructions to make this work. If you have any questions or problems, you can post a comment at the end of this article. In order to pull this off, you will need an administrative password for your computer, a text editor, and the Terminal application. If the Terminal scares you, you probably shouldn&#8217;t do this.<span
id="more-326"></span></p><p>I will also say in advance, though, that if you want the easiest, most reliable way to get HTTPS working on Mac OS X Leopard, the answer is either <a
href="http://www.mamp.info/en/index.html">MAMP</a> or <a
href="http://www.apachefriends.org/en/xampp-macosx.html">XAMPP</a>, both of which are all-in-one <strong>M</strong>ac OS X, <strong>A</strong>pache, <strong>P</strong>HP, and <strong>M</strong>ySQL packages (aka <em>MAMP</em>). Both are excellent, supremely easy to install, and work without issue (that I know of). To be absolutely clear about my recommendation here, I now personally use either MAMP or XAMPP for all of my Web installs on Mac OS X Leopard and I&#8217;m quite capable of installing this stuff from the source code.</p><p>If you want a little background on this, part of the problem is that Leopard includes both 32-bit and 64-bit versions of Apache. If you have a Mac Book Pro, then you have a 64-bit Intel processor, meaning Apache is running in 64-bit mode. Which means that everything must be compiled in 64-bit mode, which can be extremely problematic. (This may apply to other Macs; I don&#8217;t know off the top of my head which ones are using 64-bit Intel processors and which aren&#8217;t.) All that being said, here&#8217;s what I did&#8230;</p><p>Using my Mac Book Pro running Mac OS X Leopard 10.5.6, I started by generating the certificate keys. To do so, I followed the <a
href="http://developer.apple.com/internet/serverside/modssl.html">instructions found on Apple&#8217;s Web site</a>. Follow those instructions exactly, up to this line:</p><pre class="brush: bash; title: ; notranslate">sudo apachectl stop</pre><p>You should not execute that line, although it really doesn&#8217;t matter (it just stops the Apache Web server). At this point, in the <strong>/etc/apache2/ssl.key</strong> folder you should have a bunch of files, which are the keys and certificates and other junk created using those instructions.</p><p>Next, you&#8217;ll need to open <strong>/etc/apache2/httpd.conf</strong> in a text editor or IDE. In the Terminal, you can start by making a backup copy:</p><pre class="brush: bash; title: ; notranslate">cd /etc/apache2
sudo cp httpd.conf httpd.conf.backup</pre><p>Then you can open the file using a Terminal text editor like <em>pico</em> (although I prefer <em>vi</em>):</p><pre class="brush: bash; title: ; notranslate">sudo pico httpd.conf</pre><p>Of course you&#8217;ll need to enter the administrator&#8217;s password after the first time you use <em>sudo</em> (and after some minutes of inactivity).</p><p>To edit the file in a GUI text editor like <a
href="http://www.barebones.com">BBEdit</a>, <a
href="http://www.barebones.com">TextWrangler</a>, or <a
href="http://www.macromates.com">TextMate</a>, you can open the folder in the Finder by choosing <em>Go &gt; Go to Folder</em> and entering <em>/etc/apache2</em> in the prompt. This will open that folder in a Finder window, then you can drag the <strong>httpd.conf</strong> file onto the text editor to open it. (There are command line and other ways to open the file in a graphical app, but I&#8217;m trying to keep this relatively simple.)</p><p>In the httpd.conf file, find the line that says</p><pre class="brush: plain; title: ; notranslate">LoadModule ssl_module libexec/apache2/mod_ssl.so</pre><p>and make sure it does not have a <strong>#</strong> at the front of it. If it does, that means the line is commented-out, making that module inactive.</p><p>Go a little bit further down and remove the # from in front of:</p><pre class="brush: plain; title: ; notranslate">Include /private/etc/apache2/extra/httpd-ssl.conf&lt;</pre><p>That line includes the SSL configuration file. You can now save <strong>httpd.conf</strong> (you&#8217;ll likely need to enter the admin password at the prompt).</p><p>Next, open <strong>httpd-ssl.conf</strong>, found in the <strong>/etc/apache2/extra</strong> folder. (By the way, <strong>/etc/apache2</strong> and <strong>/private/etc/apache2</strong> are two references to the same thing.)</p><p>In the <strong>httpd-ssl.conf</strong> file, you need to edit two lines, indicating the location of the certficate and key. These two lines are a few lines apart.</p><pre class="brush: plain; title: ; notranslate">SSLCertificateFile /private/etc/apache2/ssl.key/server.crt</pre><pre class="brush: plain; title: ; notranslate">SSLCertificateKeyFile &quot;/private/etc/apache2/ssl.key/server.key&quot;</pre><p>If you followed the instructions on Apple&#8217;s Web site, then you use exactly those values. If you used different names for the certificate or the key, or stored them in a different directory, you&#8217;ll need to change these values accordingly.</p><p>That&#8217;s it there. Now save <strong>httpd-ssl.conf</strong> and close it (again, you&#8217;ll likely need to enter the admin&#8217;s password).</p><p>Now you can test how it worked. To do so, go to the Terminal and type:</p><pre class="brush: bash; title: ; notranslate">sudo apachectl configtest</pre><p>If it says <em>Syntax OK</em>, you&#8217;re good to go. If it gives an error, make a note of what it is and search the Web or post a question here.</p><p>If you got the <em>Syntax OK</em> message, you just need to restart Apache to make the changes take effect. If Apache is running, you can enter this at the Terminal:</p><pre class="brush: bash; title: ; notranslate">sudo apachectl graceful</pre><p>If Apache isn&#8217;t running, enter</p><pre class="brush: bash; title: ; notranslate">sudo apachectl stop</pre><p>Or you can use the System Preferences &gt; Sharing pane to start and stop Web Sharing.</p><p>Next, open your Web browser and go to <strong>https://localhost</strong> (note the &#8220;S&#8221; after <em>http</em>). Depending upon your browser, you&#8217;re most likely going to get an error message indicating that it&#8217;s not a real, valid, or secure certificate. That&#8217;s fine. You just need to tell the browser to trust that certificate. On Firefox 3.0.7, I clicked the link that said <em>Or you can add an exception</em>. Then I clicked <em>Add Exception&#8230;</em> Then clicked Get Certificate and Confirm Security Exception. The first two figures show steps 2 and 4. On Safari 3.2.1, I clicked <em>Show Certificate</em> then checked <em>Always trust</em>&#8230; and clicked <em>Continue</em> in the next prompt (see the last two figures).</p><a
href='http://www.larryullman.com/2009/03/06/enabling-ssl-on-mac-os-x-leopard/ssl2/' title='ssl2'><img
width="150" height="150" src="http://cloudfront.larryullman.com/wp-content/uploads/2009/03/ssl2-150x150.png" class="attachment-thumbnail" alt="ssl2" title="ssl2" /></a> <a
href='http://www.larryullman.com/2009/03/06/enabling-ssl-on-mac-os-x-leopard/ssl4/' title='ssl4'><img
width="150" height="150" src="http://cloudfront.larryullman.com/wp-content/uploads/2009/03/ssl4-150x150.png" class="attachment-thumbnail" alt="ssl4" title="ssl4" /></a> <a
href='http://www.larryullman.com/2009/03/06/enabling-ssl-on-mac-os-x-leopard/ssl5/' title='ssl5'><img
width="150" height="150" src="http://cloudfront.larryullman.com/wp-content/uploads/2009/03/ssl5-150x150.png" class="attachment-thumbnail" alt="ssl5" title="ssl5" /></a> <a
href='http://www.larryullman.com/2009/03/06/enabling-ssl-on-mac-os-x-leopard/ssl7/' title='ssl7'><img
width="150" height="150" src="http://cloudfront.larryullman.com/wp-content/uploads/2009/03/ssl7-150x150.png" class="attachment-thumbnail" alt="ssl7" title="ssl7" /></a><p>So that&#8217;s what worked for me. Hopefully this will work for you, should you decide to go this route.</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2009/03/06/enabling-ssl-on-mac-os-x-leopard/feed/</wfw:commentRss> <slash:comments>15</slash:comments> </item> </channel> </rss>
<!-- Served from: www.larryullman.com @ 2012-02-09 15:10:16 by W3 Total Cache -->
