Mar 09

The core details:

/Library/Application\ Support/VMware\ Fusion/boot.sh --start|stop

I think I missed somewhere how to populate and bring online a VMWare image without pointy-clicky actions. No worries.

I do notice that when my MacOSX-10.6.2 — a fairly modern OS — changes networking setup (VPN connects, disconnect Wifi, renew DHCP, etc) there is a huge shuffle of activity and some log messages about the Mac doing “the right thing”: backups, sync, etc. Most of that seems lightweight, but if I don’t really need it, I like to deactivate it.

The VMWare stuff is not so necessary today, so I decided to offline it.

I found its config as a launchd system-wide Daemon: /Library/LaunchDaemons/com.vmware.launchd.vmware.plist — so taking that apart, I found it’s a one-shot fire-and-forget like the cheesy rcX.d that I don’t like about linux (as discussed, based on a hotly-contested decision to make daemon start/stop possible in packages added/removed from the system — USL did this, whereas ODT collects a /etc/inittab.d/ directory, which allows auto-restart)

So I took that apart.

cauldron:~ allanc$ sudo /Library/Application\ Support/VMware\ Fusion/boot.sh --start
VMware Fusion 196839: Starting VMware Fusion:
chown: /Library/Application Support/VMware Fusion/isoimages/antivirus.iso: No such file or directory
Internet Software Consortium DHCP Server 2.0
Copyright 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium.
All rights reserved.

Please contribute if you find this software useful.
For info, please visit http://www.isc.org/dhcp-contrib.html

Configured subnet: 172.16.232.0
Setting vmnet-dhcp IP address: 172.16.232.254
Opened:
Recving on VNet/vmnet8/172.16.232.0
Sending on VNet/vmnet8/172.16.232.0
Internet Software Consortium DHCP Server 2.0
Copyright 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium.
All rights reserved.

Please contribute if you find this software useful.
For info, please visit http://www.isc.org/dhcp-contrib.html

Configured subnet: 172.16.83.0
Setting vmnet-dhcp IP address: 172.16.83.254
Opened:
Recving on VNet/vmnet1/172.16.83.0
Sending on VNet/vmnet1/172.16.83.0
Verifying and re-installing files from /Library/Application Support/VMware Fusion/thnuclnt

This has a few gems to consider: what’s that yummy antivirus.iso, and how can I use that to auto-define a VM? Hmmm…

Anyhow, for when I forget this next time, this how to start/stop the VMs.

Mar 02
checked in a change to orfutils for documentation; noted that E-P1 is now supported by Apple, but not sure about E-P2 and E-PL1
Feb 21

The link http://support.microsoft.com/kb/912265 shows how to make a microsoft product work with a microsoft product. In this case, it’s a Microsoft Exchange server sharing a calendar to a Microsoft Outlook or a Microsoft Entourage user. I thought these products should already work together, given that they are Mail Server and Mail Client.

It’s very difficult to maintain any sort of compatibility with another company, even when there is relatively tight communication.

It’s even difficult to maintain compatibility when there’s no sharing, communication, or agreement. It’s very much like hammering changes with set of tests, and looking for leakage.

It’s much more difficult when the two entities are competing providers.

When the compatibility issue is within the same company, within iterations of the same product, there’s no excuse.

Feb 15

I live in two countries; I travel into many: Canada, USA, Thailand, China, and UK. I carry one phone, and swap SIMs in when I enter a different country: 4 SIMs into one phone, but the UK one is “special”.

What’s the Apple ideal here? carry 5 separate phones?

Am I flirting with the risk of losing my Apple ID?

340x_iphonehack

I’m not some evil phone-cracker, and I pay for everything I have. Heck, I use bittorrent as a try-before-you-buy. I’ve purchased as many as 4 copies of software (hello, Starcraft) rather than cheat when I’m in the wrong country and need something.

Checking my system logs, Apple software itself has shaky behavior: warnings that it’s violated its own constraints, obsolete function-calls, etc. The cheap iPhone cable I picked up occasionally seems to disconnect (ie every time with the older phone, never with the newer)

Is it possible that my unlocked phone, plus one of Apple’s own errors, plus this cheesy cable, can brand me as a thief, cracker, all-around bad-guy?

Feb 12

Apple makes a Web Browser called “Safari”, and a fairly well-known software product called “iTunes”, through which a user gets to the “iTunes Music Store” to download free or commercial content.

Apple also make a product-suite called iWork, which competes with Microsoft Office. For example, Pages competes with Microsoft Word.

