Building a Better IDE


I’m mainly a .NET developer. As a .NET software developer I’ve been using Visual Studio as my primary Integrated Development Environment (IDE) for a little more than 3 years now. I’ve used Visual Studio 2003 through 2008 for writing, building, and occasionally designing software.

Since my first (and for a long time, only) real experience using an IDE was with Visual Studio, I grew to really love it and feel that it was the best thing out there. I really felt that Microsoft did an amazing job designing the software to be as useful as possible, providing me with lots of really great tools to make doing my job easier.

As I started learning other programming languages and technologies, I started learning how to use other programmer’s tools, such as Vim, Notepad++, Eclipse, and Netbeans, among others. All of these tools are absolutely free, and what is even more amazing for me, they’re actually better than Visual Studio.

A collection of free tools is actually better than an $800-$2500 (depending on the package) piece of software.

The key difference to keep in mind, is that a lot of these tools are scattered. What I mean is, they take a little more setup to get them working nicely, compared with Visual Studio which includes by default, a lot of things the free tools provide as additional plugins.

The fact that these free tools require some setup is really nothing compared with the benefits they offer and the productivity boost they give me. Although Visual Studio can include a lot of things by default, they generally are not as good as the equivalent free alternative.

A good example are the refactoring tools Netbeans provides for Java. In Netbeans, I can create 10 private variables, and then tell my IDE to create getters and setters for all 10 variables. It provides a nice GUI interface to allow me to customize how the auto-generated code should look and make sure everything is the way I want it. Visual Studio has a similar feature, however it only lets me do 1 variable at a time, and if I use it, I have to break the organization of my code because the new property has been placed directly below the private field.

This is just one example of something I have to do almost every day that could be easier if my IDE were “better.” Visual Studio has had a similar feature for a few versions now but it’s so tough to work around that I rarely use it.

Eclipse is one IDE that I really think might be the best on the market today, and it is totally free. I’ve used it for Java and PHP development and I find it to be a joy to use. It gives me great tools to make my work easier, and I don’t have to pay a dime for it.

Although I’m too young to have been able to see this unfold, apparently a few years back Eclipse was (as it is now) the best IDE out there. It made Visual Studio look kinda crummy, so Microsoft put a lot of work into making it a better IDE and eventually prevailed. Now that Microsoft is declared “victorious,” like they did with the browser wars, it seems like they have given up trying to make their IDE the best on the market.

I still feel that Visual Studio 2008 is a decent IDE. I use it every day for work and I find it acceptable, it just frustrates me when I see all of the cool features other IDE’s have that I might never be able to use despite how popular they are.

If you’ve used Visual Studio and another IDE before, how do you feel about the differences between the “enterprise” IDE and the free alternatives? Do you think either one is truly better? Worse? The same? Leave a comment.


Posted in Technology | No Comments »


Viacom Vs. YouTube


As you probably have already heard, a judge has ordered YouTube to fork over all of their viewer logs to Viacom. This means the record every video you’ve ever watch will be handed to Viacom. Potentially millions of dollars in marketing data is to be handed over to a company who makes its money through clever marketing. This data has personally identifiable information and could probably be used to make the money Viacom is suing YouTube for, in addition to the lawsuit.

The idea that everything I or anyone else I know has ever watched on YouTube is going to become property of Viacom is very disturbing to me. Working in the IT industry, I understand that everything I do online is being logged somewhere. This is pretty much a given. When you visit a website, that site is going to log your visit. All website owners have every right to log what people do on their site, YouTube/Google being no exception. This is why many sites have a privacy policy to communicate with visitors, what they should expect the website owner to track about their visits and how it is to be used. Google, like most companies, is very open to the fact that they will store records basically indefinitely, however they are for their own internal use. Their privacy policy is very outspoken about what rights they allow you to have.

Google has a good track record of showing that they respect the privacy of its users and it is the main reason I prefer to use their products over their competition. They have actively shown that they respect their users’ privacy by not giving information away or using it for marketing, keeping data secure, fighting the government when they demand data, and following through on their promises. I’m glad Google is at the very least trying to allow for the data to be anonymized, however I don’t think it’s right to be put in that situation in the first place!

sxephil, an popular YouTube user has an excellent video which has been shown on MSNBC, CNN, and even in the NY Times apparently. You can watch the video here: http://www.youtube.com/watch?v=qGfAu_HRz6g

Another YouTube user has come up with a (somewhat inevitable given the scale of this incident) plan to respond to Viacom’s actions in this lawsuit. I think their video sums up exactly my beef with Viacom. They talk about a boycott of Viacom. I’m not sure how well that will work out since major boycotts like this don’t seem to ever become anything, but I feel pretty strongly about privacy and I think it’s the right thing to do. Please, spend 5 minutes to watch the video and then try your best to avoid any of the companies mentioned in the video.

For simplicity’s sake, I’ve included a screenshot of the list of companies Viacom owns so that you can join the boycott. Don’t contribute any money in any way to the following companies:

