MacBook, defective by design banner

title:
Put the knife down and take a green herb, dude.


descrip:

One feller's views on the state of everyday computer science & its application (and now, OTHER STUFF) who isn't rich enough to shell out for www.myfreakinfirst-andlast-name.com

Using 89% of the same design the blog had in 2001.

FOR ENTERTAINMENT PURPOSES ONLY!!!
Back-up your data and, when you bike, always wear white.
x

MarkUpDown is the best Markdown editor for professionals on Windows 10.

It includes two-pane live preview, in-app uploads to imgur for image hosting, and MultiMarkdown table support.

Features you won't find anywhere else include...

You've wasted more than $15 of your time looking for a great Markdown editor.

Stop looking. MarkUpDown is the app you're looking for.

Learn more or head over to the 'Store now!

Tuesday, May 31, 2011

AppleInsider | Apple initiates MacBook bottom case replacement program:

Apple has initiated a case replacement program for MacBooks shipped between October 2009 and April 2011 to resolve an issue where the rubber separates from the bottom of the case.

The MacBook Bottom Case Replacement Program is available to owners with affected MacBooks, regardless of current warranty status.


Thank heavens. I've got duct tape on mine and lost a screw earlier this week. Now if they'd just fix the track pad, which I had replaced twice before falling out of warranty and giving up. It doesn't hard-click anymore, so I have to drag with a three-finger swipe.

It's a great machine -- my favorite Mac laptop yet -- but these two hardware foibles drive me mad. Glad to see I wasn't alone on the stupid rubber bottom.

posted by ruffin at 5/31/2011 07:15:00 AM
0 comments
Monday, May 23, 2011

Authorize.net SIM module problem: "This transaction cannot be accepted" | Ubercart:

I am trying to setup the this module Authorize.net (SIM) payment method... but I keep getting this error when I try to complete a transaction:

'The following errors have occurred.
(99) This transaction cannot be accepted.'
...
Where exactly do I place my MD5 hash or what may be creating this error?

Thanks...


And the right answer, whether you're using Ubercart or, in my case, rolling your own SIM cart...

The has[h] is an MD5 of your API login ID and a few other fields in the transaction. Have you entered the correct login ID?

Welp, that's it. Whatever it is that you're doing, it's the fingerprint that's screwing up. I'm allowing customers to change quantities on the order page, so of course we've got to allow the amount to change as well. That screws up your fingerprint, and you have to generate a new one for each amount. I'm doing that with AJAX, and let's just say there are lots of places where you can screw that up.

Phew, glad that's over.

Labels:


posted by ruffin at 5/23/2011 11:02:00 PM
0 comments

Sure, pop-ups are evil -- if they're for advertisements. If they're to relay information from AJAX, perhaps not so much. ColorBox, a "customizable lightbox plugin for jQuery 1.3, 1.4, & 1.5" is a pretty good widget for in-window pop-up feedback.

But what's the minimum code I could use to display this jive? Glad you asked...

   1 <html>
2
3 <head>
4 <title>Simplest (give or take) Colorbox</title>
5
6 <link media="screen" rel="stylesheet" href="./includes/colorbox.css" />
7 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
8 <!-- from http://colorpowered.com/colorbox/ -->
9 <script src="./includes/jquery.colorbox.js"></script>
10 <script>
11 // This is for colorbox support
12 function disFeedback(str) {
13 elmOut = document.getElementById("feedback");
14 var d = new Date();
15 <?php
16 if ($bDebug) {
17 echo "elmOut.innerHTML " .
18 "= elmOut.innerHTML + \"<br><br>\\n\" + " .
19 "d.getTime() + \"<br>\n\" + str;\n";
20 } else {
21 echo "elmOut.innerHTML = str;\n";
22 }
23 ?>
24 $.colorbox({width:"50%", inline:true, href:"#feedback"});
25 // alert('here');
26 }
27 </script>
28 </head>
29
30
31 <body>
32 This is some text.<br>
33 <!-- below DIV is for colorbox info -->
34 <div style='display:none'>
35 <div id='feedback' style='padding:10px; background:#fff;'></div>
36 </div>
37
38 <a href="#" onClick="disFeedback('<b>test feedback</b>');return false;">test</a>
39 </body>
40
41 </html>
42


You must also have an includes folder that looks something like this...


Enjoy.

Labels: , , ,


posted by ruffin at 5/23/2011 11:59:00 AM
0 comments
Wednesday, May 18, 2011

Remember grammar school? If you're of an age, where "an age" means approximately mine, you got used to using the Apple IIe with Logo and The Oregon Trail and even, for many of us, BASIC. Ah, 10 PRINT <Control-G> 20 GOTO 10. Even in AP Pascal a decade later, I'm using an LC in our class to hack up my code. Apple's aggressive marketing to schools was a brilliant move.

