2010-10-28

Counterfeit Monster Cables on Trade Me

Monster produces high-end audio cable. In the HDMI range even their basic cables run to hundreds of dollars, so I was taken aback to see the top of the range Monster M2000 for sale on Trade Me at $50.

A bit of digging turned up Monster Cable’s Counterfeit Site.

Here's one of the cables for sale by PGX on Trade Me (who seems to be making a business of this):



And here's a sample of the fake goods from Monster:


Looks identical (except the recycling logo). A look at Monster’s black list of sites caught selling counterfeit cable reveals Trade Me in the listing.

I reported this to Trade Me who replied that ‘appropriate action’ has been taken, though the listing remains along with 15 others.

Update: after more prodding Trade Me has removed all 15 listings from heng12, pgx, and smithjim.

2010-08-25

Philosophical Problems with Facebook

Facebook is a useful site: it’s easy to connect with friends and family and keep abreast of their lives. It’s an easy place to make a home page. But it could be so much more, and I can’t get past some of their deep-seated issues. I haven’t quit but I have curtailed my usage (though I was only logging in every few days anyway).

There’s room for improvement on the site experience itself but the main issues to me are more cultural:

You don’t control your account and support is almost non-existent: if something goes wrong with your account or it’s automatically disabled in error it may be impossible to resolve. One day you may have lost everything…

The Internet is built around the idea of sharing information and linking from one site to the next, yet Facebook is designed to be your one-stop site, and only minimal Facebook information is available outside of Facebook without registering and logging in.

Many many privacy issues, e.g. Criticism of Facebook

The CEO is one of the most arrogant men I’ve ever seen. But what can you expect from someone whose business card read ‘I’m CEO… Bitch’.

2009-08-22

Why Is Google Port Scanning Me?

I’m used to the normal ‘Internet background radiation’ of hackers/bots scanning the common ports on my router (SSH, VNC, etc.) but recently I’ve noticed scans of multiple ports from IPs registered to Google.

e.g., I'm getting a few thousand a day of these:
[INFO] Sat Aug 22 11:43:44 2009 Blocked incoming TCP packet from 66.102.7.191:80 to xxx:47414 as ACK received but there is no active connection
[INFO] Sat Aug 22 11:43:44 2009 Blocked incoming TCP packet from 66.102.7.191:80 to xxx:15370 as ACK received but there is no active connection
[INFO] Sat Aug 22 11:43:44 2009 Blocked incoming TCP packet from 66.102.7.191:80 to xxx:63879 as ACK received but there is no active connection
[INFO] Sat Aug 22 11:43:44 2009 Blocked incoming TCP packet from 66.102.7.191:80 to xxx:7748 as ACK received but there is no active connection
Looking back I see these requests have been coming for months but have increased in frequency recently.

They come from a range of IPs which whois reports are assigned to Google:
66.102.7.101
66.102.7.191
74.125.15.22
74.125.15.93
74.125.15.100
74.125.15.157
74.125.19.118
74.125.103.33
74.125.103.96
74.125.103.97
etc.
So for what purpose is Google port scanning me?

UPDATE:
These are likely just delayed responses to a web page request made by your browser just before you quit your web browser.

2009-08-02

Unhelpful Error Messages

Trying to access BD-Live on my Blu-ray player. This is an unhelpful error message from The Mummy: Tomb of the Dragon Emperor (2008) that had me wondering where the error was:

This feature is only available on BD-Live enabled players.  Please ensure that your player is connected to the Internet before re-starting the disc.  Your player must be profile 2.0 or greater.  Check with your manufacturer for firmware updates to enable this feature.  Watch the registration and BD-Live user guides on this disc for more information on how to connect to the BD-Live community.

Trying with Men in Black (1997) was much more informative and though not 100% correct put me on the right track—I needed to insert a memory stick:

Your player does not have enough storage space for the download.  Please delete some files and try again.

And after all that BD-Live was a big disappointment: the sparse amount of content which was actually avaiable could just have easily been included on the disc rather than waiting on a download—especially as the downloaded content is locked away until you re-insert the disc.

