Utterly lost

There is fine line between exploring and being utterly lost. While former is fun, latter is usually frustrating. Exploring involves having grasp of where you are and vision of where you are heading and it is this knowledge and state of the mind that separates it from being lost.

Thus we should start our learning with at least some sense of direction, understanding of what are we trying to accomplish, to avoid jumping in with both feet and being utterly lost.

Writing code is a lot like exploring and being lost. In most cases you start seeing real issues only after you are under way. Rarely you have everything worked-out up front and devil is in the details, as it is said.

You can easily recognize the code that was written by utterly lost developer. It is good old spaghetti code that is result of muddy thinking and no direction running in circles around itself. It usually can be replaced with purpose written code of clear thinker that is 1/10th of the size. The difference is in preparation.

 

I’ve often had a need to check whether DependencyProperty holds its default value and surprisingly it is not as easy to find how to do that. So I present IsDefaultValue method:

public bool IsDefaultValue(DependencyObject targetObject, DependencyProperty dp)
{
    return System.Windows.DependencyPropertyHelper.GetValueSource(targetObject, _
       dp).BaseValueSource == BaseValueSource.Default;
}

And that’s it!

As bonus, if you look into the BaseValueSource enum you might find other interesting things 😉

Tagged with:
 

I just read the article by Larry O’Brien where he concludes that artificial intelligence is not happening. Yeah, I agree. The AI is holy grail of computing for many years now, but as soon as you have good grasp on how computers work and how you make them work for you through programming you understand why AI will not happen.

At least it will not happen with current technology, meaning binary, transistor based processor. Even with different hardware I am doubtful that AI will happen. There is so much we don’t understand about human consciousness that I can’t see us replicating it without understanding how it comes about. And we have no clue.

Currently the approach AI researches have is to create complex “neural networks” and expect that consciousness will drop in. That sounds ridiculous to me. No matter how complex structure you make, you can’t expect consciousness to just happen.

So attaining artificial consciousness is, I think, nearly impossible. First, we don’t know what it actually is and how its made. And second, consciousness involves more than rational thought. It also involves emotions, sensations, etc., which a machine could  surely never truly experience.

 

60 Free Medical Icons

If you are creating medical related application, Smashing Magazine is giving away 60 very nice medical related icons (see image below). Click here to download them.

Tagged with:
 

Todays update to DotNetBar includes ability for AdvTree control to host DotNetBar Items in cells. While cells can host any Windows Forms controls already, controls are fairly “heavy” and resource intensive. DotNetBar items are light-weight and super fast and so are great alternative to use instead of controls whenever possible.

Here is how to host items in cells:

Select AdvTree Node and go to Cells collection.

Click … collection edit button to show collection editor, then click Add to create new cell that will host an item:

Select newly created Cell and then select its HostedItem property:

Show item creation popup and select item that you want to host in cell:

And that’s it.

There is a small limitation to item hosting. You cannot host items that directly show popups. You can however assign content menus to such items and show popups that way if needed.

Here is also small sample project that shows this in action:

Tagged with:
 

Insanity of Apple iPad

One definition of insanity is trying exactly the same thing over and over again and expecting different result. Microsoft pioneered Tablet PC concept back in 2001, but form factor and input method failed to catch on. For Apple to be successful with their tablet, they had to try something different, or otherwise they’d be insane 🙂

So they tried something different. They took iPod touch, super-sized it, called it iPad and what followed was chorus of technology enthusiasts and casual users alike who have been unimpressed by what iPad is all without trying it. Even Bill Gates says that he is unimpressed since device does not have built-in physical keyboard…

I don’t know whether iPad will succeed or be second coming of Apple TV, but Apple is trying something different so all bets are off.

What I do know is that iPad is device that I would feel good about giving to my mother or grandmother to use and not worry about viruses, deleted files or them being intimidated by the device and not grasping how to use it. It does not need rebooting, has 10 hours battery life and is easy to use… There are lot of people that use computers just to surf the web and do email and will be delighted by iPad…

What’s interesting to me is that pundits got blinded by how device looks (like giant iPod touch) and how Apple positioned iPad in introduction, as device between phone and laptop. This strikes me as perfect misdirection. I see iPad as full fledged computer that can replace not only netbook and laptop for many, many people, but it can be their main machine. And there are over 100,000 applications that it can use. And you can connect bluetooth keyboard to it or use keyboard dock…

There is huge potential there, I can’t wait to see how it plays out. What do you think?

 

Selling perception

I read blog post recently that used pricing of Raphaels’ painting to draw conclusions to pricing of software and concluded that fair product price is determined by what people think not what your product actually is. I disagree. Big time.

Comparing pricing of art and software does not really make sense. Why? Value of the art is in the eye of beholder. You buy art that you like and that liking is entirely subjective. You don’t buy art to perform certain job. You buy art because how it makes you feel.

On the other hand, most people buy software do to something with it. They buy a tool. There is a job that they have in mind for that tool and the value of the tool is determined by how well it solves the job at hand.

Value thus, is the foundation of pricing. Customers choose price they are willing to pay based on value they receive from a product. Any healthy business should concentrate on creating value not hot air that will burst the balloon sooner rather than later.

Is there perception there? Sure there is, but it is often very small part of the equation. When you evaluate tool, you choose the one that works best for the task you have at hand. I am not aware of single product that was long lasting and which had not provided value to its customers. None. You can’t sell perception for long. There is work to be done.

Besides, how do you build perception? I admit, I have no clue and have no interest in that. I believe it is much healthier to concentrate on building value. You concentrate on building things that are useful to people. Let others build perception while you build tools that help people do their job every day… Guess who’s going to be around in 5 years.

 

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...

© 2009 Denis Basaric: DevComponents Blog