Is this positive experience why I have Macs now? Um, duh. Yes. If it's not a direct correlation, the indirect quotient is so small as to be nearly negligible. Heck, I still like using OS 9 every so often on my StarMax clone, so it's not even the recent Apple cache that's sucked me back in. I was brainwashed.

Why aren't we doing that with Linux and grammar schools today? Why are kids learning how to present with Powerpoint instead of OpenOffice? Do I even need to argue the merits of going with "free as in beer" software that's function complete? A local school is using Powerpoint 2007, so many kids can't even edit their Powerpoints at home if they wanted to, even if they did shell out for Office 2003 or 2004. You get the picture.

Labels: , , , ,


posted by ruffin at 5/18/2011 10:56:00 AM
0 comments
Saturday, May 14, 2011

YouTube seems to be inserting a lot more commercials recently. I realize they want to monetize, and maybe the commercials they have now do get more clicks overall, but it's getting difficult to fall into an hour long, OMGWTFBBQ I just watched 18 YouTube video bouts of watching when a Jeep commercial keeps throwing itself into the mix. I didn't choose a Jeep video. I don't want to watch a Jeep video. If I did, I would have searched for "new jeep grand cherokee". I didn't.

Monetization isn't always evil, but this one is. The beauty of YouTube was that you chose (maybe like a Choose Your Own Adventure, but you chose) what came next. Exceptionally common video commercials kill that.

Labels: ,


posted by ruffin at 5/14/2011 08:15:00 AM
0 comments
Friday, May 13, 2011

Ah, Blogger's back already.

VIm, the editor that keeps on giving. Seriously, there's a certain amount of this thing that you can be trained to use, but so much of it is simply using it year after year, finding increasingly (?) obscure things your workflow wishes you could do more quickly, and then slowly stalagmiting more and more wacky key combinations into the folds of your brain to make it all happen at light speed sans mouse. Man, I love editing without a mouse.

Today's lesson was in blockwise visual mode, which I hadn't used [intentionally] before:

Mark the area which is to be commented using the *blockwise* visual mode (CTRL-V, in Windows this is CTRL-Q).

Press I (capital i) and write the text you want to prepend to each line of the selected block, e.g. %.

Then press ESC and the text will be inserted to the left of each line of the selected block.


PhpStorm is a pretty good PHP IDE, about as good as you can get other than its rough edges, and it has a buggy and incomplete but pretty good VIm clone as an optional extension. It, with PhpMyAdmin and SQuirreL SQL, really is reasonably close to achieving AMP stack programming perfection.

Labels: , ,


posted by ruffin at 5/13/2011 12:59:00 PM
0 comments
Wednesday, May 11, 2011


Dynamic Google doodle draws dancers, complaints | Deep Tech - CNET News:

Today's Google doodle honors choreographer Martha Graham's birthday--and with animated dancers revealing it, the doodle also showcases the company's push to build a more dynamic Web.

The only problem: some people find it's slowing their machines. That's hardly the outcome that Google--obsessed over every millisecond of delay in delivering search results--could have wanted.


The interesting thing here is that the animation is apparently all done with dhtml instead of, say, an animated gif, which would have done just as well. The code is a mess. And using the javascript engine to power your animation as well as your keystroke sensing is a little cannibalistic. It's like ethanol -- there's no inherent reason that corn prices should be directly and immediately influenced by gasoline price until we started feeding our mouths and tanks with the same stuff. It's a ill-fated confluence of convenience.

Google's "everything's a nail" attitude also reminds me of what the Free Software Foundation is trying to call "The Javascript Trap. Because Gmail's interface online is full of proprietary code, the FSF has decided they'd like to tell their mail list subscribers to stop using that fully-featured web app.

You may not be aware of the dangers of JavaScript -- a problem we've deemed The JavaScript Trap -- proprietary software running on your computer, inside your web browser.
...
When you visit a website such as Gmail, your browser will download and run several thousand lines of JavaScript code. This JavaScript code is no different to other programming languages -- applications written in those languages running on our computers should be free software, so we can run, modify and share them if we wish.


It's an interesting line, but a flawed one (my first reaction was a solid "Oh noes!"), I think. The Javascript is still out there for you to review and edit. It's heavily obfuscated, even moreso than decompiling many Java or .NET apps, I'd argue, but it's still out there. The FSF should be more worried about the proprietary software on the Gmail servers. They suggest IMAP and Thunderbird is the way to go, which is nice, but they obviously haven't used Thunderbird recently. (I kidded hyperbolically)

I wonder if Javascript on your browser isn't in some sense a use of a little-"o" open source medium that is more in tune with FSF than, say, Outlook. Sure you've still got the assembler/machine code of Outlook -- any app is just a bunch of zeroes and ones -- so you could argue it's open too, but Gmail is several steps closer.