2009-01-17

FileMaker Pro 10 and ‘tell application id’

An FYI on AppleScript and FileMaker 10:

In FileMaker Pro 9 Advanced the application id was ‘com.filemaker.pro.advanced’. In FileMaker Pro 10 Advanced it’s now ‘com.filemaker.client.advanced’.

If you remove FM9A from your system, opening scripts which contain the old address ‘tell application id "com.filemaker.pro.advanced"’ will fail with ‘Unable to read the file because the script is not editable (it was saved as run-only).’—which is misleading as it’s obviously the old dictionary they can’t find.

If you install both 9 and 10 you can open the scripts and change them from ‘com.filemaker.pro.advanced’ to ‘com.filemaker.client.advanced’ (I keep old versions of FileMaker on disc images for situations like this—they can’t be launched unintentionally but they’re available when needed).

2008-07-03

Give Kids Praise, Not Sweets

If you want to reward a child, give them your praise and not a sweet. This can be hard but remember:
  • Your praise is valuable.

  • By giving a sweet you are devaluing your praise (both to the child and yourself): they will learn to seek sweets and not praise.

  • By making sweets something to work hard for you are increasing their perceived value.

  • The child will learn to expect a sweet when they’ve done something well.
A similar message applies to children who have hurt themselves or are going through an unpleasant experience (e.g. the dentist): give them some love, not a lolly.

Penelope Leach summaries this well in her excellent Baby & Child book (page 309):
If you can keep sweets out of the emotional arena and treat them as coolly and calmly as you treat other particularly nice-tasting things such as strawberries or honey, none of this trouble will arise. Many children passionately enjoy strawberries and will eat as many as they can get during their short season. But how many of those children whine and cry and throw tantrums for strawberries?

2008-06-01

Thought on Building Identification from the Air

On trying to identify buildings for an upcoming trip in Google Earth I was struck with the obvious thought: when are businesses going to start making themselves identifiable from the air—for instance with signage painted on the roof?

2007-09-04

Fun News Error

From the Radio New Zealand News site this morning:

Independent testing for formaldehyde on a range of clothes has shown undetectable levels of the chemical.

2007-07-16

Accessing Windows PowerShell from SAS

Windows PowerShell, previously Microsoft Shell or MSH (codenamed Monad) is an extensible command line interface (CLI) shell and scripting language product developed by Microsoft.—Wikipedia

PowerShell provides ‘easy’ access to Windows via a command line, and can be used for many things. I wanted to find the total disk space and amount free which we can do like this:
get-wmiobject -class win32_logicaldisk
Outputs:


DeviceID : A:
DriveType : 2
ProviderName :
FreeSpace :
Size :
VolumeName :

DeviceID : C:
DeviceID : C:
DriveType : 3
ProviderName :
FreeSpace : 221132865536
Size : 293552017408
VolumeName :
PowerShell uses STDIN and STDOUT, which is how we can pipe it into SAS. Note adding the filter to restrict to local, non-removable, drives:
filename diskinfo pipe "powershell get-wmiobject -class win32_logicaldisk -filter 'DriveType=3'";

data _null_;
infile diskinfo;
input;
put _infile_;
run;
Which yields (note the 2 leading blank lines):


DeviceID : C:
DriveType : 3
ProviderName :
FreeSpace : 221132881920
Size : 293552017408
VolumeName :
PowerShell can reformat output, but I coded SAS to read it as-is:
data _null_;
infile diskinfo firstobs=3 truncover;
input
@':' +1 DeviceID $1.
/
/
/ @':' +1 FreeSpace 32.
/ @':' +1 Size 32.
/ @':' +1 VolumeName $32.
/;

put _all_;
run;
Which gives us variables holding the total size of the C drive (in bytes) and free space:
DeviceID=C FreeSpace=221132861440 Size=293552017408 VolumeName=  _ERROR_=0 _N_=1

2007-07-13

Being a SAS Data Warehouse Administrator

Somebody asked me what made a SAS data warehouse programmer different from a normal SAS programmer—was it the amount of SAS knowledge I had?

The short answer was no, it’s all about experience. Here’s a rough longer answer based on my data warehousing experience at 4 different organisations:
  • Strong base SAS and macro is essential, this is what the majority of data warehouse jobs use.

  • Also important is a strong knowledge of how SAS works internally. What gets written to the log in the following sample, and why?
    data _null_;
    log 'hi';
    set work.test(obs=1);
    run;
  • A general knowledge of SAS and the ability to learn more as needed: e.g. I also use ODS and Graph on a regular basis.

  • General knowledge: operating system knowledge (mainframe/Unix/Windows), SQL, reading from different formats (CSV, XML…), writing to various formats (Excel, HTML, XML…), version control, backup…

  • Awareness of machine resources and scheduling

  • Understand the big picture: can you justify creating an index (space and time vs. potential usage & savings)? Should you create another data set for new data or combine with an existing one? When should you create a macro for a common routine vs. a pre-summarised data set?

  • Consistency: users need to be able to transfer their knowledge from one part of the warehouse to another. Don’t make it hard for them.

  • Work within the existing warehouse setup: if the naming standards are CamelCase (my preference), don’t create Underscore_Names.

  • It’s about doing it right

  • Documentation. The ‘d’ word! I try to create clear and commented code, easy-to-use data sets, and document what I’ve done. My goal is to make myself redundant (which hasn’t worked!)

  • Communication: essential within your team, to users, and management. Sometimes users and/or managers will have an exact requirement but it should be implemented in a different way to fit the overall picture—you need to spot these and be able to explain why.

  • After hours work: users don’t like losing the warehouse to maintenance during working hours!

2007-07-07

Bridge to Nowhere^h^h^h Terabithia

You have not stumbled into Narnia—don’t believe the trailer.

This is a coming of age movie, and as that succeeds well. However it is NOT a fantasy movie as portrayed in the trailer: the fantasy elements only make up about 10 minutes of movie time.

Take your pre-teens, not your younger kids looking for a good fantasy.

2007-06-20

Alice’s Adventures in iPodland

A couple of years ago I wrote a SAS program to convert a Gutenberg text of Alice’s Adventures in Wonderland to an iPod eBook (iStory).

The SAS program takes the Gutenberg text file, combines hard lines into paragraphs, extracts the chapter numbers and names, and splits the whole lot into pages by chapter. It then generates a preface, table of contents, and puts Prev/Contents/Next on all the pages.

I was wondering what to do with it tonight and found a site which specialises in converting these texts to various formats: manybooks.net. Their Alice text is a lot cruder than mine—it's just a set of pages with Next/Prev—but it gets the job done and there’s a whole library there.

So here’s mine for posterity. The concept’s been superseded but it was a good learning exercise in how iPod Notes work. You can read how to install it and more about Notes at MAKE.

Download the nicely formatted version of Alice’s Adventures in Wonderland.zip

2007-06-04

Minimum DVD Burn Speeds

I needed to burn a DVD at a slow speed for a project I’m working on—the DVD will be used as the master for some 3,500 copies so quality is important. The factory said the slower the burn the better the recording, that you can actually see the difference on the DVD surface when burning at higher speeds, and that a DVD burnt at high speeds may work OK in some computers but malfunction in others. They suggested 1× but we’ve compromised on 4×.

The reason for the compromise is the drive in my MacBook Pro won’t go any slower. Here’s an interesting matrix of drives, DVD-R medium, and the resulting available burn speeds, put together by a colleague (thanks Glenn).

Table of Drives vs. Media = Burn Speeds

Drive
Apple 4×
Transonic 8×
Verbatim 8×
Imation 16×
HL-DT-ST GWA-4080444, 64, 6
HL-DT-ST GWA-41652, 44, 84, 84, 8, 16
Matshita UJ-8151, 21, 21, 21, 2
Matshita UJ-8251, 2, 41, 21, 2, 41, 2
Matshita UJ-8351, 2, 41, 21, 2, 4, 81, 2
Matshita UJ-8461, 2, 41, 21, 2, 4, 81, 2
Pioneer 1041, 21, 21, 21, 2
Pioneer 1061, 2, 4
Pioneer 1091, 2, 444, 6, 84, 6, 8, 12, 16
Sony DW-U10A1, 2, 41, 2, 41, 2, 41, 2, 4

