Fuck you, git

Uncategorized No Comments »

Try number 2 for git.

I’m not a genius, but for fucks sake, why did my one-step action become 26?

git rebase, git merge, git commit, git add (a file that’s already added), git commit (again), git rebase, git merge, git git git git gitigitigitigititititit

this replaces:

svn update

I seriously don’t yet see a compelling reason to change.

Fuck you, git. seriously. fuck you.

Inaccuracy may Inhibit

Uncategorized No Comments »

Consider the effect of inaccuracy on Engineers when posing a task or asking a question.  It may reveal why you’re not getting what you expect.

Read the rest of this entry »

Why SOPA and PIPA are incapable of helping, while still dangerous

Uncategorized No Comments »

SOPA and PIPA are two attempted bills in the US that seek to stop online piracy.  These two acts are incapable of actually stopping piracy, yet remain fully capable of an “internet death-penalty” against innocent sites.

Consider arriving in a strange, new city during the era of prohibition.  In order to find stores, markets, and local associates, you pick up two telephone guides.  Remember the White Pages and Yellow Pages?  Consider those as your resources, except that your phonebooks update instantly.

You’re able to look up your friend Mike, who has invited you to dinner.  His address is in the white pages, telling you “Mike Smith: 123 Main St”, and you know how to get there.  Mike lives above a tailoring shop, and has a market nearby, which you’re able to find to buy some beef enroute to dinner.

What about a bottle of wine?  That would be nice, but it’s prohibition, everything with any alcohol is illegal.

On the way to Mike’s, beef in-hand (a couple of excellent steaks), you notice that the tailor shop below him is closed, yet many people keep entering and leaving.  That’s odd.  Mike is happy to see you when you get to his door, and he makes a great dinner; he suggests doing so again next week.

Next week, Pork’s on the menu, but you have to look up the market again.  You wrote down the name (Joey’s Eastside Butcher) and your whitepages tell you where it is.  Mike tells you on the phone to be careful, police have detected that the Tailor shop is a Speak-Easy, and is illegal.  As a lawful citizen, despite that you’d like a drink occasionally, you tend to stay away from that sort of place anyhow.

Off to the butcher’s, but wait… where’s Mike’s place?  The whitepages no longer list his building at all.  From your always-updated whitepages, Mike’s entire building is gone.  You ask a friend, they have one that doesn’t update as quickly, and it shows that last week, Mike’s address was 123 Main St.  yeah, that’s right.  Another friend has a version of whitepages from Germany, and although in a different language, it does show the local city, and it agrees: Mike’s address is still 123 Main St.  Good thing you wrote down Mike’s phone number itself rather than his name, or you’d lose all contact with Mike.  You should get yourself a German phonebook, or use one that doesn’t delete entries, just adds them.

Arriving at Mike’s building, you notice that the Speak-Easy is doing a brisk trade.  It hasn’t been shut down!  The police haven’t lifted a finger, just “hid” it by removing Mike’s building from the whitepages.  Everyone who goes there often knows exactly where it is; if they haven’t, they’ve written down the phone number already, or have it on speed-dial.

This is how these new bills work: they don’t stop crime, they simply allow it to become unlisted quickly, without any recourse, any due-process.  They just make it harder to find, quickly.  The internet whitepages is called “DNS”, and is controlled by many different countries.  DNS updates take up to 72 hours to occur, and even after that time, the services are still open.  Anyone using these services knows where to find them without having to look them up, but if they need to, they can use alternative listings to find the same address.  The piracy isn’t even affected, it continues unabated, but common people are affected: new arrivals at a website or an interest group, and those who have to find their websites when they move (which happens about as frequently as people change homes)

Worse, with some allusion to Brazil, and perhaps to some implementations of photo-radar speed-traps, there’s no double-checking of errors, no due-process.  Due to an error, not only is a building, and all it’s businesses gone, while they are barely making it through the recession.  I’m sure the people who think this is a good idea are not the small businesses and private citizens who can vanish immediately due to error.  … and we know the Department of Homeland Security makes no mistakes.

Would you give the “Internet Kill Switch” to the TSA?

Criminals will simply go to other countries’ DNS, or just use the numbers, leaving only the lawful to be the victims of bad legislation and the zealots who support it.

Crime should be stopped by actually stopping crime, not by making it and its innocent neighbours into unlisted addresses.

iPhone 4s and iPhone4 Physical Case Differences

Uncategorized No Comments »

After some false-starts on iPhone cases (burned off my previous one, and i kinda don’t miss it), I wanted to post a quick note pointing others to a detailed description of some key differences.

iCollectGadgets shows a few great photos, but the key is in the following two (with permission, I’m willing to host a copy of these on my site to reduce any bandwidth-stealing):

Button Alignment:

Earbud 3.5mm Socket:

I would strongly recommend checking out the original site: https://icollectgadget.wordpress.com/2011/10/09/how-to-choose-cases-for-iphone-4s-and-iphone-4/

Battery Life: non-optimal

Uncategorized No Comments »

Teo phones taken from chargers this morning at 8:00: the latest HTC Android, and an iPhone 4, not a 4S. The iOS device has all manner of 3G, wifi, location services activated, the HTC perhaps the same.

IPhone is 80% battery, HTC is 57%. Sure, optimal conditions rate the content the other way, but we all know our wifi access points will hit 300 feet / 100meters range in an optimal situation: real life differs, and for my usage, HTC with MAYBE the same services active is burning battery twice as quickly.

Not sure Android is winning yet.

ConfirmEdit Nailed my WikiMedia

Uncategorized No Comments »

So I suddenly saw this:

