1986 Mac Plus keeps up pace with 2007 AMD Dual-Core.
86 Mac Plus Vs. 07 AMD DualCore. You Won’t Believe Who Wins — because it’s not the size of the processor, but what you do with it.
PayPal just fucked me.
Been busy the last couple months, working on houses, getting some cash together. Finally did, and got a few books regarding web design. Just made a simple site, it came out quite nicely. Got a PalPal account so they could pay, and they did. Went to add my bank acct and verify it… whoops, “You are currently not allowed to add a bank account because your account access has been limited.”. Everything in PayPal’s help area regarding such, with the steps for fixing it, don’t work. There’s nothing in the “Resolution Center” most of them reference. I just confirmed my cell phone, upgraded it to Premier, and still the same deal.
What. The. Fuck?
Yes, I’ve tried to call them. It’s a bunch of voice prompts, all the options being things already on their site.
Yes, I’ve tried to email them, it says 2-4 days for a reply which will probably be canned anyway.
Update: The resolution seems to have been to upgrade to a business acct. Can’t imagine why… bank acct in my name, I wasn’t planning on switching to a business PayPal acct until I got one as such from my bank. Go figure. Waiting for the deposits to verify the bank acct now. Any more problems and I’m going to just drop PayPal and get a merchant account.
Update: Woke up, checked to see if the two little deposits paypal makes to verify account had been made, and they hadn’t been. Nothing unusual, it can take 3-4 days and I started it on a weekend anyway. Checked paypal acct, and I see this:
We recently reviewed your account, and we need more information about your business to allow us to provide uninterrupted service. Until we can collect this information, your access to sensitive account features will be limited. We would like to restore your access as soon as possible. We apologize for the inconvenience.
Why is my account access limited?
Your account access has been limited for the following reason(s):
Sep. 22, 2008: We have detected suspicious activity regarding the receipt or withdrawal of funds.
Apparently, there were two refunds. Except my one customer swears they didn’t request one, and the 2nd one is… a whole 10 dollars, which was from my self when I set up the acct to make sure I could accept $ with it. I fucking know I didn’t request a refund from my self. Again: What. The. Fuck?
Needless to say, I’m not fucking amused at all. I will attempt to get my fucking money out of this situation, but considering their well known history of this crazy shit, I’m not expecting much. Damned thing is I knew about this going in. It was just the only real way I could accept a payment at the moment. I was so happy, too. Was going to use the cash to get a business license, open a new bank acct for it, get a proper domain and hosting, and buy more books to study, particularly regarding PHP5, as most of my PHP knowledge is from when PHP4 was new. Now I have nothing.
I’ll just have to borrow the cash I need, and work my way from there. Which is precisely what I was trying to avoid having to do. Needless to say, no more of my earnings will be trusted to PayPal.
No more Facebook.
Logged In or Out, Facebook Is Watching You
Facebook A Black Hole For Personal Info
Facebook Sharing Too Much Personal Data With Application Developers
Facebook Widget Installs Zango Spyware
Facebook Caves To Privacy Protests Over Beacon
Facebook Beacon Privacy Issues Worse Than Previously Thought?
Facebook Retreats on Online Tracking
Facebook Users Complain of New Ad-Based Tracking
The New Facebook Ads – Another Privacy Debacle?
From Facebook’s Terms of Service:
When you post User Content to the Site, you authorize and direct us to make such copies thereof as we deem necessary in order to facilitate the posting and storage of the User Content on the Site. By posting User Content to any part of the Site, you automatically grant, and you represent and warrant that you have the right to grant, to the Company an irrevocable, perpetual, non-exclusive, transferable, fully paid, worldwide license (with the right to sublicense) to use, copy, publicly perform, publicly display, reformat, translate, excerpt (in whole or in part) and distribute such User Content for any purpose, commercial, advertising, or otherwise, on or in connection with the Site or the promotion thereof, to prepare derivative works of, or incorporate into other works, such User Content, and to grant and authorize sublicenses of the foregoing. You may remove your User Content from the Site at any time. If you choose to remove your User Content, the license granted above will automatically expire, however you acknowledge that the Company may retain archived copies of your User Content. Facebook does not assert any ownership over your User Content; rather, as between us and you, subject to the rights granted to us in these Terms, you retain full ownership of all of your User Content and any intellectual property rights or other proprietary rights associated with your User Content.
Text editing, efficiency, and design.
The Craft of Text Editing — by Craig A. Finseth.
It’s a book on how to design[1] an Emacs clone. Comparisons to vi are made where appropriate.
It’s interesting in that despite being written in 1991 most of what it covers regarding editor specific functionality and concerns is still valid. It’s essentially built around a model-view-controller pattern, long before the patterns book was published. There still hasn’t been much improvement on gap buffers or linked lists and such for modeling the data. User interface design is obviously important, if you expect to have any users. I like timeless shit like that.
A few parts such as chapter seven cover implementation and performance details which aren’t of particular concern today, but I think are still worth the read simply because it’s an interesting look into the sorts of tradeoffs one faces when performance matters (chapter seven itself even says as much, pointing out that for screen management you could just use the prevalent curses library). Thankfully we don’t generally use monochrome text-only terminals over a connection who’s speed is measured in baud anymore, but while people typing faster than the networked terminal could respond on slower connections is no longer a real concern, over time people have gotten lazy and despite multi gigahertz machines with megabit/sec connections we still deal with lag. The lag’s just in other areas now, but it’s still there, especially on the web. Especially when someone’s on dialup, or a cell phone, neither of which are exactly uncommon just as 300 baud connections wern’t uncommon in 1991. I’m thinking specifically of XML’s rampant misuse for non-trivially-sized datasets here as one example where something like JSON or SQLite or Google’s newly released Protocol Buffers would be far more appropriate. Using scripting languages to implement entire applications (as in RoR, Django, etc…) would rank pretty high as well, but at least in those cases it’s the server’s CPU cycles they’re chewing away and not your own computer’s. Unless of course it’s also an AJAX site. Sigh[2].
Writing a new editor, of any sort, from scratch today would simply be retarded. You aren’t going to do anything new, editors have been done to death. It would accomplish nothing but a pointless reinvention of the wheel when all you needed to do was pick a well designed customizable editor, and learn to use it. Emacs, vi, LyX[3], Eclipse, TextMate, there’s shit loads of good editors already. But the fact that the book covers writing a text editor for obsolete equipment seems incidental to me. It’s more about properly designing software, using a text editor as a specific case example. In that regard it will remain valid for many years to come, especially in a world where test-driven development and “agile” development run rampant and naive programmers think “if it works, it’s done”. Not to say that TDD/Agile are bad ideas, I think TDD is awesome. But when they’re mis-used by the lazy, they’re fucking horrible.
—
[1] Design, not program. The book won’t teach you how to code in general, let alone anything usable, save for an appendix covering the minimum of C necessary to, with effort, understand the code examples. It was written for programmers, ergo it contains mostly concepts, not code.
[2] I know there’s going to be some ass chewing over this. Oh well.
[3] Especially handy when writing papers, articles, and such like. While the web has only recently begun to understand the value of separating content from presentation, it’s been around for document editing for eons. If you’re trying to do both at the same time, you’re wasting time. The trick is these two choice quotes from Bram Moolenaar:
“I want to get the work done, I don’t have time to look through the documentation to find some new command”. If you think like this, you will get stuck in the stone age of computing. Some people use Notepad for everything, and then wonder why other people get their work done in half the time…
Don’t overdo it. If you always try to find the perfect command for every little thing you do, your mind will have no time left to think about the work you were actually doing. Just pick out those actions that take more time than necessary, and train the commands until you don’t need to think about it when using them. Then you can concentrate on the text.
Scheme, Forth, and C
I came across an article entitled Forth Versus C, and I couldn’t help but notice how much of it applies directly to Scheme (and mostly Common Lisp) as well, with only a few changes in terminology. Naturally not the parts involving its dual stack nature and such, but that’s far from the majority (and you could bring up a similar topic anyway, just compare the C stack to call/cc instead).
This bit especially caught my attention, especially in light of another recent post:
Q. But how can a non-programmer even read a program, let alone tell whether it is right?
A. Forth syntax can be learnt in an hour or two. If the top level of the program cannot be read and understood by someone who understands the problem domain, it is wrong and you should change it.
I would also say this would apply to *any* Domain Specific Language. Lisps (and apparently Forth) make constructing DSL’s trivially easy, any many of the pros and cons of such are discussed (in relation to C).
Back on topic though, I think this article neatly describes many of the fundamental differences between Lisp and C just as well as Fortran and C. I highly recommend giving it a read.
A new Lisp forum
briancarper.net writes:
Ten days ago I complained that there were no good Lisp equivalents of ruby-forum or perlmonks. It looks like someone went and made one. What good timing.
You can find it here.
And yes, it has a Scheme subforum along with the expected Common Lisp. And Elisp, Clojure, and Arc subforums, as well as a catch-all Other.
A bit odd that it’s a PHP forum for a Lisp community… who knows, maybe it’s running on Roadsend (which is built upon Bigloo Scheme)?
Regardless, it’s about damn time!
Sandvine, Linux, Windows, BSD, and an opinion.
So, Cat in the Red Hat has firewall rulesets for Linux and FreeBSD/Windows for ignoring Sandvine’s forged RST packets.
Now, I’ve always preferred BSD-style firewall configs. But I’ve never seen before such a painfully clear example of *why* I prefer them. If you’re at all familiar with how TCP/IP works, “add drop tcp from any to me 6883 tcpflags rst”, isn’t exactly brain surgery to understand. Now, does “-A INPUT -p tcp –dport 6883 –tcp-flags RST RST -j DROP” really add any relevant information so far as the action you’re trying to perform? Why is RST stated twice?
But really, that’s minor. What’s the real difference here? BSD firewalls use a Domain Specific Language, whereas Linux uses flags to an application. Either way has its pros and cons.
It’s a matter of taste, really. I prefer the one that doesn’t look like line noise, and doesn’t involve an extra process to get to use things like variables (as in the script for Ubuntu/etc…). What if I want to make 6883 a variable, holding a list of subnets? Well, the solution in the linked post was to wrap the rulesets in a shell script. Would iptables support, say, a list of subnets instead of a number as the value of that variable? Well first I’d have to read the documentation for iptables, and either way read up on a separate scripting language (Case 1: It does, and I only need to know how to set a variable in the script language. Case 2: it does not, and I need to also learn how to do a loop in the scripting language). Having a DSL for the rulesets, however, all 2 (or 3) steps above are covered within the same document, within the same section. Indeed, within the very same text. As it explains how to set a variable to multiple values, it can be inferred that rules will accept them, and that explicit looping is unnecessary. Speaking specifically of OpenBSD’s PF here, it’s simply the most elegant firewall system I’ve ever dealt with (and the only one I’d describe as “elegant”, for that matter).
Of course it could be argued that iptables doesn’t make you learn a new language, and that you can just use any scripting language you’re already familiar with (assuming you’re using a *nix because you like *nix, and not just because you hate Windows and can’t afford OSX, you probably know some script language or another). But then I’d say, look at the shear complexity of those flags… you’re still essentially learning a DSL anyway, and if you just really, really want to use your scripting language of choice? The ‘ipfw’ command is available to any OS using IPF as its firewall, and performs the same function as ‘ipfilter’ does for Linux’s firewall. And IPF has been ported to FreeBSD, NetBSD, OpenBSD, SunOS, HP/UX, OpenSolaris, Linux, QNX, OSX, Windows… being the default on at least the first two (maybe Solaris as well, I forget). Who didn’t have to learn what, now?
As an aside, the fact that there’s two configs for what is at its core the same OS, and one script for two entirely different OS’s (and all the others IPF supports, at that) just seems hilariously ironic to me. I would assume that the ipfilter script for Ubuntu/etc… would work on RedHat &co as well, but I’m still laughing.
[update] How odd. The IPTables/IPF postings in Cat in the Red Hat’s blog have disappeared. There’s a story on an IPTables-only version today on Slashdot though.
Why I hate YIM.
A while ago a friend of mine wanted me to access their webcam over Yahoo Instant Messenger (no, not for amateur porn). What the hell ever happened to web-based camera feeds? You know, the “web” in “webcam”? Does anyone here remember JenniCam? Oh well, anyway. I happened to have a Win2K install at the time, Pidgin lacks webcam support, and so I reluctantly installed YIM’s own “official” client.
————————————–
Hate:
————————————–
Forced, entirely unmentioned install of Adobe Flash. Adobe can’t even make a PDF reader not take an agonizing amount of time to load and display even the simplest of PDF’s. Xpdf and gv in Unix start, as far as practical, *instantly*. Foxit does the same for Windows boxen. And the shear size of it! Ugh. You’d think the company that invented the format could produce a decent viewer for it? Apparently not. So why should I want anything else of theirs on my system? Especially given Adobe’s history in recent memory: Adobe Quietly Monitoring Software Use? — Adobe Flash Zero-Day Attack Underway. Yeah. I totally want their shit on my computer. Riiight. To be fair though, at least they’re finally opening up the specs to the Flash format. Not that you couldn’t get them before, but now you’ll be allowed to use them to actually write a player, not just a producer, and projects like Gnash have begun to suck quite a bit less since then. Anyone willing to bet this wasn’t simply in response to Microsoft’s Silverlight? Everyone’s familiar with the phrase Embrace, Extend, and Extinguish. Just sayin’. Regardless, I was trying to install a damn IM client, not a browser plug in. The only plausible excuse I can think of for this is if it’s using Flash for its webcam support… but then why can’t I just point any old flash-capable media player at the stream?
Oh, I know why! Ads in the webcam window, unless it’s fullscreened. Want to multitask? Say, to write to the person who’s webcam you’re viewing to request a different view angle on the problematic component they’re trying to show you? And face it, for many, many users, tits? They know their userbase, and sex sells.
But that’s not the only time you see ads. They’re in your friend’s list. Constantly. Are we ad-ware yet?
During install, must opt out of installing a “toolbar”, and some other browser crap. I want an IM client, not my browser hijacked.
Weather and music crap. A VOIP phone balance telling me I have no minutes either way, which are separately billed, of course. Irrelevant plugins. What the fuck? I even told it during the install that I didn’t give a shit about VOIP. And if I wanted to stream music, or use VOIP, why the hell would it be with an IM client, from Yahoo no less? If they can be turned off, it wasn’t very obvious how to do so. Stop advertising shit I’ll never use. It makes me cringe, it makes me desperate to slam the reset button and get back into BSD, where do one thing, do it well reigns supreme. IM client. I want IM. I have a back yard. I have music. I have a cell phone, kthx?
It starts with windows, without ever having asked to do so. It’s not in the start up folder. Any software which does this is FUCKING EVIL. YIM is not a device driver, the only remotely plausible excuse for this behavior. Again, if this can be corrected, it wasn’t obvious how to do so. IM client, not a device driver.
Yahoo Messenger Insider. What The Fuck? No, I don’t want what you call “news”. I don’t want to see it every goddamn time I log into Yahoo, especially considering how piss fucking slowly it (and YIM itself) loads. I want an IM client, not a goddamn web browser.
Quit checking my fucking email account. I don’t care what’s in it, anyone fucking stupid enough to email me there doesn’t know me well enough for me to give a shit about in the first place. IM client. Not mail client. Why the hell is YIM trying to be the center of my fucking life?
————————————–
Annoyances:
————————————–
GUI. It stands for “Graphical User Interface”, not “Candyland User Interface”. Using it made me feel like I was in preschool.
No tabbed windows. An entire separate window for each person is simply… primitive. Can we get out of the fucking 1990’s, please? Maybe it wouldn’t be so bad if Windows supported tabbed window management, but it doesn’t. Unless you replace the shell, of course.
Webcam only support 1x, 2x, 3x, and fullscreen zoom levels. I can’t remember the last time I saw anything related to the display of media with such limitations. Maybe this is normal in Windows?
————————————–
The aftermath:
————————————–
Bad lightning storm, some bits of kit were fried (along with a tree, a few power line transformers…), the computer I was using is now an NFS server for my laptop, which lacking a (working) HDD is acting as a diskeless client. Because you can do that kind of shit in Unix, without a “pro” or “corporate” version of your OS and yearly Terminal Services licenses. For obvious reasons, I nolonger have a Windows install, and with it no YIM. I’ve also come to find out that Kopete supports the viewing of YIM webcams perfectly well, and have it installed for such cases where it may be nessessary again. I’d just use it exclusively instead of Pidgin, but like I said… I’m a fan of do one thing, do it well, and I don’t appreciate the resources it sucks up loading all of its required support daemons (artsd, dbus, a whole slew of shit under kdeinit…) every time it starts. Granted KDE at least has a nice modular design, I still just don’t want all of that to run a simple IM client, and I’m not interested in the Windows/OSX-cloning desktop-”integration” whoreing behaviors of KDE/Gnome/etc… in general. But that’s for a different post, at a different time.
Data Directed Programming with CLOS
Yeah, it’s been a while. I’ve mostly just been looking for jobs (I hate this town, I really do), working on a couple small projects (the distributed mud, an IRC library, a bot and client which use said library, etc…), lots of yard work type stuff, nothing really to post about.
Having no more luck as usual lately finding a job, I decided to take a break for a couple days and watch the UC Berkeley webcasts for CS61A, their SICP course. After watching the Fri 2/29 video on generic operators it occurred to me that (the general idea of) CLOS seems perhaps to be more like data directed programming than an object orientation system.
While CLOS’s brilliance has never been lost upon me, I was never quite comfortable thinking of it as being OO. I like things such as encapsulation and message passing in an OO system, it just feels more natural to me. Yes, I’ve read Graham’s Why Arc Isn’t Especially Object-Oriented, its response, all the OOP stuff at SchemeWiki, various papers/rants on why it’s a better OO than C++/Java, etc…. CLOS just doesn’t make sense as an OO system to me. I couldn’t quite “get” where CLOS fit in, and so I tended to shy away from its use. But now I have a way of looking at it which makes far more sense to me, and perhaps I’ll wind up grabbing a copy of The Art of the Metaobject Protocol sometime. More importantly, I can think of some *uses* for it now, which I’ll be exploring shortly.
Conversely, I wonder if DDP is a feasible (if, perhaps, naive) method to implement a simplistic CLOS-like system? Oh well, right now most of my interests in OO involve TinyTalk, which sadly is only available for Gambit (and that “other” Scheme-like language). I might try porting it to Snow, at some point.
Anyway, here’s the bit of code that I thought of while watching the video, to give an idea of what the hell I’m on about. It might make more sense if you’re looking at figure 2.2 in section 2.4.3 of SICP as well.
;;; Using a CLOS-ish "OOP" system for Data Directed Programming.
;;; Based on SICP 2.4.3 & a minimal psuedo-CLOS.
;;; matt.a.martin@gmail.com
;;; Released to the public domain.
;;; Fri Jun 20 15:44:54 CDT 2008
;; Meroon or Swindle or ScmObj etc...
(load "clos-ish.scm")
;; The table's colums.
(def-class polar '() '(magnitude angle))
(def-class rectangle '() '(real imag))
;; The table's rows.
(def-generic real-part)
(def-generic imag-part)
(def-generic magnitude)
(def-generic angle)
;; Define real-part-polar &c... here, possibly involving a lexical scope for "encapsulation", or use lambdas instead, etc...
;; Fill in the table.
;; (put 'real-part 'polar real-part-polar)
(def-method (real-part (x polar))
(real-part-polar x))
;; (put 'real-part 'rectangle real-part-rectanglular)
(def-method (real-part (x rectangular))
(real-part-rectangular x))
;; (put 'imag-part 'polar imag-part-polar)
(def-method (imag-part (x polar))
(imag-part-polar x))
;; (put 'imag-part 'rectangular imag-part-rectangular)
(def-method (imag-part (x rectangular))
(imag-part-rectangular x))
;; (put 'magnitude 'polar magnitude-polar)
(def-method (magnitude (x polar))
(magnitude-polar x))
;; (put 'magnitude 'rectangle magnitude-rectangle)
(def-method (magnitude (x rectangular))
(magnitude-rectangular x))
;; (put 'angle 'polar 'angle-polar)
(def-method (angle (x polar))
(angle-polar x))
;; (put 'angle 'rectangle angle-rectangle)
(def-method (angle (x rectangle))
(angle-rectangle x))
Gun control is using both hands.
Came across an interesting page w.r.t. firearms.
” [...] Since I was suspicious of the Handgun Control Inc. statistics that everyone quotes, I decided to do my own research. Here’s what I found. I welcome corrections and reliable sources of more recent statistics.
“Out of 30,708 Americans who died by gunfire in 1998, only 316 were shot in justifiable homicides by private citizens with firearms.” -Handgun Control, Inc.
Let’s break that number down. [...]“
Which subsequently falls entirely apart under even the most basic of analysis. From: http://seanbonner.vox.com/library/post/grigsby-why-im-no-longer-antigun.html
Which reminds me of another short post I had seen before regarding firearm permits and gun crime and shows quite literally, “If guns are outlawed, only outlaws will have guns”:
http://mcgonigle.us/bill/blog/articles/2008/03/21/gun-crime-statistics
Of course mention must also be made of the eternal classic, How to Lie with Statistics (which is still for sale).
Statistics are the new propaganda for everything ranging from politics to science. Think about it. Are there any beliefs you hold that may be based in large part upon misrepresented “statistics”? Ever bothered to research their data yourself?
-
Recent
-
Links
-
Archives
- November 2009 (1)
- October 2009 (1)
- August 2009 (1)
- July 2009 (3)
- April 2009 (2)
- March 2009 (1)
- December 2008 (1)
- November 2008 (1)
- September 2008 (1)
- July 2008 (5)
- June 2008 (8)
- April 2008 (3)
-
Categories
-
RSS
Entries RSS
Comments RSS