All tests were done using Disk Utility in OS X 10.4 (Finder and hdiutil will give the same result).

My MBP has an HL-DT-ST GWA4080MA DVD drive, so the minimum burn speed is 4×.

(You can see the drive mechanism in System Profiler. Apple can (and does) change mechanisms within a product line.)

I Wouldn't Steal a Car, Now FOAD

A number of the rental DVDs we’re taking home are now coming with that obnoxious ‘You wouldn’t steal a car’ ad which can’t be skipped.

It’s infuriating to have some movie company override my ability to control a disc I have bought or rented. It’s offensive to have an ad before the menu accusing me of piracy.

If I download a movie from a file-sharing network (I don’t usually) there’s no copy protection and no ads.

Interesting choice: legit & annoying or illegal & convenient. I find myself buying and renting DVDs despite what the distributors are doing—my sense of right wins out over their annoying tactics.

Movie companies are pissing off their remaining legitimate customers in their war against pirates. They really don’t have a clue.

Other irritating ‘features’ on many DVDs:

Any ad (e.g. company logos, trailers, FBI warnings) preceding the menu: most of the time I just want to pop in a DVD and start watching. Include trailers and small print as a menu item.

Any menu which takes more than a couple of seconds to run through before I can push ‘play’—again, I usually just want to start watching.

Yellow Triangle

Robert Schofield of Wellington was recently convicted of importing DVDs involving urophilia into New Zealand (seemingly for his own use).

11 DVDs seems like a lot, and the guy seems to have exacerbated his fine (and maybe the new’s interest) by fighting the court and censorship office, but…

1. Likes and dislikes aside, why is the state involved in what consenting adults do in the bedroom? Why does Judge Harrop think it necessary Robert’s clients know his sexual predilections?

2. Why is the act itself legal, but depiction of it isn’t?

(Title being a play on the colour of urine and the song by Christy Moore on speaking up for your rights.)

2007-05-02

FileMaker+QuickTime+Windows=Argh!

Normally I enjoy working with FileMaker, but on a recent project struck a number of serious issues with QuickTime container fields in a database.

Crash with Audio File

If you insert a QuickTime music file into a container field (or have a calculated container field pointing to an external file), then FileMaker will crash. Sometimes when you insert the file, sometimes when you start playing, and sometimes when you stop—but consistently crashing.

Error signature: AppName: filemaker pro advanced.exe AppVer: 8.5.2.378 ModName: quicktime.qts ModVer: 7.1.5.120 Offset: 00057ff6

We experimented with .avi files, .mp3 files, .mov files, and more. The only consistent factor was every file without a video track would crash, and every file with a video track wouldn’t.

It was hard to believe there was such a fundamental problem. We took one of the .mp3 files which was crashing and wrapped it inside a .mov with a video track (a single frame): no crash. We disabled the video track: crash. We removed the video track: crash.

Workaround: add a video track or text track. The movie controller can be resized and the border made invisible such that you can’t tell a video track is present.

A longish session with Google told us this problem had been around a long time, yet FileMaker Inc. said they’d never heard of it.

Special thanks to Allan for quickly putting a set of test files together; also Brendon, Tim @ FileMaker Inc Au, Ivan, and Patrick for their thoughts.

QuickTime Controller Jumps Ⅰ

If you have the status area showing and start playing a movie the QuickTime controller will jump to the left.

Speculation: somebody forgot to include the width of the status area when sending the ‘place to draw the controller’ to QuickTime…

Workaround: hide the status area.

QuickTime Controller Jumps Ⅱ

Set up: A layout in list mode and a QuickTime container in the header or footer.

