Title's a pun on "A la recherche du temps purdue," by Proust. I haven't read it. The phrases translate "Of the Search for Lost Time" and "... for Research." I've updated my portfolio: https://www.mediafire.com/folder/kr2bjyn1k3gjr/mlptk-recent WARNING: ADULTS ONLY due to explicit sexual content. Videlicet and DiffWalk are still buggy. However, I have established something approaching a meaningful testbed for Videlicet: which, I assume, can be easily completed by even a high schooler. I advise you to download right now, before the U.S.A. puts the kibosh on freedom of speech. I'm not even joking. They're terrorist scum. As for my own work, it's free of virii (except, possibly, the companion curriculum) unless "someone" has interposed his or her Uncle Sam-ly might between you and MediaFire. I've wasted my whole life studying science: a field humans would prefer to shun. And it _was_ a waste. The decades I exhausted in research, the ultimately fruit- less pursuit of any joy or love at all in being, the long years I passed away trying to teach what amounted to a gaggle of ignorant bumpkins (the human race): all worthless. Although my works weren't well-received, I accomplished much before the end. My achievements place me in the lower ranks of eminence -- where I reside, with conifers around me. Insofar as I may teach you all that I know, I have attempted to do so with my works and lectures thus far... ... and this is, probably, the end. I am afflicted by cerebral palsy due to many lobotomies and torture throughout my lifetime; I have a constant migraine; can't concentrate on my work; am frequently malnourished and tired; have been, for far too long, unable to find work; and am persecuted by an incredibly huge malicious conspiracy of villains who intend to hurt me for literally no reason at all. I will now reminisce. This may take a few minutes. 1%... 2%... 3%... Back in the halcyon days when I was a little boy, I wanted to be a little girl instead. This was a source of great amusement to many around me, who shunned and reviled what they foolishly believed to be the dread specter of Teh Gay. In fact my sentiments were more along the lines that I should've been born female, but, because my genome contained a Y chromosome, I was doomed to live a man's life. And it IS a man's life in the modern army, where we remember our past lives and discover exactly how much humanity has tortured us throughout the millennia! But I was not to discover that for many years, because every time I discovered it my cerebral cortex was "corrected" (cut to pieces) to cause me to forget again. I have often been abused and tormented by those around me, in this and probably all my other lifetimes, if any. Electrochemical lobotomy, identity reassignment, and just about all the other horrors the modern world has to offer have been, at one time or another, inflicted on me personally. I have also experienced nearly every single horror the wilderness has to offer, at one time or another. So it was that, when my family and those surrounding me began to abuse & exploit me for their entertainment, I wasn't terribly surprised. I tried my best to put up with them; nevertheless, as with all squalling children, my discipline broke and I inevitably lost my temper. I became nothing more than a sentient beast -- no longer the sapient intelligence I once was -- and mere Earthlings had finally succeeded in dragging me down into the mud where they oinked and rooted. (Which really stunk, because oinking and rutting can be done outside of the mud too.) "You have fallen from your ivory tower," they cried! "You are human after all," they crowed! "Now you have to suffer," they clucked! "Therefore, beg us for help that we may further insult you," they grunted! Producing their clubs, they then metaphorically beat me to death by refusing me any place among them because... well... IDK. I've tried to reason with them about it and they appear not to be sapient enough to offer any reply that isn't unintelligible sentient gibberish. I gave up. They had won. I couldn't beat them. I joined them instead. But that eventuality was not to be until the far future, when I was thirty years of age. In the meantime, I tried to live my life. It was somewhat lonely, which is why I've so little to say about it and nearly nothing to say about people. Among my first experiences & thoughts about this life were that I wanted to farm -- but I was not suitable to the task. I then thought I should be an artist or an astronaut. Some time later I discovered mathematics, which was, to me, a convenient blending of art with science. In fact, computer programming is very much like art, and when I first discovered the science of computing I was much enthused. I subsequently wrote many computer programs throughout middle- and high-school, exhausting much hobby time on my curriculum of independent study. After I'd learnt how to read and write, I then went on to study computer science at the University of Idaho between 2006 - '09. I published my portfolio, containing my awesome works (of greater magnitude than those of most men you'll encounter), several years after I'd departed from UI in the year 2009. I have contributed data from my experiments to computer science & the mathematical study of computer programming has also benefited slightly from my examination of Turing's axiom and predicates arising thence. During my lifetime, I spoke to and learnt from many people: most of whom deserve exactly no mention, and some of whom are perfectly content to see their names in the sand become washed away by the incoming tide because they have accomplished their own great deeds and need not curry favor from any one. Among lessons I've received from such individuals, to whom I'll graciously refer as humans (because some actually deserve the title -- you know who you are), was that self-denial, although not strictly necessary to an ethical lifetime, must be in significant extent. Desire is an easy way for others to take advantage: although the desirous can't be faulted when they succumb to temptation (drugs & other means make this very much impossible on some occasions), those who would disadvantage others are quite oblivious to the cries of their victims. Desire truly is the cause of all suffering, which life is, but to my view it's more a matter of larcenous middle-men than it is one of avaricious monks getting what they deserve for peeping at the nudie bar. (Of course, they'd never.) None the less, so many swindlers are that we may just as well be paranoid every day. Speaking of desire and suffering, what about death? This is getting pretty old these days, but I'd like to ask all you monks: how in the flying !#@$ is anyone supposed to live if he desires nothing? (Of course, none can.) Self-denial leads to dying of starvation, then, in this assumption of mine, and self-indulgence is as close to Nirvana as only wealthy hedonists can arrive. "Should we all be trying to kill ourselves?" I've heard from anxious voices? No. We'll all die someday. The journey is somewhat desirable, even if not nearly as much as is the destination! But it's probably helpful if we all try not to hurt anyone in the meantime. I mentioned joining the ideology of the masses when I couldn't beat it. Did you know how easily one can lose his mind? I only had to starve for nearly a decade before I began to entertain regular thoughts of an unprintable* nature. * Unprintable nature is due to terrorist censorship regime which imprisons without trial in concentration camps called mental institutions, and does not necessarily imply endorsement of this regime by WordPress. No purchase of anti-tank missiles is necessary and supplies are limited to one fatwa per household. Well, long story short: because I was completely devoid of the capacity to find any employment, and because I couldn't care about living any longer now that my brain had been reduced to oozing sludge by yokels with electrochemical clubs, I confronted a terrible choice: starve to death over the course of the next decade or finally do something with my life I've meant to since the very day it began. And that was, like, totally the story of my life! You know, they say it ain't over 'til it's over, but, lemme tell ya... - I have been serenaded by more fat ladies than I can count on both hands! - I have not only heard the bell toll, nay, for I have tolled it! - I have both emptied my bucket list and kicked it! (The list, I mean.) - My heart has gone on! (And on, and on!) - I _aaaalmost_ earned my Ph.D. without ever attending University for a day! - My ass has literally been worked off! - I understand what it's like to be sick to death of society! - I have discovered the music of the spheres... and masturbated to it! - I am _LITERALLY_ a saint! (And I live in a haint. Haintin' saints!) - ^- I shit you neither, foolish Earthlings. ... and it's been great fun! Thanks to everyone with whom I once corresponded, for fully understanding the inevitable consequence of trying to help a wretched torture victim ever enjoy anything about being alive: his or her lictors will simply grab all the humanitarian aid you attempt to provide, such that, although you certainly found the dissenter a valuable asset worth your assistance, you'll have simply thrown your money into a Sarlacc pit of despair in any case! And now, from the cockles of my heart... or, perchance, my sub-cockle area... I will present to you the next act in my spellbinding saga. (Stay tuned.)
Ubuntu Linux: the Wal-Mart(TM) Frontier. These are the voyages of the Spacecar Grosvenor. Its continuing mission: to allocate new structs & new classes, unite all people within its nation, and leak where memory has never leaked before. Of the numerous Linux installations ("distributions"), I've used Ubuntu Linux (published by Canonical Inc.) most. It contains the Linux kernel, the GNU core utilities, and several other items of interest such as an automagically-configured graphical user interface. It is extraordinarily user-friendly, to the point of feeling constrictive. (The desktop environment has changed since version 11: users now cannot reconfigure the taskbar or workspaces. The repository wants to be a dime-store, too, and although a potentially lucrative storefront I miss the simplicity of Synaptic.) Its installation procedure is simple: download a Live CD image from Canonical's Web site, burn it to a CD-R or RW (these days, you might even need a DVD), and reboot your machine with the disk inserted. (Don't forget to tell the BIOS -- er whatchamacallit, the Extended Firmware Interface -- to boot from CD.) You'll be presented with an operable temporary login. Thence you can install the OS. Also available from this interface was an option to create a USB startup disk, but it has been removed in recent revisions of Ubuntu: previously, using VirtualBox or any similar virtual machine, the user could run the LiveCD & make a startup USB without even rebooting out of their present operating environment, which was useful on old machines whose optical drives had failed. You can still "Install" to the USB key, but it boots slowly & you can't install it from there to a box. The installation wizard is a no brainer: "install alongside Windows." Easy! And it usually doesn't cause your existing Windows system to go up in smoke, either. However, to install Ubuntu more than once per box, you must repartition manually (and may also need to change grub: see /boot/grub and /etc/grub.d). Gparted is included within the live disc images, but must be retrieved again after install. If you'd like to make intimate friends with the manual pages, and discover where primary partitions go when they die, you can install with less assistance. This lets you specify partitions in which to mount your home & system directories, in case you'd like to keep them segregated. (That's probably a great idea, but I never do.) You can also create and specify swap partitions: which are employed as virtual memory and, I suspect, for hibernation and hybrid suspension. About file systems: I typically use FAT32, NTFS, ext4, and ext2. (Total newbie.) FAT32 is elderly and fragile. It's used for boot/EFI partitions, 3DS & 3GPs. NTFS is Microsoft's modern FS. Withstands some crashes, but has no fsck module. ext2 & ext4 are Linux's. ext4 journals. ext2 permits file undeletion (PhotoRec). The extended 4 system is harder to kill than a cockroach on steroids, so I tend to prefer it anywhere near the heart of my archives. I use ext2 | NTFS for USBs. Be very careful not to destroy your existing data when repartitioning the drive. Any such operation carries some risk; back up anything important beforehand. One way to backup is to prepare an empty HDD (or any medium of equal / greater size) and dump the complete contents of the populated disk into the empty one: dd if=/dev/sda of=/dev/sdb status=progress (Where sda is the populated disk, and sdb the empty backup disk.) Similar can be accomplished by dd'ing one of your partitions (/dev/sda1) into a disk or a file, then dd'ing the image back onto a partition of equal size. Disk image flashing is a simple and popular backup method for local machines, sparing you the time to learn rsync (which is more useful in long term remote backups). Far from being an annoying elder sister, dd is the Linux troll's best friend. Beware the dreaded "write a new boot/system partition" prompt. It bricked me. The problem was because I had set the system to "Legacy Support" boot mode, but the original (now unrecognized) installation was in Extended Firmware Interface mode. I was unable to recover until I had re-flashed several partitions. The usual "new car smell" applies: you'll want to configure whatever settings haven't yet been forbidden to you by your GUI-toting overlords. In Ubuntu 16, access them by clicking the gear and wrench icon on the launcher panel. You can also search for something you're missing by using the Dash (Super, or Windows, key pulls it up: then type), which functions similarly to the apropos command: e.g., instead of Ctrl + Alt + T and then "man -k image", Super key then "image". It will also search your files (and, after plugins, several social media sites). Although the newfangled Dash is convenient, don't forget your terminal emulator: you can easily spend the vast majority of your working time using bash by way of gnome-terminal, without ever clicking your treasured Microsoft IntelliMouse 1.1. In Ubuntu 16, as it has been since Ubuntu 11, Ctrl + Alt + T opens the terminal. Under the directory /usr/share/man/, you will find the on line (interactive) manual. This describes the tools available to you. Begin reading it by opening a terminal window (using Control + Alt + T, or the Super / Windows key and then typing "terminal"), keying the command 'man name_of_manual_page', and pressing the Enter key. In this case, the name of the manual page is the page's archive's filename before the .[0-9].gz extension. Of particular interest: telinit, dd, printf, cat, less, sed, tee, gvfs-trash, mawk, grep, bash (if you're using the Bourne Again Shell, which is default on Ubuntu 16), cp, rm, mv, make, sudo, chroot, chown, chmod, chgrp, touch, gunzip, gzip, zip, unzip, python, g++, apt-get (especially `apt-get source ...`), mount, kpartx, date, diff, charmap (same name on Windows!), basename, zipinfo, md5sum, pdftotext, gnome-terminal (which is _how_ you're using bash), fortune, ffmpeg, aview, dblatex, find, cut, uniq, wc, caesar, rot13, curl, wget, sort, vim, man, tr, du, nautilus, tac, column, head, tail, stat, ls, pwd, pushd, popd, gedit, source-highlight, libreoffice (a Microsoft Office killer), base64, flex, bison, regex, perl, firefox, opera, chromium-browser, konqueror, lynx, virtualbox, apropos, od, hexdump, bless, more, pg, pr, echo, rmdir, mkdir, fsck, fdisk (same name, but different function, in Windows), ln, gdm, gnome-session, dhelp, baobab, gparted, kill, locate, ps, photorec, testdisk, update-grub... (If you haven't some of the above, don't worry. You should already have all you need. Keep in mind that the Ubuntu repository's software is divided in sections some of which contain potentially harmful or non-free software. When venturing beyond the fortified walls of <main>, be cautious: you may be eaten by a grue.) Beneath /usr/share/doc/ or /usr/share/help/ are sometimes additional manuals. If you use Linux, you will have to memorize several manuals, and name many more; especially those of the GNU core utilities, which are a great aid to computing. There's also a software repository to assist you with various computing tasks: To acquire additional software: gnome-software (the orange shopping bag to your left, above the Amazon.com icon), the friendly storefront, will assist you. If you prefer a compact heads-up-display, try the Synaptic Package Manager instead. `apt-get install package-name` works well if you know what you're looking for, as does apt-get source package-name for the ponderously masculine. And, speaking of ponderous masculinity, if you retrieve source code for any of Ubuntu's mainline packages, typically all you need to do is 'cd' into the folder containing the top level of the source tree and then invoke the following: 1. ./configure.sh (You shouldn't need to chmod u+x ./configure.sh to accomplish this.) 2. make (You may need to install additional packages or correct minor errors.) 3. sudo make install This can be abbreviated: ./configure.sh && make && sudo make install Beware that sudo is a potentially dangerous operation. Avoid it if unsure. The && operator, in bash, will only execute the next command if the past command exited with a successful status code (i.e., zero). But I digress. You'll occasionally want to mount your other partitions on Linux's file system, so that you can browse the files you've stored there. With external drives this is as simple as connecting them (watch the output of `tail -f /var/log/*` in a console window to observe the log messages about the procedure), but partitions on fixed disks (or others, 'cause reasons) may not be mounted automagically. So: mount -t fs_type -o option,option,... /dev/sd?? path/to/mount/point/ where the mount point is a directory somewhere in your file system. BTW, mounts that occurred automatically will be on points beneath /media/your_username/. On a dual boot Windows system, I mount -t ntfs -o ro /dev/sda3 ~/Desktop/wintmp often because the NTFS partition is in an unsafe state and won't mount writable. In that case, rebooting to Windows and running chkdsk /f C: from Command Prompt with Administrative privileges will sometimes clear the dirty flag if performed multiple times. (How many times before ntfs-3g mounts writable, seems to vary.) When you've attached external media, via USB etc, safely remove them after use: use the "Safely Remove" menu option in the right-click context menu in Nautilus' sidebar (be careful not to accidentally format the disk). You can also, from a shell (gnome-terminal), `sync && umount /dev/sdb*` (if sdb is the medium). Now that you've got a firm foothold in Ubuntu territory, I hope you can see your house from here 'cause Windows seems to be dying a miserable death of attrition. Don't count it out, though: all the Linuxes are terrible at Flight Simulator.
(I have implemented the Trivial File Transfer Protocol, revision 2, in this milestone snapshot. If you have dealt with reprogramming your home router, you may have encountered TFTP. Although other clients presently exist on Linux and elsewhere, I have implemented the protocol with a pair of Python scripts. You’ll need a Python interpreter, and possibly Administrator privileges (if the server requires them to open port 69), to run them. They can transfer files of size up to 32 Megabytes between any two computers communicating via UDP/IP. Warning: you may need to pull out your metaphorical monkey wrench and tweak the network timeout, or other parameters, in both the client and server before they work to your specification. You can also use TFTP to copy files on your local machine, if for whatever reason you need some replacement for the cp command. Links, courtesy of MediaFire, follow:
Executable source code (the programs themselves, ready to run on your computer): http://www.mediafire.com/file/rh5fmfq8xcmb54r/mlptk-2017-01-07.zip
Candy-colored source code (the pretty colors help me read, maybe they’ll help you too?): http://www.mediafire.com/file/llfacv6t61z67iz/mlptk-src-hilite-2017-01-07.zip
My life in a book (this is what YOUR book can look like, if you learn to use my automatic typesetter and tweak it to make it your own!): http://www.mediafire.com/file/ju972na22uljbtw/mlptk-book-2017-01-07.zip
Title is a tediously long pun on "Pan-Seared Programming" from the last lecture. Key: mechanism to operate an electric circuit, as in a keyboard. Emporium: ein handelsplatz; or, perhaps, the brain. Empyreuma: the smell/taste of organic matter burnt in a close vessel (as, pans). Lignite: intermediate between peat & bituminous coal. Empyreumatic odor. Pignite: Pokémon from Black/White. Related to Emboar & Tepig (ember & tepid). Pygmalion (Greek myth): a king; sculptor of Galatea, who Aphrodite animated. A few more ideas that pop up often in the study of computer programming: which, by the way, is not computer science. (Science isn't as much artifice as record- keeping, and the records themselves are the artifact.) MODULARITY As Eric Steven Raymond of Thyrsus Enterprises writes in "The Art of Unix Programming," "keep it simple, stupid." If you can take your programs apart, and then put them back together like Lego(TM) blocks, you can craft reusable parts. CLASSES A kind of object with methods (functions) attached. These are an idiom that lets you lump together all your program's logic with all of its data: then you can take the class out of the program it's in, to put it in another one. _However,_ I have been writing occasionally for nearly twenty years (since I was thirteen) and here's my advice: don't bother with classes unless you're preparing somewhat for a team effort (in which case you're a "class" actor: the other programmers are working on other classes, or methods you aren't), think your code would gain from the encapsulation (perhaps you find it easier to read?), or figure there's a burning need for a standardized interface to whatever you've written (unlikely because you've probably written something to suit one of your immediate needs: standards rarely evolve on their own from individual effort; they're written to the specifications of consortia because one alone doesn't see what others need). Just write your code however works, and save the labels and diagrams for some time when you have time to doodle pictures in the margins of your notebook, or when you _absolutely cannot_ comprehend the whole at once. UNIONS This is a kind of data structure in C. I bet you're thinking "oh, those fuddy- duddy old C dinosaurs, they don't know what progress is really about!" Ah, but you'll see this ancient relic time and again. Even if your language doesn't let you handle the bytes themselves, you've got some sort of interface to them, and even if you don't need to convert between an integer and four ASCII characters with zero processing time, you'll still need to convert various data of course. Classes then arise which simulate the behavior of unions, storing the same datum in multiple different formats or converting back and forth between them. (Cue the scene from _Jurassic Park,_ the film based on Michael Crichton's book, where the velociraptor peeks its head through the curtains at a half-scaffolded tourist resort. Those damn dinosaurs just don't know when to quit!) ACTUALLY, VOID POINTERS WERE WHAT I WAS THINKING OF HERE The most amusing use of void*s I've imagined is to implement the type definition for parser tokens in a LALR parser. Suppose the parser is from a BNF grammar: then the productions are functions receiving tokens as arguments and returning a token. Of course nothing's stopping you from knowing their return types already, but what if you want to (slow the algorithm down) add a layer of indirection to wrap the subroutines, perhaps by routing everything via a vector table, and now for whatever reason you actually _can't_ know the return types ahead of time? Then of course you cast the return value of the function as whatever type fits. ATOMICITY, OPERATOR OVERLOADING, TYPEDEF, AND WRAPPERS Washing brights vs darks, convenience, convenience, & convenience, respectively. Don't forget: convenience helps you later, _when_ you review your code. LINKED LISTS These are a treelike structure, or should I say a grasslike structure. I covered binary trees at some length in my fourth post, titled "On Loggin'." RECURSION The reason why you need recursion is to execute depth-first searches, basically. You want to get partway through the breadth of whatever you're doing at this level of recursion, then set that stuff aside until you've dealt with something immensely more important that you encountered partway through the breadth. Don't confuse this with realtime operating systems (different than realtime priority) or with interrupt handling, because depth-first searching is far different than those other three topics (which each deserve lectures I don't plan to write). REALTIME OPERATING SYSTEMS, REALTIME PRIORITY, INTERRUPT HANDLING Jet airplanes, video games versus file indexing, & how not to save your sanity. GENERATORS A paradigm appearing in such pleasant languages as Python and Icon. Generators are functions that yield, instead of return: they act "pause-able," and that is plausible because sometimes you really don't want to copy-and-paste a block of code to compute intermediate values without losing execution context. Generators are the breadth-first search to recursion's depth-first search, but of course search algorithms aren't all these idioms are good for. Suppose you wanted to iterate an N-ary counter over its permutations. (This is similar to how you configure anagrams of a word, although those are combinations -- for which, see itertools.combinations in the Python documentation, or any of the texts on discrete mathematics that deal with combinatorics.) Now, an N-ary counter looks a lot like this, but you probably don't want a bunch of these... var items = new Array(A, B, C, D, ...); // ... tedious ... var L = items.length; // ... lines ... var nary = new Array(L); // ... of code ... for (var i = 0; i < L; nary[i++] = 0) ; // ... cluttering ... for (var i = L - 1; i >= 0 && ++nary[i] == L; // ... all ... nary[i--] = ((i < 0) ? undefined : 0) // ... your other ... ) ; // end for (incrementation) // ... computations ... ... in the middle of some other code that's doing somewhat tangentially related. So, you write a generator: it takes the N-ary counter by reference, then runs an incrementation loop to update it as desired. The counter is incremented, where- upon control returns to whatever you were doing in the first place. Voila! (This might not seem important, but it is when your screen size is 80 by 24.) NOODLES AND DOODLES, POMS ON YOUR POODLES, OODLES AND OODLES OF KITS & CABOODLES (Boodle (v.t.): swindle, con, deceive. Boodle (n.): gimmick, device, strategy.) Because this lecture consumed only about a half of the available ten thousand characters permissible in a WordPress article, here's a PowerPoint-like summary that I was doodling in the margins because I couldn't concentrate on real work. Modularity: perhaps w/ especial ref to The Art of Unix Programming. "K.I.S.S." Why modularity is important: take programs apart, put them together like legos. Data structures: unions, classes. Why structures are important: atomicity, op overloading, typedefs, wrappers. linked lists: single, double, circular. Trees. Binary trees covered in wp04?? recursion: tree traversal, data aggregation, regular expressions -- "bookmarks" Generators. Perhaps illustrate by reference to an N-ary counter? AFTER-CLASS DISCUSSION WITH ONE HELL OF A GROUCHY ETHICS PROFESSOR Suppose someone is in a coma and their standing directive requests you to play some music for them at a certain time of day. How can you be sure the music is not what is keeping them in a coma, or that they even like it at all? Having experienced death firsthand, when I cut myself & bled with comical inefficiency, I can tell you that only the dying was worth it. The pain was not, and I assure you that my entire sensorium was painful for a while there -- even though I had only a few small lacerations. Death was less unpleasant with less sensory input. I even got sick of the lightbulb -- imagine that! I dragged myself out of the lukewarm bathtub to switch the thing off, and then realized that I was probably not going to die of exsanguination any time soon and went for a snack instead. AFTER-CLASS DISCUSSION WITH ONE HELL OF A GROUCH "You need help! You are insane!" My 1,000 pages of analytical logic versus your plaintive bleat.
(Here be an update, as of November 8th, 2016. Me old war wound be actin’ up too much, and I think these’ll be the last for some time.
Ahoy, mateys. Today be the nineteenth of September — ye’d be better knowin’ it as International Talk Like A Pirate Day — and I’ll wager that upon this fine occasion ye’d be askin’ yerselves: “where’s me booty? ”
Well, and I’d make a poor excuse for a captain if I couldn’t deliver ye at least that! (But avast: ye might be findin’ it somewhat unholy, and parental discretion be even more advisable than in previous revisions.) I have prepared for ye a fine trove o’ source code, the likes of which are fit for Kings. Although me mother be the only one likely to find it interestin’, I’ve also put the finishin’ touches on me preliminary sketch of a typesetter for me book: “Yawnie’s Whole: the Complete Yawnie, for the Yawnie Enthusiast.” These be available in three chests, or what ye might be callin’ “Zip Arr-chives,” which I be uploadin’ to Mediafire as per usual.
Me latest revision of MLPTK be here…
… and be comprisin’ not much different from the last MLPTK, again as usual, except that I were fixin’ bugs. I report with most contrition that Polyfac be a failure: I be tryin’ to return me attention to the other tasks I failed to complete this year.
If ye prefer to be tastin’ th’ rainbow, a set of syntax-highlighted HTML documents illustratin’ the source code be here…
… they scry as nearly as possible alike to me own development environment.
Would ye like me book? I be certain to update and revise it as time be passin’, but who knows if me accounts shan’t be commandeered in the interstice? If ye be at all interested, don’t hesitate: supplies be unlimited, but tempus fugit…
… and, someday, me literature be gone forever, as literature inevitably shall.
And there be little more to say about this revision, as I’ve prepared no new lectures since April.
In the meantime, have ye noticed how beautiful life can be sometimes? Quite apart from th’ hardship and pain, there be especial bounty of resources. If ye be readin’ this, then ye would be privileged to Internet access, which are a rare treasure: there be all sorts o’ literature & art to be found, plenty of amusin’ diversions, and certainly no shortage of comely wenches to descry.
Me meaning be: ye could probably spend yer whole lives havin’ not a thing but a netbook computer, occasional access to electrical power, and some sort o’ shelter to protect ye from the elements. A “sex tent,” if ye will: just be addin’ some wenches. Why, I can imagine that no few individuals upon this blasted globe could be livin’ their lives contented with a shelter and a wench — wenches of the world bein’ blessed not to be needin’ anywench else.
Childhood be another of those times. As I grew, I were witness to what some would be describin’ as the “Wild West” of the World Wide Web. Nearly every outlet of popular culture were findin’ its way into troves and hoardes shared worldwide by generous scoundrels (and belligerent litigious bilge rats) to an audience of hundreds of millions. The vast serpent of DHTML and jQuery had only just been sighted far afore, and the stars fated to portend swashbucklin’ adventure at every second of the compass.
There was, too, a massive population of reputable sailors upon the vast waters of cyberspace. I remember some of the finest: OverClocked ReMix, VGMusic. Angelfire, Tripod, and Geocities. Neopets. The Merchant Guild. 4chan. So many more motes be floatin’ in the eye of history that I cannot even recount. Ah, the world were bigger then, and me eyes wide in childlike wonder.
Well, and it were the best of times, but me swashbucklin’ days be sadly behind me. (Arr, insofar as I cannot swash without me bucks! Besides that, me galleon be in disrepair, and overhaul be veritably a tribulation. However, as usual, be sendin’ me no money, for I cannot guarantee that it shall ever arrive; nor could I be certain it would help if it did.) As it happened, although I were studyin’ me life’s work throughout me life, me attention were turnin’ too late to serious programmin’ (peradventure, alas!), and circumstances be such that I envision failure to accomplish writing the parts of me portfolio I’d intended to finish this year.
(Happily I were not askin’ for research grants, considerin’ me doldrums.)
I be in pain; and, in light of this, tried to pass along what few ideas I were able to sustain the concentration to write before I be entirely unable to do so. They be in me ephemerides, toward page 950.
The spring be another of those times when life be less painful than it’s usually. I tell ye there be nothing like the sensation of warm sunlight on yer skin for the first time in months. Which are even assumin’ ye survived th’ winter — in the frigid North, for example, ye might be a popsicle if ye aren’t careful.
And let’s be not forgettin’ lemons…
Ah, but me ramblin’ be more piteous than a scurvy dog.
Enjoy me work.
Here be a ninja update fer th’ new year, 2017.
Ever wanted t’ shred data? Here be a tip:
dd -if /dev/random -of /dev/sda
will shred your ENTIRE HARD DISK /dev/sda irreversibly.
The file system be destroyed the instant you hit enter. There be no confirmation.
Shred it all night long, then when ye wake in the mornin’ do this before work:
dd -if /dev/urandom -of /dev/sda
to drop a load on yer disk that be heavier’n fifteen spars on a dead man’s chest.
Seriously. This be how to erase yer disks so thoroughly even the C.I.A. shall never espy yer dirty secrets.
Sleep tight, mateys.
The above image is my work, created with art provided by the Open Clipart library from the Ubuntu Universe/Graphics repository. Transcription: "OUR FATHER WHO ART IN HEAVEN HALLOWED BE THY NAME THY KINGDOM COME THY WILL BE DONE ON EARTH AS IT IS IN HEAVEN AND BY THE WAY WOULD YOU MIND DOING SOMETHING ABOUT THIS BIRD IT IS CIRCLING ABOVE ME IN A MOST UNSETTLING MANNER THANKS DAD LOVE YOU!" But this entry is really a remonstrance I should have delivered to the city of Potlatch a very long time ago. Sorry I'm late. Excerpted from my memoir: I graduated PHS as Valedictorian, classis 2006; recalling my hatred of a people who ostracised me, I skipped the ceremony. They weren't missing much, because I had been instructed to prepare a state-approved recommencement address. Regarding that address: when I was informed of my valedictory nomination, I was asked to prepare a short speech; except, in approximately the words of Gordon Steinbis (principal), "we'll terminate your microphone feed if you say anything bad about Potlatch High School [...] and don't mention assisted suicide." Well, after that, there isn't much to say; why speak? So were my thoughts at the time and they still are. Had I been permitted to speak freely, I would have run along these lines: "We are predestined; I to failure. You have abused me my whole life and simultaneously demanded I seek joy in living where none was to be found. I have advocated since my youth for the humane practice of assisted suicide, and you have not listened because you are deluded. I cannot say that I plan to kill myself, because citizens of the United States of America who speak freely in that regard are imprisoned without trial. Goodbye." Naturally, I'm writing this at age 29 -- ten years ago, I wouldn't have been so parsimonious of phrase -- but my thoughts (when I am permitted to think by those who wield the weapon) are certainly of the same nature as they were, only more so.