Results matching “scheme” from Ye Olde Rad Blog III

Install a Wiki? (DokuWiki)

|

Made some minor style-tweaks to the home page. The text you're reading now, for example, is slightly less-bright (easier on the eyes), while the links are a little brighter .. than they were before. (Might have to refresh your browser to load the revised style sheet.)

WikipediaVisited-links in the sidebars are now slightly less-bright (grayer) .. than un-visited links. Used to be no diff.

Been studying more CSS. Becoming very comfortable tweaking styles. Fine-tuning. Easier for me to determine what I don't like, than what I do.

Oh, the date is also slightly brighter (whiter) .. than the rest of the text, and has a "text-transform" property applied to make it » UPPERCASE .. via a span tag with 'date' class attribute.

Upgraded the Rad blog to the newest version (4.32), which was released a few days ago. Way easier, now that I have Linux shell skillz & a VPS. Five minutes instead of 2 hours.

Movable Type v5.0 will be coming out soon. Currently at » beta-3. I normally install NEW versions of whole-number upgrades, rather than upgrading previous installations. Keeps the number of blog-entries down for a given installation.

Currently have 167 entries on MT 4.x. Lots of entries tend to make the blog respond sluggishly (when rebuilding). That would be » Ye Olde Rad Blog IV. (Started with v2.63 .. in May 2003.)

Considering installing a wiki (software). Can't hurt. Might help. Would be a place (beside the forum) where folks could post & reference their own info/content. Might be a good learning experience, too.

I have no experience with wiki's .. other than searching Wikipedia. Not sure which one would be best. So many choices. Ideas? Saw this comparison. Nigel once recommended Dokuwiki (I think) as a well-coded (PHP-based) piece of software.

The Dokuwiki download is 1.7 MB. (Compare that with the Movable Type download, which is 4.6 MB.) An über comparison of all Wiki's and their features is posted » HERE. Meanwhile Wikipedia, the mother-of-all wiki's, uses MediaWiki, which is both free & Open Source.

Programming Feels Like Coming Home

|

It's possible to learn to drive a car without ever understanding how one works. (e.g. » what the pistons do, the crankshaft, transmission, differential, etc.) And many drivers do just that. No problem. But I like to know how things work. This includes my study of Programming.

Diamond Head, WaikikiMy degree-path specified one "sciencey" Computer Science class. So naturally, that's all I took.

The first half covered the various components of a computer and their functions (» the processor, memory, hard drive, etc.). The second delved into programming (with Pascal) on a rudimentary level.

Our instructor seemed more interested in the girls in the class than teaching. In fact, the hottie (red-head) who I studied with in the hours immediately prior to the Final exam, told me she'd spent the night at his place. (Her hair was messed & she referred to him by his first name.)

Based on the material she suggested we review, I did not doubt her claim. Because it quickly became clear, soon as the Final was handed out, that her suggestions mirrored the material contained therein. (Much of this material was never covered in class.)

I basically got an 'A' in that course cuz that girl spent the night at the instructor's place .. cuz many of those questions I'd never seen before. But that's ancient history now.

I have however, been delving into HOW programming languages work (crankshaft, pistons). I forget how I stumbled upon it, but there's an online version of this book: Programming Language Pragmatics .. located » HERE (Google books).

Actually, the online version is 2nd edition (2006), while the one for sale at Amazon is the 3rd (2009). But I doubt there's much difference .. that would matter to a rookie like me, anyway.

One of the concepts that keeps popping up in my study of Programming languages is » expressiveness. Loosely defined, expressiveness is » the ability to say a lot with a little (my own definition).

ShakespeareWhere Programming languages are concerned, expressiveness might be the ability to DO a lot with a little.

Related terms » Meaningful. Concise. Simplicity (as it applies to the elimination of unnecessary complexity). Elegance. Efficiency.

No doubt, you know an 'expressive' person or two. But sheer volume of words does not an expressive person make.

Some people can talk for hours without really saying anything (.. at least not anything meaningful). While others can speak volumes with a simple glance.

In programming, the notion of expressiveness is often touted as a plus, associated with "higher level" languages. I could be wrong, but the idea I get is » the more expressive (a language is) the better. Notice the statement that begins the second paragraph here:

"My contention is that expressive power is the absolutely most important property to focus on right now."

