April 27th, 2010
Computers are crap at figuring out what I want to read. Half the reason I subscribe to blogs and follow people on Twitter is to discover new things that I would otherwise never find. This list of trusted subscriptions/follows has been built over time, lovingly maintained and brutally culled to distill what I consider to be the highest quality hyperlinks from a sea of unworthy impostors. There is nothing special about this, everyone I have met that understands how this stuff works has some similar index of people they trust to provide grade-A content for daily consumption. We are in effect selecting editors for our own personal web digest.
Several very smart people and many smart companies (Google included) have been trying to build an engine capable of discerning the quality of digital content. At it’s heart this is what Google’s search engine does. It identifies content that is of the highest quality in relation to a specific set of keywords (your search query). As I’ve written in the past, knowing how to search is a real skill and one that must be taught. Google probably has the perfect answer to your question but you have to be able to phrase it right and Google has to have it indexed right. Clearly this does not always work out and it is the reason sites like Mahalo exist. Mahalo attempts to throw humans at the problem (and does a pretty good job of it) but you still need to know what you’re looking for. Discovery is difficult on sites like Mahalo and damned near impossible on Google.
Which brings me to the App Store and Apple’s recent hire: Matt Casamassina (IGN’s veteran Nintendo editor). His role is to manage the editorial content on the App Store. I gather this amounts to drawing your attention to the gems that are otherwise buried at the bottom of the pile. As anyone who has tried to use the App Store to discover content will tell you, it’s like searching for a needle in a haystack. Having an editor whose job it is to review and rate games with a presumably unbiased and highly trained eye is exactly what the App Store needs. But is it any different for the web at large?
I consider an unedited App Store to be analogous to sites like Digg and Reddit. The App Store (and Amazon as well) has a rating system that roughly equates to the voting system on Digg and Reddit, ditto for the comments. The point is it’s democratic, so every idiot on the internet has the same say. What we need is to be able to pull over our editors from Twitter/Facebook/RSS and only see votes from them. What we need is a reputation bias that skews all these votes and comments so I only see the ones that I (or people I know) care about. It effectively edits the web and adds a new dimension to relevance. Oddly enough I think Google is the most likely place for something like this to work. Google already knows who your friends are and what pages/feeds you are reading. Getting more data is only a couple of Twitter API/Facebook Connect calls away. We could have search results that tell you if your friends/follows clicked on any of the links on the page, or better yet only show you links that they interacted with.
Imagine the live feed on that thing. That’s the real social web.
Tags: apple, editor, facebook, Google, ign, social, twitter
Posted in Interwebs, Opinion | Leave a Comment »
September 15th, 2009
Somehow this slipped under my radar. Apparently both Mozilla and Webkit have gained experimental support for WebGL. WebGL is going to expose OpenGL ES 2.0 (the same version of OpenGL you find in an iPhone) in JavaScript to be rendered inside a canvas tag. This is without a doubt, the most exciting thing to happen for web-based games ever. It ends up being a standards based, platform agnostic, hardware accelerated rendering method bundled as an extension to JavaScript, using a tag that is already part of the HTML 5 standard.
This is a huge piece of the puzzle that is going to allow the creation of web-based 3D games that can take advantage of hardware acceleration. So which pieces are missing? Not too many as it turns out. New implementations of JavaScript in both Firefox and Safari are very fast, making render loops and input capture entirely possible within the browser window. Video and audio have both got standards support in HTML 5. The only thing I can think of that’s missing is server initiated communication and peer to peer networking that would be necessary for real-time multiplayer games. Yeah you can poll a server making it possible to have multiplayer turn-based games or even real-time games where latency isn’t an issue. For 3D shooters and MMOs however, I would wager the networking piece is still mighty important.
Can’t wait to get my hands dirty with this stuff.
Tags: canvas, Games, html 5, javascript, opengl, webgl
Posted in Code, Games, Interwebs | Leave a Comment »
September 9th, 2009
I’m posting this so I don’t need to go hunting on Google (which was surprisingly tight-lipped about the right solution) the next time I have to do this. If you want to convert a certificate issued in the .crt & .key formats for Apache to the .p12 format favored by IIS you need to run this command in linux:
openssl pkcs12 -export -out iis.p12 -inkey apache.key -in apache.crt
Replace IIS / Apache with the appropriate filenames and you’re done. The .p12 file can be directly imported into the Certificates MMC Snap-In on Windows for use in IIS. The command works on any system that can run openssl, including Mac OS X.
Tags: apache, certificate, iis, openssl, ssl
Posted in Code, Interwebs, Tips | Leave a Comment »
August 23rd, 2009
Internet Explorer 8 comes with two different rendering engines. “Standards Mode” (they use the term loosely) and “Compatibility Mode”. I’m not going to debate the reasoning behind their choice to ship the browser in this form, smarter people than I have already beaten that horse to death. The problem I have with it is that by default IE ships with a setting that makes anything on your LAN show up in compatibility mode. The button to switch to standards mode isn’t displayed, and worst of all, there is nothing that tells you it is IN compatibility mode.
I recently discovered this when, after carefully testing a site in Internet Explorers 6, 7 and 8, I committed the release to the SVN repo and published it to the staging server. A quick test showed IE8 issues that weren’t there on my local version. Turns out the problem was this default compatibility mode setting. You can turn it off by going to “Tools > Compatibility View Settings” and unchecking the “Display intranet sites in Compatibility View” option. They did this to ensure old intranets are compatible with IE8 out the box, but in the process put every web designer in the awkward position of not knowing their site is broken until they upload.
Internet Explorer 8 isn’t all that bad. It does a pretty good job of fixing the (not so) little things that drove us crazy in previous incarnations, but it’s far from perfect. In the very likely event that you need to code some IE8 specific styles I recommend using conditional comments. In this case I needed one set of modifications for IE6, 7 and compatibility mode 8 (which mostly behaves like IE7) and another for IE8 specifically. To achieve this I used the following code:
<!--[if lte IE 7]><link rel="stylesheet" type="text/css" href="css/ie.css" /><![endif]-->
<!--[if IE 8]><link rel="stylesheet" type="text/css" href="css/ie8.css" /><![endif]-->
It uses one stylesheet for everything less than 7 and another for IE8 specifically. Works like a charm, hopefully until IE9 comes along.
Tags: compatibility, conditional comments, css, html, IE, internet explorer, standards, stupid
Posted in Code, Interwebs | Leave a Comment »
August 20th, 2009
I can’t count the number of times I’ve had to explain to clients that their beloved logo font simply cannot be used on the web. I explain that if the visitor doesn’t have the font you want to use installed then they can’t see it. Most of the time they are shocked that this is the case. And they should be shocked. It’s absolutely horrible that we have to deal with these limitations.
Technically it has been possible to use any font you choose through several existing techniques (plain old images or Flash/JavaScript/Canvas trickery like sIFR and Cufón). They all have limitations of varying degrees and body font choices are still limited to the usual suspects. So why is it so hard to use fonts on the web?
Copyright
The main issue is one of font copyright. Fonts are expensive. Making a font takes lot of time, dedication and talent. Font designers deserve to be paid for their incredible work. If you send the font over the internet when you visit a website it doesn’t take long to figure out what’s going to happen.
Font Delivery
The copyright issue had stopped the development of viable alternatives to Microsoft’s (ancient and proprietary) EOT format. Finally however, both Webkit and Mozilla (Safari/Chrome and Firefox) support the @font-face CSS attribute. Making it possible to create an all-browser encompassing font delivery mechanism.
Enter Typekit
The clever peeps at Typekit have managed to fix both problems in one fell swoop. By working with the type foundries directly, they have managed to gain licenses to distribute fonts over the web. They’ve also taken great pains to obfuscate the fonts they are distributing. More importantly for us lowly web designers, they’ve made this stuff ridiculously easy. Choose the fonts you want (236 options as of right now), get a snippet of JS and Bob’s your uncle. All the fonts are compatible with Firefox 3.5+, Safari 3.1+ and IE 5+ (!).
I just got my beta invite and am going to be reworking both this site and ActivElement to use my newly acquired library. Can’t wait to get my font on.
Tags: design, fonts, html, typekit
Posted in Code, Interwebs | Leave a Comment »
July 15th, 2009
We had a fair bit of data piled up at our virtual server on The Rackspace Cloud’s Cloud Sites system (previously known as Mosso). When we decided to move off Cloud Sites and on to Amazon EC2 moving that data quickly became extremely important. MySQL offers several methods of transporting data from the database and mirroring/replication seemed to be the ideal fit since we’d get our data synchronized in real time with the old database. Unfortunately, because of the way Cloud Sites are configured we can’t use mirroring at all (it’s already being used internally by Rackspace for scaling).
Since, we were using Cloud Sites we didn’t have SSH access to our box. Rackspace recommended we use mysqldump on another server and connect to our MySQL instance to grab the data directly over the internet. Two problems with that:
- Moving 15GB. of data on a single connection sequentially would take forever. (We were getting only ~200Kb/sec)
- The data would not be compressed, so we’d have to move the full 15GB.
Our solution:
- Setup a virtual Cloud Server on Rackspace Cloud with enough space for the data.
- Use mysqldump on this new server to connect to Cloud Sites and grab the data. Since they’re in the same server farm you get much much higher transfer rates.
- Compress using gzip and place in a web server document directory.
- On the Amazon server use aget to download the newly compressed gz file. We used 10 parts and got about 1800Kb/sec.
- Unzip and execute the SQL.
This reduced the amount of time needed to manageable proportions and therefore caused a minimal service outage.
Tags: amazon, cloud, download, ec2, mosso, mysql, mysqldump, rackspace, transfer
Posted in Code, Interwebs | 4 Comments »
July 8th, 2009
Details are sketchy but Google is finally throwing their huge sombrero into the Operating System ring. After years of surveying the competition and developing online versions of all the popular office applications, Google is now going to tackle the foundation of the PC platform. We know it will be a new windowing system that will run on a Linux kernel. It will also be completely open source (the GPL wins again).
There are several obvious things that will happen here. Google is going to put it’s considerable marketing muscle behind getting Netbooks to use Chrome as the default instead of various other flavors of Linux. Microsoft is going to push these same vendors to use Windows 7 instead. Google is going to price this thing rock bottom, in all likelihood it will be a free download. Couple that with Snow Leopard’s ridiculously low upgrade price and it becomes clear that this OS cycle consumers are going to be the big winners.
I have long maintained that the only thing stopping Linux from becoming a viable desktop OS is that design (UI/UX or otherwise) doesn’t work by committee. But the community is perhaps the single most important part of the open source movement. By putting Google designers in charge of figuring out the windowing system Chrome is probably going to be the first linux flavor to be genuinely polished from a UI perspective (Even though Doug Bowman might disagree).
There is one big problem though. I can’t use it. Not as my primary OS anyway.
Google say the only way developers will build applications for it is through web technologies, taking a page out of Apple’s iPhone 1.0 marketing spiel. Given enough bandwidth you might be able to get away without access to the internals of the PC but as long as there is a need to run compiled code for applications/games like Photoshop or Fallout 3 this is not going to be my OS of choice. It will however be perfect for any number of people that just want a computer that does their email and web stuff. Throw in the occasional flash game for good luck.
Cower in fear Microsoft, this is the moment Balmer has been sweating for years (literally). Maybe Microsoft should sue Google for monopolistic tactics. After all, you can’t install a competing web browser when the OS is the web browser.
Tags: chrome, desktop, linux, operating systems
Posted in Google, Interwebs, Opinion | Leave a Comment »
April 24th, 2009
Ashton Kutcher’s victory over CNN is somewhat symbolic. Ashton called it the “changing of the guard” and proof that the web is a viable and already powerful media channel. Like the election of President Obama wasn’t proof enough. One could argue that it is easier for Ashton to reach an “internet-savvy” population of people since he was campaigning ON the internet, or that by buying in to the challenge CNN pushed enough people to vote for the underdog. All of it doesn’t matter, victory was claimed and conceded.
What happened afterward is actually more interesting, because Ashton went on Oprah. The number of twitter users, already growing at a monstrous pace, has seen the biggest boost in history. Twitter is mainstream.
So of course, there is the inevitable backlash from loyal supporters and early adopters. Is this really necessary with every single thing that becomes successful? Everyone from Green Day to Facebook have had to deal with this bullshit “sell-out” stereotype and it’s getting a little ridiculous. I don’t even see how having more people on Twitter is a bad thing. Twitter is by it’s very nature, completely immune to an influx of people. If anything it improves the service by giving you more interesting people to follow. If you don’t like them, don’t follow them.
Tags: ashton, cnn, kutcher, oprah, twitter
Posted in Interwebs, Opinion | Leave a Comment »
February 7th, 2009
It is easy to get excited about Mosso:
- Run stock PHP/ASP.NET with MySQL/MSSQL in the cloud
- Rackspace
- Automatic scaling for processing, disk space and bandwidth
- Pay only for what you use
- 24×7 Support
- Did I mention Rackspace?
So I made the recommendation to use them, the client happily agreed and we went on our merry way. 6 months later we’re switching hosting providers vowing never to return to Mosso. So, what went wrong?
Maintenance Windows
The first thing that hit us was the amount of maintenance. Maintenance happens often and with little or no warning. Worse for us, it almost always happens at the same time (late in the night US time). For an Indian company serving Indian businesses this is the equivalent of scheduling down time during peak business hours. We asked if we could be moved to a cluster that had maintenance at a different time, they said that option doesn’t exist yet. Why do they need so much maintenance? Because they are still building and refining the system. Make no mistake, it will probably be rock solid and stable in a year or two. Right now though, it is a petulant child in constant need of attention.
Platform Limitations
When building complicated web applications you often need to be able to do things that require custom services running on your servers to provide the features required. On Mosso, because of the way the environment is structured, you can’t run your own services. Cron jobs cannot be run in less than 5 minute intervals. You can’t use mysqldump, you have to get data from phpMySQL. You can’t replicate your data off-site because MySQL is already running in clustered mode managed by Mosso. All these limitations remind me of lower tier shared-hosting systems. If you’re used to root level access or running your own servers Mosso will lead to a lot of roadblocks and will require you to use workarounds. In many cases there is no way around these roadblocks.
The SSL Screw-Up
Our SSL site was having some problems which were apparently due to a configuration error at Mosso. The fix included changing an IP address which they did without informing us. Suddenly our domain was pointing to a defunct IP.
The Russian Auto Hack
Some clever person managed to fool Mosso’s routers or load balancers (as far as I can tell) into pointing all traffic to a Russian Auto site. For a while, anyone that visited our site was redirected to a shady Russian Used Car Listing. When you’re dealing with sensitive businesses a security breach of this sort undermines your entire operation. This was a big reason for the switch.
Unscheduled Downtime
Things went wrong with regularity, from PHP failures to load balancer configuration problems to write locks on MySQL. Seemingly anything that could go wrong, did go wrong. A quick glance at status.mosso.com will show you just how often this stuff has been happening.
I happened to be the 500th person to follow Mosso’s Twitter stream and have been given 1 year of free hosting at Mosso. I should have been a staunch advocate. As it stands I don’t think Mosso is ready for prime-time. Maybe we just had incredibly bad luck and other, luckier people will never face these issues. However, I do believe that you judge a service on its worst possible problem and how it gets handled. After raising a stink about our problems in Mosso’s highly public Twitter stream we got traction with upper management at Mosso, but by that point my client was already determined to move.
Mosso is a great idea and will probably turn out to be a great platform. But for the time being, if your site needs to be up all the time, Mosso is not reliable enough to bank on.
Tags: cloud, hosting, mosso
Posted in Interwebs, Opinion | 2 Comments »
January 17th, 2009
While pondering the effects of Google on the way facts and information are assimilated I realized that I’ve almost entirely stopped learning details. My memory now consists of search terms rather than the actual information. I remember the minimum necessary to be able to locate the item the next time around. The details live in Google.
I don’t even bookmark, I have some timesavers linked on my bookmark bar in Safari but those are really url shortcuts. The more I think about it, this is not because I’m lazy or forgetful (though I am definitely both those things). I genuinely believe Google can find something faster and more effectively than I can thumbing through bookmarks. Consider the pitfalls of a bookmark:
- The page’s location might change
- The information contained on the page might no longer be accurate
- The very same search might yield a better, newer method of doing the same thing or reveal new information that was previously unavailable
So not only is it faster than finding a bookmark, it’s also more accurate and more up to date.
This got me thinking about a specific instance where what I had been taught in school turned out to be wrong. I was taught that gravity is a force that is based on the mass of two objects. The larger the mass, the stronger the force. Right? Well, sure it’s right but it turns out it isn’t a force at all according to a certain Albert Einstein. That text book didn’t contain the whole story and the facts weren’t updated later on in my memory. I had to discover this through Wikipedia and Google. The fact that Ekta and I just had a kid has made this lapse in the education system all the more troubling.
Is it possible that rather than learning that information in school I could have been taught the basics of how gravity works and then just taught how to look it up in Google when I want the details?
I always drop down into what I understand best when testing out an idea, so obviously I go straight into software programming terrain. The knowledge of when and why to use a technique (like say, recursive loops) is much more important than the exact syntax to do so for a given programming language. So broad concepts are much more important than the actual technical minutiae. Knowledge of what to use is much more important than specific details of how to use it. Knowing how to drive a car is more important than knowing how every part of it works. When you need that information it’s always available through Google. What this amounts to is a kind of Knowledge Abstraction facilitated by Google.
Google allows us this luxury because of 3 important things. Firstly, it is everywhere. I can access it anywhere on a suitable web device thanks to ubiquitous networking. Secondly, it is convenient, I’m not lugging around the Encyclopedia. Third, it is really fast, so the time spent hunting through documents on my hard disk or worse, the index of a book is gone. In almost magical fashion this means I don’t need to remember specific facts but at the same time know more than I did before.
I firmly believe that our kids should be taught language, math and searching at the lowest level because knowing how to access information effectively is probably as important as being able to read a sentence. It is the internet age equivalent of learning how to count and is just as important for that kid’s success. Teachers need to concentrate on teaching large, broad concepts and let the kids explore the details. They would effectively abstract the world and how it works from the technical details. The kids will probably find out what they love to do and branch off in directions of learning that would otherwise have been inaccessible. They will not be limited by the text book or the teacher’s own knowledge.
Tags: kids, knowledge
Posted in Google, Interwebs, Opinion | Leave a Comment »