Archive

Archive for the ‘Techy Stuff’ Category

Oracle and Sun Just Got in Bed Together

Well, Oracle just acquired Sun Microsystems and I think that’s some pretty big news. In case you don’t know, Oracle makes a wide variety of applications but it’s most predominate is its Database Systems application. Sun Microsystems, while mainly a hardware company, is probably best known for Java and it’s OS Solaris. So, it’s kinda interesting to see a purely software company acquire a “hardware” company.

I’ve neve really seen Sun as a hardware company — probably because I’m a student and just haven’t had any real experience with the company’s products. So I still see Sun as a company that makes software with some hardware backing. 

The funny thing about this acquisition is that this will be another huge company that can offer their customers a full end-to-end solution. It’s another Intel, or IBM but, in my mind, it might even be bigger. An assortment of Management apps and suites for business use coupled with an OS and JAVA has got some real potential. Oracle’s previous acquisitions has cost them a little though in layoffs so we’ll have to see what happens here. Sun currently employs 33 000 employees and Oracle employs 86 000 — that’s a big new-to-not-new ratio.

Either way, I’m pretty excited to see what comes of all this. This can have some significant impact on the IT sector of business locally and globally.

Categories: Business, Techy Stuff

Breaking Through Preconceptions

Today I went to my first conference — the Communitech Tech Leadership Conference. While it was pretty much exactly what I suspected it would be like, they had a couple of fantastic speakers. The first was Chris Anderson, Editor of WIRED magazine discussing the concepts of his new book “The Long Tail” – A very interesting look at the new marketplace in the world and how the internet and the online medium is completely revolutionizing the economic model. I actually think I may buy his book…

The second was Chris Sacca, former Head of Google Special Initiatives, blogger, activist, venture investor and advisor. He had a direct role in introducting Twitter and I managed to stay behind after his keynote to discuss some Mobile Weekend points. Now he’s just waiting for our documentation :-) .

His keynote was probably the most refreshing presentation I’ve seen in a long while. He basically discussed what he learned while working at Google and listening to him dismissed a lot of preconceived ideas I had about Google and the way they ran their business. See, I always thought Google offered a whole bunch of perks to try and keep employees in the office longer. You know, to try and squeeze all the they can out of you. Naturally it would make sense to assume that the longer you’re at the office, the more likely you are to punch out more code than the guy who left 3 hours before you but you’re forgetting a very important, yet overlooked point that Chris spotted.

In a given day, how much of your time is dedicated to actually working? 100% pure quality I-got-all-my-attention-on-this working? And don’t fool yourself. Chris pegged it at about 1.5 hours in your 8 hour day and when you stop to really think about it….. he’s right! Statistcally, a developer produces 15 lines of usable code everyday so the 1.5 hours of work you put into those 15 optimized lines seems to make sense now, doesn’t it? By offering all the perks it does, Google is merely trying to make sure that those 1.5 hours of productivity happen while you’re actually at the office and if you’re in an environment that accomodates your needs, you’ll be far more likely to be productive. Really, it comes right down to common sense (and money)…. but mostly common sense.

Based on his Keynote, you can realy see that Google’s main train of thought was this:

  1. Find a problem. And not just a small but a REAL problem
  2. Find a solution to the problem putting the CUSTOMERS’ needs first
  3. Money will come somehow

Did you know that when google was starting to do web ads in 2000 (while it was still a startup), it would terminate ads that were getting a <0.5% click through rate. It’s important to note that, at the time, the industry average was 0.1%…. Google didn’t want their users to be bombarded with ads that didn’t matter to them and 5 times the industry average was just not good enough to make the cut. It wasn’t satisfying the cutomers’ needs.

These are just a couple of examples, but I could probably write a short book on how that presenstation really opened my eyes. You can follow his twitter here or his blog here

Either way, I think he’s worth keeping an eye on. All in all the conference was a good experience and getting in for free made it that much better :-) . I’d reccommend it if you can make it out next year.

Retraction…. of the AJAX kind

Ok, I have to get this out there….

A long time ago, I came up with a back alley when of dynamically adding tabs to a tab container. Well, it turns out I also found a way to actually add tabs WITHOUT actually knowing how many I needed. In short, I was building my entire page dynamically at Init based on some session variables that stored the number of tabs I needed. All in all it was pretty cool but it made me realize something that I think the world should know:

If possible avoid using the AJAX control toolkit, at ALL COSTS. Sure it’s cool and look all the pretty things I can do but it’s slow and very high traffic. If you want to do the cool things it does, I would use the AJAX Extensions class and write the rest myself. It’s sounds like a bad idea and a lot of work and it is. But TRUST ME, it’s well worth it.

I just try to find different ways to provide the same user experience in the end. The big downfall with dynamically generating all the controls at Init was after you added 3 tabs, the site really started to slow down and the user experience is just thrown out the window. I managed to achieve the exact same experience by replacing the tabs with entirely seperate pages and just managing a dynamially created menu control at the top of the page. So now, we have a much better performing site with code that’s WAY easier to manage!

