I run an e-commerce beauty products site whose audience is about 80-90% women, and we get about 10,000 unique visitors a day. I am currently seeing about 4.5% Firefox users, and about 4.7% Safari users, Both of these numbers are way up, from 1.5% Safari and practically non-existent Firefox 1 year ago.
Can be found here. "TheCounter" is a site where you can download one of those annoying page counters to put at the bottom of your web page, but at least they do something relevant with the information: they collate all the browser stats they can from the request.
This makes their stats really significant because a) they get millions and millions of requests per month (valid sample) and b) they are collating info across many, many site of all different shapes, sizes and topics (heterogenous sample). Their sample size is 223,437,657 visitors for July (the last month available), which I trust a lot more than the many posts on this thread saying "I see X% on my site".
I build e-commerce sites using full XHTML/CSS standards, and I use these stats to get a sense of which browsers/platforms to test in. If they have a bias, it is probably towards the casual user rather than the power user (after all, the sites that have a little counter on them aren't usually the most professional), but in designing for the general public, I'd rather be biased in that direction than towards the power user.
These stats are free and they've been kept for years, so you can spot trends (no charts, though, just tables).
Incidentally, their latest browser stats show Mozilla at 2%, which, sadly, is probably closer to the "truth" than 14% or 9% or whatever.
A search engine with these capabilities was prominently featured in William Gibson's "Pattern Recognition". A mysterious video disseminated over the Web contained a strange pattern that those trying to decode it thought was a street map. They fed it into a shape-matching engine and it turned out to be a fragment of shrapnel from a mine, which was a clue as to the origin of the video footage.
Don't forget that a good chunk of the price in higher-end cameras is in the optics. Optical distortion is optical distortion no matter what the circuitry, and Moore's Law doesn't apply to quality ground and polished glass;)
An awesome, geek-thrilling site is the airplane graveyard at Davis-Monthan Air Force Base outside of Tucson, Arizona. Thousands of military surplus jets, many lined up in weird symmetries, many half-scrapped, all baking under the desert sun. Plus, Tucson is a great town. I recommend a stay at the Hotel Congress.
Tell me, have you read How Buildings Learn by Stewart Brand or A Timeless Way of Building or A Pattern Language by Chris Alexander? They explain this situation in far more detail than I could here.
Amen to those. I'd add to the list The Death and Life of Great American Cities by Jane Jacobs, and From Bauhaus to Our House by Tom Wolfe. They changed the way I look at design. When you realize how malleable buildings and cities are, you begin to design everything for change. Building, testing, revising, and iterating are the only way to succeed in building a [phone/GUI/house/park/whatever] that users will love. And if you must convince a client of the worth of something, convince them of the value a design adds to their customers/users, not just that you're "right".
I would strongly recommend Cascading Style Sheets: Designing for the Web, by Hakon Wium Lie and Bert Bos. Despite the fact that this book is a couple of years old, it's written by a couple of the guys who designed the original CSS spec, and really gives a terrific overview of the language, example layouts, and strong reference. It's fairly platform-agnostic, and as such concentrates on what works in CSS rather than what doesn't work in certain browsers. As the standards compliance of new browsers improves, this book gets better and better.
Learn CSS from this book, then for those pesky browsers, use the Web for the timely info (bug charts, hacks, etc.)
Re:Obligatory Smarty plug
on
PHP Cookbook
·
· Score: 1
I don't understand this. Why is {$variable} so much easier or less confusing than <?=$variable?>
Well, on a trivial level, it's three less characters per instance; on a template with a few dozen variables, the difference in visual noise is welcome.
But of course Smarty ain't worth it just to save three characters. More ease of use comes from Smarty's modifiers. Most of the most popular PHP functions for string display and manipulation have been added to the modifiers, with the pipe syntax: {$dateVariable|date_format}, for example. A little thing like the "default" modifier can turn this:
<? if (empty($variable)) $variable = "None"; ?> <?= $variable; ?>
into this:
{$variable|default:"None"}
There are dozens of these little shortcuts in Smarty, and they add up quick; I work in PHP and HTML for a good chunk of the day, and I work faster using it, as my code is about 60% as long as it was a few months ago.
But the big, awesome, huge advantage of Smarty is the ease with which you can separate business logic from presentation logic. My dynamic PHP files now tend to look like: "1. Validate GET or POST input, 2. Make appropriate SQL queries, 3. Send raw output to template". If I need to shorten a variable to fit a design, or change a name to all caps, or format a date, that doesn't have to be coded in the same place as my business logic. I had been writing my own functions to maintain this separation, but Smarty was way ahead of me, so I switched.
1 - It lets you mix html and code in. Sure, it's not the only language that lets you do it, but it's still a strength.
I thought that PHP did a great job of mixing HTML and code until my PHP apps started reaching a certain size. Even using function calls and classes, templates started getting convoluted. Then I discovered Smarty and my whole way of working changed. Smarty is a template manager that allows for more precise separation of content and code. As a super-simple example, lines like become {$variable}. Over the course of a whole site, the savings from this syntax alone ease code readability (yes i care about such a thing). But there's a lot more to smarty than shorter variables, including shorthand for string modifiers and loops, as well as a nifty caching system that can speed up dynamically generated sites, and zillions of other really cool things for "lazy" programmers like me.
A lot of people on this thread have mentioned AdoDB (my other favorite PHP add-on), but I haven't seen anyone give a proper shout out to Smarty. It's made my life easier.
While this study produced some food for thought, I will ingest it with a liberal amount of salt. Whenever you ask people about their comments on a site they just visited, you will invariably get a fair amount of what they think you want to hear. This is why focus groups are suspect; it's an interesting truism that people are bloody poor at articulating what they really want.
Even with 10 sites per category in several categories to choose from, it's doubtful that any of those sites have content people really want at the given moment. Without providing content that will satisfy a perceived need, of course people are going to respond more positively to the shiny, candy-like buttons...
The only way to really understand what makes people's web site experiences a satisfying one is to observe people as they surf, and watch their results. Good web design is more like gardening than anything else: plant the site, watch traffic grow, remove some weeds, water with fresh content, fertilize with fresh design. A good strategy is to post alternate designs often, and then watch your traffic logs to see if clickthroughs increase. Amazon, whatever your criticism of them, is great at this... their site changes features and layouts just about weekly. Not enough to make people lost, but menus move, contract, expand; buttons move from GIF to HTML and back; layouts widen and narrow. Then the proof is in the traffic, and the visitor never gets a chance to tell you what they think you want to hear.
I'm glad to hear the conclusion that good design has value (I'm primarily a designer), but I think this survey is an oversimplification of reality which leads to an oversimplified conclusion.
While browsing some of the supplied links, ran across this page, which is a summary of the design criteria the engineers used for these sites. The site vary in "hardness"-- that is, their ability to withstand a nuclear blast-- but the top level sites were designed to withstand:
2 1/2 miles from 20 megaton blast
1000 Miles per hour wind
40 G shock wave
high velocity debris
Intense radiation, heat and electromagnetic effects
Given that wind resistance for a given surface area increases exponentially (I think... been a long time since physics class), that 1000mph figure is astounding.
Also this: "Above ground structure (microwave and troposcatter antennas) require at least two thirds of the structure to be below grade to prevent tilting or rotation". Does that mean these 200ft towers are rooted 400ft deep?
Does anyone know of a good source of fresh statistics for connection speeds? For general web stats, The Counter has decent free aggregate stats for things like browser, OS, monitor resolution, etc. But I'd really like to find something similar for bandwidth speeds. Any ideas?
You shouldn't be forcing people to use a perticular font on a web site in any case whatsoever.
I don't force anything. CSS font selections are at best a suggestion,and if the font I've suggested doesn't exist, the default renders anyway. But 99% of the audience never changes their default font, which is Times New Roman, and which is not always the right font for the job.
That's a decision to be left to the client's renderer.
If it means that much to you, most modern browsers have the option to let local settings override the designer's settings. Edit your preferences and enjoy! Most people don't choose their default font, and don't care if the font changes as long as the design is usable (and yes, I have the data to back this up from usability studies I've done).
If you absolutely MUST dictate a precise font face, for a specific purpose, then create a graphic of what you want, and use that.
And that's more friendly how? Plain HTML text is searchable, cut-and-pasteable, and accessible in web readers for the blind, etc. Text-as-graphics is a last resort that should only be used for logos and such.
What about sight-impaired people who need HUGE fonts in order to read a web page? If you've forced 12 pt blahfoobar, they're screwed.
Who said anything about forcing a font size? We're talking about font face, which you can specify while leaving default sizes intact. And when using CSS and the em unit, you can scale an entire page relative to the viewer's base font size. In fact this is another argument against text-in-graphics, as graphics always render as fixed pixel sizes, and limit the scalablity of designs.
And on the subject of font sizes, sometimes there's a need to make a super-small piece of text, as in legal copy or photo captions, things that are required to be on a page by law but will be read by few if any of the users.
As was noted in another post, Verdana was designed by Matthew Carter (the same typographer who designed Bell Gothic for legibility in the cramped confines of telephone books) specifically for legibility on screen. It's a welcome alternative to Times New Roman. Typography textbooks will tell you that serif fonts are more legible in body copy, but that assumes enough resolution to render the serifs! Current screens set to 800x600 don't compare to the resolution of print which can commonly run up to 3250dpi (that's a 1000x difference when comparing number of dots per page).
Having a font on demand (Verdana) with a minimum of visual crap around the edges is a valuable tool in the design arsenal.
...and now they're taking it away! I teach web development and design, and I've referred my students to this page for a couple of years now so that they can see the fonts they can count on most people having on their machines. These MS fonts were, for a time, installed with every MS OS, every copy of Office (Mac and PC) and every copy of Explorer (mac and PC) which is an alarming percentage of machines.
I used to joke that the monopoly was a good thing in this case because it drops these fonts everywhere and somewhat standardizes the font choice for web developers. I don't wanna contemplate a world without Verdana.
Thank god at least I've been using central CSS, so I only have to change one or two lines per site if the fonts need to be changed!
Re:Easier way to carry your stake...
on
MIT vs. Las Vegas
·
· Score: 5, Insightful
When you win large amounts at a casino, you get chips at a table, which are then cashed in at a cashier's window. They make you fill out tax forms if you cash out more than $10,000, but less than that is up to you to report (or, ahem, not). If you however cash out several times for $9,000, there is no automatic tax reporting... and you needn't show any ID at all.
So, you're holding a wad of cash untraceable to you and you're going to voluntarily report it to the IRS so's they can take ~40% of it? And you're a card counter? Riiiiight.
Turning $200,000 into a cashier's check requires running that money through a bank and raises a big red flag to the IRS. Carrying big wads of cash == ~40% increase in profits.
Not that I've ever won anywhere near enough for this to be an issue;) but I've seen it happen.
My favorite computer books EVER are the PHP Developer's Dictionary (SAMS, by Wyke, Walker and Cox) and PHP Developer's Coookbook (SAMS, by Sterling Hughes). Great organization, just-the-basics examples, even decent typography and layout! It's almost a shame that the language is continually evolving, 'cause I'd like to keep these on hand for a long time.
I also second everyone who's mentioned Code Complete.
99.999999% of Windows users didn't install their OS.
Yeah, but what percentage of Linux users did install their OS? My point is, the Mom here is metaphorical for the casual user, and Linux is not going to make inroads into those casual users until it is more convenient to use Linux than their default OS. Or until all the big OEMs start installing it. The amount of inconvenience the casual user will tolerate to switch is exactly zero.
I'm not opposed to the idea-- the less Windows users the better. But this article is a Linux zealot talking about how he installed Linux for his Mom, without once mentioning how his Mom felt about it! She's the one we should be talking to-- and learning from.
The original essay cited above ends with our protagonist having installed Debian for his Mom. I say, so what?
If you want some real insight into why Mom isn't using Linux, first of all he should have made Mom do the install. He says:
I felt like a chicken pecking my way through all the defaults until I finally had all the packages copied over (took about twenty minutes of installing to get to the point of a login prompt). A few more commands brought down security updates, the X Window System, as well as a few applications I knew my mom would need.
Twenty minutes? How long would it have taken Mom? Pecking chicken? How many of those "pecks" were to answer arcane config questions that Mom wouldn't know the answer to? Command prompt? Please.
This right here is the first reason Mom isn't using Linux.
And even granting him that Mom might be happy on the new OS, I need to hear about her experiences in the new environment to have any opinion. Did she get any strange error messages? What happens when her friends give her programs she can't use? Can she find online help written in plain language to solve her own problems? (even today, these are questions that should be asked of any OS.) For a pro-Mom-on-Linux article, so strange that it ended without Mom using Linux! I hope there's a follow-up I'm missing, because that would contain the real answers to the title's question.
First, note this list of CSS bugs. Note that a number of valid markups CRASH NS4. That's why NS4 is a thorn in the side of standards compliance... otherwise valid code can flat-out cause the browser to tank. Not good. Just as a little knowledge is a dangerous thing, a little CSS compliance is a train wreck. In response to one of the above posts, I'd much rather code for Lynx than NS4. And I do code for IE, opera, Netscape 6, Mozilla...
Here's an excellent tutorial on how to get some common layouts without using tables for layouts. It's a little tricky at first but entirely possible. I've built my last three sites using no tables.
I haven't read this book, but I'll certainly keep an eye out for it. However, for anyone who read the words "how environment affects the intangible quality of human life" and nodded in agreement, I'd like to point out the excellent "A Pattern Language" (Christopher Alexander, Sara Ishikawa, et al., Oxford Press 1977), which identifies the bits of a building and its surroundings that connect us to the world, from the placement of windows to the optimal width of sidewalks. After reading this book, it's hard to drive past a newly-sprouted field of designed-in-a-vacuum McMansions without seeing how ridiculously unnatural they are.
And for a lighter look at how we got here, "From the Bauhaus to Our House" by Tom Wolfe is a great (admittedly skewed) history of 20th century architecture, and how Socialist model housing of the 1920s became the signature style of international corporations by the 1960s.
Both of these books are ostensibly about architecture, but I keep coming back to them as general design touchstones when I need to remember that the stuff I'm making (programming, teaching, designing) has to be about people and interactions, not just stuff.
I've seen several links so far to the excellent Code Complete, and I second that one wholeheartedly. One commenting scheme that they suggest is writing your code first in pseudocode, just to get the logic down in plain English (or plain language of your choice), with indentations to indicate logic:
Get email form data from client input Is email address valid?
If yes:
Construct email from user input
Send email to address indicated
If no:
Send form back to user
Highlight email field
Show email validation message
Once you're happy with the pseudocode (which, for me, more often than not clears up at least a little shaky logic for me before coding even begins), you can add your code to the pseudocode line by line, turning the pseudo-stuff into your comments. Combined with smart variable names, this is usually all you need. Sorry the example's in PHP:
// Get email form data from client input $form = getFormInput($thisClient);
// Is email address valid? if (validateEmail($form['emailTo'])) { // Construct email from user input
$body = "Hi ".$form['emailReceiverName'].".";
$body.= $form['emailSenderName']." says to tell you hello!";
// Send email to address indicated
mail ($form['emailTo'],$form['emailFrom'],$form['subjec t'],$body);
} // If no:
else { // Send form back to user // Highlight email field // Show email validation message
sendForm("email", "That's not a vaild email address!");
}
OK, this is a pretty weak piece of code (I haven't had any coffee yet), but the point is that the pseudocode comments plus good variable/function names tend to be a real good start on your comments, almost self-documenting. And it tends to produce comments that straddle that line between too much information and not enough. Because the pseudocode shouldn't deal with the nuts'n'bolts of the programming language, you'll never write comments like the hated
i++;// increment i
although one of my Golden Rules of Technical Communication is "too much information is always better than not enough".
...it's really irrelevant who cast the first stone. Looking back, the commercialization of the Internet (incl. Usenet, email, the Web) seems more like a historical inevitability. If it wasn't Canter and Siegel, it would have been someone else two weeks later, guaranteed. The network was simply too rich and too full of potential at that point in time to not be mined for profit.
Don't forget, the "unwritten rules" of the Internet as a non-commercial venue included the Web(!) at first; there were always "dot-com" addresses, but outright advertising was seriously frowned upon. However, had this fundamentalist purity somehow miraculously stayed intact, most of us would probably be out of a job today. I know I would.
Canter and Siegel's place in history will be less on the magnitude of Jimi Hendrix, and more like the name of the first concertgoer through the gates at Woodstock-- a piece of trivia at a historical event.
Seriously, I have an application in mind that would require a similar algorithm. Not involving cats, but similar nonetheless; I want to identify subway trains as they pass through my neighborhood and post the next arriving train on a web page. Does anyone know of good (open) sources of similar algortihms?
I run an e-commerce beauty products site whose audience is about 80-90% women, and we get about 10,000 unique visitors a day. I am currently seeing about 4.5% Firefox users, and about 4.7% Safari users, Both of these numbers are way up, from 1.5% Safari and practically non-existent Firefox 1 year ago.
Just some stats from the non-techie web world....
Can be found here. "TheCounter" is a site where you can download one of those annoying page counters to put at the bottom of your web page, but at least they do something relevant with the information: they collate all the browser stats they can from the request.
This makes their stats really significant because a) they get millions and millions of requests per month (valid sample) and b) they are collating info across many, many site of all different shapes, sizes and topics (heterogenous sample). Their sample size is 223,437,657 visitors for July (the last month available), which I trust a lot more than the many posts on this thread saying "I see X% on my site".
I build e-commerce sites using full XHTML/CSS standards, and I use these stats to get a sense of which browsers/platforms to test in. If they have a bias, it is probably towards the casual user rather than the power user (after all, the sites that have a little counter on them aren't usually the most professional), but in designing for the general public, I'd rather be biased in that direction than towards the power user.
These stats are free and they've been kept for years, so you can spot trends (no charts, though, just tables).
Incidentally, their latest browser stats show Mozilla at 2%, which, sadly, is probably closer to the "truth" than 14% or 9% or whatever.
A search engine with these capabilities was prominently featured in William Gibson's "Pattern Recognition". A mysterious video disseminated over the Web contained a strange pattern that those trying to decode it thought was a street map. They fed it into a shape-matching engine and it turned out to be a fragment of shrapnel from a mine, which was a clue as to the origin of the video footage.
Don't forget that a good chunk of the price in higher-end cameras is in the optics. Optical distortion is optical distortion no matter what the circuitry, and Moore's Law doesn't apply to quality ground and polished glass ;)
An awesome, geek-thrilling site is the airplane graveyard at Davis-Monthan Air Force Base outside of Tucson, Arizona. Thousands of military surplus jets, many lined up in weird symmetries, many half-scrapped, all baking under the desert sun. Plus, Tucson is a great town. I recommend a stay at the Hotel Congress.
Tell me, have you read How Buildings Learn by Stewart Brand or A Timeless Way of Building or A Pattern Language by Chris Alexander? They explain this situation in far more detail than I could here.
Amen to those. I'd add to the list The Death and Life of Great American Cities by Jane Jacobs, and From Bauhaus to Our House by Tom Wolfe. They changed the way I look at design. When you realize how malleable buildings and cities are, you begin to design everything for change. Building, testing, revising, and iterating are the only way to succeed in building a [phone/GUI/house/park/whatever] that users will love. And if you must convince a client of the worth of something, convince them of the value a design adds to their customers/users, not just that you're "right".
I would strongly recommend Cascading Style Sheets: Designing for the Web, by Hakon Wium Lie and Bert Bos. Despite the fact that this book is a couple of years old, it's written by a couple of the guys who designed the original CSS spec, and really gives a terrific overview of the language, example layouts, and strong reference. It's fairly platform-agnostic, and as such concentrates on what works in CSS rather than what doesn't work in certain browsers. As the standards compliance of new browsers improves, this book gets better and better.
Learn CSS from this book, then for those pesky browsers, use the Web for the timely info (bug charts, hacks, etc.)
Well, on a trivial level, it's three less characters per instance; on a template with a few dozen variables, the difference in visual noise is welcome.
But of course Smarty ain't worth it just to save three characters. More ease of use comes from Smarty's modifiers. Most of the most popular PHP functions for string display and manipulation have been added to the modifiers, with the pipe syntax: {$dateVariable|date_format}, for example. A little thing like the "default" modifier can turn this:
<? if (empty($variable)) $variable = "None"; ?>
<?= $variable; ?>
into this:
{$variable|default:"None"}
There are dozens of these little shortcuts in Smarty, and they add up quick; I work in PHP and HTML for a good chunk of the day, and I work faster using it, as my code is about 60% as long as it was a few months ago.
But the big, awesome, huge advantage of Smarty is the ease with which you can separate business logic from presentation logic. My dynamic PHP files now tend to look like: "1. Validate GET or POST input, 2. Make appropriate SQL queries, 3. Send raw output to template". If I need to shorten a variable to fit a design, or change a name to all caps, or format a date, that doesn't have to be coded in the same place as my business logic. I had been writing my own functions to maintain this separation, but Smarty was way ahead of me, so I switched.
1 - It lets you mix html and code in. Sure, it's not the only language that lets you do it, but it's still a strength.
I thought that PHP did a great job of mixing HTML and code until my PHP apps started reaching a certain size. Even using function calls and classes, templates started getting convoluted. Then I discovered Smarty and my whole way of working changed. Smarty is a template manager that allows for more precise separation of content and code. As a super-simple example, lines like become {$variable}. Over the course of a whole site, the savings from this syntax alone ease code readability (yes i care about such a thing). But there's a lot more to smarty than shorter variables, including shorthand for string modifiers and loops, as well as a nifty caching system that can speed up dynamically generated sites, and zillions of other really cool things for "lazy" programmers like me.
A lot of people on this thread have mentioned AdoDB (my other favorite PHP add-on), but I haven't seen anyone give a proper shout out to Smarty. It's made my life easier.
While this study produced some food for thought, I will ingest it with a liberal amount of salt. Whenever you ask people about their comments on a site they just visited, you will invariably get a fair amount of what they think you want to hear. This is why focus groups are suspect; it's an interesting truism that people are bloody poor at articulating what they really want.
Even with 10 sites per category in several categories to choose from, it's doubtful that any of those sites have content people really want at the given moment. Without providing content that will satisfy a perceived need, of course people are going to respond more positively to the shiny, candy-like buttons...
The only way to really understand what makes people's web site experiences a satisfying one is to observe people as they surf, and watch their results. Good web design is more like gardening than anything else: plant the site, watch traffic grow, remove some weeds, water with fresh content, fertilize with fresh design. A good strategy is to post alternate designs often, and then watch your traffic logs to see if clickthroughs increase. Amazon, whatever your criticism of them, is great at this... their site changes features and layouts just about weekly. Not enough to make people lost, but menus move, contract, expand; buttons move from GIF to HTML and back; layouts widen and narrow. Then the proof is in the traffic, and the visitor never gets a chance to tell you what they think you want to hear.
I'm glad to hear the conclusion that good design has value (I'm primarily a designer), but I think this survey is an oversimplification of reality which leads to an oversimplified conclusion.
Given that wind resistance for a given surface area increases exponentially (I think... been a long time since physics class), that 1000mph figure is astounding.
Also this: "Above ground structure (microwave and troposcatter antennas) require at least two thirds of the structure to be below grade to prevent tilting or rotation". Does that mean these 200ft towers are rooted 400ft deep?
Does anyone know of a good source of fresh statistics for connection speeds? For general web stats, The Counter has decent free aggregate stats for things like browser, OS, monitor resolution, etc. But I'd really like to find something similar for bandwidth speeds. Any ideas?
I feel a need to clear some things up here:
You shouldn't be forcing people to use a perticular font on a web site in any case whatsoever.
I don't force anything. CSS font selections are at best a suggestion,and if the font I've suggested doesn't exist, the default renders anyway. But 99% of the audience never changes their default font, which is Times New Roman, and which is not always the right font for the job.
That's a decision to be left to the client's renderer.
If it means that much to you, most modern browsers have the option to let local settings override the designer's settings. Edit your preferences and enjoy! Most people don't choose their default font, and don't care if the font changes as long as the design is usable (and yes, I have the data to back this up from usability studies I've done).
If you absolutely MUST dictate a precise font face, for a specific purpose, then create a graphic of what you want, and use that.
And that's more friendly how? Plain HTML text is searchable, cut-and-pasteable, and accessible in web readers for the blind, etc. Text-as-graphics is a last resort that should only be used for logos and such.
What about sight-impaired people who need HUGE fonts in order to read a web page? If you've forced 12 pt blahfoobar, they're screwed.
Who said anything about forcing a font size? We're talking about font face, which you can specify while leaving default sizes intact. And when using CSS and the em unit, you can scale an entire page relative to the viewer's base font size. In fact this is another argument against text-in-graphics, as graphics always render as fixed pixel sizes, and limit the scalablity of designs.
And on the subject of font sizes, sometimes there's a need to make a super-small piece of text, as in legal copy or photo captions, things that are required to be on a page by law but will be read by few if any of the users.
As was noted in another post, Verdana was designed by Matthew Carter (the same typographer who designed Bell Gothic for legibility in the cramped confines of telephone books) specifically for legibility on screen. It's a welcome alternative to Times New Roman. Typography textbooks will tell you that serif fonts are more legible in body copy, but that assumes enough resolution to render the serifs! Current screens set to 800x600 don't compare to the resolution of print which can commonly run up to 3250dpi (that's a 1000x difference when comparing number of dots per page).
Having a font on demand (Verdana) with a minimum of visual crap around the edges is a valuable tool in the design arsenal.
...and now they're taking it away! I teach web development and design, and I've referred my students to this page for a couple of years now so that they can see the fonts they can count on most people having on their machines. These MS fonts were, for a time, installed with every MS OS, every copy of Office (Mac and PC) and every copy of Explorer (mac and PC) which is an alarming percentage of machines.
I used to joke that the monopoly was a good thing in this case because it drops these fonts everywhere and somewhat standardizes the font choice for web developers. I don't wanna contemplate a world without Verdana.
Thank god at least I've been using central CSS, so I only have to change one or two lines per site if the fonts need to be changed!
When you win large amounts at a casino, you get chips at a table, which are then cashed in at a cashier's window. They make you fill out tax forms if you cash out more than $10,000, but less than that is up to you to report (or, ahem, not). If you however cash out several times for $9,000, there is no automatic tax reporting... and you needn't show any ID at all.
;) but I've seen it happen.
So, you're holding a wad of cash untraceable to you and you're going to voluntarily report it to the IRS so's they can take ~40% of it? And you're a card counter? Riiiiight.
Turning $200,000 into a cashier's check requires running that money through a bank and raises a big red flag to the IRS. Carrying big wads of cash == ~40% increase in profits.
Not that I've ever won anywhere near enough for this to be an issue
My favorite computer books EVER are the PHP Developer's Dictionary (SAMS, by Wyke, Walker and Cox) and PHP Developer's Coookbook (SAMS, by Sterling Hughes). Great organization, just-the-basics examples, even decent typography and layout! It's almost a shame that the language is continually evolving, 'cause I'd like to keep these on hand for a long time.
I also second everyone who's mentioned Code Complete.
BBC also has a short RealVideo clip of the crash, replete with one very freaked-out kangaroo fleeing the crash site.
99.999999% of Windows users didn't install their OS.
Yeah, but what percentage of Linux users did install their OS? My point is, the Mom here is metaphorical for the casual user, and Linux is not going to make inroads into those casual users until it is more convenient to use Linux than their default OS. Or until all the big OEMs start installing it. The amount of inconvenience the casual user will tolerate to switch is exactly zero.
I'm not opposed to the idea-- the less Windows users the better. But this article is a Linux zealot talking about how he installed Linux for his Mom, without once mentioning how his Mom felt about it! She's the one we should be talking to-- and learning from.
The original essay cited above ends with our protagonist having installed Debian for his Mom. I say, so what?
If you want some real insight into why Mom isn't using Linux, first of all he should have made Mom do the install. He says:
I felt like a chicken pecking my way through all the defaults until I finally had all the packages copied over (took about twenty minutes of installing to get to the point of a login prompt). A few more commands brought down security updates, the X Window System, as well as a few applications I knew my mom would need.
Twenty minutes? How long would it have taken Mom? Pecking chicken? How many of those "pecks" were to answer arcane config questions that Mom wouldn't know the answer to? Command prompt? Please.
This right here is the first reason Mom isn't using Linux.
And even granting him that Mom might be happy on the new OS, I need to hear about her experiences in the new environment to have any opinion. Did she get any strange error messages? What happens when her friends give her programs she can't use? Can she find online help written in plain language to solve her own problems? (even today, these are questions that should be asked of any OS.) For a pro-Mom-on-Linux article, so strange that it ended without Mom using Linux! I hope there's a follow-up I'm missing, because that would contain the real answers to the title's question.
Two links of relevance:
First, note this list of CSS bugs. Note that a number of valid markups CRASH NS4. That's why NS4 is a thorn in the side of standards compliance... otherwise valid code can flat-out cause the browser to tank. Not good. Just as a little knowledge is a dangerous thing, a little CSS compliance is a train wreck. In response to one of the above posts, I'd much rather code for Lynx than NS4. And I do code for IE, opera, Netscape 6, Mozilla...
But there are workarounds, some painful, some quite painless. Go here for an FAQ on dealing with NS4.
Here's an excellent tutorial on how to get some common layouts without using tables for layouts. It's a little tricky at first but entirely possible. I've built my last three sites using no tables.
I haven't read this book, but I'll certainly keep an eye out for it. However, for anyone who read the words "how environment affects the intangible quality of human life" and nodded in agreement, I'd like to point out the excellent "A Pattern Language" (Christopher Alexander, Sara Ishikawa, et al., Oxford Press 1977), which identifies the bits of a building and its surroundings that connect us to the world, from the placement of windows to the optimal width of sidewalks. After reading this book, it's hard to drive past a newly-sprouted field of designed-in-a-vacuum McMansions without seeing how ridiculously unnatural they are.
And for a lighter look at how we got here, "From the Bauhaus to Our House" by Tom Wolfe is a great (admittedly skewed) history of 20th century architecture, and how Socialist model housing of the 1920s became the signature style of international corporations by the 1960s.
Both of these books are ostensibly about architecture, but I keep coming back to them as general design touchstones when I need to remember that the stuff I'm making (programming, teaching, designing) has to be about people and interactions, not just stuff.
I've seen several links so far to the excellent Code Complete, and I second that one wholeheartedly. One commenting scheme that they suggest is writing your code first in pseudocode, just to get the logic down in plain English (or plain language of your choice), with indentations to indicate logic:
// Construct email from user input .= $form['emailSenderName']." says to tell you hello!";
// Send email to address indicatedc t'],$body);
// If no:
// Send form back to user
// Highlight email field
// Show email validation message
// increment i
Get email form data from client input
Is email address valid?
If yes:
Construct email from user input
Send email to address indicated
If no:
Send form back to user
Highlight email field
Show email validation message
Once you're happy with the pseudocode (which, for me, more often than not clears up at least a little shaky logic for me before coding even begins), you can add your code to the pseudocode line by line, turning the pseudo-stuff into your comments. Combined with smart variable names, this is usually all you need. Sorry the example's in PHP:
// Get email form data from client input
$form = getFormInput($thisClient);
// Is email address valid?
if (validateEmail($form['emailTo'])) {
$body = "Hi ".$form['emailReceiverName'].".";
$body
mail ($form['emailTo'],$form['emailFrom'],$form['subje
}
else {
sendForm("email", "That's not a vaild email address!");
}
OK, this is a pretty weak piece of code (I haven't had any coffee yet), but the point is that the pseudocode comments plus good variable/function names tend to be a real good
start on your comments, almost self-documenting. And it tends to produce comments that straddle that line between too much information and not enough. Because the pseudocode shouldn't deal with the nuts'n'bolts of the programming language, you'll never write comments like the hated
i++;
although one of my Golden Rules of Technical Communication is "too much information is always better than not enough".
...it's really irrelevant who cast the first stone. Looking back, the commercialization of the Internet (incl. Usenet, email, the Web) seems more like a historical inevitability. If it wasn't Canter and Siegel, it would have been someone else two weeks later, guaranteed. The network was simply too rich and too full of potential at that point in time to not be mined for profit.
Don't forget, the "unwritten rules" of the Internet as a non-commercial venue included the Web(!) at first; there were always "dot-com" addresses, but outright advertising was seriously frowned upon. However, had this fundamentalist purity somehow miraculously stayed intact, most of us would probably be out of a job today. I know I would.
Canter and Siegel's place in history will be less on the magnitude of Jimi Hendrix, and more like the name of the first concertgoer through the gates at Woodstock-- a piece of trivia at a historical event.
Seriously, I have an application in mind that would require a similar algorithm. Not involving cats, but similar nonetheless; I want to identify subway trains as they pass through my neighborhood and post the next arriving train on a web page. Does anyone know of good (open) sources of similar algortihms?