What I'm reading
Weds. Signal: Get Me a Mobile Strategy or You're Fired!
(Cross Posted to the FM Blog, where Signal will have a permanent home soon)
Mobile. It's on everyone's lips, but no one knows what the hell to do about it. At least, that's what I hear from every single marketer I talk to, and I've made it a point to talk to a lot of you in the past few months.
It's a source of significant frustration: Everyone's saying mobile is the next thing, but no one has a solution for how to market in the space in a way that delivers the four pillars of brand marketing: Scale, Safety, Quality, and Engagement.
Sure, you can now buy banners across ad networks in mobile, and lord knows that ability has paid off handsomely for AdMob and Quattro (acquired by Google and Apple, respectively, for very large multiples of very small revenues), but honestly, we all know that's not an endgame. More like an opening gambit in a chess match where nearly everyone feels like they're playing checkers. (Except Steve Jobs, natch. He's got it ALL figured out).
OK, forgive me the snark, but if Apple has this figured out and the rest of us are consigned to tithe at the church of iPad/iPhone, we're well and truly screwed.
Ditto for the strategy of "I'll get me a cool app", which feels about as innovative as "Get me a viral video" did back in 2007. I'm not saying having a good app isn't part of a great mobile strategy (I love what Oakley has done for surfers, for example), but one good app don't a solution make.
Earlier in the Signal, I wrote about MOLRS, my entirely non-viral and made-up acronym for Mobile Local Realtime Social. My point was this: Mobile is not a singular use case. Mobile is related to an ecosystem of local (where I am), realtime (what I'm doing right now), and social (who I'm with, who I want to tell about what I'm doing, etc.).
I sense the answer to a truly quality, scaled marketing solution in the "mobile" environment has to do with understanding this broader framework. It's a complicated landscape with way too many middlemen at the moment. But my Spidey senses are tingling, and something's about to happen, I can feel it. If only I knew what it was....
Meanwhile, here are some links to chew on, much of it MOLRS related. It's better than eating your phone. (image credit )
Internet Services: Mobile Advertising: The Hype, The Hope, And The Financial Reality (Weisel - pdf download) This is a research report sent to me by Thomas Weisel's Jordan Rohan. I'll probably get in trouble for posting it. Maybe.
Foursquare Introduces New Tools for Businesses (NYT) Analytics so businesses can figure out what they want to do with Foursquare. Smart.
Just In Time For The Location Wars, Twitter Turns On Geolocation On Its Website (TechCrunch) As I said earlier, expect Twitter and Facebook to play for the Checkin signal in the Database of Intentions.
Facebook Will Allow Users to Share Location (NYT) Hey, wait, on the SAME DAY! Seems *everyone's* MOLRS are coming in at once...
US online ad spend set to overtake print (Guardian) Well of course it is. About time.
Bingo! Microsoft's Search Numbers Keep Going Up (Paid Content) Bing gains, Yahoo! loses.
10 neglected interactive marketing best practices (iMedia)
Why blog and comment spam isn't going away
Every one of us who opens up a website to public conversation faces a daily annoyance: blog and comment spammers. Cleaning up after them becomes a morning ritual.
Google, a mix of scammers and legitimate businesses, and global economic inequities all play a role in creating a system that guarantees this problem will not go away any time soon.
The result is a mix of overt and covert spam. Overt spam is easy to spot; it's usually just a set of links to e-commerce sites, often peddling fake merchandise. Covert spam is disguised. Here's an example:
Several characteristics stand out:
- It's not from a bot or a script, but was posted by a human. Registration systems and CAPTCHA challenges are pretty good at stopping the bots. After you take those measures, you're left with posts like this.
- It's awkward. English is apparently not the writer's native tongue.
- It's generic, not related to the content. This can be tricky, because the manual spammers have learned to cut and paste phrases from content and from other comments.
- The links point to a commercial website. This is where Google comes into play. The point of this spam isn't to get your users to click. The point is to steal the reputation of your site. Google's algorithm values inbound links, especially if they are from "respected" websites that already have good Google rankings. These vultures are gaming the system to boost their Google search rankings.
- It was posted at an odd early-morning hour, a tip that if you do a bit of detective work with your logfile info, you'll probably trace the posting back to India, Turkey, Romania, Russia or China.
So how does this happen? This morning I ran across a bit of spam in which a spam factory was looking to hire spammers:
I tracked these guys down. It's an IT company in India, offering to pay 5 Indian rupees -- about 11 cents in US money -- for every "ad" posted on "free classifieds" sites around the world.
But it's not just Craigslist that they're targeting; in their Frequently Asked Questions section they admit that forums and blogs are the target, too:
And they're offering a vague "special bonus" if the ads are posted "in foreign countries:"
I did a little math. The ad claims a range of 10,000 to 25,000 INR per month; that's $220 to $550. The website of this company claims up to 45,000 INR, which is about $1,000.
India has people riding around in Bentleys and Rolls-Royces, and I saw a lot of Rover and Toyota SUVs on my visit. But it also has millions living in brutal poverty and millions more barely above that.
Let's say you're a highly motivated, English-speaking college student with a few basic computer skills. How many spam ads would you have to post to live at that magical 45,000-rupee level? With a 40-hour work week, it would be nearly one ad every sixty seconds. Hard work, actually. But there are millions undoubtedly ready to try it, and if the spam factory simply fails to deliver the promised money order, there are millions more ready to try next week.
Similar conditions exist in Romania, the former Soviet countries, China and many other places around the globe.
The cash that feeds this global spam engine comes from a number of sources. In 2003, when the US housing bubble was running full steam and mortgage bankers were lining up the bad loans that set up our current economic recession, MSNBC followed the money trail of some e-mail spammers and found that it led back to "big-name companies like Ameriquest, Quicken Loans, and LoanWeb." Mortgage lead-generation fees and commissions were ultimately funding the trash in your inbox.
But there are other, more shady sources, ranging from U.S. companies selling term papers to lazy students willing to cheat, to scammers selling counterfeit Rolex watches and fake prescription drugs, technothieves pushing spyware onto your PC, and pump-and-dump stock market frauds.
The CAN-SPAM act gave the US government some tools for cracking down on email spam, and people like Alan Ralsky have been sent to prison. But the law doesn't apply to Web sites and social networks. And while the US government isn't shy about sticking its nose into other countries' business when oil is involved, you'd better not hold your breath waiting for it do something about offshore spamming.
yelvingtonSurvey: How Twitter Has Influenced Political Journalists’ Coverage
Australian professor Julie Posetti has a fascinating post on how Twitter has shaped the thinking and workflow of political journos.
From her post: “Twitter is becoming a vehicle for participatory democracy in Australia thanks to its ability to create unmediated interaction between political journalists, engaged citizens and politicians.”
“In the race to tweet, journalists are knocking down the walls that have in the past segregated media outlets within the Press Gallery. This is happening via content-sharing and cross-pollination between fiercely competitive commercial and public broadcast networks, newspapers and wire services.”
Read her whole post with info from her findings on PBS MediaShift
Share:Photojournalist Peter Parker fired by New York Daily Bugle
A story in Tuesday’s USA Today reveals that Peter Parker — yes, the guy who is secretly Spider-Man — will be fired in this week’s issue of the Amazing Spider-Man comic book.
He, of course, is was a photojournalist for the New York Daily Bugle.
Believe it or not, Parker is fired for manipulating a photo. But for only good reasons, of course. A true hero like Spider-Man could never do something evil.
Visual ethics might have been a powerful and interesting comic book plot line … had it not already been used in the movie Spider-Man 3.
Go here to find my skeptical piece about the 2007 death of Captain America.
© Charles Apple and Visual Editors, 2010. |
Permalink |
One comment |
Add to
del.icio.us
Post tags: Comic strips, Photojournalism, Visual ethics
Feed enhanced by Better Feed from Ozh
The evolution of lasvegassun.com’s homepage strategy — more importantly, does a nice design negatively impact traffic?
Dating back to our online team’s time in Lawrence, I’ve always had a nice friendship with John Temple. And shortly after our decision was made to come to Las Vegas to work with the Greenspun family of publications, John gave me lots of advice.
His advice that keeps proving to be correct time after time is that we should track and benchmark everything. About 15 or 16 months ago, I blogged about how we used that advice to keep tweaking our content strategy. By watching what our readers really do on our site — as opposed to what they might say in some formal reader survey — we continue to refine it nearly every day.
But we use benchmarking for more than just content decisions.
By my math — which, admittedly, completely sucks — the Sun’s homepage design/strategy has gone through roughly four fairly significant changes in the last couple of years.
When lasvegassun.com formally relaunched just over two years ago (under the direction and inspired leadership of Josh Williams, Doug Twyman and Dave Toplikar, along with lots of design love from Bill Gaspard and Tyson Evans), the site’s content closely mirrored the print edition of the Sun. I often describe that version of lasvegassun.com as similar to a very well done, regional version of Slate … not so much the news of the day, but more of what the news of the day meant, along with lots of interesting commentary and tidbits not typically found in a local newspaper.
Because that meant lasvegassun.com had a fairly low daily story count (think around 10 stories or so a day), the main content area of the homepage was essentially designed every day.
And it was a thing of beauty:
+++
+++
Here’s how that main content area would change from day-to-day:
+++
+++
After watching the traffic trends for a few months — including the realization that lasvegassun.com’s traffic numbers were actually going down a little after the removal of some national wire feeds that were being read by a small, but passionate national audience — it was decided the content from the Sun’s print edition was great on the web, but couldn’t be the only thing on the Sun’s website.
Seems kind of obvious now, huh?
At that point, local breaking news and other content created specifically for the web became a key part of lasvegassun.com’s strategy. With that additional content, the site’s traffic numbers began growing very quickly.
The problem was the site’s homepage and CMS templates weren’t really designed for that mission. To accommodate this, the site’s homepage design was essentially hacked. That meant the site had its great-looking print content (which was still being custom designed each day) on the homepage with breaking news headlines just stacked on top.
It looked like poop. It looked like this:
+++
+++
Around this same time (September of 2008), I was asked to speak at an SND conference. I explained this dilemma to the audience and that it looked like we were getting ready to benchmark whether “pretty or ugly” was more practical on the web.
I remember thinking at the time that “ugly” was going to win out because of the amazing traffic that some of the ugliest sites on the web got at that time — think DrudgeReport and you’ll know exactly what I’m talking about.
So our senior online news designer at the time, Tyson Evans, (who also had a very big hand in the design of the site the first time around) began building a tweaked homepage that would hold all of our breaking news.
It looked basically like this:
+++
+++
So, what was the effect on our traffic?
The numbers just kept growing. And because our marketing and better promotion within the Sun print edition really were starting to kick in, the numbers actually were growing fairly significantly.
The weird thing was that we all kind of missed how the old lasvegassun.com homepage would actually be redesigned each morning. The problem was that on top of our content from the print edition, we now were publishing somewhere between 20 and 40 locally produced online/breaking stories a day.
Some of those online-only stories had art. Most didn’t. Some stories were important. A lot were just “new” news, but definitely not huge news.
We certainly weren’t going to be able to custom design homepages with all of those variables.
But with the help of some very creative template implementation by our team’s current (and incredibly talented) senior designer Danny DeBelius, the problem not only was solved but also helped our traffic grow one more time.
The cool part about how Danny built our homepage templates is that our homepage design actually changes several times throughout the day, always looking fresh … and not just because of the newer stories.
So, here’s a look at how our homepage looked on a recent day — for a 24-hour period beginning at 2 a.m.:
+++
2 a.m., Feb. 17.
+++
8:40 a.m., Feb. 17.
+++
10 a.m., Feb. 17.
+++
11:30 a.m., Feb. 17.
+++
12:45 p.m., Feb. 17.
+++
1:45 p.m., Feb. 17.
+++
2:30 p.m., Feb. 17.
+++
4:05 p.m., Feb. 17.
+++
6:15 p.m., Feb. 17.
+++
8:50 p.m., Feb. 17.
+++
9:05 p.m., Feb. 17.
+++
9:35 p.m., Feb. 17.
+++
We also have what we call our “holy sh*t” homepage template, which we’ve used only twice since we began changing the homepage design throughout the day. (We started using the multiple-design version of the homepage on Jan. 20.)
+++
So, what does this all mean?
Well, we learned that a pretty and practical homepage design combined with the right content mix has led to the most significant online traffic gains of any site our online team has worked at.
We even learned that changing up the design throughout the day doesn’t hurt traffic, despite some traditional online-news design thinking/perception being that you should always leave everything in the exact same place. (Which, BTW, is the dumbest thing I’ve ever heard. I mean, look at how the design of the front page of newspaper changes everyday, yet everyone seems to pretty much get that concept. Give your readers some credit. Heck, it might even open their eyes to content they wouldn’t normally view.)
We’ve been doing the multiple designs of the Sun’s homepage throughout the day for about six or seven weeks, and our traffic continues to trend upward, with the most obvious lesson being that a breaking-news story with a killer photo gets a whole helluva lot of pageviews, especially when you have a design that blows both out.
More importantly, we can be much more agile with our design based upon our daily content production.
(Though I should note that we’re really only changing up the main content area of the homepage. The navigation and other core elements of the site are always staying in the same places.)
And we know all of these things because we’ve benchmarked nearly everything from Day One.
Thank you, John Temple for the great advice.
+++
To comment on this post, or to see comments about this post, please go here. (Requires Facebook account.)
Ask RedEye anything
You know us - we like to be first in the social media space. We're doing it again - this time over at formspring.me where we now have our own page.Formspring is a relatively new social media phenomenon where people can ask questions - either as friends or anonymously. And the person with the account can choose to answer or not answer the questions. The ones that are answered appear on the main page for all to see. The others never see the light of day.So we figured - why not! Let's get on formspring. But there's a twist. A really fun twist that we hope you'll love. Click through and I'll tell you all about it....
Small teams, loosely joined
Last week, we launched a new application for the RedEye – the Chicago homicide tracker. The web site makes it simple and interesting to browse homicide crime data for the city. RedEye reporter Tracy Swartz has been compiling the homicides since Jan. 1, 2009 and writes a weekly analysis. She wanted to give readers a better way to browse and understand the data and we wanted to help but never had enough time to give the project the attention it deserved.
The homicide tracker might look familiar if you’ve ever seen the L.A. Times homicide project. That’s because it’s the same code. LA Times hacker team of Ben Welsh and Ken Schwencke generously let us use their code (caveat: we all get our paychecks from the same place – Tribune Co.). It took four days of re-factoring, reorganizing, writing new data loaders and a new skin to make the L.A. Times code work for the RedEye.
This kind of project plays to the strength of the small newsroom dev team. We started with a small-medium application that was built to solve a specific problem, but not to be reusable. We worked with the reporters to figure out what about the L.A. Times app we should keep, what we should scrap and what we should change. We ignored the urge to refactor and leave as much of the original code as possible, tweaking only what was necessary. With the help of the author of the original, we were able to quickly make our changes and launch.
Free and open technologies are key to our small teams working quickly. Pulling content and data from RSS and Google spreadsheets allowed us to skip building a content management system for the homicide tracker. Using a sophisticated, modular web framework helps to make us efficient.
The moral of the story is that for news apps, small teams sharing code, insight and ideas – “small pieces, loosely joined” – is quite effective.
Continuing the participatory revolution
For years I've been pushing the idea of participatory journalism. If you've been thinking this is just theory, some more data has emerged that ought to get your attention:
- "According to Web measurement firm Compete Inc., Facebook has passed search-engine giant Google to become the top source for traffic to major portals like Yahoo and MSN, and is among the leaders for other types of sites." (San Francisco Chronicle)
- "Facebook was the #4 source of visits to News and Media sites last week, after Google, Yahoo! and msn. ... Facebook could be a major disruptor to the News and Media category." (Hitwise analyst Heather Hopkins)
- "Of the 71% of the adult population who get news online, 75% of them say they get news forwarded to them through email or posts on social networking sites. ... In addition 23% of the social networking users who get news online say they specifically get news from news organizations and individual journalists they follow in the social networking space. " (Pew Internet & American Life Project report, "Understanding the Participatory News Consumer")
News is no longer just a report. It's a conversation, a broad process in which many people contribute to varying degrees.
This is not new, but rather a restoration of normalcy that was disrupted by Gutenberg and Marconi. We humans evolved in tribes, and we digest news and information by sharing it and talking about it with our friends and family. The one-way flow that is characteristic of print and electronic broadcasting is at odds with our nature. The Internet ends that directional tyranny.
But that's only part of the change. Social filtering and recommendation are the new editors and publishers. Years ago, I said that "gatekeeping" was dead and that we would need "guides" to show us the way through the chaos of the new marketplace. Our friends and followers are now taking a prominent place in that "guide" process, displacing the "editor" and the "newspaper" product.
yelvington14355918311555236122Miami Herald, St. Pete Times launch Florida version of PolitiFact.com
PolitiFact Florida, which is running in both the Herald and the Poynter-owned Times, debuted over the weekend.
Jim Romenesko
Spending time with Los Angeles homicides
Have you seen the L.A. Times homicides map? I’m sure you’ve marveled at the New York Times homicides map, and perhaps you have also admired the Boston Globe homicides map. The L.A. map, however, has a lot (a lot!) of fine features that the others lack.
One of my students wrote a critique of the L.A. map for an assignment, and that led me to go deeper into it than I had before. Turns out that it’s probably the best implementation I’ve ever seen of Adrian Holovaty’s 2006 call to action, A fundamental way newspaper sites need to change.
I’m particularly impressed by the article level of the data — the story — for each and every victim of homicide (see here and here and here, for example). Check out The Homicide Report blog too.
(Props to Ken Schwencke, a Gator journalism grad, whose love of data and code is all over this thing.)
Mindy McAdamsGoogle Declares "Living Stories" Experiment Success, Offers as Open Source
I Don't Like The iPad Because...
...it's driven by the same old media love affair with distribution lock in. I've been on about this ever since I studied Google in 2001: Media traditionally has gained its profits by owning distribution. Cable carriage, network airwaves, newsstand distribution and printing presses: all very expensive, so once you employ enough capital to gain them, it's damn hard to get knocked out.
The web changed all that and promised that economics in the media business would be driven by content and intent: the best content will win, driven by the declared intent of consumers who find it and share it. Search+Social was the biggest wave to hit media since the printing press. And the open technology to make better and better experiences has been on a ten year tear: blogging software, Flash, Ajax, HTML 5, Android, and more and more coming.
But the iPad, just like the iPhone, is designed for vertical integration and distribution lock in. Apple is building its own distribution channel, just as it did with iTunes, and media companies are falling over themselves to make an app for that. Why? Well sure, for once, it's sexy and cool and hip. That's why everyone loved the Wired demo.
But the real reason media companies love the iPad is the same reason I don't: It's an old school, locked in distribution channel that doesn't want to play by the new rules of search+social. Sure, you can watch a movie on it. Sure, you can read a book on it. And sure, you can read a publication on it. But if you want to use the web natively, with all the promise that the web brings to media? Not so much. Apple will include a browser, of course. But will media you find through that browser be able to interact with the iPad platform so as to bring full value to you, the consumer? Nope. Not unless that same media is approved by Apple and makes it into the iPad app store.
And that's why I don't like the iPad. Don't tell me, as a media maker, what I can make and how I can leverage the technology in my audience's hands. And don't tell me, as a media consumer, what's OK for me to interact with, and how.
Yep, I really don't like what the iPad augurs. And I hope, in the end, it's consigned to what it should be: A sexy version of a portable DVD player-cum-Kindle. Nice to have. Not a game changer. Certainly not revolutionary. Unless you're longing for yesteryear, when owning distribution meant owning audiences. Oh, and by the way, Traditional Media Folk: This time Apple owns that distribution channel, not you.
Harumph.
I Don't Like The iPad Because...
...it's driven by the same old media love affair with distribution lock in. I've been on about this ever since I studied Google in 2001: Media traditionally has gained its profits by owning distribution. Cable carriage, network airwaves, newsstand distribution and printing presses: all very expensive, so once you employ enough capital to gain them, it's damn hard to get knocked out.
The web changed all that and promised that economics in the media business would be driven by content and intent: the best content will win, driven by the declared intent of consumers who find it and share it. Search+Social was the biggest wave to hit media since the printing press. And the open technology to make better and better experiences has been on a ten year tear: blogging software, Flash, Ajax, HTML 5, Android, and more and more coming.
But the iPad, just like the iPhone, is designed for vertical integration and distribution lock in. Apple is building its own distribution channel, just as it did with iTunes, and media companies are falling over themselves to make an app for that. Why? Well sure, for once, it's sexy and cool and hip. That's why everyone loved the Wired demo.
But the real reason media companies love the iPad is the same reason I don't: It's an old school, locked in distribution channel that doesn't want to play by the new rules of search+social. Sure, you can watch a movie on it. Sure, you can read a book on it. And sure, you can read a publication on it. But if you want to use the web natively, with all the promise that the web brings to media? Not so much. Apple will include a browser, of course. But will media you find through that browser be able to interact with the iPad platform so as to bring full value to you, the consumer? Nope. Not unless that same media is approved by Apple and makes it into the iPad app store.
And that's why I don't like the iPad. Don't tell me, as a media maker, what I can make and how I can leverage the technology in my audience's hands. And don't tell me, as a media consumer, what's OK for me to interact with, and how.
Yep, I really don't like what the iPad augurs. And I hope, in the end, it's consigned to what it should be: A sexy version of a portable DVD player-cum-Kindle. Nice to have. Not a game changer. Certainly not revolutionary. Unless you're longing for yesteryear, when owning distribution meant owning audiences. Oh, and by the way, Traditional Media Folk: This time Apple owns that distribution channel, not you.
Harumph.
Best practices in web development with Python and Django
At some point during the course of developing the Elections Center it became clear to me that each of us was spending too much development time trying to understand one another’s code. Sometimes this was because our intuitions about the right way to do things were different, other times it was a difference of priorities, but most often it was simply due to a lack of any explicit best practice.
Being something of a documentation and organization junky I took it upon myself to begin to collate a best practices guide. The hope was that in doing this we could both ensure craft knowledge was well-distributed as well as minimize the amount of “why did he do it that way?” moments when reading one another’s code. (More famously, WTFs/minute.) In our fast-paced environment there is little justification for being confused when it could have been avoided by simply writing it down.
What follows are the best practices we have established (by commission and arbitration) thus far. Some of them are tried-and-true policies (PEP 8), others are process-driven (the use of python’s logging module), and a few are entirely idiosyncratic (formatting of CSS files). All of them combine to provide us with explicit expectations for reading one another’s code and therefore a much easier time when are obligated to fix it at 10:30, on a Sunday, for a Monday morning paper.
We hope you will find them inspirational and make many suggestions about how they can be improved.
1. Version control- Excluding bug-fixes, active development should not be performed on the stable branch.
- Large, discrete units of work should be developed on their own feature branches, so that another developer can pick it up if you get hit by a truck.
- Feature branches should be prefixed with the owner’s initials to prevent confusion, e.g. “bb_polls”.
- Feature branches should merge from master as often as is feasible, to prevent merge headaches later on.
- Completed feature branches should be merged into master and deleted from the remote repository so that they are not mistaken for work-in-progress.
- At the end of each iteration (when features are about to be deployed to production), master should be merged into stable and then stable HEAD should be tagged, e.g. “v3.0”. For example: git tag -a v3.0 -m "Deploying iteration 3." git push --tags
- In the event a release needs to be redeployed with fixes, increment the sub-version index, e.g. “v3.1”
- Follow the principle of “merge early, merge often” to prevent conflicts.
- Commit messages should accurately summarize each task included in the commit, otherwise git log is useless.
- Commit messages that reference tickets should use the #1234 syntax so that they are automatically associated in issue tracker.
- Commit messages that close tickets should use the Closes #1234 syntax to automatically tie the commit to the appropriate ticket.
- Always install dependencies in a mkvirtualenv --no-site-packages $name environment. This eliminates the possibility of version conflicts and makes setup as easy as pip install -r requirements.txt.
- Follow PEP 8 best practices, this means (among other things):
- Four-space tabs are required.
- Don’t use from package import *.
- Do use whitespace liberally.
- Do use descriptive lower_case_with_underscores variable names (understanding is much more important than brevity).
- Do put explanatory docstrings on all non-trivial classes and methods.
- If it isn’t covered by PEP 8, refer to Idiomatic Python, which is far more thorough.
- Don’t use print. Use Python’s built-in logging so that output can be structured for different use-cases. (Also it makes transition to Py3k much easier.)
- Always request a logger with log = logging.getLogger("project.app.module"). Take note of the logger naming structure so that output can be filtered.
- Organize imports in a logical manner: standard libraries first, then third-party libraries, then our own modules. Alphabetization within groups takes only a few seconds and makes removing cruft easier.
- When in doubt, remember import this. (PEP 20)
- Follow the Django Coding style with regard to naming, spacing, etc.
- Use pickled model fields with extreme caution.
- Build normalized models and denormalize only when necessary for performance. When feasible, do so without altering the original table.
- If you define a generic magic constant in a module (path, API key, url, etc) that is likely to be reused in another module define it in settings.py instead.
- Use management commands instead of shell scripts. Remember that management commands can be invoked programmatically with call_command().
- Don’t forget to activate the virtualenv when invoking a management command from cron: */5 * * * * source /home/newsapps/sites/$project/env/bin/activate && /home/newsapps/sites/$project/repository/manage $command >> /dev/null 2>&1
- Always include the RequestContext when rendering view templates. For example: render_to_response(‘template’, template_dict, context_instance=RequestContext(request))
- Put logic in view functions, not in templates. The simpler the template the better.
- Don’t use jQuery in widgets that will end up on other sites.
- Otherwise, use jQuery.
- Whenever possible, put Javascript at the bottom of the page.
- Don’t use inline Javascript.
- Add a top level ID to every kind of page (#race-page, #candidate-page)
- Use IDs for elements that are unique to every page in the site. Use classes for everything else.
- Use hyphens for IDs and classes, no camelCase or underscores.
- Use descriptive and unique names for IDs. Use simple generic names for classes.
- Always define classes with nested rules: #candidate-page .box-column .box .bar-chart. Use your best judgment, don’t go overboard with the nested rules, just enough to make sure your not going to style the wrong things. IDs rarely need to be nested
- Each CSS selector gets its own line. The block of rules has to share. It makes big CSS scannable: a:link {color:#336699;} a:hover, a:active {color:#6d9fd2;} a:visited {color:#336699;} a:visited:hover {color:#6d9fd2;}
- Don’t rely on (because of IE6):
- min-width, max-width, min-height, max-height
- overflow:hidden
- css tables
- attribute selectors
- psudo-classes (other than for a tags)
- > (child selector)
- position:fixed
- If you are positioning one block absolutely inside another, make sure the parent has a specified size.
- Don’t use inline styles.
- Don’t use them.
- If you use them, make sure you use photoshop’s “Save for web…” or figure out another way to optimize them.
- Use jpeg for images with lots of different colors and gradients, png/gif for images with few colors.
- PNG rules (if you’re relying on PNG fix)
- Don’t use PNGs. If it hurts, blame Microsoft.
- If you use PNGs, don’t use PNGs with alpha
- If you use PNGs with alpha, use them in img tags only.
- If you use PNGs with alpha as background images: http://24ways.org/2007/supersleight-transparent-png-in-ie6
- Use unit tests to validate non-trivial methods.
- Always test methods that involve date math, statistical calculations, non-ducky type conversions, or extract data from arbitrary sources (Excel, web, etc).
Google facts and figures (massive infographic)
Google has perhaps more than any other company become “The Internet Company.” It’s grown hand in hand with the internet and its entire business model has from the start been totally focused on the internet as a delivery platform.
And let’s face it, Google is a pretty interesting company. In fact, we think it’s so interesting that we put together this infographic with a ton of facts and figures about Google. We’ve been digging through Google’s SEC filings, news articles and the trusty old Wikipedia to get plenty of interesting data to include. We hope you like it!
Updated, Feb 25, 13:40 CET: The first version contained an error, that 270,000 words were written on Blogger per day. It’s per minute, and the infographic has been updated accordingly.
Free Multimedia Tool Workshop Updated Handouts
Hey Journalistopians, it’s been a long while, but I wanted to post the handouts and examples I’ll be sharing at this weekend’s Online News Association Parachute Training in Boca Raton, Fla. Feel free to use these in presentations, in the classroom, to line your birdcage — whatever tickles your fancy!
- Handout: Free Multimedia Tools List (Word | PDF)
- Slideshow: Shiny New Toys For Awesome News Sites (PowerPoint)
- Spreadsheet: Atlas Maps Upload Example (CSV)
- Photos: Dale Chihuly Exhibit PhotoPeach Example Images (Flickr)
Celestial
Celestial is designed to be easy to use and easy on the eyes whilst still being generic enough to be used for a multitude of website possibilities.
Basic Features:
- XHTML 1.0 Strict and CSS 2.1 validated
- 1 or 2 column layout
- Fixed width layout
- Primary and secondary links
The 1.x branch of this theme will depend on Fusion as its base theme.
The Definitive Guide To Styling Web Links
Hyperlinks (or links) connect Web pages. They are what make the Web work, enabling us to travel from one page to the next at the click of a button. As Web Standardistas put it, “without hypertext links the Web wouldn’t be the Web, it would simply be a collection of separate, unconnected pages.”. So without links, we’d be lost. We look for them on the page when we want to venture further. Sure, we pause to read a bit, but inevitably we end up clicking a link of some sort.
[Offtopic: by the way, did you already get your copy of the brand new Smashing Book?]
Styling LinksWhen you style links, remember that users don’t read; they scan. You’ve heard that before, and it’s true. So, make sure your links are obvious. They should also indicate where they will take the user.
Let’s start by looking at CSS selectors and pseudo-classes:
- a:link { }
Unvisited link. - a:visited { }
Visited links. - a:hover { }
The user mouses over a link. - a:focus { }
The user clicks on a link. - a:active { }
The user has clicked a link.
The TLC uses not only plaint text links, but also icons to communicate the corresponding file types.
Links should stand out not only from the background but from the surrounding text. If the font color is black and the link color is black, you have a problem. Make your links stand out by using one or more than one of the following techniques.
- text-decoration: underline;
Underline. - font-weight: bold;
Bold. - font-size: 1.4em;
Enlarge. - color: #ed490a;
Color. - background-color: #c0c0c0;
Background. - border-bottom: 2px solid #a959c3;
Border.
If you decide to make links blue, then make sure no other text (including headings) is blue, because users will expect it to be a link, too.
Also, don’t underline text that isn’t linked because users expect underlined text to be a link. And keep in mind users with poor sight. Red won’t stand out to someone who is color blind, so consider underlining or bolding links, in addition to changing the color.
A helpful technique that I always use is to slightly blur the focus. Links with good contrast should still stand out when you look at the page.
Don’t Forget About Visited LinksVisited links are often overlooked, but they are very helpful, especially on larger websites. Knowing where they’ve been before is helpful for users, whether because they want to avoid pages they’ve visited or to make a point of visiting them again.
Give visited links a darker shade of color, so that they stand out but aren’t as obvious as unvisited links.
Use the Title AttributeThe title attribute is usually overlooked, but it’s a convenient way to add descriptions to your links and can be especially useful for those who rely on screen readers.
<a href="example.com" title="This is an example link">Example</a>Use Button StylesTo make really important links stand out—say, a call to action or a “More info” link at the bottom—use a button style. And you can reuse the style again and again without having to edit any graphics.
For more information, check out “Super-Awesome Buttons With CSS3 and RGBA” and “Call to Action Buttons.”
Hover StateOffering feedback to users that they’re hovering over a link is good practice. The best way to do this is to change the background color, change the text color or remove the underline.
a:hover { text-decoration:none; text-shadow: 0 0 2px #999; }The mouse pointer usually turns from an arrow into a hand when the user hovers over a link. But this functionality is sometimes lost; for example, in IE when the link contains a span element, or on “Submit” buttons. Fix this by adding the cursor type via CSS.
a:hover span { cursor: pointer }Active StateProvide visual feedback to the user to indicate that they have clicked a link, so that they know to wait. One nice effect is to move the link down one or two pixels, which gives the link the appearance of being pressed.
a:active { padding-top: 2px; }Apply PaddingHere is a good usability tip. Add padding to your links. This way, the user doesn’t have to hover over the exact point of the text. Instead, they can hover in proximity and still be able to click. This works well for navigation links.
a { padding: 5px; }Use Icons for File TypesIf your links point to files in various formats, inform the user of as much using icons. This prepares them for the file type they are about to open, whether it’s PDF or JPEG, for example.
For some great resources, check out “Fam Fam Fam Silk Icons” and “Social Media Mini Icon Pack.”
Use Icons for RecognitionJust as you would use icons for file types, use icons to identify where links go or what they do. This user can more quickly absorb a visual icon than text.
Make Anchor Text DescriptiveUse meaningful text, not “Click here.” The problem with the latter is that it forces the user to read around the link to understand why they should “Click here.” Anchor text such as “See Britney on a beach” speaks for itself. It’s also more SEO-friendly.
Link Your LogoAlways link your logo to the home page. Most users expect this convention across the Web. That said, don’t assume that users know this. Regular surfers expect it, but a number of users still look for the “Home” link.
<h1><a href="/" title="Homepage">Site name</a></h1>h1 a { background: url(images/logo.gif) no-repeat top left; display: block; text-indent: -9999px; width: 200px; height: 60px; }Don’t Open New WindowsJust don’t do it. Let the user decide when and where to open a new tab or window. Users expect links to open in the same window. If you really must do it, at least add an icon to show that this will happen. There are exceptions; for example, it you don’t want to break the flow of a check-out process.
Micro-FormatsAs the Web becomes more semantic, consider incorporating micro-formats into your link structures, to help machines understand how a link fits into a page and its relationship to other pages. For example, the following…
<a href="http://myfriend.example.com" rel="friend met">My Friend</a>tells search bots that this text links to a friend who I’ve met, which is useful for discovering connections between links. You can also read more about micro-formats.
Showcase Of Links In Web DesignFurther Reading- Padded Link Targets for Better Mousing, 37 Signals
- Top Ten Mistakes in Web Design, Useit
- Guidelines for Visualizing Links, Useit
- Styling Text Links, Andy Rutledge
- Showing Hyperlink Cues With CSS
- Don’t Lose Your Focus
(al)
© Lee Munroe for Smashing Magazine, 2010. | Permalink | 68 comments | Add to del.icio.us | Digg this | Stumble on StumbleUpon! | Tweet it! | Submit to Reddit | Forum Smashing Magazine
Post tags: