Expert Texture Home Contact me About Subscribe Digipede Connect on LinkedIn rwandering on Twitter rwandering on FriendFeed

rwandering.net

The blogged wandering of Robert W. Anderson

IronPython-ipede (Part I)

I have been taking a closer look at IronPython for a prospective customer.  Never being happy with “shoulds”, I am going to show how to distribute IronPython objects on the Digipede Network.

The first thing I did get our old Python sample running in IronPython.  This was the first user-contributed sample (thanks to Sean True).  That sample (see it here) uses Python COM libraries to invoke a job with the Digipede Network COM APIs.  This didn’t submit objects, just executed a command-line application.

I’m happy to say that the code required very little modification to run under IronPython.  The only difference is in the syntax of the “import” commands.  Kudos to the IronPython team.

I’ll post the working code once I get a little farther.

Next step: distribute IronPython objects.  Fairly straightforward, but I’ll write a reusable C# Executive to load the IronPython class definition.

[tags]Digipede, .NET, IronPython[/tags]

Tags: , ,

Perils of #define

A couple of years ago, I wrote Three deficiencies in the C# preprocessor.  Those issues still exist, but a good thing about C# is you don’t get the following problem . . .

I’m working on a project for a customer that includes upgrading a VC++ 6.0 DLL to VC++ 2008.  There are some good resources on MSDN for breaking changes (for a starting point, see http://msdn.microsoft.com/en-us/library/bb531344.aspx).  Of course, I didn’t start there, I started by just trying it.  Pretty quickly I came across some of the breaking changes related to STL (specifically that iterators cannot be treated as pointers).

But I also had a pretty bewildering problem.  Hundreds of the following errors:

error C2371: 'std::tr1::placeholders::ks' : redefinition; different basic types 

The source of the error was C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xxbind1, line 298. Looking there, I found:

    // PLACEHOLDER ARGUMENTS
        namespace placeholders {    // placeholders
static _Ph<_NARGS> _CLASS_NAME(_);
        }    // namespace placeholders

Doing some investigation I found that xxbind1 is related to the TR1 extensions to the Standard Library.  The errors didn’t help me figure out where my code was including this file, so using the process of elimination (and the trusty binary search), I found that excluding the STL map header (i.e., <map>) solved this problem.  Not an option, though, since the code in question relies on stl::map.

So, I tried several other avenues to figure out what I was doing wrong.  While scouring all the application header files leading up to this include, I found the following line:

#define _    ks._

I thought, “wow, that looks awfully general for a preprocessor constant in the main internal header file”.  Going back to the code in xxbind1, now that error makes sense.

Removed it, and everything is fine. 

Arbitrary string-replacement before compilation is a powerful thing, but it can allow seemingly unrelated and unintended havoc.

Tags: , ,

National Bankruptcy Day

Note: While not about technology, this post is relevant to startups. 

H.R. 4040, the Consumer Product Safety Improvement Act (CPSIA) was signed into law late 2008.  The intention is to protect children by outlawing the sale of children’s products containing lead and other harmful substances. 

Sounds good, right?

Unfortunately, the law is going to force a lot of small companies selling safe products to shutter on or before February 10th.  Welcome to National Bankruptcy Day.  From the site:

February 10, 2009 untold numbers of children’s products manufacturers and retailers will be closing their doors.

The problem is that the law was put together very hastily and has a completely infeasible implementation timeframe.  Oh yeah, and requires unreasonable testing to boot:

Not enough time:  The law was signed in August and goes into effect on February 10th.  So every kids product sold in the US has to be tested in the next 52 days?  That is impossible.

Unreasonable requirements:  Every component of every SKU has to be tested separately even if that component is used in multiple products.  For example, imagine a tag or button that is shared across ten SKUs.  That same button has to be tested ten times. 

Unreasonable cost:  Each test is expensive.  For example, one company has quoted each test at $500.  Continuing with the above example, imagine your ten SKUs with the buttons have 4 other components.  You would have to pay 10 x 5 x 500 = $25,000 to a testing company.

No allowance for existing tests:  Some companies have already had their products tested for harmful substances (e.g., kukunest is Oko-Tex certified).  That should count.

I am all for safe products and accountability, but this is really a draconian measure.  It will punish companies and people with an unreasonable set of rules and penalties. 

If this doesn’t get fixed soon, companies will go out of business, founders and innovators will lose their dreams.  Innovation in children’s products will be all but dead here in the United States.

It will happen unless the US Consumer Product Safety Commission and the US legislature do something to stop it. 

Call to action

Sign this petition: http://www.ipetitions.com/petition/economicimpactsofCPSIA/index.html

Contact your Congressperson and ask them to fix H.R.4040 now, before more damage is one.

Disclaimer:  Do I have a vested interest in this issue?  Definitely.  My wife is the co-founder of kukunest, a company that designs and sells children’s bedding and other products.  I’m a parent and don’t want to see our schools unable to get the products they need because the suppliers dry up.  And I’m an entrepreneur believing that reasonable laws can protect people and protect innovation and business interests.

[tags]kukunest, Government, Startup, CSPC, CPSIA, HR4040[/tags]

Tags: , , , , ,

Voting for the OpenID Board

http://openid.net/wordpress-content/uploads/2007/10/openid_big_logo_text.pngWith voting closing on Christmas Eve, there is just over a week left to vote for the OpenID board.  Personally, I have been meaning to join the OpenID foundation for some time.  Having the opportunity to vote for the incoming board pushed me to finally do it.

Although I really like OpenID, I am critical of it.  Why?  Because trust is not baked-in. 

This makes it hard for a Relying Party (RP) to determine if an OpenID comes from a trustworthy Identity Provider (IP).  I believe this is the fundamental roadblock to the big services becoming RPs.  My eyes roll to the back of my head whenever I hear users criticize services for not accepting arbitrary OpenIDs. (More here: OpenID and the Relying Party Patchwork).

This roadblock is a problem for the OpenID technologists to solve. 

The confused users is another problem altogether.  While I am a bit skeptical of the motives behind demanding OpenID adoption without solving this trust problem first, OpenID does have a real problem with an inaccurate market perception. 

So, I decided to vote.  There are 17 nominees and each member gets 7 votes.  I have not decided who I will vote for, but my votes will go to those who see these as top priorities of the foundation.  I am mainly basing my votes on the candidate statements (https://openid.net/foundation/members/elections/1 for members).  If you aren’t a member, you can see the complete list of nominees at ReadWriteWeb. 

Tentatively, here are my yes votes . . .

  • Nat Sakimura:  He lists Trust relationship and reputation as barriers to adoption.
  • David Recordon:  Unfortunately, aside from his obvious credentials he doesn’t say what he thinks are important for the foundation.  He has probably written this elsewhere — I’ll have move past his statement.
  • Same for Joseph Smarr and Scott Kveton
  • Johannes Ernst: He talks about “mainstream sites” and relying parties, not just users.
  • Chris Messina:  I respect his work and certainly like what he says about usability — he doesn’t mention relying parties though.

What am I missing (besides a 7th vote)?  Am I wrong about the priorities?  Should my votes go elsewhere? 

[tags]OpenID, Web2.0[/tags]

Tags: ,

Upgrade to WordPress 2.7

Love the new administrative interface.  Much cleaner and more configurable.

And I’m happy to say that the OpenID plugin finally works for me.  I don’t know why it started working, but I’m not complaining.

[tags]Wordpress, 2.7, OpenID, blog[/tags]

Tags: , , ,

Google, what is a beta?

Now Chrome is out of beta.  Cool.

Question: what on earth are Google’s standards for the word beta anyway?

Possible answers:

  1. Non-existent
  2. Non-existent with a dash of whimsy
  3. Variable based on $$$$$
  4. (Fairly) fixed based on the users requirement to understand relative product completeness / bugginess

Before Chrome left beta I would have said #1 or #2.

Now it seems that Google can’t get Chrome adoption from OEMs while it is a beta.  Shazam, we’re out of beta.  So I guess its #3.

I sure wish it were #4.  The term beta is actually pretty useful. Google has never taken it seriously, and this is just further evidence.

I’m generally a fan of the Google products and I use many of them, but Google, can you grow up a little here?  Show some respect for the term beta — you’ll be respecting your users too.

[tags]google, chrome, beta, sdlc[/tags]

Tags: , , ,

Podcast on PDC2008

Last Wednesday, while still at PDC2008, I did a quick podcast with Colin Steele of the Search IT Channel.  From his introduction:

In this podcast, Microsoft developer Robert Anderson checks in from the Microsoft PDC 2008 in Los Angeles. Anderson, the chief technology officer for Microsoft partner Digipede Technologies in Oakland, Calif., says Windows Azure has a leg up on the Amazon Elastic Compute Cloud, the Google App Engine and other cloud computing platforms. But when it comes to Windows 7, Microsoft has to do a lot more to move on from the “perceived failure” of Windows Vista.

Listen or download from here.

[tags]pdc2008, pdc, Microsoft, Azure, Windows7, podcast[/tags]

Tags: , , , , ,

Why ‘Azure’?

Mary Jo Foley asks, Why ‘Azure’?  She uses Anand Iyer’s answer (from his post):

Azure is a vibrant, dynamic and uplifting color. Azure is also linked to the image of the blue sky and, by extension, ‘the cloud.’

I think there is a more direct association between azure and the Windows cloud:

  1. Clouds are opaque. 
  2. If you put a window in a cloud, you can see through to the clear sky.
  3. The clear sky is azure.

So, Windows in the Cloud == Windows Azure

[tags]Windows, Azure, Clouds, PDC2008, PDC[/tags]

Tags: , , , ,

Live Framework

David Treadwell announced the Live Framework at the PDC2008 this morning.  Live Services is the collection of Live Messenger, Contacts, etc., plus Live Mesh.  Live Framework is the set of APIs to program against Windows Live Services. 

This is very cool stuff.  There are two things here that I think are significant:

  1. A programmable synchronization platform.
  2. An application framework for installing/running applications across multiple devices.

This is very exciting stuff, but now back to my old saw.

I really want to see Live Framework go beyond Windows Mobile devices to every major mobile platform.  This means the Apple, RIM, Google, Nokia platforms, etc.

My main reason?  A major value proposition of Live Framework is phone device support.  Duh.  But, I don’t want to invest my time and data in Live Mesh applications if it comes with a lock-in to the Windows Mobile platform.

Given the discussion at a partner meeting yesterday about Windows Mobile, I think this will be a pretty common feeling.

Microsoft may not be able to make this happen, of course, but I hope they really try.

BTW: We interviewed David on Gillmor Gang 04.25.08 specifically talking about Live Mesh.

[tags]Live Mesh, Microsoft, PDC2008, PDC[/tags]

Tags: , , ,

Windows 7

[tags]Microsoft, PDC, PDC2008, Windows7[/tags]

Recently I lauded the new name in my post, Windows 7? Right on!  I led that post with

First of all let me say that I’m not that excited about the “Windows” part of Windows 7.  I’m sure that will change when I see it later this month at the PDC.

A Microsoft guy not involved with the Windows team emailed me to tell me that his experience with Windows 7 is that it performs dramatically better.

That got me interested.  And now I’ve seen it at PDC2008.  Am I excited?

Well, not really.  With Windows Vista I allowed my love for shiny new objects to drive some of my decisions.  Windows 7 does have plenty of new — and cool — features.  Some that struck me:  some real improvements in Windows management (finally), create and mount VHDs, bitlocker on thumb drives, boot from VHDs, better multi-monitor and high DPI support, multi-monitor remote desktop,

These are all good things that make Windows better, but what I really care about is that it perform better and that the features can be used without killing performance.  To this end, they have worked on reducing Windows memory footprint, reduced disk I/O for indexing, better power management, increase boot speed, device readiness and responsiveness

If Windows 7 enhances my productivity through performance and stability, then I can get excited.

Tags: , , ,

« Previous entries · Next entries »