Marco Dorantes' WebLog

"Computer science is no more about computers than astronomy is about telescopes" -Edsger W. Dijkstra

Browse by Tags

Tagged Content List
  • Blog Post: Blog change

    I will post further reflections on business value with software development and on the reflective practice of "architecture" on the following address: http://softwarevalue.blogspot.mx/
  • Blog Post: Inspiration for test-driven design?

    What could possibly inspire someone to take test-driven design (TDD) more seriously? I can only tell about what kind of experience has inspired me: (1) the act of watching someone doing TDD with dexterity. (2) Observing the quality of the outcome in relation with its requirements and specifications....
  • Blog Post: Good programming styles

    A presentation by Bjarne Stroustrup, creator of C++, about good programing styles. This presentation was dedicated to Dennis Ritchie, creator of C. Note of relevance: The C programming language, in one way or another, is at the bottom of all existing computing. Day 1 Keynote - Bjarne Stroustrup...
  • Blog Post: Sugar-free C# – Part 2: Iterators 1

    Task: as a breadth developer, I need to analyze a set of VB6 legacy applications and enlist all stored procedures invoked per subroutine per application. Is this a task for a breadth developer? Let’s consider this criterion: if the number of concepts needed to successfully apply an effective...
  • Blog Post: Sugar-free C# – Part 1: Introduction

    There is the notion of breadth developer, which encompasses the attitudes of the practical mindset: How can I do such and such task in a straightforward way? For example, I need to analyze a set of VB6 legacy applications and enlist all stored procedures invoked per subroutine per application, how can...
  • Blog Post: Central piece of code as a cornerstone for a tool

    Sometimes, the idea of a tool could gravitate around a very simple piece of code, an enabling mechanism that gives life to a much larger functionality. That is the case of a simple tool I am writing for my own use. It is an application, based on Windows Presentation Foundation, which help me to upload...
  • Blog Post: LINQ Samples

    Visual C # — 101 LINQ Samples Visual Basic.NET — 101 Visual Basic LINQ Samples
  • Blog Post: Know your design tools — The Singleton case

    A professional software designer —one whose next paycheck depends on the quality of her software— looks for an ever increasing acquaintance with his design tools. One of the most important design tools in software is the actual computing machine —abstract, virtual and physical— where the software...
  • Blog Post: Stepping into base class libraries of .NET Framework while debugging

    Here are some pieces of information about stepping into base class libraries of .NET Framework while debugging: Configuring Visual Studio to Debug .NET Framework Source Code by Shawn Burke Debugging into the .NET Framework Source by James Kovacs
  • Blog Post: COM+ object per client model

    Consider the following ECMAScript: var mather=new ActiveXObject("Arithmetic.Math") WScript.Echo(mather.Sum(5,5)) WScript.Echo(mather.Sum(5,5)) Output is: 10 twice. No brainer. Arithmetic.Math could be an in-process (loaded in the same process of COM Client), local (loaded in different process...
  • Blog Post: Execution order between base and derived inline instance field initializers

    Talking C # , what is an instance field initializer? Here are two: class T { private int afield = 1024 ; private StringBuilder anotherfield = new StringBuilder() ; } Now, consider the program below, What would the output be? class B { public B(int n){Console.WriteLine(n);} } class T...
  • Blog Post: Do you amass nasty feelings about your designs?

    I remember the time when structured programming lessons first came into my attention. Control flow constructs like sequence, choice, loops, etc. In particular, the condition-controlled loop that places the condition test after the loop body, for example do-while loop of C/C++ or C#, or Repeat-Until loop...
  • Blog Post: Recursive functions

    My young nephew came with a question about recursive functions, after a few minutes, he fully understood these samples: #include <stdio.h> /* 0! = 1 1! = 1 3! = 3*2*1 = 6 5! = 5*4*3*2*1 = 120 3! = 3*2! = 3*(2*1!) = 3*[2*(1)] = 3*(2*1) = 3*2*1 = 6 n! = n*(n-1)! */ int factorial_recursivo...
  • Blog Post: Anonymous method trivia

    Consider the following C# 2.0 code: using System.Windows.Forms; class form:Form { form() { int msg=100; Button b=new Button(); b.Text="click"; b.Click += delegate{MessageBox.Show("now the value is:"+msg);}; Controls.Add(b); Load += delegate{msg=200;}; msg=500; } static void...
  • Blog Post: A more efficient iterator pattern implementation since C# 1.0

    Yes, there is CLR 2.0 now, with C# 2.0 generics and iterators. Yet, the more design tools for your professional designer’s toolbox, the better. Implementing global::System.Collections.IEnumerable and global::System.Collections.IEnumerator implies some necessary performance costs due boxing and unboxing...
  • Blog Post: What are pointers?

    Today, my young nephew came to me with the question "What is that thing called 'pointers' in the C programming language?" from his first programming course at school. The time has come to see if he was born with that part of the brain that understands pointers. After some minutes of explanation, I...
  • Blog Post: The attention where it belongs (and it is not in the marketing hype)

    Reading the following article was refreshing, there are conscious software professionals that this industry can rely on like Mr. Dave Thomas: Agile Evolution - Towards The Continuous Improvement of Legacy Software by Dave Thomas http://www.jot.fm/issues/issue_2006_09/column2
  • Blog Post: The source of many design and programming problems: unchecked assumptions

    In a recent project, we faced a problem with our system. We just found and resolved the problem. Details aside, there is a root cause of the problem: unchecked assumptions. Save you time and effort and ask yourself often "Which are my assumptions so far?" And then check them early.
  • Blog Post: A test-driven design style for database-based applications with VSTS

    If you are designing an application test-drive using Microsoft Visual Studio 2005 Team Edition for Testers whose logic includes access to a database, then consider the following mechanism for the database related assertions (also known as specifications: SpecificationByExample ): For a simple example...
  • Blog Post: Designing scalable systems

    This is an important work for the Spanish software development community, the issues involved with scalability are cleary explained, and their solutions. Enjoy: http://dixi.members.winisp.net/escalabilidad/
  • Blog Post: Reflecting in action: programming other algorithms

    As part of the same preparation I really enjoyed to program a classic: Which are the 92 solutions to the 8 queen problem? First, the usage intentions and conditions of satisfaction: [TestMethod] public void validSolutions() { List<ChessBoard> boards = ChessBoard.AllQueens(); foreach (ChessBoard...
  • Blog Post: Reflecting in action: programming simple algorithms

    In preparation to write some papers about software design techniques, I am planning to illustrate those techniques with a variety of examples. As part of the effort I will document my thoughts while doing reflective practicum , identifying and documenting patterns of thought while programming solutions...
  • Blog Post: Argument processing and C# 2.0 iterators

    Sometime, you want to process this command-line argument: C:\>aprogram arg0 arg1 @arg2 arg3 @arg4 arg0, arg1, arg3 are actual data to process whereas arg2 and arg4 are text file names where each text line inside is another actual data to process (aka response files). Here is a way to convey such...
  • Blog Post: Dependency management: Coupling and cohesion

    Dependency management turns ugly when Assembly A gets a transitive dependency (in red, the slash means ‘derived’) to Assembly C even if Assembly A apparently does not depend directly to nothing in Assembly C: The evolution of large-scale designs with decoupling and cohesion principles in mind becomes...
  • Blog Post: Dependency management with CLR Assemblies and Types: Relationships

    I keep in mind the following concepts when designing with .NET Framework assemblies and types; that is, when doing object-oriented design —an activity also known as dependency management, which is equal and the same for the most part. Aggregation between two types occurs when Type B is the declared...
Page 1 of 2 (50 items) 12