I want to make it clear that this post is not made to worship Google or YouTube, it is a rant to vent my anger about another company who feels the need to invade the assumption of privacy between YouTube and its users. YouTube has every right to record and use any data they find on me, as long as it adheres to their public privacy policy. Giving my records to Viacom is not something I feel they should have the right to do.


Posted in Technology | No Comments »


C and Python as Web Languages


The blog Toolness reports on a really interesting idea for client-side web languages. The idea is to write a compiler for languages like C or Python that will compile code into low-level bytecode for a Flash Virtual Machine. This would allow you to write C programs that would run on the browser’s Flash plugin.

The proof-of-concept compiler has already been demonstrated to compile and run existing software such as a Nintendo emulator in a browser. The idea is that existing C code can be compiled by this new compiler and then run, apparently fine, in a browser.

What I think makes this really interesting is that this sets the way for some really awesome possibilities for web development. I love Flash. I’m really happy it’s the most popular method of including multimedia on a web site (when JavaScript is not an option). However, I don’t like ActionScript very much and I think it could be much easier to develop in a language I’m more comfortable with. This is why a technology breakthrough like this is so important. ActionScript is a little bit of an odd language (in my opinion), and there are languags that I’d much rather be coding in.

The fact that existing code can be easily compiled means that existing software could be ported to Flash and run in a browser. I think that’s a pretty awesome idea.

One of the first things that came to my mind when I heard about this was the issue of security. It seems like any code run in this manner is still secured by the Virtual Machine in the same way that ActionScript is secured when running in a browser.


