After reading a post from Martin Fowler - Retreaded: Rigorous Agile
I am a big fan of this Martin Fowler. Another reason for less of rigorous definition from what I understand is that people now still do not have a full concept regarding how to make software development with quality under constraint of schedule, people, and deliverable contents. Agile is still not a complete methodology. To me it is more like mixed guidelines from scrum, extreme programming, pair programming. You just tailor it when you want to use it in your team. People in your team, Process constraint in your company, release pressure from customer and so on decide how to tailor it.
Monday, 13 August 2012
Tuesday, 19 April 2011
Why Sizeof object with empty class is not zero in C++?
My understanding would be creating an object means occupying some memory. No size, no memory, no way to tell it is a object or it is an array of objects in C++. So size of object with empty class should one byte. The value could be 1 or 4 depending on the machine.
I am not sure about C#. It is not difficult to know. I will test tomorrow.
I am not sure about C#. It is not difficult to know. I will test tomorrow.
Iterative vs. Recursive Approaches
I always do not like recursion. I will definitely use iteration if there is a way to use it instead of recursion. No theory. I just do not like recursion naturally.
Today the article I read tells that the performance of iteration is much better than recursion. Performance here includes both speed and memory usage. Here is the link http://www.codeproject.com/KB/recipes/Iterative_vs_Recursive.aspx so I will confidently continue to use iteration instead of recursion in my daily work.
Today the article I read tells that the performance of iteration is much better than recursion. Performance here includes both speed and memory usage. Here is the link http://www.codeproject.com/KB/recipes/Iterative_vs_Recursive.aspx so I will confidently continue to use iteration instead of recursion in my daily work.
Tuesday, 3 August 2010
Name of marshalling
Marshalling is so named because it was first studied in 1962 by Edward Waite Marshall, then with the General Electric corporation
Tuesday, 6 July 2010
Ridiculous Microsoft - Visual Studio Extensions does not support 64-bit platform
SharePoint 2007 is decided to be used as content management server for our application. It gives us lots of troubles when customized web services are needed. For me I think customized web services are necessary for SharePoint 2007 unless you only use web browser as client. SharePoint exposes its interfaces by web services but it only exposes very limited interfaces in this way. No file check in or check out is supported!
Something also ridiculous to me is that a tool from MS, Visual Studio Extensions for WSS 3.0, does not support 64-bit platforms. This tool has to work with SharePoint server and all MSDN documents tell you that SharePoint server is better installed on 64-bit platform and it only supports 64-bit machine from SharePoint 2010.
Stupid MS.
Monday, 5 July 2010
Dispose() vs Finalize()
Enough reading of Dispose, IDisposable, Finalize, SuppressFinalize, Finalized Queue, destructor, Garbage collector, weak reference ....... Hope I could fall in sleep without memory leak........ Managed type, Unmanaged Resources...
Dispose() vs Finalize() (Copied from MSDN after this line)
The primary use of this interface is to release unmanaged resources. The garbage collector automatically releases the memory allocated to a managed object when that object is no longer used. However, it is not possible to predict when garbage collection will occur. Furthermore, the garbage collector has no knowledge of unmanaged resources such as window handles, or open files and streams.
Use the Dispose method of this interface to explicitly release unmanaged resources in conjunction with the garbage collector. The consumer of an object can call this method when the object is no longer needed.
In some cases, you might want to provide programmers using an object with the ability to explicitly release these external resources before the garbage collector frees the object. If an external resource is scarce or expensive, better performance can be achieved if the programmer explicitly releases resources when they are no longer being used. To provide explicit control, implement the Dispose provided by the IDisposable. The consumer of the object should call this method when it is finished using the object. Dispose can be called even if other references to the object are alive.
Note that even when you provide explicit control using Dispose, you should provide implicit cleanup using the Finalize method. Finalize provides a backup to prevent resources from permanently leaking if the programmer fails to call Dispose.
There is no performance benefit in implementing the Dispose method on types that use only managed resources (such as arrays) because they are automatically reclaimed by the garbage collector. Use the Dispose method primarily on managed objects that use native resources and on COM objects that are exposed to the .NET Framework. Managed objects that use native resources (such as the FileStream class) implement the IDisposable interface.
Team leader's role
I have been working as a team leader's role for months. It is the second time of being team leader in my career although the first time only continued for two months before I left the company. It is totally different with being a software engineer. Personally I think the main difference is that as a software engineer I try my best to finish my task on the schedule while as a team leader I try my best to make my team members finish their tasks and then make the team's schedule. 'Make' means properly assigning work item, properly estimation of work items, progress checking, removing anything that blocks their development, and adjusting schedule.
Luckily I got support from my software manager, project manager and other team leaders. They share the experience with me and sometimes just point out the improper actions. Many thanks to them. Also our team provides books for learners. One book I am reading is TSP, Leading a Development Team.
Luckily I got support from my software manager, project manager and other team leaders. They share the experience with me and sometimes just point out the improper actions. Many thanks to them. Also our team provides books for learners. One book I am reading is TSP, Leading a Development Team.
Subscribe to:
Posts (Atom)