Tuesday, September 21, 2010

Thank goodness English is hard to master

I took a moment the other day to clean out my email spam folder and was amazed again at some of the crap that is out there and circulating. Frankly I pity the mums and dads, grandmas and grandpas who are still getting a handle on internet communications and are forced to wade through the mountains of spam content that spews from lowlife individuals trying to gain a dishonest buck.
No I don't want $US1,000,000 dollars deposited into my bank account from the estate of some poor soul who's only crime was to die in an African country that I've never heard of before and whose name I can't pronounce. I don't want to increase the size of my ... (and frankly I'm offended at the suggestion that I need any further augmentation), and I'm not in any way your acquaintance so don't address me as "Dear Friend".
But as good as my spam filter is, and as thankful as I am for it performing the job of raking through the rubbish that skates across the internet, I'm actually most thankful that English is a difficult language to master. It is that fact that provides us with the single biggest identifier of spam emails and allows us to differentiate them from their legitimate counterparts. Take this latest email as an example:

Dear Friend
I am Mr Ailudiko Razak working with Islamic Development Bank(ISDB)Ouagadougou Burkina Faso. I want to inquire from you if you can handle this transaction for mutual benefits/life opportunity for you and me.The transaction is about seeking your consent to present you as the next of kin/ beneficiary To our late customer over his fund US$25,Million dollars.
He died with his family during their vacation journey. I am waiting for your response for more details. The fund is going to be share at the ratio of 60/30.30% for you and 60% for i and my family which we are going to use for investment.and 10% for outstanding expenses.
Mr Ailudiko Razak

What self-respecting bank would ever communicate using such a poor command of the English language? Even if my spam filter had allowed this one to slip through the cracks, I'd have every opportunity to detect its stench simply from the malformed sentence structures and incorrect use of words.
So while the English language is the bastard child of centuries of conquerors arriving on the shores of the UK, it is now the greatest asset I have to protect me against cyber criminals.

Thursday, September 16, 2010

Altium Morfik acquisition

At last I can finally share with you some commentary about what has been rattling around the corridors here at Altium HQ for some time. We've just formally announced our intention to acquire Morfik and it's very exciting.

Picture this. You're an electronics designer and you've got a great idea for a new gadget. You've got all the skills necessary to design a PCB with some smarts in it and you can even program those smarts yourself. But then you come to adding some connectivity to the internet. You add an ethernet interface, update your smarts, and now you're ready to do the cloud stuff .... and you hit a brick wall. All that stuff about PHP and SQL and internet servers and SOAP and HTML and XML and Java and Ajax and ... It's a whole 'nother world!

So what do you do? As an electronics designer, you know about bits and bytes and if you were ever pushed on the point, you could probably even design the hardware for a web server. But when it comes to writing applications that exist in the cloud, where do you start?

Put simply, the Altium Morfik acquisition is all about giving you that starting point right out of the box. The philosophy is that pretty soon, every little device will need to be somehow connected to the cloud to maintain its relevance and appeal. And when it comes to designing those little neddies, you've got to start thinking about how and what you're going to connect it to. How will you pass data between your device and the cloud? Will it be via email posts, a simple Web server running inside the device, or will it be some other technique?

The cool thing about what Altium is up to is that pretty soon you won't need to worry about the implementation specifics of all that sort of stuff. Using Morfik's technology (which lets you write applications on a PC and deploy them into the cloud), and Altium's unified design strategy, you'll be able to co-develop new devices AND the cloud-based eco-systems that they plug into. So adding cloud connectivity and applications will be just as accessible to you as an electronics designer as it is to all those geeky CS dudes ;)

Hopefully it won't be long before I'll get to show you how this stuff works in practice with some real demos, but for the time being, I suggest you take a look at the videos on Morfik's website. We'll be adding more and more of this stuff under the Altium banner over time but take it from me, this is a state changer.

If you thought that Altium was a little out there as an EDA company, now we're off in the cloud!

Thursday, August 26, 2010

Who cares about inefficient code

At the risk of stirring up a hornets nest, I'm getting really tired of the naysayers who quickly play the "it's not as efficient as hand-crafted code" card when a new, high-level programming or design technique comes along. They just don't seem to get it that the question of 'efficiency' extends well beyond the run time of the application. In the real world of commercial pressures, making successful products is not just about the performance of the end product. It's also about your ability to develop, deploy and maintain that product within the window of opportunity given to you by the market.
This little rant of mine was provoked again after I read a recent FPGA Journal article 'Drag and Drop vs HDL?' by Dick Selwood. It was a well-written and informative article about National Instrument's continued push into FPGA design with their drag and drop design environment. But all three reader comments (as of today) focus around the efficiency of the code produced by GUI based design approaches. Now come on guys. Surely you can try a bit harder. Of course hand crafted code is going to be more efficient than GUI-based stuff. But that only matters when it matters! To write off the whole GUI-based approach on account of the few situations when it isn't suitable is way to short-sighted. And it's not like NI is taking away the ability to use hand-crafted code. They are simply giving you the choice.
The real problem with the "it's not as efficient as hand crafted code" argument is that although it sounds rational, it places us in a very dangerous position of being dismissive of the whole technique without giving further thought to whether that technique will be disruptive. If you ever get the chance to read "The Innovator's Dilemma" by Clayton M. Christensen then I highly recommend you do. It gives some really strong reasons why it can be suicidal to ignore new technologies on the basis of how well they fit current market demands. Technology doesn't stand still. It continues to push on at a break neck pace. If we dismiss a technology today because it appears to be inefficient compared with established techniques, we run the risk of being blind-sided when technological advances suddenly make the inefficiencies irrelevant. By that time, it is too late to reposition ourselves around the new way of doing things. As the book puts it, the real question is not about efficiency, it is about how disruptive the 'new thing' will be.
So here are my rules:
1) If something looks slow, technology will make it fast.
2) If a new design technique raises the abstraction level, gets you to market faster, or allows broader access to growth technologies (i.e. disruptive), it will supplant other techniques.
3) There will always be a need for hand-crafted solutions. But the proportion of products that must be hand-crafted will decrease.

Monday, August 23, 2010

The difference between Vias and Pads

A recent post on one of Altium's forums related to the fundamental difference between pads and vias. So because I thought it was an interesting question, I figured it was worth posting a blog entry about it.

Pads are the connection point between copper on the PCB and leads on the component. They are a common part of component footprints and they can be through hole or surface mount. When they are through hole, they are virtually always drilled completely through the board. When they are surface mount, they only exist on either the top or bottom layer. Pads can have virtually any arbitrary shape however round, rectangular, and rounded rectangular are most common.

Vias, on the other hand, are the means by which an electrical connection is routed between two layers. As such, they are part of the track net and not usually tied to the component footprint. They are always drilled and always round. The depth of a via can vary depending on whether it needs to pass between the outside layers of the PCB, an outside and inside layer (blind), or two inside layers (buried).

So the big question is, "Are these two primitives similar enough to be merged as one?"
The short answer is No. And the reasons are multiple:
1) Pads make their connection to component leads by being soldered. This means that the properties of the pad must have consideration for the soldering process being used. Solder mask pullback, pad surfacing, size and shape are all dictated by the soldering process and the physical properties of the component lead being connected.
2) Pads need to support multiple sizes and shapes due to both the properties of the leads of components connected to them, and any heatsinking effects needed as part of the component's cooling.
3) The pads of low pin count surface mount components need to be thermally balanced to avoid any ill effects caused by different cooling rates. For instance, a pad on one end of a two lead component (such as a resistor) that cools faster then the pad at the other end can cause the component to stand on its head (tombstone) as the solder contracts.
4) Unless you are dealing with embedded passives (i.e. components that are placed within the layers of the PCB), it makes little sense to have buried pads. Blind pads could be argued for some leaded components but that would make the board very dependant on very accurate lead lengths being maintained by the component vendor. This is probably an unnecessary risk as component leads that are too long will cause the components to stand off from the PCB. In some instances this may be desirable but I suspect it would be more hassle than it's worth.
5) Pads must have a designation to indicate how component pins and pads must be aligned.
6) The primary conduction path of a via is through the hole barrel. The copper donut area on top and bottom of the via is simply there to provide a solid connection between the hole barrel and the top / bottom connecting tracks. Without this, the connecting track could be torn off when the via barrel is drilled during manufacture.
7) Because vias don't require solder to fulfill their purpose, vias can be tented (covered with solder mask) to ensure that no copper is exposed to the outside world. This limits the risk of oxidisation of the via copper.
8) Vias offer a path between layers and so it is meaningless to use anything other than round, donut-shaped entry/exit points.
9) Vias need not have any designation since they are unreleated to components. However some form of unique ID would be helpful when devising design rules intended only for specific vias (of specific nets).

