Developers, Speak Up!#
“I was always dumb in that way. I never knew who I was talking to. I was always worried about the physics. If the idea looked lousy, I said it looked lousy. If it looked good, I said it looked good. Simple proposition.

I've always lived that way. It's nice, it's pleasant if you can do it. I'm lucky in my life that I can do this.”

-Richard Feynman
Los Alamos From Below: Reminiscences 1943-1945 - Caltech

Feynman said this after he pretty much told, physics legend Neil Bohr, off. During a discussion, Feynman said following about Bohr’s idea

"No, it's not going to work. It's not efficient. . . Blah, blah, blah."

and

"That sounds a little bit better, but it's got this damn fool idea in it."

In the above mentioned Feynman's words, there is a good lesson for everyone; especially for those of us who call themselves Software Engineers. When you are providing input to someone about architecture, design or anything CS in general, be very honest. If someone tells you how to do “software things” and you think the specified method is flawed, speak up. Always be worried about computer science and software engineering like Feynman was about Physics. Just because someone has 15-20 years of experience, doesn't mean that every idea they'd propose is going to be great. Don't argue for the sake of argument but if you see a problem, point it out. There are more than enough people in the world who would think that having a flash button is far better than a static gif because "you can feed text to it via a parameter and it would become whatever button you want it to be". Might sound cool but generally speaking, this is definitely not a good enterprise design idea (instantiation cost, compatibility etc). If a senior developer wants to put config settings in the database, and you see that they don’t belong there, question it. If that person also loves technology, simplicity and good design, they would concur with you once they see their mistake. Otherwise, you’ll always have the option of singing “I told you so” when the thing starts crumbling. Without courting with your ego, fight till you can and make your case from a technology standpoint. Do not sign off on a technical design just because the next person did. It’s important that you practice your judgment in software design; such people are definitely an asset to every software team.





1/29/2007 7:46:07 PM (Pacific Standard Time, UTC-08:00) #    Comments [0]  |  Trackback

 

Going Down Code Camp!#

So tomorrow I’ll be at Cal-State Fullerton enjoying the rock and roll code camp with friends and colleagues. With a multitude of sessions ranging from distributed computing to career development, this event is a perfect place for technology professionals working in different tiers of organization. I’d highly recommend attending both days. The schedule of sessions can be found here.

This morning at the Vista Launch event in Los Angeles Convention Center, I met Gerald Walsh in the hall way. Gerald is a Microsoft MVP and has spoken to our user group last year when he was working with Microsoft. He’ll be presenting advanced ASP.NET session in the code camp on Sunday which is rated as the most favorite session on the code camp’s website. I’m definitely looking forward to attend it. Also, hopefully I’d be able to get some good speakers signed up for San Gabriel Valley .NET user group meetings this year.

Happy Coding!





1/26/2007 11:45:31 PM (Pacific Standard Time, UTC-08:00) #    Comments [0]  |  Trackback

 

Participate in Microsoft Global Research#
Participate in Microsoft Global Research

via Chris Pels President INETA North America

     
-How .NET is perceived today – its' strengths & weaknesses
-How we can best position & communicate .NET in the marketplace (both now & in the future)
-How we can make the way we talk about .NET to customers more compelling
     
We would like to talk to people within organizations that are currently using or evaluating .NET technologies.
     
    We would like to talk to two people from the development team, one in an architecting role and another who writes code using .NET.  We would also like to talk to an IT Professional – someone who is responsible for decision making in relation to Development technologies used in the business but is not a 'hands on' programmer.
     
    Should you decide to participate in this study, it will involve one of our preferred research vendors visiting you at your place of work. They will be onsite for approximately 3 ½ hours & the day will consist of 3, 1:1 sessions with each person followed by a group discussion with all 3 participants.
     
    This will provide you with the opportunity for you to communicate openly and directly and provide critical insight and feedback to Microsoft.
     
    These discussions will be run by Intrepid, an independent market research agency. Intrepid will share the insights they have obtained from you so you can understand what they are reporting back to us.
     
    If you are interested in this study, Intrepid Consultants will contact you to schedule the session. Before scheduling the session, they will go through a short survey which will take approximately 7-8 minutes to go through via phone, to ensure the discussion will be relevant to you
     
    We are offering an incentive of $300 USD  per participant as a token of thanks & acknowledgement of the time you spend with us.
     
    If you're interested, please respond to my mail by the end of day 25th January. The case studies will all need to take place from the 1st-14th February to ensure we hit our schedule.
     
    We look forward to your participation in this study & thank you in advance for your time.
     
    Thanks,
    Thom Robbins
    Director .NET Platform marketing
    Email: trobbins at microsoft dot com



