Ethercodes is a real time, collaborative programming tool. Think of it like a community notepad that compiles. SWEET!.
Programming
Remove Follower Count?
Should Twitter remove it’s follower counts?
Clearly, this is a game — and really, gaining followers on Twitter, for most people, is a game. Which raises the question: Should Twitter just remove the follower counts?
I think the question is a bit silly. Some people think that is important. Should you hide that information from anyone that wants to see it?
Couldn’t you just decide to not view it? If it concerns you that much, you could just use a single line of JS via Greasemonkey to remove it from Twitter pages entirely. If you already have Greasemonkey installed, I have already written the script for you.
IE Not Welcome?
WeDontSupportIE.com is a site with a simple message: Don’t use Internet Explorer. This is a message I can get behind, however I would not take it to the level they have. Disliking a browser and not supporting it are two very different things. As a web developer, I would never announce that I did not support a browser that still has a grasp on the majority of the market, and therefore is likely to be the browser being used by my intended end users.
Unfortunately, they are very right about IE’s abominable track record when it comes to security and standards compliance. A large part of my time at work is spent modifying CSS and Javascript to work in as many browsers as possible. Of course, jQuery has eased much of this on the Javascript side, but accommodating different browsers is still a huge time suck.
But is it worth it? That is the pertinent question here. I guess another way to ask this question is: Do you want at least half of the people on the internet to be able to view your content?
Any time I am asked to clean up spyware and/or virus infections, I usually find that IE is the only installed browser. Step 1 is telling the user to install Firefox, Opera, or Chrome and use it – after I reformat their hard drive, thanks to their horrible browsing habits and extremely insecure, never-updated Internet Explorer.
I have even seen sites go so far as to only display a Firefox download link when the users browser is detected to be Internet Explorer. This baffles me. Do you really want to prevent a user from seeing your content just because of the browser they are using? Shouldn’t you be honored that someone is attempting to view your content? Shouldn’t the web be all inclusive? Further, when you can translate page views to a dollar amount in ad revenue, telling some users they aren’t worthy of generating money for your site is about as stupid as it gets [update: i was talking from a business perspective. you'll notice no ads on this site (there were a couple google adsense spots before, but i felt it cheapened my goal for this site).].
Is Internet Exploder a thorn in my side? Most definitely, and I think most web developers would agree. But I would never turn a user away because of their browser. That is just bad business.
Accessibility
While doing a bit of after work stumbling, I came across an article about 5 underused HTML elements. The list was spot on. I dont recall ever using many of these. What really caught my eye about this article was a blurb about web accessibility:
Labels are useful for accessibility and clicking them sets focus to the field.
This made me wonder: Am I doing enough to ensure accessibility to all users on web sites that I am working on? Unfortunately, I do not think I am.
I decided that I should remedy that, and headed over to the w3c to check out the Web Content Accessibility Guidelines.
Wow, I had no idea how much goes into this. The quickref is about a mile long. This is going to take some reading.
Luckily for me, someone else has done just that. Spoiler: He is not too happy with the WCAG standards. Here are a couple points I found interesting:
You can’t use offscreen positioning to add labels (e.g., to forms) that only some people, like users of assistive technology, can perceive. Everybody has to see them.
CSS layouts, particularly those with absolutely-positioned elements that are removed from the document flow, may simply be prohibited at the highest level. In fact, source order must match presentation order even at the lowest level.
Several of the sites I am working on use all kinds of faux-modal div’s created with jquery, and none of them render in the same order as they are coded. Applying just these two standards to these sites would take a ridiculous amount of time of meticulously reworking the stylesheets and pages.
There has to be another way. If a web app can be skinned for an iphone with some css changes, it should be possible to do the same for browsers with different accessibility requirements. How about it, science?
ForrestLedbetter.net: My new sandbox
It has been a long time coming. For the first time ever, I have a reliable, affordable asp.net host. I can’t believe I am *HAPPILY* using a hosting service from GoDaddy.
I have been averse to go godaddy over the years, but im a .net develoepr. How am I supposed to pass up $5 / month including asp.net 3.5 and sql server 2005?
.Net Hosting
Today I created a Windows web hosting account so I could start testing my new CMS project.
The current version is extremely basic and lacking in content, but it works and is improving daily. The rendering engine is at a point where I am ready to begin connecting everything to the database. Once I get the content management system squared away, I will start on the admin panel.
Until I get the admin panel in working order, posting there will be mostly for testing purposes.
link: ForrestLedbetter.net
sharptube
For the past week, I have been working on creating a content management system, using a template I found on oswd.org. As I was writing the boring stuff, I thought about several more interesting components I could create. The first thing that came to mind was an easy way to display a video from any of the more popular video sharing sites.
So I started this.. a YouTube player wrapper written in ASP.Net (C#). Yeah, I know… there is nothing earth-shattering about sticking some javascript in a usercontrol, but there is a lot more to come. I plan to add support for other popular video sites (hulu, vimeo, etc), as well as rendering options.
All currently available Youtube video parameters have been exposed as properties of the usercontrol. Once properties have been set, call initializeEmbeddedYoutubePlayer(). Grab the code folder for an example.
Whenever I get Amazon’s EC2 figured out, I’ll have it up for demo. Until then, I promise it works! You can download it and run the code yourself.
UPDATE: Link to Sharptube Example
Master Page Name Mangling
I just read over some of my oldest posts, and found this gem. While I stand by it still, the code is unreadable, and using some class names that will not be relevant to your project. Mayhaps a better approach would be to create a class to implement in pages where needed.
Again, this is really only needed when time is at a premium and you have legacy javascript that accesses page elements by ID that will be mangled by master pages.
Obviously, the best course of action is always to use the coding tools you have and not hack around them. Sometimes, that is not an option. That was the situation I was in when I wrote those posts. Shakespeare’s gotta get paid, son.
Enable Right Click
UPDATE: Do not keep this script enabled, only use it as needed. It could cause some issues while browsing, as it loops through every HTML element on the page.
Greasemonkey script to reenable right clicking on sites that disable it for “security” purposes:
// ==UserScript==
// @name enable right click
// @namespace http://forrestledbetter.com
// @description enable right click
// ==/UserScript==
if (document.all)
{
iElements = document.all.length;
for (i = 0;i < iElements;i++)
{
document.all[i].setAttribute("oncontextmenu", "return true;");
}
}
else
{
iElements = document.getElementsByTagName('*').length;
aElements = document.getElementsByTagName('*');
for (i = 0;i < iElements;i++)
{
aElements[i].setAttribute("oncontextmenu", "return true;");
}
}