So in summary, Vias and Pads might appear similar but their functions are quite separate. And in my view, they should remain as separate primitives. Comments?

Wednesday, May 19, 2010

Schoolies week in India

This morning I had the opportunity to catch up with a valued colleague and friend Emma LoRusso. One of the things I really value about Emma is her ability to see the way forward and devise the strategies to get there. Over some scrambled eggs and coffee, she helped calibrate and clarify a few thoughts I’ve been having and as a consequence, I want to share with you an idea and passion that I want to pursue.

In 1999, I ventured on my first, short-term missionary trip to India. It changed my world. Having grown up in one of the most privileged countries in the world, I had never seen poverty like what I saw in India. So many people; so little material wealth.

But even more confronting was the slow realization that maybe I was the one who was impoverished. In spite of all my material wealth and good fortune, maybe I was the one who had the greater need.

The defining moment came for me when I shared a meal with an Indian family in a village whose name I could never pronounce. From a woodfire that had been cut into the earthen floor of what would otherwise be the verandah, the mother of the house served a bowl of rice with chicken curry that was so heavily spiced that it made my hands burn. And as I sat on the edge of the bed that doubled as their couch and begin eating with bare hands, it was as if my eyes had suddenly gained their vision for the first time. With the material facade pulled away I could see the world in a new light, and that the essence of living ran much deeper than my material possessions would have me believe.

This epiphany was profound but no amount of words would allow me to convey it to you in all its richness; you must experience it for yourself. Somehow, I must take you there.

And so I want to create a ‘Schoolies week in India’ program that gives you that opportunity. I want to take you out of your comfort zone and show you places and people that will change your world. And I want you to take that experience as a young adult and combine it with your passions so that you can know what to do with your future. This is my passion.

Monday, May 10, 2010

Why Government grants don't work

Having purchased a house around 8 months ago and now having experienced 6 interest rate rises in that time, I find it interesting to hear the ongoing debate about the rising cost of housing in Australia followed by demands for the government to "do something about it!" In typical political fashion, the Australian Government has been throwing money at new home buyers to help them live the Australian dream as well as stimulate the economy throughout this Global Financial Crisis. But I seriously doubt that this has been a useful exercise. In essence I believe it has actually hurt those people that it was intended to help.
For starters, housing affordability is driven by two forces; the first is the size of the deposit and the second is loan serviceability. Throwing money in the form of a one-off grant to first home buyers certainly helps them with their deposit but it does nothing to help with loan serviceability. And to make matters worse, because so many new home buyers have been clambering over the top of each other to get into the market and access their government grants, it has artificially inflated new homes by an amount roughly equal to the grant. In effect, the grant has passed straight through the hands of the borrowers and into the hands of the developer.
Solving the affordability problem is going to take a lot more than new home-buyer grants. The problem has to do with supply and demand. Everyone wants to live in a nice suburb and have access to good services. But that is an infrastructure issue as much as anything else. You can't create more land, all you can do is make better use of the land you have. And that's not something I hear the government doing anything about.
Why do we all feel we have to live close to the major capital cities? - So we can access good employment opportunities and education for our kids. Why do we want good employment opportunities? - So we can afford a nice house that's close to the city. And so the cycle goes.
So in my view, the only way to resolve the housing crisis is to provide incentives for industries to establish themselves in under developed areas of Australia. Rather than hand outs to new home buyers, why not invest in some real infrastructure and designate satellite cities that offer tax breaks to companies to establish there. Why not start building hospitals and schools before people live there rather than waiting until they have to fight for it?
I met a lady the other day who was selling up from her Northern Beaches property in Sydney and moving to the country. With the proceeds of her suburban house sale she was buying a 7-acre allotment with a large house and 'plenty of room for her daughters to own and ride horses'. The family opportunities in the country were so much greater than what could be afforded in the city.
So perhaps a little more lateral thinking around the problem would see us making better use of this land that we have rather than having us all feel like we have to cram into shoe boxes just so we can be close to the big cities.