Fatal error: Call to undefined method WebRequest::getIP() in extensions/ConfirmEdit/Captcha.php on line 202

Apparently, this is due to rev 106097, which replaced wfGetIP() with a wgRequest->getIP() that doesn’t exist. Maybe it’s in Yesterday’s version of WikiMedia only. 🙁

My fix:
cd extensions/ConfirmEdit
svn update -r 106096

I’m putting this blog entry so that others may see it and make use of it.

Bundling in Java

Uncategorized No Comments »

In providing a simple java-stack copy of an internal tool, I found that a few resources helped me define a basic layout, which I’ve hand-generated in the makefile since then.

Bart’s work on bundling an OSX App from a Java Jar helped to get a start, but more helped to find the other bits.

Nakkaya.com helped to remind to use Spotlight to find the tools that move around occasionally; unfortunately, that’s a ANT-focused article, and I’m not really interested in adding build-level dependencies yet. Eventually, I’m probably going to have to look at where a resource is inside the jar, but that’s really unrelated to Apple’s bundler.

In general, I used Bart’s work in Nakaya’s spotlight-found Bundler to make the original Info.Plist, built a diff-target to show that I was generating an exact copy, then expanded the built/generated copy to include more jar files as needed. If it gets more complex, or I need to combine JARs, I’ll probably look at ANT at the time, but for now, just text-printing XML, not a big requirement.

Yeah, this is another not to remid myself later 🙂

NTP Diagnostic

Uncategorized No Comments »

I’ve been working quite a bit recently with NTP, so I wanted to record some notes.

I’ve found that when the NTP server is fewer than 4x reached, then it will not choose a source. When it chooses a source, a local source might cause it to flag itself as “unreliable” (leap flag with a bad result). That or a poor stratum (less than client’s fudged is causing a client to ignore a source.

In our case, we saw an SNTP reject on status == 3 (see sntp/main.c::read_packet : “if (failed || data->status == 3”); this “status” is actually the Leap Indicator being 0%11 ( == 3), which was re-instated in RFC-2030 (superseding RFC-958) as an alarm condition (when the last second plus the next second are leap-seconds).

The client is flagging 0x2001 and 0x6001 quite frequently; this is clearly PLL/FLL changeovers, implying that it often sees a “weak” source, perhaps one that jitters too often, and swaps mode.

I’ll add to this over time if I see additional factors. As always — ALWAYS — “ntpq -c opeers” (in whatever form is permitted by your OS) is the best first-step, although “readvar” is also a good first step.

DateFormats and Smart People

Uncategorized No Comments »

For ~19 years, I’ve pushed international date formats; date formatting is a strange detail that seems to be so significant to me.

Someone (“lion”) whose industry knowledge I strongly respect, and who has an attitude of “what will XXX do for me today?” (ie not flippantly changing direction on things without clear benefit) admitted to switching to international date format.

Why is that so cool to me?

  • it validates my position, but may not yet validate the stubbornness with which I’ve pursued this
  • confirms the benefits are not merely in my biased opinion
  • it’s easier for me personally 🙂 (it’s all about me)

In this case the benefits of ISO-8601 format (the basis for W3C, RFC-3339, used by tools such as XML recommended datatypes) of yyyy-mm-dd being unambiguously understood in other countries, and sorting where least expected (filenames of presentations and revisions of tech pubs) due to its friendliness with sort algorithms no more complex than strcmp(), these benefits have made it easier to find the earliest/latest/newest versions of documents where dozens of similar content may exist.

I still argue that:

  1. Locale is not Language: Just because I’m in China, I may not speak Chinese (and which China? Which Chinese?)
  2. Locale is not format: in Canada, we use date formats dd/mm/yy, dd-mmm-yy, and yymmdd — so which one?
  3. Language is not format: en_CA is similar to en_US, but 2/3/4 is a different date than you think
  4. There are more cities than Timezones: if you’re choosing a timezone, choose a timezone, not a city, unless it helps to suggest the actual timezone
  5. Don’t accidentally get into politcs: Wales and London are not so United of Kingdom; if you don’t offer “Cardiff” and “Bristol” as cities, then allow the user to choose their timezone without claiming to be British (or is that “English”?). If you don’t understand that, spend a week in Wales.

RFC822 and RFC-2822 force foreign countries to know English day-names and Month names (not hard, but entrypoint for error) and require non-trivial parsers, but some developers just don’t seem to consider that there might be an easier way.

Tools that follow java.util.Date or PHP date formats or make assumptions based on /etc/tz values, they’ll continue to limit their users’ choices, further limiting their users’ end-users’ choices. Think about what constraints you’re doing. “Rome wasn’t built in a day”, “you can’t turn a supertanker”, “can’t change China” – you don’t have to try to change the world, just don’t participate in the constraint.

Hey, it’s nice to be right on occasion. Unfortunately, I still need to choose Japan or China as locales in order to get usable dates.

SNMP: Brocade: How to read Link Reset by SNMP

Uncategorized No Comments »

My company’s flagship product collects in-depth content via SNMP. Outside of random port resets and some bit-shifting, switches usually give us their information accurately matching the port metrics they show in a portstatshow.

snmpget -v1 -c {community} {switch IP}{portIndex – 1}

for example: port 91, switch, community BatM4n:

snmpget -v1 -c BatM4n

Successive checks of this value can show the deltas that VW is reporting.

I’m using the following:

Meanwhile, OIDView is a great tool if you’re not used to using “vi” as your MIB browser. In this case, it would have helped me find the values (rather then “/” to search), but I’d still need to choose the correct MIB to start with.

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