Suppose Apple offered these products on Microsoft Windows — a direct competitor to their OS product, and a product which directly competes with their product on their competing OS. Whether “Pages” works smoothly, or doesn’t, that probably reflects poorly on the “Pages” product, and by allusion, whether all of Apple software is generally of good or poor quality.

If “Pages” tends to run very very well on Apple OSX, but poorly on Microsoft Windows, it probably implies that Windows has performance problems, and OSX is obviously the better OS to run things like the “Pages” application. That means that making “Pages” run well or poorly on the competing OS reflects on the perceived quality of the competing OS.

In short, Apple could make Windows look bad, and influence buyers over to OSX.

Does that seem fair? Who is really to blame? Doesn’t Apple have the obligation to at least adapt to the environment to which it’s writing software, and make it work? Isn’t that target environment really the foundation to which Apple has to make their product work? At the end of the day, the OS came before the application, so errors should be resolved in the application side.

Application errors are the application’s fault, not the OS. To claim otherwise gives reason to question the objectiveness of the auditor.

Same issue, but Microsoft making Office run on Mac. It runs poorly, hogs resources, and generally runs for short times without crashing. Obviously, this is Microsoft’s issue to deal with; to think otherwise implies a certain bias away from Apple.

Dec 07

In Mac OSX to Finisar I wrote about a more modern-ish way to connect to a Finisar ProbeFCX or Xgig Chassis. By definition, this similar config should work on GCX4000s and Apcons, if you (dear reader) recognize where those are used.

I just made it easier.

Since I live out of a suitcase, this makes my life easier.

I’m using the same process as before (using the evil “screen” tool), the GUC232A, plus a few extra bits, totalling:

Notice how these things are easy to get to? I think a WinTel works in place of the Mac, but mine don’t stay running for long enough.

Anyone from JDSU may say “well, gee, this is fairly basic”, but rather than follow the rules like a mantra, I wanted to do this with easier-to-pack parts that can be replaced or cross-shipped if needed.

This is what works:GUC232A-NullModem-GenderChanger

The trick is that the GUC232A is only 45cm/18inches long, but I can put a standard USB extension on it, route it through a US-4A or bang it on an unused server port anywhere.

Nov 19

Jonathan Washington determined how to Read a Barcode without a reader, and using his description it’s fairly easy.

The numbers have a bit of a delicious pattern; let me expand a bit from the Wired How-to Article, which presented this example:
Barcode_example1

The Digits themselves break down as follows:

digit code
* 0-0110
0 00-110
1 10-001
2 01-001
3 11-000
4 00-101
5 10-100
6 01-100
7 00-011
8 10-010
9 01-010

Simple, right? The barcode will also start and end in a 0-0110 sequence, which breaks the xx-xxx pattern. I cannot see Mr Washington’s article, the hosting has trashed it, so maybe this stuff is already discussed. The Wired Article is really hard to take apart from there — examples would have been nice — so I’ve expanded a bit on it.

Although we could look at the barcode digits as simple replacement cyphers — similar to the glyphs on the TV show “Fringe” — there is a key to the barcoding numbers themselves that would let a reader build a barcode cheat-sheet or lookup just before decoding a barcode to reduce the chances of error. Let’s remap the table above, add sample barcodes, move the zero after the 9, and add an asterisk markup so that we have an example of that as well:

digit code barcode
1 10-001 10-001
2 01-001 01-001
3 11-000 11-000
4 00-101 00-101
5 10-100 10-100
6 01-100 01-100
7 00-011 00-011
8 10-010 10-010
9 01-010 01-010
0 00-110 00-110
* 0-0110 0-0110

You can see how the progression of the 4 leftmost digits of each 5-bit sequence is actually a binary increment. The rule for that sequence seems to be “no more than two ones per digit”, and the 5th digit toggles one/zero to ensure that each sequence has two. Zero is pushed up to the “ten” spot, so it doesn’t have to suffer the indignity of no ones at all — for which the check bit would have to be 2. And what about 7? skipped. above, 7 is actually 8, 8 is actually 9, etc.

Asterisk is basically “zero” but with the spacer moved, perhaps to help key the scanner to the size and use the data itself as start/stop bits, the same way the 6-of-8 is done on an old floppy disk (leading bits are zero, after a spin there’s enough 0-0-1 and 0-0-0-etc to key the reader).

So now we have the magical logic to generate the bit patterns for the barcode digits, let’s markup the barcode and overlay some digits:

Barcode_example1-markedup

Now that looks a lot easier to digest.

Comments?

Nov 13

Speaking with a software architect — a young guy, obviously — he pointed out that he’s never seen the issues I’ve noted with a design he has, and so they must not exist. He went on to reiterate that he designed a product once that had an international market.

He didn’t ask what I had done, I didn’t volunteer it. I don’t need to swing a pedigree around, usually the recommendation I make are fairly obvious, sometimes only in hindsight.

It seems he and others seem to believe that if they haven’t heard of a particular issue, it cannot occur. This ignores:

  • Problems that occur that are not voiced because “it’s no use, they’ll never fix it”
  • Problems raised that are not escalated to the entity that can make a difference
  • Problems that are raised high enough, but are deemed “not a real problem because I haven’t seen it”
  • Problems difficult to replicate in a different country (similar to the comma problem I had in shell-based math, fails only in France)

People who discuss design and are aware of staffing/labour management don’t often bring things up for no reason. Of course, there is always room for a “painting the bike shed” discussion, but no one intends to waste staff hours. Typically, resolving things at design-time avoid staff-hours down the road.

Young architects don’t fully understand this, until they’ve done a few projects, and realize that they cannot personally see every problem.

It’s the equivalent of when software developers realize they cannot personally fix every known problem.

“Seeing is Believing”, eventually we get past the “Not Seeing is disbelieving” stage.

I remember this same argument, but by proxy: “I know a really smart guy, and he didn’t fix that problem, so that problem can never occur obviously”. I’m sure the logic errors there are obvious.

In this case, I elected to make my changes, and discuss them in hindsight. Some people recognize that I have the chinese habit of smiling and stopping when I see that I’m in an impossible task such as describing a round world to early Europeans. I don’t want to avoid making these changes, because that results in a waste of staff-hours that I don’t want to cause just to prove my point.

Sep 19

Finisar makes some great products — their SFPs are rebadged and used in many devices, and we use their ProbeFCXs extensively.

I’m not much a fan of waiting for my Wintel box to boot up or wake up, and it needs so many additional things to work: an extra trackball because the touchpad sucks, needs a wart on the bottom for a serial connector, needs much bigger power connector with extra internationalization tools to connect to foreign power sockets, etc. I fear when I’m on a client’s site, and the serial port in the wart doesn’t work… like a week and a half ago: I had to borrow a laptop to connect to the devices, which wasn’t very professional. I decided I’d find an alternative, and my Mac just always works.

I wanted a way to connect to one using my Mac OSX-10.6.1. The following works:

  1. install osx-pl2303 with this link: http://sourceforge.net/projects/osx-pl2303/files/osx-pl2303/0.3.1/osx-pl2303-0.3.1-10.4-universal.dmg/download
  2. OK, I rebooted rather than load the driver from the command-line.
  3. You can plug in your device and check for the driver using kextstat — mine shows nl.bjaelectronics.driver.PL2303 (1.0.0d1)
  4. connect using the cable that works on your Wintel to the PL2303 device (mine’s a GUC232A made in China)
  5. Mac OSX comes with the screen tool, so I used screen /dev/cu.PL2303-00002006 57600
  6. works fine

This process might work just as well on a Wintel, and is a smaller device to carry.
PL2303

Sep 07

The way I use a computer, it’s very much a “show me what I want, don’t show me what I don’t want”. It’s all about choice, and letting me keep my train of thought without little popups (including “WOW! You have a wifi connection!” and “You’ve configured me not to autoupdate on connections! You have to confirm this for the 10th time today! Right Now! popup popup popup!”)

Installing RDC-2.0.3

(Installing RDC-2.0.3)

Part-and-parcel to this, if I ask for a piece of software, chances are, I want that piece of software. No more, no less.

Installing Remote Display Connection v2.0.3, I suddenly had to quit other Microsoft software because it was forcing an update. You’ll notice above that this is installing Remote Display Connection, it has nothing to do with Entourage.

Surprise hidden update

(Surprise! Hidden update)

… but Aha! You can’t update something secretly if it’s running!

I don’t recall asking for an update. Chances are, I had that software open because I was using it. If I wasn’t, it would not be open. Let’s not force me to stop working just to get more attention, shall we Microsoft? And lets not run updaters or anything else secretly that I didn’t ask for.

I only wanted a Remote Display Connection — nothing more — and only because I’m forced to connect to a Windows server. …because your networking protocol is so bloody weak, I have to use FTP.