Thursday, April 29, 2010

Socially Connected Devices

There's no shortage of people shouting about 50 billion devices being connected by 2020 but frankly I find all these futuristic discussions a bit shallow and without any real insight. People talk about everything being connected to everything and how your refrigerator will be able to order more milk when you run out (or something like that). But their arguments all seem to be built on an evolutionary model of connectivity expansion rather than a revolutionary one; there doesn't seem to be state change in how devices will communicate, just a whole lot more of them. So let me share with you where I think it is all going.

1st Generation Internet: All about getting big ugly machines to be able to transfer data between one another where the nature of the data was only meaningful to the computers at each end of the communication pipe.

2nd Generation Internet: People start getting involved and applications such as email allow people to start communicating with other people across the internet. The internet begins its amazing growth phase and websites designed for human interaction emerge.

3rd Generation Internet: Social Networking. Broadcast and community-based forms of communication emerge. Instead of using point to point emails to talk to the world, people broadcast their status using sites such as YouTube, Facebook, Twitter and Blogs.

OK, so hopefully you are still with me because here's where it gets interesting. We are currently in the 3rd Generation phase but the most interesting part is where its going from here. If we think that 50 billion devices are all going to start talking to one another, then what will they be saying? What will be the style of their communication?

4th Generation Internet: Socially Connected Devices.
By combining concepts related to the previous generations, 4th generation internet devices will communicate with one another in much the same way as humans interact on social networks; a device will broadcast its status / opinion / desire for information, etc to the 'cloud' and let other devices on that cloud respond in a manner similar to human social networks. Devices would comment on the status or opinion expressed by the original device; I agree, I disagree, I have a similar idea but my information is based on different inputs, etc. and they would adjust their own operation (opinion / status) based on the information they receive. They could supply information according to the original broadcaster's request, or they could attempt to open up a point to point communications channel with the original broadcaster in order to resolve, clarify or expand on the original topic of discussion.The point here is that (unlike the 1st & 2nd generation internet) communication is rarely point to point. It is far more communal in nature and provides all members of the device's social community an opportunity to engage further. Devices are no longer dumb robots that happen to be connected to the internet, they are intelligent and capable of forming 'opinions' as they communicate with other Socially Connected Devices.

To illustrate the concept, consider an example: On a hot day in summer, all the air-conditioners across the city are running flat out to keep homes and buildings cool. To help with their efficiency they monitor the open air humidity, temperature and sun load, and they broadcast this information to the cloud along with their location. As a cool change arrives and begins to travel across town, a sudden drop in temperature and sun load is measured by outlier buildings and they report this news to the cloud. Over time, more and more buildings report this change in temperature and a trend of information begins to emerge. Buildings that are yet to be hit by the cool change take note of the trend and check the local weather site to see where the prevailing winds are coming from. They quickly deduce that they are in the path of a cool change and so rather than continuing to listen to their own sensors that are telling them the sun load is still quite high, they listen to the outside opinions of other devices that are telling them that a cool change is on its way. With knowledge of the thermal mass of their building and an estimate of when the cool change will arrive at their specific location, they adjust the cooling output of their chillers at just the right time to ensure a more consistent temperature is maintained within the building and power is not wasted. And in the background of all of this, the power station throttles its output to manage the requirements of the network.

Maybe it all sounds a bit futuristic but the technology to do it is all here today. So very soon I expect to see my smart house Tweeting its status to a whole cloud of socially connected devices.