1/24/2007 11:12:36 PM (Pacific Standard Time, UTC-08:00) #    Comments [0]  |  Trackback

 

Jon Flanders on Windows Workflow Foundation#

Workflow is the operational aspect of a work procedure and essentially almost every application employs a workflow in one way or another. Microsoft BizTalk has been providing the facility to implement multi-source data import, integration, complex rules and business logic simply via a intuitive diagrammatic interface inside the familiar Visual Studio.NET IDE for a long time. Now, to empower the framework with a robust and feature rich orchestration engine and merge with the power of .NET framework , Microsoft adds WF (Windows Workflow Foundation) to the developer’s arsenal with .NET framework 3.0.

jonflanders-sangabrielvalley.net.jpg

These are some of the topics addressed in the WF presentation on Wed Jan 17th by Jon Flanders, Microsoft MVP on BizTalk, in the San Gabriel Valley .NET Developers Group meeting. As defined on netfx3, “Windows Workflow Foundation (WF) is the programming model, engine and tools for quickly building workflow enabled applications. WF radically enhances a developer’s ability to model and support business processes.” Jon’s presentation consisted of two parts. First part was focused on BizTalk in which he demonstrated in an easy and user friendly way how to write a Hello World application in BizTalk. In the second part of presentation Jon discussed the WF framework explaining how and where to use it effectively. His talk was full of examples code samples, demos and real world scenarios which made it quite interesting. Participants bombarded him with questions (a good sign showing that people are paying attention) which Jon answered with comprehensive explanation. His code sample can be downloaded from here and the link to the live version of his work flow designer is as follows.

http://www.masteringbiztalk.com/atlasworkflowdesigner/

Jon was also kind enough to provide us link to his workflow samples page - which has a link to the code at the bottom.
http://www.masteringbiztalk.com/wiki/default.aspx/MyWiki/Workflow%20Samples.html

The presentation was an excellent learning experience and from post-meeting comments was very much liked by the SGV.NET members. We hope that Jon would continue to come and speak to our user group in the future.

Windows Workflow Foundation is not a new idea but it’s a much better implementation of work flow orchestration to date. About four years ago in London I attended a presentation by Stephen Mellor in which he described the idea of having executable UML and the enterprise benefits behind it for instance ease of code maintenance, higher visibility and faster prototyping. With WF, we have much more modular architecture consisting of Activity Model, Workflow designer, workflow runtime and rules engine, I like to call it “executable flow charts”. Like Jon mentioned in his presentation, round tripping is one of the key features supported in WF which has always been a problem in the past. Previously if your model has changed or your code is modified, there was no synchronization and document would quickly start getting out sync. With WF, your model reflects the source code and vice versa.

The inside scoop about project Silver was quite interesting which supports the integration of WF and WCF bringing the best of both worlds together.

Reading and Further References.

Jon Flanders is an industry-leading author and instructor of in-depth developer training materials at Quicklearn. Jon is the author of "Mastering Visual Studio .NET" from O'Reilly and "ASP Internals" from Addison-Wesley and co-author of "Presenting Windows Workflow Foundation" from Sams. Jon holds a Juris Doctor from Hamline University. He has been working with .NET and ASP.NET since early betas and with BizTalk 2004 since its release in March of 2004.





1/22/2007 11:44:51 PM (Pacific Standard Time, UTC-08:00) #    Comments [0]  |  Trackback

 

The Computer Disease#
So true Mr. Feynman, this is so true!

"Well, Mr. Frankel, who started this program, began to suffer from the computer disease that anybody who works with computers now knows about. It's a very serious disease and it interferes completely with the work. The trouble with computers is you play with them. They are so wonderful. You have these switches if it's an even number you do this, if it's an odd number you do that and pretty soon you can do more and more elaborate things if you are clever enough, on one machine.

....

Absolutely useless. We had tables of arctangents.But if you've ever worked with computers, you understand the disease the delight in being able to see how much you can do. But he got the disease for the first time, the poor fellow who invented the thing."


-Richard P. Feynman
Nobel Laureate Physicist

Excerpt from Surely You're Joking, Mr. Feynman! (Adventures of a Curious Character)





1/22/2007 6:40:23 PM (Pacific Standard Time, UTC-08:00) #    Comments [0]  |  Trackback

 