As a little side note, I just remembered that Microsoft’s Silverlight is capable of doing essentially the same thing with any .NET language (C#, J#, VB.NET, Lisp, Ruby) What I think is so awesome about this is the idea that the much more open and widely used Flash is the technology that is being used here. This means more platforms will fully support the technology once it’s released.

I can’t wait to write Flash stuff in Java (no actual word on Java yet, but I can hope) or Python.


Posted in Technology | No Comments »


Thing-a-ma-kit


Hack-a-day has an video of an awesome little gizmo you can build yourself that creates music (or noise depending on how you look at it) using lights. It’s a really neat little toy.

Personally, I’ve never been really into DIY electronics, but this thing is just really cool.


The ThingamaKIT is here! from Dr. Bleep on Vimeo.

If you’re curious, you can find out more on the Thing-a-ma-Kit from the Bleep Labs website: http://bleeplabs.com/thingamakit/


Posted in Technology | No Comments »


How Did Everyone Miss This?


As a web developer, one of the major things I’m interested in knowing is the general market share of browsers that are out there. This is a tough thing to measure since unlike most markets, there is no purchasing going on and no physical object to buy or own like with cars.

The best way to measure browser market share would be by getting a large sample set from a very popular web site with a very wide range of users from the computer literate to the computer illiterate.

W3Schools makes their browser statistics public, however this is very non-representative of the actual market share since it is a site geared towards web developers. It’s no suprise that their site (at the time of writing this) reports firefox with over 40% of the market share, with IE6 & 7 taking up the rest.

A 40% market share is great on a technical web site, but that says nothing for the average user. A better measure would be a site that is generally popular with the web browsing population. A few that come to mind are Facebook, MySpace, and YouTube. These sites have yet to release browser stats that I have been able to find.

Another good metric, which I feel would be the absolute best for reporting market share would be the browser statistics of major search engines such as Google, Yahoo! or Microsoft Live. As far as I know, these companies have not directly released any of their stats about browser usage. Google did at one point years ago when they published their Zeitgeist, but they no longer do.

What I discovered the other day however, is that it looks like Google has released some numbers for browser market share. This is a pretty big deal since it shows what browsers are being used, which is important to know when designing a web site since it’s always best to know what browsers to test your web site on. It seems like everyone has missed this however, thanks to the fact that it was released for a different reason than just “reporting browser usage.” Google released their statistics as part of a study on browser upgrades and what groups of users upgrade their browsers. Although it is very interesting to know how hard it is to get people to upgrade their browsers, I found it more interesting to see Google’s numbers for what browsers people use.

The study doesn’t give extremely detailed numbers as to what versions of each browser are being used, however it does show the use of Firefox 2, IE6, IE7, Opera 9, and Safari 2 & 3. The numbers appear to break down like this:

  • 79.4% – Internet Explorer
  • 16.3% – Firefox
  • 3.4% – Safari
  • .8% – Opera

The study did not seem give very specific numbers on older or more obscure browsers, which I would have liked to have seen just out of curiosity, but it at least gives a good idea of the general browser market share of the world. It also shows how bad people are about upgrading their browsers. I think this is really bad since IE6 is considered the most non-secure browser ever released and people haven’t upgraded yet. If you’re reading this and know anyone who might be using IE6, you owe it to yourself to try convincing them to upgrade, if only to make them more secure.

Overall, even though I find it suprising that it looks like the IT community seems to have ignored this as nothing more than a study on users’ upgrade trends, I think it gives a great insight into what browsers the general public use, which means web developers like myself know where to focus our energies. It looks like IE6 is here to stay unless web developers start refusing access from IE6.


Posted in Technology | 1 Comment »


Firefox 3 Tweaks


Firefox 3 has been out for about 2 weeks now. I’ve been using it since alpha releases, but so many things have changed and so little has been said about a lot of the new features until recently, that I finally just got the browser tweaked the way I like it.

Firefox 3 comes with a lot of new features that really make it a big step over the last version and make it competitive with the other competition (I’m still waiting for Internet Explorer to become competitive). I believe it is the best you can get as far as browsers go. It’s faster and more efficient, which has been proven by several studies. It’s got an awesome bar (love it or hate it) and an improved bookmarks system, and you can set up protocol handlers so that if you use gmail, Yahoo! mail, or another online web service for things, you can set them up as the default application (I set up firefox to use gmail for mailto: links). I really like it.

Although I love firefox 3, there are a few things that I had to tweak to get it the way I like it. Obviously I had to install a few plugins to make development much easier, along with the usual plugins like adblock plus. Besides my favorite plugins, there were just a few things I did to make firefox fit even more snugly.

about:config settings

Firefox has a page you can browse to known as “about:config” which holds settings that are user-configurable. There are just 2 settings I had to change in my config. To get there, just type “about:config”. You should get a cute little disclaimer telling you to be careful. Promise to be careful and read on:

  • Enable Piplining: Web sites these days have dozens of individual files that need to be downloaded from their server before a single page can be displayed. Most browsers get these files 1 or 2 at a time. With a modern broadband connection, you can configure firefox to get all of these files in parallel, speeding up your browsing experience. To configure firefox, in your about:config search for the key “pipelining”. There is a key that ends in “maxrequests,” set its value to 30. Then set all of the other keys you see on the page to true so that it is enabled. Now your browsing experience should be much faster if you’re on broadband.
  • Don’t eat the space to the right: This is just one of those minor nuisances for me. The key “layout.word_select.eat_space_to_next_word” causes the space next to a word to be selected when you double click on a word. I guess for most people, this setting is fine by default, but as a programmer, sometimes I only want to copy a single word and only that word. Set this to false to only select the word itself.

userChrome.css Configuration

The new Awesome Bar is great, but it has a few little things that bug me. It’s OK though because they are easily fixed thanks to the fact that Firefox’s UI is created using the awesome XUL (XML User Interface Language). Since the layout is generated using XML, this means that CSS can be can be used to alter things in the interface. All you have to do is add a userChrome.css file to your firefox profile.

To locate your firefox profile, read this: http://support.mozilla.com/en-US/kb/Profiles#How_to_find_your_profile

Inside your profile folder, open the “Chrome” folder. Look for a file called “userChrome.css” If the file doesn’t exist, you’ll need to create it. If you’re having trouble finding it, make sure you have your operating system set to show hidden files, and make sure if you’re running Windows, you have it set to “Show extensions for known filetypes”

There are just 2 things that bugged me about the Firefox 3 address bar:

  1. The lack of yellow in the address bar for HTTPS sites. I found the bug report on Mozilla’s bugzilla site that explains why they did this if you’re curious. Firefox 3 took out the yellow and decided to just make the favicon for the site have a blue background. I want visible notification that I’m on a secure site!
  2. The removal of the “Go” button. This is useless for most people, however as a web developer this button is needed as I have to “Go” to the same exact pages about 40 times in one day and refreshing the page isn’t always enough when you’re developing in ASP.NET. Sometimes, you need to click the “Go” button in web development.

To overcome these problems you just need to add the following to your userChrome.css file (you will need to create the file if it doesn’t exist) Comments (stuff between /* and */) explain what each line does, so if you don’t like the setting you can easily take it out or change it if you know what you’re doing.

/* Show the GO button */
#urlbar > #urlbar-icons > #go-button {
visibility: visible !important;
-moz-opacity: 0.35 !important;
}
#urlbar > #urlbar-icons > #go-button:hover {
visibility: visible !important;
-moz-opacity: 1.0 !important;
}

/* highlight HTTPS URLs (works on Mac too, if a bit messier there) */
#urlbar[level]  > * {
background-color: #FFFFB7 !important;
}

Posted in Technology | 1 Comment »


First Post


So I finally created a website. I’ve been meaning to do it for a while now, I’ve just been procrastinating on it. So now it’s running. Its just a standard WordPress blog right now, but when I have time I’ll make it nice and pretty. Update(18 May, 2008): I’ve finally created the Wordpress theme for my site. Now that I’ve finished the site theme, I should be starting regular updates soon. Check back here in about a week or subscribe to my RSS feed (a link to my feed can be the header, footer, or sidebar) to get updates in real time.

I plan to put any interesting articles or new interesting stuff I’ve learned here, along with programs/code I’ve written, my portfolio, and just about anything else I see as interesting.

You can go to my About page to see more details about this blog and me.

I’d like to add a shameless plug to NearlyFreeSpeech.NET for hosting this site. They have an awesome hosting plan that allows me to run this site essentially for free after the cost of domain registration (which is really cheap also.) If you are interested in starting a website but aren’t really sure this hoster may be a good choice since they only charge you for what you use from them.


Posted in Personal | No Comments »


This is my personal blog. The views expressed on these pages are mine alone and not those of my employer.