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.
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.
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/
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.
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.
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 127.127.1.0) 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 0×2001 and 0×6001 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.
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:
- Locale is not Language: Just because I’m in China, I may not speak Chinese (and which China? Which Chinese?)
- Locale is not format: in Canada, we use date formats dd/mm/yy, dd-mmm-yy, and yymmdd — so which one?
- Language is not format: en_CA is similar to en_US, but 2/3/4 is a different date than you think
- 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
- 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.
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} 1.3.6.1.3.94.4.5.1.33.{portIndex – 1}
for example: port 91, switch 192.168.1.1, community BatM4n:
snmpget -v1 -c BatM4n 192.168.1.1 1.3.6.1.3.94.4.5.1.33.90
Successive checks of this value can show the deltas that VW is reporting.
I’m using the following:
- http://community.brocade.com/docs/DOC-1733 for MIB download
- FE_RFC2837.mib defined a mismatch as fcFeMIB.fcFeMIBObjects.fcFeError.fcFxPortErrorTable.fcFxPortErrorEntry.fcFxPortLinkResetIns
- FA.mib defines the corrected value as FA.experimental.fcmgmt.statSet.connUnitPortStatTable.connUnitPortStatEntry.RxLinkReset.{port}
- ~.TxLinkReset.{port} is available as 1.3.6.1.3.94.4.5.1.34.{portIndex – 1}
- http://www.filibeto.org/sun/lib/nonsun/brocade/manuals/6.2.0/53_1001156_01_MIB_v620.pdf
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.
It would be great to command a Skype status message from my meetings.
I get meetings through the day; sometimes, I’m the guy presenting a gotomeeting (which is a great tool), during which times I have to hide the constant stream from the Skype window. The bad part of that is that I cannot see chatter from coworkers… well, that’s not the bad part. The bad part is that when they send me messages, they assume I see them.
How can I remind them that I cannot see the messages? (should I care?)
One idea is to link the showing of my screen to a status that says “I’m ignoring Skype right now”; for which I looked at the Skype API. There’s scant detail, and the easiest (lightest way) seems to be an Applescript remote-executor. An rexec() proxy?
- wakes-on-LAN using a UDP to a known port, from which the service starts, and timesout 5 minutes after idle? (this was a standard feature of inetd-run UDP ONC/RPC)
- reads UDP-based command with PKI to confirm permissions (ie “here, take this cookie”)
- sends the request to Skype (whitelist of accepted commands?) and sends the response back. The response might be too big for UDP out-of-order delivery
The net effect is a few days’ work (OK, a few hours, but try to get that in a single calendar day) I could tell my coworkers that I really am ignoring them. …or I can let them figure it out, because I work with really smart people (they tend to be smart about non-details, no sarcasm here, they really are very smart)
I just found that a tool I use often has been added to CoreUtils so now I don’t need to carry my version around.
For years, I’ve used a version of a program called variously “limitedrun” or “timeout” in order to run servers so I can self-test against them. An example is my work on Apache (minimal) and Nagios (lots, especially testing Nagios-LDAP). If the autotest failed, which meant that the script would immediately stop, the service would not be stopped by the cleanup commands, so the shell would not complete, and the self-test would appear to hang.
Instead, I used a limited-run facility to add the logic “well, if you ran for 30 seconds without being shutdown, the test must have failed, so … BLAM snuff it!”… which would allow the self-test to completed and report the failure. A passing self-test would gracefully shutdown the services used.
I think on my work on Nagios, it’s even called “timeout”.
At v7.0-beta, CoreUtils gained timeout, which I haven’t checked for compatibility in featureset (not hard, few features in mine) but now I can use that rather than keep packing mine around (the issue is when I added to it: I had to go and update every project that had a copy, or I needed my custom RPM on every testbox).
Less work for me! More standardized! Colour me happy