Notice: register_sidebar was called incorrectly. No id was set in the arguments array for the "Sidebar 1" sidebar. Defaulting to "sidebar-1". Manually set the id to "sidebar-1" to silence this notice and keep existing sidebar content. Please see Debugging in WordPress for more information. (This message was added in version 4.2.0.) in /usr/share/wordpress/wp-includes/functions.php on line 4139 Tech Notes » 2009 » July

XHTML 2/HTML 5 Comic Strip

Uncategorized No Comments »

Smashing Magazine fielded a nice discussion titled Misunderstanding Markup: XHTML 2/HTML 5 Comic Strip. It is truly the opinionated comments that make an article into a discussion, and this one touched a nerve nearly as raw as the Infamous Emacs/VI war, or the Vista/MacOSX counter-battery fire, or the K&R-used-it-so-it-must-be-right/any-other-coding-style coldwar.

Nice article for the discussion it’s spawned — nice artwork too 🙂

I’m not a web-dev by trade, I’m a details-y geek, I like how I can use “validators” to check that all 27 of my pages render functionally cross-browser. I like that about XHTML. sure, an XML parser is supposed to derail when the doc misses a tag, so close your tags, and maybe you users will use a browser that is as forgiving with XML as it is with HTML.

“strict in your output, but liberal acceptance of your input”

What's in a Coding Style?

Uncategorized 1 Comment »

I commented before about the religious holy-war of coding styles:

K&R
int main (int argc, char *argv[])
{
    if (0 == argc) {
        do_something();
    }
    return 0;
}
Consistent K&R
int main (int argc, char *argv[]) {
    if (0 == argc) {
        do_something();
    }
    return 0;
}

To revisit, when it comes down to it, K&R format is indeed inconsistent, and is a source of error for new and experienced engineer alike, but arguing about it consumes more time.

There’s a similar amount of time wasted in re-formatting back to a format if you happen to like the other format compared to the project lead, so for your coding changes you have to reformat back and forth.

Reviewing merges and having to skip over whitespace changes are simply a waste — the computer should know better. Sometimes, I miss how BASIC interpreted every line as typed, and stored it as tokens, producing canonical consistent code from those tokens when listed. It’s hard to make a whitespace error or cause hundreds of LOC of change from an indent when the code is stored tokenized.

To get around this time-sink, when I was the designer/lead-engineer for Smallfoot, I caused checkins to be formatted (using indent and bcpp. This was done in a .wrapper script, so it was automatic.

The other automation was the countdown timer: after 10 minutes of idle time (ie commits have finished), the sourcecode server would checkout code, do a build, re-generate the in-code API documentation, and run all the self-tests. All of our example configs were used as self-tests, ensuring that any example we had was tested. The key of this boasting (I’m proud of what we did) is to show that automation makes life easier — including nit-picking over coding style — so that engineers can code, code, code, and get updates on things that the Machine found that he/she might have missed.

I’m all for hardware doing the machine-work, and meatware doing the people work. Including the coding-style normalization.

MySQLfs: Automated Derivative Variants of Files

Uncategorized No Comments »

One reason that I’m working on MySQLfs is the ability to bring back the maintenance automation that SantaSack provided.

SantaSack was both an indexed bag of goodies (because Santa never hack to dig around for things) and an automated-derivative-generator. I’ll see if I can convert mysqlfs to that, and you’ll see what I mean.

SantaSack died when my backups died — I still have the most recent code, but I rely on version-control to see why I was doing something, and what failed/worked before. Really, I’m a bit lost with the complexity without version-control history, and really, projects similar to MySQLfs give better eventual re-use.

Consider how something like Automated Web Photo Galleries with iPhoto and Perl – O’Reilly Media can be done in a system that understands converting one file to another.

Mobile Broadband on Mac

Uncategorized No Comments »

On of the downsides to Mac is that the Chinese-based manufacturers who implement what another country (I’m looking at you, Isreal) invents, well, they don’t tend to have new/recent Macs. This translates in Mac software for less-common devices being rather crappy, despite the benefit of one release variant.

So I’m working on Mobile broadband, on an Huawei E160, MacOSX-10.5.7,

mobile failuresO2’s software seems to be making a lot of failing system calls; I don’t think they have the same software, so I found the E160/2009-05-10 software on huawei.com Somehow, Huawei figured that an EXE file worked on Mac. Hmm. Maybe someone else is avoiding QA.

In trying to get this going, I started to think like a WIndows developer: I actually rebooted to see if it would make a difference. I haven’t rebooted in weeks (I think 5 weeks). No help.

In taking a break, I went to re-activate Airport Sharing, and there was a Huawei Modem! …so I clicked there, set the username, password, and dial-up number that is in the O2 documentation, and it works fine.

I then right-clicked the on-the-USB-disk, that appears like a CD and has the app software, and selected “remove from sidebar”. Maybe it won’t pop up every time I plug in.

Success!

Huawei Modem Happily Connected

Huawei Modem Happily Connected

One Release Variant

Uncategorized 1 Comment »

If you build one style of device — windshield wiper, hose grommet, power system, front-end-loader hydraulic, etc — then it’s easier to support a hundred of those rather than a hundred different designs.

The more variants, the more quality-control you need to do.

If you do all the design and development, then you have more effort, but the same design team makes things act in a consistent manner, user-experience remains homogenous, things look like they belong together. The things you learn in one App transfer over to the other — or design an App User Experience guide that third parties must follow.

Anything that does all of this — their own design/development, one variant to test/release/support — automatically has higher product quality over an equivalent product build by many separate parties for a half-dozen variants.

Plus, it confuses the customers — differing behavior, different choices to make with little or no information. Rather, you might want your customers on your side, your allies, not feeling like they’re getting swindled somehow by a confusing array of choices.

status pseudo-file

Uncategorized Comments Off on status pseudo-file

: svn checkin (r57) to mysqlfs to add an optional generated file showing status. This is something I want to exploit for bolt-ons I’m doing for 0.5.0 release to address the one open feature request… and one that *I* want 🙂

HeaderDoc-7.4.8-1

RPM No Comments »

Although I prefer Doxygen, I’ve packaged up HeaderDoc for RPM systems so that it can be exploited by others. For me, I see generating a documentation cross-reference after an automated build, just as I did with Smallfoot so many years ago (Smallfoot Linux, coincidentally canceled May 17, 2003)

The Linux toolkit had automatic build/doc-gen/self-test on checkins, which is the kind of thing I’d do with a HeaderDoc RPM.

Without further Adieu, the HeaderDoc RPMs:

MS Update BSODs. Geek Unsurprised

Uncategorized No Comments »

Although MS Office on Mac might seem like a Square-Peg/Round-Hole issue, it’s not so surprising.

Apple’s Calendar doesn’t automatically accept every meeting invitation that you receive, and I need that behavior for work. I know, I know: in real life, we aren’t the “accept every offer” floozy, and really, I’d want a calendar that accepts from some, pushes back on others, and flatly refuses every meeting that comes in from my coworkers as a conflict (ie: that space is already taken) because they are able to check my corporate calendar.

Also, MS Office was originally written on Apple (1988) and ported to Windows (1990). It’s true! (recall that MS Excel was released for Mac in 1985 when MS/Windows-1.0 had not yet gone gold)

So perhaps I have reason to be bothered, or not, when the MS Office Update HANGs on Mac. I mean, there’s so many OS versions to test (ie 1: there is no such thing as an OSX:Home Edition or OSX: Professional Edition). How hard can it be?

MS Office-12.1.0 (AKA 2008-SP1) Hang

(yes, it’s been hanging at ~1% done for over an hour)

Mind you, I can see making your competitors to your OS product look bad by a shoddy release of your office product that people only use for the Calendaring and the Blackberry monopoly). Microsoft might do better to catch up to OSX than play these silly games.

