April 25, 2005

Some Links on Software to share

  • The long tail of software
    This is actually an alternative way to mine a market for your software without going head-to-head with the big software houses. However, depending on your luck, the area of the market that you choose to target can either be big enough to support your development efforts or too small that it acts as a black hole such that the effort you put in is not worth the customer returns.
  • Monopolies and software reuse
    I enjoy open-source and dislike the Microsoft monopoly. However, I agree with the article in the sense that consumers benefit from the monopoly. Developers are considered consumers when they can readily call on an API available openly on every platform without having to reinvent-the-wheel. This is why writing software on top of Win32, .NET, or any of the SDK frameworks is of more value than reinventing something from scratch. As of now, Microsoft has the largest user base of software being distributed. That, in itself, has tremendous value despite how much we hate Microsoft. I am currently writing/modifying/fixing software that is run on Cisco routers. It really is not rocket science. But the fact that Cisco has so much hardware existing in the world, and I am the only one targetting a particular problem, makes my efforts worth-while.

April 24, 2005

What It's Like

everlast.jpg

We've all seen the man at the liquor store beggin' for your change
The hair on his face is dirty, dreadlocked, and full of mange
He ask the man for what he could spare with shame in his eyes
Get a job you fuckin' slob's all he replies
God forbid you ever had to walk a mile in his shoes
'Cause then you really might know what it's like to sing the blues
Then you really might know what it's like
Then you really might know what it's like
Then you really might know what it's like
Then you really might know what it's like

Mary got pregnant from a kid named Tom who said he was in love
He said don't worry about a thing baby doll I'm the man you've been dreamin' of
But three months later he said he won't date her or return her call
And she sweared god damn if I find that man I'm cuttin' off his balls
And then she heads for the clinic and she gets some static walkin' through the door
They call her a killer, and they call her a sinner, and they call her a whore
God forbid you ever had to walk a mile in her shoes
'Cause then you really might know what it's like to have to choose
Then you really might know what it's like
Then you really might know what it's like
Then you really might know what it's like
Then you really might know what it's like

I've seen a rich man beg, I've seen a good man sin, I've seen a tough man cry
I've seen a loser win, and a sad man grin, I heard an honest man lie
I've seen the good side of bad, and the down side of up, and everything between
I licked the silver spoon, drank from the golden cup, and smoked the finest green
I stroked the baddest dimes at least a couple of times before I broke their heart
You know where it ends, yo, it usually depends on where you start

I knew this kid named Max he used to get fat stacks out on the corner with drugs
He liked to hang out late, he liked to get shit-faced and keep pace with thugs
Until late one night there was a pick up fight, and Max lost his head
He pulled out his chrome .45, talked some shit and wound up dead
Now his wife and his kids are caught in the midst of all of his pain
You know it crumbles that way, at least that's what they say when you play the game
God forbid you ever had to wake up to hear the news
'Cause then you really might know what it's like to have to lose
Then you really might know what it's like
Then you really might know what it's like
Then you really might know what it's like
Then you really might know what it's like
To have to lose...

by Everlast

Posted by Hoang at 08:02 AM | 2 Comments | TrackBack | Music

April 15, 2005

IronPython .72

Is anyone still experimenting with IronPython? The last time I really mucked with it , it was barely usable. Version .72 has just come out and I would dare say not much has changed in the last 8 months. Here is the simplest working snippet of invoking a .NET ListView from IronPython.


  import sys
  sys.LoadAssemblyByName("System.Drawing")
  sys.LoadAssemblyByName("System.Windows.Forms")
  
  from System.Windows.Forms import *
  from System.Drawing import *
  f = Form(Text=" Forms ListView ")
  f.FormBorderStyle = FormBorderStyle.FixedDialog
  f.StartPosition = FormStartPosition.CenterScreen
  mainList = ListView(Location=Point(30,30), Size=Size(300,300))
  mainList.View = View.Details
  mainList.GridLines = True
  mainList.Columns.Add("Column A", 100, HorizontalAlignment.Left)
  mainList.Columns.Add("Column B", 200, HorizontalAlignment.Left)
  mainList.Columns.Add("Column C",300, HorizontalAlignment.Left)
  for i in range(20):
      mainList.Items.Add("item " + str(i), i)
  f.Controls.Add(mainList)
  f.ShowDialog()

I tried making the sample dump a list of running processes in the system. It would be a very simplistic mimic of the task manager. Unfortunately import os bombs in IronPython .7. In .72, it succeeds but the methods and attributes lists are empty. Quite a useless import if the module is empty.

Oh well, I suggest people wait a couple of years before using IronPython for serious work. For now though, experiment away.

April 01, 2005

Content without Context

Have you ever come into a middle of a conversation, started listening, then 10 minutes later give up because you just can't figure out what the speakers are talking about? How about this one: you are sitting in a conference room in the middle of a design meeting where most of the participants are throwing out code-names like there was no tomorrow. 30 minutes later and you are more confused than had you never heard what was thrown on the table. For all intensive purposes, they could just be speaking in Greek rather than English. If you've had the opportunity to listen intensely to conversations in another language for a long period of time, you will understand how brain-crippling the experience can be. These are just some examples of content without context. Without context, words are meaningless.

Let me just reitterate that: Without context, words are meaningless.

(If you have ever done a lot of C++ or Object Oriented programming, you would know what I'm talking about. If you are a procedure-oriented thinker who has only been doing C or Assembly, well... this concept is probably new to you.) In order for true communication to occur (that means to have comprehension on the receiving end), the content must have the proper context provided. When you are performing an "action" (as in a function call), it is necessary to know who is performing it. As an example "something is flying"... it makes a difference whether the something is a bird, an airplane, or a UFO.... no? When speaking without context, the speaker repeatedly mentions : "it flies" or "XYZ flies" for about an hour. After the hour, the listener still doesn't know what "it" or "XYZ" is. By the way, this happens a lot in life.

Musicians and song artists understand this concept extremely well. Many of the good ones write their songs purposely vague enough in order to prevent context from being placed in their songs. As music lovers, we listen intensely to the lyrics and in our love of the music, apply our own context into the lyric contents. (Maybe it is human nature, but we always try to place our own context into any content that we come across) This way, the same song may seem to have meaning to the greatest amount of the populace. It may sound devious, but this is just an example of the social engineering being applied by craftsmen who understand human nature.

flying_small.jpg