Notes on software and the ideas behind it
Find the meaning
behind the code.
I’m Fred Yang. I write about software—how it works, why it behaves the way it does, and the ideas that make code easier to reason about.
Open the notebookWorking notes / 2026
Recently mapped
Architecture, reactivity, and the hidden relationships that shape frontend systems.
javascript
makeArray function
function highest(){
//return arguments.slice(1).sort(function(a,b){
return makeArray(arguments).sort(function(a,b){
return b - a;
});
}
function makeArray(array){
return [].slice.call( array );
}
Follow the thread
asp.net mvc
change in mvc2 project
project file change, replace guid {603c0e0b-db56-11dc-be95-000d561079b0} with {F85E285D-A4E0-4152-9332-AB1D724D3325} in ProejctTypeGuids nodes Reference dll change, update all reference in web.config files and project files update runtime binding. <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/> <bindingRedirect...
Follow the thread
Covariant and Contravariant
Covariant/Contravariant Support for generic interface .net 4.0
The introduction of generic in .net makes covariant/contravariant support a very interesting topic. Now .net 4, there are some support for generic interface. But covariant and contravariant for generic class is still not supported...
Follow the thread
Covariant and Contravariant
compiled time support for Covariant and Contravariant in .net 2.0
In .net 2.0, A delegate can be associated with a named method, this facility provide support for covariant and contravariant as the following sample code shows.
delegate void ProcessString(string item);
delegate object GetObject();
Follow the thread
Software Design
The semantics of c# interface
We all use interface construct in c#. Recently I came across the Haack’s blog Interface Inheritance Esoterica, I decided to find out more. So I write a very simple example like below public interface...
Follow the thread