If I cannot stop this updater, I may have to reboot before the end of the year now. OK, it’s actually 6 times a year: I reboot when the Security updates require it (That’s 1 reboot for every 136 reboots of the Dell)

Tricking the Self-Signed Detection

Uncategorized No Comments »

In Case Study: Secure Telnet Using C-Kermit 7.1 With Stunnel, Kirk Turner-Rustin mentions that in 2001-era SSL, (section 5.2.2) it is possible to fool the detection of self-signed certificates by changing only one of the descriptive text items in the certificate generation. Maybe that alters a checksome/signature on the descriptive items, and that’s all we need.

Mind you, in 8 years, maybe that hole is patched.

Phorm Teaches Us How to Secure National ID

Uncategorized No Comments »

Phorm — recently popular for privacy/DPI technology — teaches us how to make National ID safe.

I was just writing National ID: USA Already Has it and the realization that my past employer clearly shows us how to make sure that an isolated National Healthcare Number (NHN) doesn’t mix with a National Taxation Number (NTN).

A strong issue with National ID is that it can be linked to other ID cards via databases that cause all of our information to link up. Of course, such a linkage quickly shows re-used SSNs (NTN), but it also brings innocent-but-suspicious behavior to light, causing a huge burden of self-defense and explanation.

Phorm’s system is simple: it gives a subscriber a randomly-generated unique number, and uses only that to refer to a subscriber’s behavior (in order to queue up relevant advertising). The beauty of the system is that the subscriber can get a new ID at any time. In this case, the system merely gives a new ID, and the subscriber looks to the system like a new user. Subscriber history expires and gets tossed automatically.

American Express — and some Visa cards — give users one-time-use numbers for online shopping; this is a number than can be used just like any other credit number, but Amex will only accept it once. In this way, the user avoids the risk of re-used numbers: the second time the credit number is used — for example, re-running transactions to create duplicates — Amex refuses the transaction.

These systems show how a National Healthcare Number can be frequently changed to invalidate any linkage that might “accidentally” be created between NTNs and NHNs. Mind you, at the speed of computers and databases, if there are multiple links, then the one abberant link is quickly restored based on the trust on the other links.

The real trick is to change some links, and corrupt the others, so that the trust itself yields inaccurate linkages, reducing trust on that linkage. …but that’s a pipe-dream bourne of Neal Stephenson.

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Log in