<?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; ui</title> <atom:link href="http://www.larryullman.com/tag/ui/feed/" rel="self" type="application/rss+xml" /><link>http://www.larryullman.com</link> <description>Translating Geek Into English</description> <lastBuildDate>Mon, 21 May 2012 11:03:07 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <item><title>What Is Larry Thinking? #46 =&gt; JavaScript, Sexism, and Bad User Interface</title><link>http://www.larryullman.com/2011/10/21/what-is-larry-thinking-46-javascript-sexism-and-bad-user-interface/</link> <comments>http://www.larryullman.com/2011/10/21/what-is-larry-thinking-46-javascript-sexism-and-bad-user-interface/#comments</comments> <pubDate>Fri, 21 Oct 2011 05:22:00 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[JavaScript]]></category> <category><![CDATA[Web Development]]></category> <category><![CDATA[Amazon]]></category> <category><![CDATA[apple]]></category> <category><![CDATA[books]]></category> <category><![CDATA[file]]></category> <category><![CDATA[jsdd]]></category> <category><![CDATA[newsletter]]></category> <category><![CDATA[permissions]]></category> <category><![CDATA[security]]></category> <category><![CDATA[silk]]></category> <category><![CDATA[ui]]></category> <category><![CDATA[user interface]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=2845</guid> <description><![CDATA[In this edition… About This Newsletter What Are You Thinking? =&#62; Using JavaScript On the Web =&#62; Amazon Silk: A New Mobile Browser On the Web =&#62; Steve Jobs and Dennis Ritchie, in Memoriam On the Blog =&#62; Why There Are Few (No?) Good JavaScript Books Q&#38;A =&#62; Could You Explain File Permissions? What is [...]]]></description> <content:encoded><![CDATA[<p> In this edition…</p><ul><li><a
href="http://www.larryullman.com/2011/10/21/what-is-larry-thinking-46-javascript-sexism-and-bad-user-interface/#about">About This Newsletter</a></li><li><a
href="http://www.larryullman.com/2011/10/21/what-is-larry-thinking-46-javascript-sexism-and-bad-user-interface/#you">What Are You Thinking? =&gt; Using JavaScript</a></li><li><a
href="http://www.larryullman.com/2011/10/21/what-is-larry-thinking-46-javascript-sexism-and-bad-user-interface/#web1">On the Web =&gt; Amazon Silk: A New Mobile Browser</a></li><li><a
href="http://www.larryullman.com/2011/10/21/what-is-larry-thinking-46-javascript-sexism-and-bad-user-interface/#web2">On the Web =&gt; Steve Jobs and Dennis Ritchie, in Memoriam</a></li><li><a
href="http://www.larryullman.com/2011/10/21/what-is-larry-thinking-46-javascript-sexism-and-bad-user-interface/#blog">On the Blog =&gt; Why There Are Few (No?) Good JavaScript Books</a></li><li><a
href="http://www.larryullman.com/2011/10/21/what-is-larry-thinking-46-javascript-sexism-and-bad-user-interface/#qa">Q&amp;A =&gt; Could You Explain File Permissions?</a></li><li><a
href="http://www.larryullman.com/2011/10/21/what-is-larry-thinking-46-javascript-sexism-and-bad-user-interface/#thinking">What is Larry Thinking =&gt; Sexism and Bad User Interface</a></li><li><a
href="http://www.larryullman.com/2011/10/21/what-is-larry-thinking-46-javascript-sexism-and-bad-user-interface/#giveaway">Book Giveaway =&gt; &#8220;PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide&#8221; (4th Edition)</a></li><li><a
href="http://www.larryullman.com/2011/10/21/what-is-larry-thinking-46-javascript-sexism-and-bad-user-interface/#news">Larry Ullman&#8217;s Book News =&gt; &#8220;Modern JavaScript: Develop and Design&#8221;</a></li></ul><p> <span
id="more-2845"></span></p><h2 id="about">About This Newsletter</h2><p>Life is busy here and I&rsquo;m well behind schedule on all fronts, so this newsletter is getting out about a week to ten days late. I&rsquo;m taking consolation in the fact that I&rsquo;ve kept pretty close to a three-week schedule for the past year (about 15 newsletters sent in that time). Rather than blather on, let’s get on with the show!</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; Using JavaScript</h2><p>So I&rsquo;m working on my next book, &ldquo;Modern JavaScript: Develop and Design.&rdquo; As I write about in a blog post (also mentioned later in this newsletter), JavaScript is kind of a tricky language to write a book about, as a lot of information is required just to do a basic thing such as form validation. Like any of my books, I&rsquo;m working hard to use lots of good, real-world examples to demonstrate the new information being taught. Thus far, with two real code chapters in the bank, most examples are based upon form validation and data manipulation. These are obviously crucial uses of JavaScript, and good ways to practice some of the early material. Some readers have let me know that they&rsquo;re hoping to see lots and lots of examples, so I thought I&rsquo;d go ahead and send a direct request out asking what, if any, specific examples or topics you&rsquo;d like to see in the book. What do you know you need to use JavaScript for? What are you curious about? What have you seen that you know is confusing to you and you&rsquo;d like clarification on?</p><p>All thoughts and suggestions are welcome and very much appreciated. As an incentive, I&rsquo;ll go ahead and give away ten copies of &ldquo;Modern JavaScript: Develop and Design&rdquo; to people with the best responses.</p><h2 id="web1">On the Web =&gt; Amazon Silk: A New Mobile Browser</h2><p>As you may have seen, <a
href="http://www.amazon.com/?tag=larrullm09-20">Amazon</a> announced their new lineup of Kindles recently, from the <a
href="http://amzn.to/qQREgw">$79 base version</a> to the <a
href="http://amzn.to/oZyxhk">$199 Kindle Fire</a>, a rival to Apple&rsquo;s iPad. One thing that piqued my interest about the Kindle Fire is that it includes a new, custom Web browser, named <a
href="http://amazonsilk.wordpress.com/">Silk</a>. Amazon posted <a
href="http://amazonsilk.wordpress.com/2011/09/28/introducing-amazon-silk/">an introduction to Silk</a>, along with a six-minute video, on their site, too. A lot on that page and in the video is marketing hype, but they raise some interesting points about the fact that Web browsers are fundamentally the same as they were 15 years ago, and aren&rsquo;t ideal for today&rsquo;s use, especially with all the mobile devices. Now the solution they came up with seems to be something akin to a reverse CDN: Whereas a CDN takes the load off of one server and shares it across a network of servers, Amazon Silk uses Amazon Web Services (AWS) to reduce the load on the device. From just what I&rsquo;ve seen, it doesn&rsquo;t seem like they&rsquo;ve addressed a problem with browsers, but rather with the HTTP protocol, introducing their own gateway to improve the communications. It&rsquo;ll be interesting to see what impact this new approach has, and how, if at all, it affects Web development in the years to come.</p><h2 id="web2">On the Web =&gt; Steve Jobs and Dennis Ritchie, in Memoriam</h2><p>As I&rsquo;m sure you&rsquo;re all aware, Steve Jobs, one of the founders of Apple, passed away just recently. You may also know that I&rsquo;m a pretty big fan of Apple. I first learned to program Basic on an Apple IIe, the first computer I purchased was a Macintosh Color Classic, and I&rsquo;m probably on my 10th or 12th Mac by now. I&rsquo;m not saying Macs are better than PCs, and they&rsquo;re certainly not cheaper, but I definitely prefer them. A lot has been said and written about Jobs since his passing, such that I have little to add, except I would offer that I what I think was the most brilliant thing that happened during Jobs&rsquo;s tenure was the ability to get non-Mac people to buy Apple products. For decades, if you purchased an Apple product, you were buying either a Mac or Apple software to run on a Mac. This accounted for at best about 5% of the computing population. Thanks to the iPod, iPhone, and iPad, almost all computer users and a majority of mobile phone users have one or more Apple products, whether or not they ever bought an Apple computer (and many of these people have since started buying Macs, too). Just brilliant, and the clear reason why Apple has become one of the most valuable companies in the world. Had you told me 15 years ago that Apple would become a dominant computer company and Bill Gates a prominent philanthropist, I wouldn&rsquo;t have believed you.</p><p>Jobs&rsquo;s other huge success was with Pixar, although he probably had less directly to do with Pixar&rsquo;s success than the brilliant talents employed there. Jobs purchased what became Pixar from George Lucas, helped build it up, and when Pixar was purchased by Disney, Jobs became the single largest shareholder of Walt Disney. Quite the life. If you&rsquo;d like one more little blip about Jobs, check out his <a
href="http://www.youtube.com/watch?v=D1R-jKKp3NA">Stanford commencement address</a> from 2005. In it, Jobs talks candidly about work, life, and death.</p><p>Days after Steve Jobs passed away, <a
href="http://www.nytimes.com/2011/10/14/technology/dennis-ritchie-programming-trailblazer-dies-at-70.html">Dennis Ritchie</a> died, garnering much, much less media attention. Dennis Ritchie arguably had a bigger impact on computing and the world than Jobs, but is no household name. If you&rsquo;re not familiar with Ritchie, all he did was create the C programming language, and helped develop the Unix operating system. C is one of the most important programming languages of all time. It has greatly influenced many other languages, and is still used widely today. In fact, PHP, Python, and Perl are all written in C! Unix, and its inspired variants such as Linux, is running most of the Internet, along with Apple&rsquo;s iOS devices, Tivo&rsquo;s, and many other devices.</p><h2 id="blog">On the Blog =&gt; Why There Are Few (No?) Good JavaScript Books</h2><p>Just yesterday, I <a
href="http://www.larryullman.com/2011/10/18/why-there-are-few-no-good-javascript-books/">posted a blog article</a> discussing my thoughts on why there are so few good JavaScript books. In part this post stems from time spent skimming through other JavaScript books and thinking &ldquo;Really, you&rsquo;re doing that in this book?&rdquo; And, in part, in formally writing a JavaScript book now myself, I&rsquo;m aware of some of the unique challenges that JavaScript poses for writers.</p><h2 id="qa">Q&amp;A =&gt; Could You Explain File Permissions?</h2><p>File permissions and file paths are probably two of the things that I get the most questions on, and that beginners are most often confused about. Some time back, Martin had asked if I&rsquo;d explain file permissions, and even though a previous newsletter <a
href="http://www.larryullman.com/2011/01/06/what-is-larry-thinking-35-securing-content-and-more/#qa1">touched upon the subject</a>, it&rsquo;s worth going into again and in more detail. For a couple of reasons, I&rsquo;m going to ignore Windows permissions and focus on *nix, which includes Unix, Linux, and Mac OS X. First, all these operating systems share the same permissions scheme. Second, statistically, most Web servers are running one of these operating systems. Third, permissions in Windows rarely need to be altered or cause problems, in my experience. And, fourth, you&rsquo;re much more likely to be confused by *nix permissions, which are as follows…</p><p>File and folder permissions are an operating system&rsquo;s way of dictating who can do what to that file or folder. There are three permissions that can be granted or denied: <em>read</em>, <em>write</em>, and <em>execute</em>. For files, read means the ability to literally open and read the file; write means the ability to modify the file; and execute means the ability to run the file (e.g., as an executable or a script). For directories, read means the ability to see the names of the files in the directory; write means the ability to modify the directory (such as create, rename, or delete files and folders therein); and execute means the ability to traverse the directory (i.e., be able to go into it). You&rsquo;ll see these permissions represented by both letters—r, w, and x—and octal (base-8) numbers: 4 (read), 2 (write), and 1 (execute). These numeric values correspond to bits, meaning that different sums from 0 to 7 represent unique permission combinations. For example, 5 has to be read plus execute; 6 has to be read plus write; and, 7 is all three (5, 6, and 7 are the most common permissions digits you&rsquo;ll see).</p><p>Now for every file and folder, these permissions can be set for three types of users: the owner, the owner&rsquo;s group, and everyone. For example, on a Web server, you may have an account under the username <em>trout</em>. Your username will also be associated with a group, such as <em>clients</em>. Other people with accounts on the same server will have different usernames but may be part of the same group. There will also be other groups, such as <em>staff</em> or <em>mysql</em>. The permissions on any file or folder can be set as three octal digits, where the first digit represents the owner&rsquo;s permissions, the second represents the owner&rsquo;s group&rsquo;s permissions (i.e., the permissions for other people in that group), and the third digit represents the permissions for everyone else. 644 permissions mean that you can read from and write to that file or folder, while everyone else can only read from it. Written using letters instead of octal numbers, you&rsquo;ll see a file or folder&rsquo;s permissions represented using 10 characters: the first reflects other details about the file or folder (I won&rsquo;t get into that here); the next three are for the owner&rsquo;s read, write, and execute permissions; the next three for the owner&rsquo;s group&rsquo;s read, write, and execute permissions; and the last three for everyone&rsquo;s. Thus, the octal 644 becomes -rw-r&#8211;r&#8211;. The octal 755 is -rwxr-xr-x.</p><p>So there are the basics and the hieroglyphics you&rsquo;ll occasionally see; what does this mean in actual application? For starters, you need to understand that the third category—everyone else—means everyone else <em>on the computer</em>, not everyone else in the universe. For example, if you create a directory with open permissions—777 or -rwxrwxrwx, that doesn&rsquo;t mean anyone with an Internet connection can modify that directory&rsquo;s contents. No. You can only modify a directory&rsquo;s contents if you have access to the server&rsquo;s file system, which means you&rsquo;ve connected to the server via FTP or command line (SSH, telnet) access. And that kind of access requires using an account recognized by the server. But what about loading a Web page in the browser? Well, that is a type of server access, but not <em>file system access</em>. When a user goes to a Web site in the browser, the user isn&rsquo;t interfacing with the server&rsquo;s file system, but actually with the Web server software, such as Apache. Apache then does the actual accessing of the file system. So don&rsquo;t fret that assigning open permissions to a file or directory means that anyone in the universe has access. That&rsquo;s not the case.</p><p>But it is the case that an open file or directory on the server is accessible by any valid user on that server, assuming that other restrictions are not in place and that the user knows about its existence. For examples of restrictions, PHP can easily be limited as to which directories it can access and which it cannot. The same goes for Apache. In fact, the biggest security concern isn&rsquo;t that <em>people</em> can access and manipulate your files and folders, but rather that <em>software running on the server can</em>. And this is where you have to be careful. Many hacks take advantage of security holes in scripts or applications to make Apache and PHP—the software already running on the server—do something malicious. All things considered, this doesn&rsquo;t mean you should be cavalier about assigning open permissions, but it does mean that it&rsquo;s not out-and-out irresponsible to use them when needed. Speaking of which…</p><p>The last real-world issue you&rsquo;ll come across, which is a big complication for many, is establishing the correct permissions to allow for file uploads, or for PHP to write a text file, and the like. When you upload files to the server using FTP, or even create a directory using FTP, the owner of the uploaded file or folder will be you. The PHP script that needs to write to that text file or directory (in this case, &ldquo;write&rdquo; means to modify the directory by moving a file into it), will be running as a different user, namely the user that the Web server software (e.g., Apache) is running as (Apache commonly runs as &ldquo;nobody&rdquo;). In order for PHP to do what it needs to do, permissions need to be modified so that the Apache user can write to it. Normally this means using 755 as the permissions.</p><p>If you do need to create open directories and files, there are ways you can improve the security of using them, most of which I highlighted <a
href="http://www.larryullman.com/2011/01/06/what-is-larry-thinking-35-securing-content-and-more/#qa1">in that previous newsletter</a>. For starters, always try to put these directories outside of the Web root directory, and then use a <a
href="http://www.larryullman.com/2011/01/06/what-is-larry-thinking-35-securing-content-and-more/#thinking">proxy script</a> to safely fetch the contents. By doing so, you&rsquo;re able to mitigate the increased security risk of having open directories and files by adding a layer of protection against accessing the content therein.</p><h2 id="thinking">What is Larry Thinking? =&gt; Sexism and Bad User Interface</h2><p>About fifteen years ago, when I was working at Borders bookstores (RIP), a co-worker got married. Afterward, she was talking one day about how she had gone into her bank to add her new husband to her account. The bank added her husband to the account and let her know that her husband would have to come in and authorize her before she could access the account herself. Wait, what? Yes, she went in, added her husband, and was no longer able to use the account that only moments earlier had been hers. This is because the bank&rsquo;s policy was for men to be the primary account holders. As soon as her husband was added to the account, it became his account. This is just a lovely bit of institutional sexism, I think, especially when you consider that I&rsquo;m talking about the mid-1990&rsquo;s here, not 1950! I do not know what happened beyond that—I would hope she&rsquo;d change banks, but beyond the sexism, it amazed me that a system was in place in which a person has the power to disempower themselves. A very strange concept.</p><p>My wife works in the field of education, which in the United States is known for many things, among them having broad, institutional dictums imposed upon schools and faculty. A frequent cause of problems is the software people are forced to use. Having software forced upon you is a hazard all employees face, but given the situation of public schools, such software is inevitably created under the worst of all possible situations:</p><ul><li>The software needs are identified by a committee of people, none of whom will actually be using the software.</li><li>Undoubtedly a requirement is that the software can run on old, outdated computers.</li><li>The budget will be tight.</li></ul><p>Take these three things together, and you can plan on getting software that takes way too long to complete, that will be outdated and impractical upon its released, and that will be used for far too long from there. This sounds jaded, perhaps, and I&rsquo;m certainly exaggerating some, but this is essentially the situation the American education system, if not the entire American government, is in when it comes to developing custom software.</p><p>The reason I&rsquo;m thinking about this now, is that my wife was using one of these less-than-ideal applications the other day. The application itself is kind of like project management software and she was responsible for maintaining a project&rsquo;s particulars through this system. Due to a lack of good documentation, she had misidentified her role on the project (within the system) and went back in to change her role. She selected what she thought was the right role for her account on that project and ended up removing her own administrative ability to manage the project. In other words, she locked herself out, and she was ostensibly the project manager! Again, why would someone create the ability for an administrator to de-administer themselves? And, what&rsquo;s worse, absolutely no warning was given to my wife (i.e., the user) that this would be a consequence of the action about to be taken.</p><p>By comparison, my role on a project was just turned over to someone else, and part of that project involved making use of Amazon&rsquo;s resources. Amazon, which I feel generally does everything right, did not allow me, the administrator, to just remove my name and email address from the system, thereby shutting out anyone&rsquo;s access. Instead, to make the switch from me to this other person, I had to add her to the system and give her administrative access. She, then, could go in and remove my administrative access. Was this a bit more complicated? Yes. But it was the right way to handle this scenario and it worked without problem.</p><p>This, then, is a call to you: the next time you&rsquo;re working on a Web site or application, think about the user interface and make sure it makes logical sense. Write the functionality so that administrators cannot disable their own access to the system. And include great documentation, and provide many, clear warnings when actions are about to be taken that are permanent. Oh, and if you&rsquo;re running a bank, how about letting a person know that she is about to be blocked out of her own account? Or, you know, just make your policies less sexist.</p><h2 id="giveaway">Book Giveaway =&gt; &#8220;PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide&#8221; (4th Edition)</h2><p>As I expected, there was a wonderful response to my &ldquo;PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide&rdquo; (4th edition) giveaway. Unfortunately, I haven&rsquo;t yet had the time to respond to everyone, or really anyone. For this I apologize, and I hope to do that within the week. So if you wrote in hoping for a book, rest assured that just because you haven&rsquo;t heard from me yet means you won&rsquo;t be getting a copy (conversely, it doesn&rsquo;t mean you necessarily will, either). What really happened is that I&rsquo;m just swamped. Apologies again!</p><p>I&rsquo;ll be able to give away a few more copies of this book in a future newsletter.</p><h2 id="news">Larry Ullman&#8217;s Book News =&gt; &#8220;Modern JavaScript: Develop and Design&#8221;</h2><p>I just submitted Chapter 5 of &ldquo;Modern JavaScript: Develop and Design&rdquo;, which means I&rsquo;m about 30% done with the first draft (well, first submitted draft: there are multiple internal drafts prior to that). Progress is going more slowly than I&rsquo;d like, but I&rsquo;ve had sick kids and other personal issues making it harder to get to work. I always hope I&rsquo;m about to turn a corner and speed up. One of these days, I will!</p><p>The first three chapters cover Part 1 of the book, which represents the fundamentals of JavaScript. Chapter 1 is a bit of an introduction to JavaScript overall. Chapter 2 provides a sneak peak at how JavaScript is used in a Web browser. Chapter 3 discusses and demonstrates several tools you&rsquo;ll want to use.</p><p>The second part of the book is the heart of JavaScript as a true programming language. Chapter 4 covers simple data types (numbers, strings, and Booleans). Chapter 5 is on control structures: conditionals and loops. Now I&rsquo;m turning to the fun stuff, and the topics that differentiate JavaScript from other languages. This includes objects (Chapter 6), functions (Chapter 7), events (Chapter 8), and the browser (Chapter 9). Hopefully by the next newsletter I&rsquo;ll have those four chapters written. Hopefully!</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2011/10/21/what-is-larry-thinking-46-javascript-sexism-and-bad-user-interface/feed/</wfw:commentRss> <slash:comments>10</slash:comments> </item> <item><title>Aquent&#8217;s Internet Online Website</title><link>http://www.larryullman.com/2010/11/29/aquents-internet-online-website/</link> <comments>http://www.larryullman.com/2010/11/29/aquents-internet-online-website/#comments</comments> <pubDate>Mon, 29 Nov 2010 03:50:40 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[Web Development]]></category> <category><![CDATA[ui]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=1947</guid> <description><![CDATA[Some time ago, I StumbledUpon Aquent&#8217;s Internet Online Website!. At first it just looks like a very generic (very generic) Web page, but upon further consideration, it&#8217;s kind of interesting. Aquent, in case you&#8217;re not familiar with them, is an international talent agency that specializes in online-related fields: user interface, graphic design, marketing, etc. (I [...]]]></description> <content:encoded><![CDATA[<p>Some time ago, I <a
href="http://www.stumbleupon.com">StumbledUpon</a> <a
href="http://internetonlinewebsite.com/">Aquent&#8217;s Internet Online Website!</a>. At first it just looks like a very generic (<em>very</em> generic) Web page, but upon further consideration, it&#8217;s kind of interesting. <a
href="http://aquent.us/">Aquent</a>, in case you&#8217;re not familiar with them, is an international talent agency that specializes in online-related fields: user interface, graphic design, marketing, etc. (I was briefly registered with them, in order to work on a project that never came to fruition). Anyway, just as an X-ray shows the underlying skeleton, the Internet Online Website! shows the common pieces of a Web site and what skills are required to create it. If you&#8217;ve been doing Web development for some time, you&#8217;re not going to learn a whole lot, but it might strike you just how common much of what you do is (in terms of UI and design). If you&#8217;re relatively new to, or less experienced with, Web development, you&#8217;ll probably appreciate seeing the basic ideas—specifically including things like marketing, interactive design, mobile Web, etc.—put together.</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2010/11/29/aquents-internet-online-website/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Yahoo!’s Design Pattern Library</title><link>http://www.larryullman.com/2010/07/27/yahoos-design-pattern-library/</link> <comments>http://www.larryullman.com/2010/07/27/yahoos-design-pattern-library/#comments</comments> <pubDate>Tue, 27 Jul 2010 11:27:47 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[Web Development]]></category> <category><![CDATA[software]]></category> <category><![CDATA[tools]]></category> <category><![CDATA[ui]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=1213</guid> <description><![CDATA[Recently, and I can&#8217;t remember why, I came across Yahoo!&#8217;s Design Pattern Library. Just like a programming design pattern describes, in code, an accepted way of handling a specific task, this library has almost 60 (at this time) examples for how to layout and handle common visual elements. The patterns are organized by category: layout, [...]]]></description> <content:encoded><![CDATA[<p>Recently, and I can&#8217;t remember why, I came across <a
href="http://developer.yahoo.com/ypatterns/">Yahoo!&#8217;s Design Pattern Library</a>. Just like a programming design pattern describes, in code, an accepted way of handling a specific task, this library has almost 60 (at this time) examples for how to layout and handle common visual elements.</p><p>The patterns are organized by category: layout, navigation, selection, rich interaction, and social. For example, there&#8217;s a pattern for showing the availability of a person (like you&#8217;d see in IM) and another for how breadcrumbs should be used. Mostly the patterns are descriptions of what you should do, based upon what&#8217;s best for the end user. Many of the patterns do have links to code examples, although those will often make use of the <a
href="http://developer.yahoo.com/yui/">Yahoo! User Interface library</a>.</p><p>Part of the design pattern library is a <a
href="http://developer.yahoo.com/ypatterns/about/stencils/">stencil kit</a>, available for OmniGraffle (the program I use), Adobe Illustrator, Visio, and other applications. Using this kit you can quickly create a mock-up of the user interface. And being Yahoo!, all of this is available for free.</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2010/07/27/yahoos-design-pattern-library/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Yahoo!&#039;s Design Pattern Library</title><link>http://www.larryullman.com/2010/07/27/yahoos-design-pattern-library-2/</link> <comments>http://www.larryullman.com/2010/07/27/yahoos-design-pattern-library-2/#comments</comments> <pubDate>Tue, 27 Jul 2010 16:27:47 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[Web Development]]></category> <category><![CDATA[software]]></category> <category><![CDATA[tools]]></category> <category><![CDATA[ui]]></category><guid
isPermaLink="false">http://blog.dmcinsights.com/?p=1213</guid> <description><![CDATA[Recently, and I can&#8217;t remember why, I came across Yahoo!&#8217;s Design Pattern Library. Just like a programming design pattern describes, in code, an accepted way of handling a specific task, this library has almost 60 (at this time) examples for how to layout and handle common visual elements. The patterns are organized by category: layout, [...]]]></description> <content:encoded><![CDATA[<p>Recently, and I can&#8217;t remember why, I came across <a
href="http://developer.yahoo.com/ypatterns/">Yahoo!&#8217;s Design Pattern Library</a>. Just like a programming design pattern describes, in code, an accepted way of handling a specific task, this library has almost 60 (at this time) examples for how to layout and handle common visual elements.</p><p>The patterns are organized by category: layout, navigation, selection, rich interaction, and social. For example, there&#8217;s a pattern for showing the availability of a person (like you&#8217;d see in IM) and another for how breadcrumbs should be used. Mostly the patterns are descriptions of what you should do, based upon what&#8217;s best for the end user. Many of the patterns do have links to code examples, although those will often make use of the <a
href="http://developer.yahoo.com/yui/">Yahoo! User Interface library</a>.</p><p>Part of the design pattern library is a <a
href="http://developer.yahoo.com/ypatterns/about/stencils/">stencil kit</a>, available for OmniGraffle (the program I use), Adobe Illustrator, Visio, and other applications. Using this kit you can quickly create a mock-up of the user interface. And being Yahoo!, all of this is available for free.</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2010/07/27/yahoos-design-pattern-library-2/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Making a Cool Login System with PHP, MySQL, and jQuery</title><link>http://www.larryullman.com/2010/04/29/making-a-cool-login-system-with-php-mysql-and-jquery/</link> <comments>http://www.larryullman.com/2010/04/29/making-a-cool-login-system-with-php-mysql-and-jquery/#comments</comments> <pubDate>Thu, 29 Apr 2010 01:55:07 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[MySQL]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[Web Development]]></category> <category><![CDATA[jquery]]></category> <category><![CDATA[ui]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=1029</guid> <description><![CDATA[I StumbledUpon this article titled Making a Cool Login System with PHP, MySQL, and jQuery. It&#8217;s very slick, with a panel that slides down for the users to login or register. The article includes the complete code and a demo version. I like this approach—a separate login panel—because logging in is common to most sites [...]]]></description> <content:encoded><![CDATA[<p>I <a
href="http://www.stumbleupon.com">StumbledUpon</a> this article titled <a
href="http://tutorialzine.com/2009/10/cool-login-system-php-jquery/">Making a Cool Login System with PHP, MySQL, and jQuery</a>. It&#8217;s very slick, with a panel that slides down for the users to login or register. The article includes the complete code and a demo version. I like this approach—a separate login panel—because logging in is common to most sites but also something the user only does once per session at most, so it&#8217;s best not to take up screen space with a login form.</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2010/04/29/making-a-cool-login-system-with-php-mysql-and-jquery/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>The Second Rule of User Interface</title><link>http://www.larryullman.com/2010/04/17/the-second-rule-of-user-interface/</link> <comments>http://www.larryullman.com/2010/04/17/the-second-rule-of-user-interface/#comments</comments> <pubDate>Sat, 17 Apr 2010 08:27:21 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[Web Development]]></category> <category><![CDATA[ui]]></category> <category><![CDATA[user interface]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=951</guid> <description><![CDATA[Some months ago, I wrote a post titled . The rule is simple: A proper user interface sets the user up to succeed. By this I mean that if the site requires certain information, or information in a specific format, that should be clearly indicated in the user interface. A site, or any application, should [...]]]></description> <content:encoded><![CDATA[<p>Some months ago, I wrote a post titled <a
href="http://www.larryullman.com/2010/02/27/the-first-rule-of-user-interface/">The First Rule of User Interface</a>. The rule is simple: <strong>A proper user interface sets the user up to succeed.</strong> By this I mean that if the site requires certain information, or information in a specific format, that should be clearly indicated in the user interface. A site, or any application, should make it clear up front what is expected, as opposed to indicating what the user should have done only upon a failure to do so. Tightly coupled with this is my &#8220;Second Rule of User Interface&#8221;: <strong>Don&#8217;t fight the user&#8217;s habits</strong>. If the first rule could be paraphrased as &#8220;Tell the user what you expect&#8221;, then second rule could be said &#8220;Don&#8217;t deny what the user expects.&#8221;</p><p>This rule comes into play in many ways, from where navigation elements should be located, to how buttons and links behave. It also means that you shouldn&#8217;t &#8220;break the browser&#8221; by attempting to disable JavaScript features (such as Control+Clicking or Right+Clicking on an element), preventing use of the back button, and so forth. This last issue—wanting the user not to use the back button—is a big mistake. (And keep in mind that most attempts to circumvent common browser behavior can be easily circumvented by disabling JavaScript.)</p><p>Fortunately, you can have your proverbial cake and eat it, too. This is to say, there are ways to accomplish your goals without undermining standard user or browser behavior. For example, if it might be a problem if the user clicks the back button, write the site&#8217;s code to address that possibility (sessions can be used towards that end). As another example, if you don&#8217;t want the user to copy images, well, that&#8217;s a tougher one. You can use JavaScript to prevent that, but JavaScript can be disabled. You can embed the image in Flash so that it&#8217;s not directly copy-able, but the user could still take a screen shot. The fix is simple: add a watermark to the images, when necessary. With any possible example, the main idea is this: when something a user, or the browser, might commonly do could be a problem for your site, program the site to handle that possibility. Whatever you do, don&#8217;t try to prevent the user from doing something their accustomed to doing on every other site they visit. If you take that approach, all you&#8217;ll succeed in is driving away your visitors.</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2010/04/17/the-second-rule-of-user-interface/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>Validation Suggestions</title><link>http://www.larryullman.com/2010/03/13/validation-suggestions/</link> <comments>http://www.larryullman.com/2010/03/13/validation-suggestions/#comments</comments> <pubDate>Sat, 13 Mar 2010 16:00:25 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[Flex]]></category> <category><![CDATA[Web Development]]></category> <category><![CDATA[ui]]></category> <category><![CDATA[user interface]]></category> <category><![CDATA[validate]]></category> <category><![CDATA[validation]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=956</guid> <description><![CDATA[I was reading some articles about validation routines in Flex (as part of a book I&#8217;m writing on Flex + PHP), when I came across a particular article that&#8217;s part of  the Adobe Developer Connection. The specifics of the article revolve around validation in Flex, of course, but I thought that the section on &#8220;Best [...]]]></description> <content:encoded><![CDATA[<p>I was reading some articles about validation routines in Flex (as part of a <a
href="http://www.larryullman.com/2010/01/22/my-next-book/">book I&#8217;m writing on Flex + PHP</a>), when I came across a <a
href="http://www.adobe.com/devnet/flex/quickstart/validating_data/">particular article</a> that&#8217;s part of  the <a
href="http://www.adobe.com/devnet/">Adobe Developer Connection</a>. The specifics of the article revolve around validation in Flex, of course, but I thought that the section on &#8220;Best Practices for Client-Side Validation&#8221; would be good reading for any one doing user interface. There are four suggestions there, all on how an application should <span
style="text-decoration: underline;">treat</span> the user. Those suggestions are:</p><ol><li>Prevent, Don&#8217;t Scold</li><li>Give Immediate Feedback</li><li>Let the User Work</li><li>Innocent Until Proven Guilty</li></ol><p>The first rule ties in nicely to a post I just wrote on <a
href="http://www.larryullman.com/2010/02/27/the-first-rule-of-user-interface/">putting the user in a place where they can succeed</a>. I don&#8217;t want to waste time here re-iterating what&#8217;s said there, but give it a read—at least that part about best practices—and keep that perspective in mind the next time you go to design a user interface.</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2010/03/13/validation-suggestions/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>The First Rule of User Interface</title><link>http://www.larryullman.com/2010/02/27/the-first-rule-of-user-interface/</link> <comments>http://www.larryullman.com/2010/02/27/the-first-rule-of-user-interface/#comments</comments> <pubDate>Sat, 27 Feb 2010 11:47:50 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[Web Development]]></category> <category><![CDATA[error]]></category> <category><![CDATA[ui]]></category> <category><![CDATA[user interface]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=946</guid> <description><![CDATA[The other day I was registering to use a state government Web site. I think government sites often tend to be among the worst offenders when it comes to usability. In part this is because they&#8217;re always outdated and, I suspect, because the financing for the site was based upon meeting the government organization&#8217;s specific [...]]]></description> <content:encoded><![CDATA[<p>The other day I was registering to use a state government Web site. I think government sites often tend to be among the worst offenders when it comes to usability. In part this is because they&#8217;re always outdated and, I suspect, because the financing for the site was based upon meeting the government organization&#8217;s specific needs, not giving the end users what they want (generally speaking, there are exceptions, of course). This particular site had the added deficit of being developed using aspects of ASP.NET that make the site only usable for Internet Explorer (that&#8217;s acceptable? really?). So I have to dust off off my Windows setup (I primarily use Macs), just to run Internet Explorer (really?), and I go to register&#8230;</p><p>I fill out the form properly, I thought, then click submit. At that point I see a message about my chosen password being invalid because it didn&#8217;t contain both upper- and lowercase letters, plus at least one number. That&#8217;s a fine requirement, of course, but <em>why didn&#8217;t the registration form indicate those requirements</em>? It&#8217;s obvious that an email field needs a valid email address, but if you&#8217;re developing a site and you know that you&#8217;re going to validate a field to confirm that it includes both upper- and lowercase letters, plus at least one number, how about telling the end user that, too? So here&#8217;s the first, most important rule of a good user interface:</p><p><strong>A proper user-interface sets the user up to succeed. </strong></p><p>Whether you&#8217;re designing a Web site, managing a group of people, or being a parent, you have to put your users, employees, and children in a place where they can do things well. And by &#8220;well&#8221;, I mean: they can do things they way you think they should!</p><p>Conversely, I just finished doing my United States taxes, which I always do online using <a
href="http://www.turbotax.com">TurboTax</a>. I use TurboTax primarily because the user interface is extraordinarily well done. For example, it&#8217;ll ask you a seemingly random, strange question, like &#8220;Did you roll over the proceeds from a farming operation into a non-work-related 403b?&#8221; I might look at that and go &#8220;huh?&#8221; but one great thing TurboTax does is add parenthetical notes like &#8220;This is not common.&#8221; Simple and brilliant. And TurboTax has other nice features, like indicating where you are in the process, reviewing the data you&#8217;ve entered, and so forth, but the clear messages—right where I&#8217;m focusing at that moment—make it easy for me to use the system properly.</p><p>It can be tricky for developers, who are theoretically quite knowledgeable about computers, to put themselves in the mindset of an end user, but there here is one simple way to create a successful user-interface: look at what you&#8217;re doing on the server side of things. If you&#8217;re going to check a password field for a number, put a message on the form saying a number is required. The same goes for a length requirement. If a date will be validated against a given format (like four digits for the year), have the form indicate the proper format, too. The same goes for phone numbers. If a username can&#8217;t contain a space, say as much. Set the user up to succeed instead of making them feel stupid for not doing something they weren&#8217;t told to do in the first place!</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2010/02/27/the-first-rule-of-user-interface/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>The $300 Million Button</title><link>http://www.larryullman.com/2009/05/26/the-300-million-button/</link> <comments>http://www.larryullman.com/2009/05/26/the-300-million-button/#comments</comments> <pubDate>Tue, 26 May 2009 12:50:33 +0000</pubDate> <dc:creator>Larry</dc:creator> <category><![CDATA[Web Development]]></category> <category><![CDATA[html forms]]></category> <category><![CDATA[ui]]></category> <category><![CDATA[user interface]]></category><guid
isPermaLink="false">http://www.larryullman.com/?p=424</guid> <description><![CDATA[If you haven&#8217;t yet read it, this article called The $300 Million Button is well worth your five minutes. It&#8217;s by Jared M. Spool and posted on the User Interface Engineering Web site. I don&#8217;t want to give away the secret of the article, but it discusses a very common practice on e-commerce sites, and [...]]]></description> <content:encoded><![CDATA[<p>If you haven&#8217;t yet read it, this article called <a
href="http://www.uie.com/articles/three_hund_million_button/">The $300 Million Button</a> is well worth your five minutes. It&#8217;s by <a
href="http://www.uie.com/brainsparks/author/jared/">Jared M. Spool</a> and posted on the <a
href="http://www.uie.com/">User Interface Engineering</a> Web site. I don&#8217;t want to give away the secret of the article, but it discusses a very common practice on e-commerce sites, and how it tests with end users.</p> ]]></content:encoded> <wfw:commentRss>http://www.larryullman.com/2009/05/26/the-300-million-button/feed/</wfw:commentRss> <slash:comments>6</slash:comments> </item> </channel> </rss>
<!-- Served from: www.larryullman.com @ 2012-05-21 15:41:17 by W3 Total Cache -->