This from a developer with an admitted "unhealthy interest in programming languages," who's currently developing his own. Since the learning process often involves relating new information to things we already know, that's what I've been doing.

As chance would have it, I was watching Hamlet last night (the Kenneth Branagh version). Didn't take long to realize much of what was being said wasn't getting thru. ( "Say what?" )

So I enabled English subtitles and started vigorously working the pause button .. in order to read & digest the Elizabethan chatter. Much better.

Saying Much with Little

Note how the phrase » 'To be or not to be' is exceedingly simple. Yet it carries much meaning beneath the surface (.. especially that 'not-to-be' part).

The ability to "say much with few words" is a primary reason cited when discussing Shakespeare's literary prowess. In other words, it's not just what he says, but the way in which he says it .. that makes his writing so .. descriptive, enchanting.

Microsoft Fears Linux

|

I'm reluctant to republish the content of others (as so many sites already do), but .. I found it interesting & noteworthy that » Microsoft has acknowledged Linux as a threat .. especially since I spent so many hours in Linux these past few weeks (learning the Unix shell)

Linux PenguinCopy-n-paste snippet (minor Rad-editing for brevity):

"Microsoft acknowledges Linux as the first viable competitor to its Windows client business, due to the use of Linux on netbooks, which are rising in prominence as an alternative to full-sized notebooks.

Microsoft cited Red Hat and Canonical -- the latter of which maintains the Ubuntu Linux distribution -- as competitors to its client business, which includes the desktop version of its Windows OS." </snippet>

Notice how the article said » DESKTOP, and not server. Linux has long been a dominant force in the server market (.. if not the dominant force).

It's difficult to describe why Linux is so cool .. why using it feels so fresh & clean. But I think it has something to do with the good intentions .. that come from thousands of talented programmers donating their time & expertise .. to bring you (for free) an operating system they obviously believe in.

I might be imagining it, but I think you can actually feel these good intentions (while using Linux). Can you feel the difference (in intentions) between someone who genuinely loves you, and someone who is paid to love you?

Moreover, I feel our economy has a lot to do with the Linux threat to the Microsoft desktop. No matter how compelling the product, basic economics suggest it's hard to compete with free. (Which Windows is not.) And in these troubled economic times, free means more than it used to.

I'm learning programming. Not a specific language, such as Javascript or Ruby. Rather, the concepts of programming .. that can be applied to ALL programming languages.