Turing Omnibus and Test Correctness#
Recently I’ve been eagerly reading “The New Turing Omnibus – 66 Excursions in Computer Science” by A. K. Dewdney and let me tell you, this book is addictive. An interesting essay was about Simulation and the Monte Carlo method. There wasn’t anything exciting in the actual explanation of the process but the deduction lead to the concept of having test scenarios based on simulation. Test Correctness strategies currently follow this approach in a specialized way however there is no general toolset available in which, lets say, one can integrate the test fixtures with different distribution based inputs.

The idea is not novele as papers has been written about Toward models for probabilistic program correctness as early as 1978 however, we have yet to see the availability for a commoner in a unit testing framework developers actively use.

Following are some ACM publications on the similar topics.

For instance, this simple teller based simulation for management from Discrete Event Simulation which I’ve translated to C#, an ideal candidate for such a text fixture.

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace Discrete.NET
{
    class SimpleInventorySystem
    {
        string FILENAME="sis1.dat";            /* input data file                */
        long MINIMUM=20;                    /* 's' inventory policy parameter */
        long MAXIMUM=80;                    /* 'S' inventory policy parameter */

        long GetDemand(FILE *fp)            
        {
            long d;
            fscanf(fp, "%ld\n", &d);
            return (d);
        }

    
   int Process()
   {
    File fp;                                /* input data file         */
    long index     = 0;                      /* time interval index     */
    long inventory = MAXIMUM;                /* current inventory level */
    long demand;                             /* amount of demand        */
    long order;                              /* amount of order         */
 
    struct sum
    {                                 /* sum of ...              */
        double setup;                          /*   setup instances       */
        double holding;                        /*   inventory held (+)    */
        double shortage;                       /*   inventory short (-)   */
        double order;                          /*   orders                */
        double demand;                         /*   demands               */
    };
        //= { 0.0, 0.0, 0.0, 0.0, 0.0 };

   //Open the file and check if its null;
   //fprintf(stderr, "Cannot open input file %s\n", FILENAME);

  while (!feof(fp)) {
    index++;
    if (inventory < MINIMUM) {             /* place an order          */
      order         = MAXIMUM - inventory;
      sum.setup++;
      sum.order    += order;
    }
    else                                   /* no order                 */
      order         = 0;                   
    
    inventory      += order;               /* there is no delivery lag */
    demand          = GetDemand(fp);
    sum.demand     += demand;
    if (inventory > demand)
      sum.holding  += (inventory - 0.5 * demand);
    
    else {
      sum.holding  += sqr(inventory) / (2.0 * demand);
      sum.shortage += sqr(demand - inventory) / (2.0 * demand);
    }
    inventory      -= demand;
  }

  if (inventory < MAXIMUM)                /* force the final inventory to */
  {
    order           = MAXIMUM - inventory; /* match the initial inventory  */
    sum.setup++;
    sum.order      += order;
    inventory      += order;
  }

  printf("\nfor %ld time intervals ", index);
  printf("with an average demand of %6.2f\n", sum.demand / index);
  printf("and policy parameters (s, S) = (%d, %d)\n\n", MINIMUM, MAXIMUM);
  printf("   average order ............ = %6.2f\n", sum.order / index);
  printf("   setup frequency .......... = %6.2f\n", sum.setup / index);
  printf("   average holding level .... = %6.2f\n", sum.holding / index);
  printf("   average shortage level ... = %6.2f\n", sum.shortage / index);

  //fclose(fp); close the file
  return (0);

    } // Ends Class
} // Ends namespace





1/4/2007 6:49:50 AM (Pacific Standard Time, UTC-08:00) #    Comments [0]  |  Trackback

 

The Euler Plant #
Thanks to my director, Andrea Kim, who got me this plant as a holiday gift.

euler_plant.jpg

I decided to name it Euler's plant after Euler's identity and now counting how many people who walk into my cubicle can answer what underroot -1 is, so far the count hasn't been too great.

euler_plant.jpg

This is where it currently sits on my desk, right next to Visual Studio and Team System minions.





1/3/2007 7:57:41 AM (Pacific Standard Time, UTC-08:00) #    Comments [0]  |  Trackback

 

Linkapaloza 01.03.2007#





1/3/2007 7:46:08 AM (Pacific Standard Time, UTC-08:00) #    Comments [1]  |  Trackback

 

All content © 2008, Adnan Masood
About the Author
On this page
Calendar
<October 2008>
SunMonTueWedThuFriSat
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678
Archives
Sitemap
Blogroll OPML
microsoft