Life After the Dot-com Bubble RSS 2.0
# Sunday, October 29, 2006
I have been reading up Java Server Pages just recently. It's interesting how the idea about the Model View Controller (MVC) design pattern has found its way into web page design. As far as I know, J2EE suggested the use of this pattern first using JSP (View), Servlet (Controller), and EJB (Model). Then, Microsoft supported this pattern through Visual Studio (though, initially, if you didn't have Visual Studio, it would be pretty hard), using the ASPX (View), Code-Behind (Controller), and business code (Model).

Sunday, October 29, 2006 8:06:35 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0] - Trackback
programming
# Tuesday, October 10, 2006
Pretty funny and scary at the same time. http://www.hacknot.info/hacknot/action/showEntry?eid=90
Tuesday, October 10, 2006 8:06:04 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0] - Trackback
programming
# Friday, October 06, 2006
Sometimes, when I look at this article, I wonder if every programmer, software engineer, and developer would agree with this list. Personally, I do fully agree with the whole list. These are the type of habits and discipline that good and great programmers live by. Though, my question goes on whether or not the average (or median) programmer agrees with this list. Now, that's the question I have encountered in a lot of discussion with friends. Seven Habits of Highly Effective Programmers
Friday, October 06, 2006 8:05:31 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0] - Trackback
programming
# Friday, July 07, 2006

The Art of SQL is a book that I've picked up recently. It seems to be a very good book on theoretical SQL. I'll write a review as soon as I'm finished.

Friday, July 07, 2006 8:04:21 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0] - Trackback
programming
# Wednesday, June 14, 2006
This is a very interesting article on how the backwards compatibility for the XBOX 360 is done. It makes me wonder if marketing was overzealous on this feature. Xbox Team : On Backwards Compatibility
Wednesday, June 14, 2006 8:01:37 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0] - Trackback
programming
# Monday, May 01, 2006
Lately, I have been doing a lot of reading between Refactoring Databases : Evolutionary Database Design, Software Estimation: Demystifying the Black Art, and some of the new .NET books that were released in March 2006. Previously, I had the impression that experience and learning new technologies are the important qualities to get ahead. Though, I am beginning to get the impression that learning new APIs and libraries are not as important as being disciplined in writing quality code. In fact, the software engineering world is too mixed up in using the latest and greatest technology and not worrying about how to maintain and enhance current software. Picking up new technology has always been a habit for good developers, and, is therefore, the reason why I think building more quality and bug-free habits are better.

Monday, May 01, 2006 8:00:16 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0] - Trackback
programming
# Wednesday, March 29, 2006
Software Estimation: Demystifying the Black Art sounds like it is going to be a good book. In my opinion, estimating is probably one of the toughest aspect of software development that you wish you never have to deal with. Hopefully, some good insight would come from this book, especially from the author of Code Complete. I will give an opinion of my findings as soon as I finish.

Wednesday, March 29, 2006 7:59:46 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0] - Trackback
programming
# Monday, January 09, 2006

This is one idea that I wish a lot of software engineers and programmers keep in mind. It's an idea that is stated in Extreme Programming Explained: Embrace Change (2nd Edition) by Kent Beck called Collective Code Ownership. This is an idea that I practice a lot in my line of work. Though, I do come across people who don't share this idea. There is actually one good reason why and it's something that I've experience first hand:

    "In practice collective code ownership is actually more reliable than putting a single person in charge of watching specific classes. Especially since a person may leave the project at any time." (link)

Monday, January 09, 2006 8:58:32 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0] - Trackback
programming
# Thursday, December 22, 2005

Recently, I've been doing phone interviews and in-person interviews of candidates for our company. A lot of them say that they know C# pretty well. Then, I ask them this question:

[Some code that I do not have now] Everyone says that this code will not print anything because the ArrayList is being passed by value. Unfortunately, this is WRONG. The item will be printed out.

Those same people have also said that they use SqlDataAdapter.Fill(DataSet dataSet). Unfortunately, they never noticed how the DataSet could be filled out if everything was pass by value. The ArrayList is an object, and not a stack variable like int. If I did list = new ArrayList(); on the first line of SomeMethod, then the for loop will not print anything unless a ref statement is used. Though, in the above code case, any changes to the ArrayList will be reflected in the memory area that the ArrayList sits in, therefore it will have the new item when being called in main. Just because there are no pointer representations C# does not mean that pass by reference doesn't exist. To be fair, I did asked them what "pass by reference" is, and they typically define it correctly. Though, they do not know that this concept exists in C#, or at least argue with me that it is "pass by reference value".

Thursday, December 22, 2005 8:56:28 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0] - Trackback
programming
# Monday, November 07, 2005

Have you ever seen or worked with what I term as a "wannabe coding guru" (WCG)? Well, I worked with one about a couple years back. You can tell when they are more interested in making code more complex in fewer lines. To be fair, this person knew client-side web programming (like JavaScript and DHTML) very well. Though, when it came to server-side programming, you would see him try to code C-style if statement assignments in C#. It would look something like this:

int b = 1; int c = 2; int a = 3; if(a == (b = c++) (b < (a = c - 1))) { ; }

I might be exaggerating over here, but literally, he would actually explain to me that this code would be easier to read than nesting them. Additionally, he would depend so much on side-effects (for example, if left argument of an statement is true, then the right argument won't be called) that he took about an hour being stuck on that type of code when a bug showed up. His excuse was that the way he wrote it was correct and he wouldn't budge outside this style. The bug disappeared after I separated the code into line-by-line logic.

So, what's the moral of the story? Don't try to code like this just because you think it makes you look like a better (or advanced) programmer. Do not be a WCG, it does the opposite of what you are trying to display, especially if you work with others who will have to work with your code. If you want to code correctly, please read Code Complete or Refactoring. You will see that clarity would serve you much better for you and others.

Monday, November 07, 2005 8:51:42 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0] - Trackback
programming
Categories
Archive
<August 2008>
SunMonTueWedThuFriSat
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456
About the author/Disclaimer

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

© Copyright 2008
Frank Liao
Sign In
Statistics
Total Posts: 22
This Year: 0
This Month: 0
This Week: 0
Comments: 0
Themes
Pick a theme:
All Content © 2008, Frank Liao
DasBlog theme 'Business' created by Christoph De Baene (delarou)