[ By the way, I've completed my study of the Unix shell. You can retrace my CLI steps » here. ]

Structure & Interpretation of Computer ProgramsMy particular style of learning emphasizes nailing down foundational concepts .. those primarily presented at the beginning of a course.

While this approach can be frustrating initially, because it slows progress at the outset, while foundational concepts are digested on an emotional level .. it allows me to crank thru with confidence (at an accelerated pace) once the foundation is set. [ See note #1 for an example. ]

Like any good geek, I've previously sought entrée into the world of Programming, but always settled for a cursory review of specific languages. (Most recently » Javascript.) Never found that global entrée I was seeking .. until recently.

The approach that is working for me .. is a combination of studying the HtDP text and watching the SICP videos (found » here).

  • SICP = Structure & Interpretation of Computer Programs (based on Lisp)
  • HtDP = How to Design Programs (uses Scheme)
  • Both languages are similar. So the two courses complement one another nicely.
  • The SICP videos and the HtDP text are freely available online, along with the SICP text.

The SICP course is legendary in the world of Computer Science. More people refer to it as the single best course on Programming .. than any other.

It was designed and presented by two professors at MIT (.. arguably the world's finest institution of geekdom). Moreover, it was recorded and the videos posted online, where they remain available for download & viewing (free).

I admit, I need to view each video multiple times before feeling comfortable enough to move on to the next lesson. But I *am* getting it .. and enjoying it.

The HtDP course is a simplified version based on the concepts presented in the SICP course.

Neither the SICP videos by themselves, nor the HtDP text alone works for me. But .. combining both courses really makes things click. I get it. I see what's happening .. how things work. It makes sense. And I look forward to learning more.

Quest to Learn the UNIX Shell (bash)

|

Been learning the UNIX Shell, which uses a command-line interface (from a terminal) .. something I've wanted to do ever since we upgraded to the Virtual Private Server last year. (Linux is a variant of UNIX.)

Linux shell terminalEven basic knowledge of (how to use) the Linux command line makes life administering a VPS much easier.

The Shell is simply a program that allows users (like me) to interact with the operating system (sometimes termed the 'kernel'). It can be conceived of as a 'layer' sitting between you and the operating system .. hence the term » shell.

Several shells exist, but nearly all Linux distributions come with » bash (Bourne Again Shell) .. cuz it's free, powerful and easy to use.

On my laptop I have installed a copy of Ubuntu Linux that I use to learn the shell (practice). Before jumping into learning the Shell, I figured this was a good time to upgrade my 'installation' of Ubuntu .. to the latest release (» v9.04, 'Jaunty Jackalope').

So I downloaded » this virtual machine (1.1 gig, using uTorrent). Had trouble getting it connected to the Internet, but that was due to my own inexperience with VMware, and not due to any short-comings of Ubuntu.

Anyway, I am really digging learning the Shell, cuz it's something I can use right away. For example, yesterday I upgraded the blogging software we use here at Radified (Movable Type) to the latest version (» 4.26). Something that used to take hours to accomplish was done in minutes .. (using a series of Shell commands). Beautiful.

Cool dream last night. Ultra-realistic & vivid. » In a cozy cabin set up in the mountains, I'm cooking a batch of my world-famous puttanesca .. when shortly before sunset I hear this heavenly singing. So I set down my big wooden spoon and go investigate.

PavarottiOpening the front door, I see (with snow-capped mountains framing the distant backdrop) Pavarotti and another fellow walking up the dirt path. [ No, I don't own any Pavarotti CDs. ]

They're singing (with great passion) the most beautiful songs I've ever heard (Italian opera). Indescribably gorgeous. (Think » sex for your ears.)

Pavarotti has a huge smile on his face. Beaming. He seems like the happiest man in the world. Both men are wearing hiking clothes.

With hand outstretched, Pavarotti calls out, "My friend, forgive the intrusion, but we've been following this wonderful aroma for many kilometers."

I tell him what I'm fixing and Pavarotti responds with a proposition, "If you will kindly fix us each a small plate, we will sing for you *two* songs while you cook, another two while we eat, and two more after dinner." (each time emphasizing the word » two)

While I ponder his offer, Pavarotti saunters up and says in my ear (quite matter-of-factly), "Many think I'm the greatest singer ever, but actually my cousin here is much better. He just couldn't tolerate the music industry and its shenanigans."

Other than how beautiful the singing sounds, the most poignant part of my dream is how happy Pavarotti seems. Downright radiant, he never stops smiling.

Of course, I invite them in. While Pavarotti warms himself by the fire, I ask his cousin, "Is he always this happy?" "Yes," he answers, "I think there's something wrong with him." (which makes me smile)

Frontline is airing a special tomorrow (9PM, May 12th) titled » The Madoff Affair. Should be an eye-opener.

A statement Madoff made in court following his arrest caught my attention cuz it reflected my impressions of the Wall Street culture .. (after I watched » Inside the Meltdown) .. that it seems like everything on Wall Street is about turning a profit .. at any cost .. regardless of the suffering & misery their actions might bring to countless Americans. And that enough is never enough.

Bernie MadoffHow can $50 billion not be enough? That's billion with a 'B' .. as in » $50,000,000,000.00 .. enough to turn 50,000 paupers into millionaires .. 25,000 hobos into multi-millionaires. Feed the hungry (steak & lobster for a lifetime).

Madoff's comments confirmed my impressions .. (nearly word-for-word) .. tho this mindset is difficult to understand, cuz life is short and (very obviously) no one gets out of here alive.

And I dare say he's not the only one. Madoff is merely the poster boy for Wall Street greed.

What kind of dysfunction drives such a culture? Hard to believe that greed alone is responsible .. and there are not more serious psychological defects at play.

"Pick the professor, not the course" is sage advice for those heading off to college. With that in mind, I've discovered an exceptional instructor for folks wishing to master some of the programs contained in Adobe's Creative Suite.

Deke McClelland | Boulder, ColoradoSeems like I'm always up for learning some new digital tricks and » Deke is da-best instructor of Adobe programs I've found yet .. where the term best means easiest to learn from.

He specializes in Photoshop, but also teaches Illustrator & InDesign. It's clear he has been teaching and refining these courses over many years.

Of course, we all have different learning styles, so we respond differently to different types of instructors. But I feel comfortable recommending any of the titles he has authored, especially those contained in his trademark series » One-on-One.

I like how he comes across as someone who is more concerned that students learn the program and its accompanying toolset than trying to impress you with their level of knowledge. I most like that he obviously has the technolust. His enthusiasm is contagious.

His courses nicely balance a folksy demeanor (he lives in Boulder) with technical jargon. Very personable. Doesn't seem to take himself too seriously.

For example, he has no problem referring to Illustrator's Selection and Direct Selection tools as » "the black-arrow tool" and » "the white-arrow tool." Little touches like this help demystify Adobe's most sophisticated programs.

Wrote my first program today. Instructions for converting Fahrenheit to Celsius. Simple, but more challenging than I expected .. considering I can do the conversion in my head with ease (TCel = TFahr-32 x 5/9).

Felix the Cat & his Bag of Tricks

Here it be » (define (TFahr>TCel f) (* 5 (/ (- f 32) 9))). [We all have to start somewhere.]

Kinda glad they password-protect the solutions page. Forced me to figure it out on my own. (Cuz if they hadn't, I definitely would've peeked.)

I am enjoying learning Programming .. something that was missing from my repertoire of techno-skills (digital bag of tricks). I mean, how many geeks do you know who can't program? I just never had a compelling reason to learn.

My only frustration comes from not being able to assimilate the info faster. There's a scene in the Matrix .. where Neo & Trinity are stranded on a rooftop. Spying a chopper, Neo asks, "Can you fly that thing?"

"Not yet," she replies before whipping out her cell and calling Tank (who's sitting back at the Control Panel). "Tank, I need a program for a V-212 helicopter. Hurry!"

Her eyelids flicker for a moment before popping open. "Let's go!" she says, running toward the chopper with her newly upgraded skill-set.

As mentioned last week, here's a brief ('Radified') intro to the introductory course on Programming I've been researching » How to Design Programs (HtDP).

This entry is distilled from info contained in the Preface. If a real programmer could check my phrasing for accuracy (to ensure no glaring errors) I'd appreciate it .. cuz I'm not yet familiar with all the terminology. See here:

How to Design Programs | An Introductory Course on Programming

Everybody should learn to program! Programming teaches a variety of skills (e.g. » critical reading, analytical thinking, creative synthesis, & attention-to-detail) important to many professions.

Educators should therefore give Programming the same priority as Math or English. [ RADical statement, no? ]

The HtDP course de-emphasizes the details of programming languages in order to focus on » the design process.

Two things make this course different from other introductory courses on Programming:

  1. Explicit design guidelines (comprising a 6-step process that begins with Analyzing-the-problem and concludes with Identifying-errors-thru-testing).
  2. The DrScheme programming environment (which is able to grow with a student as they master more material).

Programming boils-down to two essential concepts:

  1. Relating one quantity to another
  2. Evaluating a relationship by substituting values for names

The Scheme programming language allows students to focus on these two basic aspects, making it the natural choice for beginners. Students are therefore able to develop complete programs during their very first session.

"Computer Science is not a science," proclaims a professor at MIT, drawing an X over the word. He's introducing an introductory course on Programming called » 'Structure & Interpretation of Computer Programs' .. aka SICP. (Watch the video yourself » HERE.)

The Wizard Book » Structure & Interpretation of Computer Programs, by Abelson & Sussman

Less than a minute into the lecture and already I'm curious. "If it's not a science," I wonder, "then...??"

"It might be engineering," he continues, as if reading my mind, "Or it might be art. We'll actually see that computer so-called 'science' actually has a lot in common with magic."

I smile at this point, having gained insight into the graphic displayed on the book's cover, understanding why some refer to it as » The Wizard Book.

Then he draws an X over the word 'Computer' and says, "It's not really about computers either." (Okay, now I'm really interested.)

"The reason we think Computer Science is about computers," he continues, "is for the same reason the ancient Egyptians thought geometry was about surveying instruments ..

.. » because, when a particular field is just getting started, and you don't really understand it very well, it's easy to confuse what you're doing with the tools you use."

So-called Computer Science (he explains) is really about formalizing intuitions & knowledge about » Process (a word he writes on the board .. he's a lefty, btw). He then clarifies himself by saying, "How to *do* things."

Find recent content on the main index or look in the archives to find all content.