I did email Mr. Lee, who sent out an email to me (and everyone else) saying that I should stop using Gmail's online interface. Here's a bit of my replies.

Though I expect Google's Javascript is copyrighted, it would seem that studying the Javascript is still possible, isn't it? I'll admit I haven't checked the code, but each include file, etc, is downloaded to your browser, so we're a few cURLs away from the source, aren't we? What's different here?
... [he's nice enough to reply, and I send another]...
There's nothing illegal about having your browser interpret Javascript differently, is there? We can turn off window.open, eg, having our browsers censor or rewrite code. There's an implicit openness to and ability to modify the interpretation of [little "o"] open Javascript already. Extend Tor and interpret away, (c) or no.

Like Java, the code's all there by virtue of the system, you know? Your Gmail protest is really arguing that Free also implies "written for humans", which is a point I really appreciate. It'd be great to see that slant foregrounded more in FSF posts and projects.


Open source is, ultimately, all about the human readability, isn't it? The "Javascript trap" really means that you can't stop at open. If I obfuscate my Java as part of the compilation process and release the obfuscated code, it's not really Open is it?

Still, Google's mastery and overuse of Javascript is an excellent point. What are they doing with our browsers? Why are they willing to compromised their own functionality to recreate the animated gif or SVG? And even though their interface seems very simplistic to the point of minimalism, which platforms are part of the Google web and which aren't?

Labels: , , , , , ,


posted by ruffin at 5/11/2011 11:02:00 AM
0 comments
Sunday, May 08, 2011

Android emulator screen too tall - Stack Overflow:

From within Eclipse:

Go to Window -> Android SDK and AVD Manager -> Virtual Devices
Select the AVD you want to launch and click Start
Check the 'Scale display to real size' button
Enter how big you want it to appear in inches and press Launch. For this to work, you'll have to also enter a reasonable approximation of your mac's screen resolution. I'm using 7 inches and 113 dpi for my 13' Macbook Pro, but you may be able to get away with 8 or 9 inches.

Labels:


posted by ruffin at 5/08/2011 10:11:00 PM
0 comments
Saturday, May 07, 2011

Security Vulnerability Discovered in Skype for Mac, Latest Update Includes Patch - Mac Rumors:

Skype quickly responded on its security blog, noting that the company was already aware of the issue by the time Maddern reported it and had in fact issued a fix for it as part of a minor update to Skype for Mac released on April 14th. But because exploits for the vulnerability had not been reported in the wild, the company opted not to prompt existing users to apply the update.


Emphasis mine, natch. So Skype's not going to protect their users until after a few of them have been hacked completely? The whole point of Maddern emailing them that he'd found the issue is that, as soon as he discovered it, the exploit was in the wild. At least one fellow could have already completely compromised any Mac Skype user who accepted his messages.

Wow. There's a lawsuit waiting to happen.

posted by ruffin at 5/07/2011 10:13:00 AM
0 comments
Wednesday, May 04, 2011

iMac 21.5″ (EMC 2428) Teardown � iFixit Blog:

With a bit of magic, the GPU heat sink detaches from the logic board, exposing the AMD GPU board. You heard that right, folks — you don’t have to replace the entire logic board if your GPU explodes from too much l33t gaming. You can just swap out the GPU board for another one.


If you're just joining us, the original iMac and a few versions after had a "mezzanine" slot that allowed some folk to shove a Voodoo 2 video card into the beasts. I've always thought that was pretty cool, if horribly impractical.

Looks like that slot's back though, honestly, it'd almost be better to go the ASUS Game Station route and slap it into the Thunderbolt port.

Wonder if coolness will strike twice?

posted by ruffin at 5/04/2011 01:07:00 PM
0 comments

Support freedom
All posts can be accessed here:


Just the last year o' posts:

URLs I want to remember:
* Atari 2600 programming on your Mac
* joel on software (tip pt)
* Professional links: resume, github, paltry StackOverflow * Regular Expression Introduction (copy)
* The hex editor whose name I forget
* JSONLint to pretty-ify JSON
* Using CommonDialog in VB 6 * Free zip utils
* git repo mapped drive setup * Regex Tester
* Read the bits about the zone * Find column in sql server db by name
* Giant ASCII Textifier in Stick Figures (in Ivrit) * Quick intro to Javascript
* Don't [over-]sweat "micro-optimization" * Parsing str's in VB6
* .ToString("yyyy-MM-dd HH:mm:ss.fff", CultureInfo.InvariantCulture); (src) * Break on a Lenovo T430: Fn+Alt+B
email if ya gotta, RSS if ya wanna RSS, (?_?), ¢, & ? if you're keypadless


Powered by Blogger etree.org Curmudgeon Gamer badge
The postings on this site are [usually] my own and do not necessarily reflect the views of any employer, past or present, or other entity.