Microsoft will rewrite 60% of Windows according to this article.
Ouch! That hurts!
Friday, March 24, 2006
Wednesday, February 22, 2006
Luck-driven development
I found a term "opportunistic development" (Research Directions of Microsoft, November 2005) referring to writing a VB program in debugger and tweaking it to get desired results. This was referred to as Programming by Accident by the Pragmatic Programmers. But in line with XYZ-Driven Development pattern I decided to introduce a new term: Luck-Driven Development (LDD).
Friday, January 27, 2006
Wednesday, January 25, 2006
Nice article about test-driven development
http://www.darrenhobbs.com/archives/2006/01/agile_answers.html
Tuesday, January 24, 2006
FreeMind
Mind Mapping (a.k.a. Thought Mapping) is such a great idea. I only started using it, perhaps, because I am backwards. I am using FreeMind, and it seems to be an OK tool, but I have not figured out yet how do I print from that tool.
Friday, January 20, 2006
Windows Messenger
Why in the world I still need to have Windows Messenger on my machine when I already have MSN messenger and Microsoft Office Communicator? Anyone here designed Windows XP?
Tuesday, December 20, 2005
Re-distribute a user control!
Finally, you can re-distribute a user control without having to create a custom control, which is explained in this article. VERY COOL!
Tuesday, November 29, 2005
Console lib
Is it a full month since I wrote last time to this blog? Wow, I must have been really bored...
Anyway, here is a wonderful library I found, that allowed me to write console c# applications the same way I could do that in C using conio.h library.
Anyway, here is a wonderful library I found, that allowed me to write console c# applications the same way I could do that in C using conio.h library.
Friday, October 28, 2005
Binary counting with fingers!
Great poster: http://howtoons.net/archives/final/800binary.html
I can use binary counting to count up to 1023 with just two hands!
I can use binary counting to count up to 1023 with just two hands!
Thursday, October 27, 2005
I thought they were mock objects?
I am using mock objects for a while now, and I never felt any difference between mock objects and stubs. However, this blog seems to indicate that real mock objects are the objects based on behaviour testing.
So, only about 20% of my mock objects were really mock objects. Other 80% were stubs.
So, only about 20% of my mock objects were really mock objects. Other 80% were stubs.
Wednesday, October 26, 2005
ASP style of development?
A lot of my co-workers complained about my ASP style in ASP.Net development. The only reason for such a complaint is that I am using data-binding statements on ASPX pages and user controls, like this: <%# DataBinder.Eval(Container.DataItem, "City")%>. I never use any server-side scripting code on the page itself, all server-side code goes to code classes. However I do like to use data-binding statements to achieve better separation of presentation from business logic. Indeed, what is the alternative? The alternative is to handle OnDataBound() events, find the controls within each row and manually set properties on them. This is not ASP style, this is VB6 style of developing Windows apps. Is it better? No, you still have your presentation mixed up with the business logic, the methods become very long, there is indeed a lot of code written to do something which I can easily accomplish by using data-binding statements.
I would actually go to the extreme by trying to separate business logic from presentation. I would not use any code-behhind. I'll have all pages and user controls inherit from pages, but I would prevent Visual Studio from coupling these classes to the pages. This way if I add a control to the page it will not automatically appear in the class. All events should be registered by using control's attributes, like "onclick". The protected control variables will appear in the base classes only when I need to read properties of the controls. This way we can have the same base class for multiple pages or controls, avoiding duplication of the business logic, while being less strict about presentation (where some duplication is always allowed).
I would actually go to the extreme by trying to separate business logic from presentation. I would not use any code-behhind. I'll have all pages and user controls inherit from pages, but I would prevent Visual Studio from coupling these classes to the pages. This way if I add a control to the page it will not automatically appear in the class. All events should be registered by using control's attributes, like "onclick". The protected control variables will appear in the base classes only when I need to read properties of the controls. This way we can have the same base class for multiple pages or controls, avoiding duplication of the business logic, while being less strict about presentation (where some duplication is always allowed).
Tuesday, October 11, 2005
Building fire :)
This is just funny, taken from http://msdn.microsoft.com/security/default.aspx?pull=/library/en-us/dnvs05/html/vs05security.asp
"Currently, however, we can't build fire and forget applications. "
Why would you want to build fire? And why do you have to forget applications?
"Currently, however, we can't build fire and forget applications. "
Why would you want to build fire? And why do you have to forget applications?
Monday, October 10, 2005
Really good article about project management
http://msdn.microsoft.com/library/?url=/library/en-us/dnlong/html/aspm_ch13.asp
Friday, October 07, 2005
Service-oriented architecture
If you want to abstract from Microsoft propaganda, here is what I think SOA means:
- It is orthogonal to Object-Oriented technology. You can write SOA apps using procedural languages and structural programming.
- It is orthogonal to XML. You can use XML and Web Services but not have SOA. Or you can have a very good SOA without any XML.
- COM+. Have you ever tried to configure firewall for COM+ app? You probably know that the client machines start acting as servers if they are in charge of coordinating transactions. This is the main feature of SOA: blurring distinction between client and server. Client becomes server, server becomes client. Or if you want, you don't have clients and servers anymore, you have services.
- BitTorrent: this is probably the best SOA app: every client machine must become a server, all computers are working in collaboration for one goal: downloading the files. No server or client - only services.
Monday, October 03, 2005
Iterative or feature-driven development?
I started a thread on Extreme Programming mailing list:
http://groups.yahoo.com/group/extremeprogramming/message/113227
I am still trying to control chaos on the projects I am working on. I felt that iterative development is too restricting and not agile enough. Business expects the time from inception to release to be as short as one week in some of the cases. There is no way to do that with two-week iteration.
My priorities will be:
http://groups.yahoo.com/group/extremeprogramming/message/113227
I am still trying to control chaos on the projects I am working on. I felt that iterative development is too restricting and not agile enough. Business expects the time from inception to release to be as short as one week in some of the cases. There is no way to do that with two-week iteration.
My priorities will be:
- Automated QA tests.
- Automated (as much as possible) deployment
- Smart branching strategy
- Code&Design reviews.
Wednesday, September 28, 2005
Choosing Between Microsoft Visual Studio Team System and Microsoft Visual SourceSafe
Just saw an article on MSDN about choosing between VSS and VSTS. I choose CVS!
Friday, September 23, 2005
Dynamic interfaces in VB 9
VB 9.0. One of hte coolest features is dynamic interfaces or strong duck typing, which will let you cast any type to any interface, and the cast succeeds as long as the all the methods in the interface match the methods in the object. Very cool!
Language feature
New thing from Microsoft: LINQ. Somewhat brings you closer to languages like Smalltalk or Ruby, but not quite. Will probably confuse prople a lot, because this is SQL, but a lame one: with SELECT at the end.
Wednesday, September 21, 2005
Boundary test
How often you find yourselves writing a unit test that really tests an external system, like database, external web service, etc.? XP does not recommend to write such tests, and recommends instead to write a harness for database, web service, etc. The reasoning is very simple: these tests are easier to write, they run much faster and testing only the code you wrote, not the code of third party. However I still believe there is a great value in these tests, which I will call boundary tests to distinguish it from unit tests, which are usually layer tests. The value of boundary tests is in testing connectivity to the services your application relies on. And if you use the principle of testing anything that can possible break, I can guarantee that connectivity to external services (and the services themselves!) break as often (or even more often) than the code we are writing.
Friday, September 09, 2005
Subscribe to:
Posts (Atom)