Categories: Techy Stuff

Adding Tabs to AJAX Tab Container

February 13, 2008 Chris Silivestru 2 comments

I like the AJAX Control Toolkit. It provides a lot of cool functionality that’s great for low/medium weight apps. That said, getting it to do stuff that isn’t straight out of the box can be a pain sometimes.

I use the tab container and I wanted to give the user the option to add a tab to the tab container dynamically at run time. Adding a tab isn’t the problem, it’s adding the content that’s tough.

Adding a Tab:

TabContainerName.Tabs.Add(new AjaxControlToolkit.Tab);

TabContainerName.Tabs[TabIndex].HeaderText = “Whatever you want here”;

The content of each of my tabs involves quite a bit of elements though, each of which need to be replicated and made unique so that I can access them programmatically later on. If you have this problem, you’re faced with writing a reasonably complex control to “extend” the TabContainer control so that every time you add a Tab, it’s a pretty straightforward method call.

OR

You can cheat like me. How many tabs do you need? If you know the max count of tabs, you can load the max number at load time and only make the first one visible. Then, every time the user click the “Add Tab” button (or whatever you have set up to add a tab), you can execute a very simple bit of code to “trick” the user into thinking they’re actually adding a tab.

int numberOfVisibleTabs = 1; //Since you start with one tab

Public void btnClick(blah blah) {

int maxIndex = TabContainerName.Tabs.Count;

for (int i = 0; i < maxIndex; i++) {

if (!TabContainerName.Tabs[i].Visible) {

TabContainerName.Tabs[i].Visible = true;
numberOfVisibleTabs++;

}

}

if (numberOfVisibleTabs == maxIndex)

btn.Enabled = false; //To prevent a null pointer when the user tries to add too many tabs.

}

}

Now remember, I don’t have my code in front of me so I’m writing this with no testing or anything but you should get the idea of what I’m doing. This is a QUICK and DIRTY solution but it works. You can further improve the user experience by putting your tabbed interface in an Update Panel Control so that the postback of each “addition” won’t re-load the whole page.

Categories: Techy Stuff

There’s a Reason Why People Don’t Use VB.net

February 8, 2008 Chris Silivestru 2 comments

It sucks! Probably the most non-standard, childish language I have ever come across.

Here’s a list of the absolute dumbness that is VB.net. If you’ve developed in something other that VB.net, you’ll see exactly what I mean.

Just a few examples:

C#:

  • array_name[element_number]
  • variable = new Integer()
  • list = new ArrayList()
  • public void methodThatDoesNotReturnAnything(Parameters)
  • public String methodThatReturnsString(Parameters)

VB.net:

  • array_name(element_number) –> Roud bracket!?!?!? What the hell?!
  • Dim variable As Integer –> Notice no constructor!!
  • Dim list As New ArrayList –> Again, no constructor!!
  • Public Sub methodThatDoesNotReturnAnything(Parameters)
  • Public Function methodThatReturnsString(Parameters) As String –> VB has 2 different signature styles depending on if the method returns something! Why?

For a full list of differences, checkout this helpful reference.

Categories: Techy Stuff

The Wonders of AJAX

I finally have the privilege to develop a webiste using the AJAX toolkit designed for asp.net. I was so excited! I added references to the System.Web.Extension and System.Web.Extensions.Design binaries, went to the AJAX website and downloaded the Non-Source Version of the AJAX toolkit since I don’t plan to change the functionality of the toolkit itself. I then ran the vsi file and “intalled” AJAX.

Nothing. Ok, so I added the AjaxToolkitControl.dll to my bin folder.

Still nothing. Sometimes Web Developer is kinda finicky so I added all the toolkit controls to my Toolbox, dragged and dropped one of them onto my aspx page. No errors, no warnings.

Build it. STILL nothing.

If you’re like me, you may have spent an hour just trying to figure out what’s wrong. Well, I’ll tell you right here. For an AJAX enabled website, you need several new propertie put into your web.config. (Too many to list here). Unfortunately, they’re not essential to the build process of the site so if you don’t have them, your site may still build fine with AJAX control either not rendering or, when rendered, asking you to locate the source of the control.

Here’s the solution. Ready?

Copy every file except the web.config file. Blow away your entire project and create a new one. Now, magically, there should be an option to create a new AJAX Enabled Website. Choose that and add all your files back in. Voila! It works!

I can’t believe that took me 2.5 hours!

Categories: Techy Stuff

Google and Android

So, here’s the geek part of me coming out a little…

Google just released an SDK for mobile applications. And, since it’s google, it’s free. And again, since it’s google, it’s awesome. Their main page is available here. Not interested yet, uh?

Google has also set aside $10 000 000 for the best apps developed. That’s worth at least taking a quick look, right?

Categories: Techy Stuff