If you start the movie playing and then scroll while the movie is still playing, the QuickTime controller will jump vertically (to a different position each time you scroll). The amount of the jump is related to the height of the body section.

No realistic workaround found 8-(

Sound Stutters

Set up: A layout in list mode and a QuickTime container in the header or footer.

If you start the movie playing and then scroll while the movie is still playing, the sound will stutter every time the layout is scrolled.

No realistic workaround found 8-(

Misc

All bugs reported… None happen on a Mac.

QuickTime 7.1.3, FileMaker Advanced 8.5v2, Windows 2000 SP2 (happens under other configurations too)

2007-04-22

Combining Mac and Peecee FileMaker Runtimes

I recently generated a cross-platform runtime for a client who runs both Windows and OS X. Here’s some notes on the process:
  1. Generate runtime on OS X
  2. Generate runtime on Windows with same bindkey
  3. Combine two resulting directories:
    • .USR will be duplicated (one is redundant)
    • .exe had sticky bit set resulting in ‘One or more items have special permissions and cannot be copied.’ (permissions -rwxr-Sr--, chmod g-s xxx.exe fixed it)
    • Note Windows Extensions folder has more items than Mac (so combine folder rather than replace)
I created a high level folder to hide the myriad of Windows files. So at the top level I now have:
  • Solution OS X (created under OS X, alias to Solution.app)
  • Solution Windows.lnk (created under Windows, link to Solution.exe)
  • Documentation folder
  • System Files folder
    • Extensions folder
    • Solution.app
    • Solution.exe
    • Solution.USR
    • (40 DLLs)
The client clicks on the appropriate solution name depending what platform they’re on.

2006-11-30

Solar Hot Water in Hot Water?

It looks like there’s an endemic problem using solar hot water panels in Wellington—it would appear there’s too much salt in our air, which is corroding the panels.

Gary Moller has discovered and published findings in his blog:

http://healthandlifestyle.co.nz/solarpanel/

It’s hard to see through the glass, but this is what our Solahart Black Chrome XII looks like after 6 years:

Corroded Solar Panel

‘Corrosion’ should probably be in quotes, as the panel hasn’t been opened up to confirm this, and the dealer is still investigating.

Not having long-term monitoring in place it’s hard to pin down what effect this is having, but I estimate we’re losing 10–15° of solar heating.

At least Mander Plumbing organised a building certificate for our work (unlike some of Gary’s exhibits). They no longer deal in Solahart gear, so I’m taking this up with the new agent (Spinks Energy Systems).

I certainly don’t want to see the burgeoning solar hot water movement collapse, but feel it’s better the problem is raised now rather than later (can you say Leaky Building Syndrome).


Followup 2007-02-13:

We recently had our corroded Solahart panels replaced under warranty.

In the past (years ago) we used to regularly get over 60° during summer. Just prior to replacement this was never reached.

Since the panels have been replaced we're back to regularly achieving over 60°, some days as high as 75°.

i.e. The corrosion was causing a temperature drop of up to 15°.

(Temperature as measured on the remote readout in the cylinder.)

2006-06-23

Converting to FileMaker 8

ScreenshotI’ve recently finished moving a client from FileMaker 7 to a runtime deployment of FileMaker 8. I took the opportunity to rework the solution, which still had much of the pre-7 design.

This took around three weeks, with two weeks I thought reasonable to charge for. I’m very pleased with the result, and my client understands the need for a good infrastructure behind the scenes.

Main Work of the Conversion

  • Moved all tables into a single file. The relationship graph for this leads to a much better overview of the system.
  • Implemented menus and deployed as runtime solution. Gives the feel of a true application, and hides unneeded commands from the user.
  • By using the recently added [new window] script set, the current found set is now maintained when running a report. This new capability also makes saving and restoring found sets behind-the-scenes unnecessary.
  • I also rebuilt the interface which had the same look as when the system was implemented 10 years ago. The tabs (pictured) are based on the anthrazite look in ‘Apple Mac OS X Appearence Template 1’ [sic] by Martin Brunner.

Recommendations

  • Start at the bottom and work up: copy tables which other tables depend on first. Ditto for scripts. Keep the names the same until everything’s across. Define as many relationships as possible early—it will save broken fields and scripts.
  • Use the developer’s version: FileMaker Pro 8 Advanced. Being able to copy & paste tables and script steps was invaluable. The Script Debugger and Data Viewer saves having to insert those [display dialog] statements too.
  • Most scripts need modifying: some will be broken from the copying process, others break because the context is different in a single file.
  • I’ve always adhered to the KISS principle, and was grateful for it on a number of occasions: don’t make elaborate workarounds to force FileMaker to behave as you want, instead accept its (sometimes quirky) behaviour. The less complexity, the easier the solution is to manage.
  • If I wasn’t deploying a runtime solution, every script would be in a single menu—for both me and the user. This would have made consolidation into a single file problematic.
  • Expand those dialog boxes! Most can be stretched, and it really helps to see more at once. e.g. when specifying the script for a [perform script], as every script for your application is now in a single file.
  • I wish I had two screens (each running their own version of FM), so the old & new could be displayed side-by-side. So I got to know the Database Design report instead.

Wish List

  • When creating a runtime, that you could create it for both platforms (Mac and Win), not just the platform FMA is being run on (for a workaround, see my blog entry).
  • That runtimes could create PDFs (instead I’m using the schubec PS2PDF Plug-in, which has excellent user support).
  • A way to copy a layout in its entirety. Redefining the sections, margins, etc., for each one got old very fast (and time consuming).
  • The inbuilt tabs are a great idea but too limited for most serious use. They need to be able to switch between list & form mode, and need to be scriptable. A vertical orientation would be useful, and a nicer look would help too.
  • In layout mode, an easier way to navigate the now very long layout menu. Maybe subfolders. Having the menu start at the current layout (per a pop-up menu) would also help.
  • Script logic indentation on the Database Design report.

Misc.

Once again I’ve been very impressed with the reliability of FileMaker. I’ve been thrashing it for weeks and only had two glitches:
  • Occasionally there was a disconnect of some menu shortcuts: keyboard shortcuts (e.g. command-v) would flash the menu but otherwise be ignored. Restarting FM fixed this.
  • [if get(foundcount) > $var] was failing when there were 10 records in the found count and var was 9. Wrapping $var in asnumber() fixed it. Presumably FM was treating $var as character (‘1’ is not greater than ‘9’), but why is another matter—in a test file it worked fine.

Stats

Item
Before
After
Comment
Files131Some tables had already been consolidated into other files
Tables2121
Fields  Some saving with local variables replacing temporary globals
Layouts≈153≈120Savings from using [display custom dialog] instead of a layout, from files which were hidden from the user but needed navigation ‘just in case’, and some cleanup work
Scripts≈500≈200Scripts no longer need to call scripts in other files, they’re self-contained. No need for a set of navigation scripts in each file. Some combining of similar scripts and passing a parameter instead.

2006-06-05

Homepage Visualisation

My homepage as a graphicI received a link to a very cool web visualisation tool by Sala (although I used the version by Markavian which enables you to click on a dot to see the source tag): this Java applet represents a web page and its elements as coloured dots.

It’s a quick way to get a feel for the kind of HTML used (tables, or divs, etc.), the complexity of the page, number of images, and more.

My home page is pictured:

The black dot is the root node.

Going up from there we have a grey dot for the <head>tag, which is the parent for many other grey dots—the <title> and <meta> tags, etc.

Going down is the grey dot for the <body>.

On the right we have a red dot for my main menu which is a <ul> tag, with a large cluster of pink dots for the individual <li> elements, and blue dots for their respective links. Note the other two small groups for the submenus.

Going (mostly) down from the root we have a green dot for a <div> tag, which encloses the footer (the two orange dots for <p>).

On the left we have a green dot for the <main> section, immediately surrounded by paragraphs (orange), one of which links to the cowboy picture (violet).

The left most orange dot is the paragraph containing the icons (violet) at the bottom of the page. Each icon is inside a link tag (blue).