Results matching “unix” from Ye Olde Rad Blog III

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.

Learning the Unix Shell (bash)

|

Last month I mentioned a quest to learn the Unix shell .. specifically » bash (the Bourne Again SHell). Almost done. Currently ~80% complete .. enough to feel reasonably confident at a terminal.

Linux shell terminalThe 'shell' is simply a program that lets you interact with the operating system (actually the kernel, to be more precise) ..

.. by taking your (text-based) commands and passing them on to the kernel. In my case, this kernel happens to be » Linux (which is but one variant of Unix).

The term 'shell' comes from the notion that this software acts like a 'layer' that sits between you and the operating system .. similar to the way an egg-shell sits between you and your hard-boiled breakfast.

The shell can be intimidating, cuz it uses a (text-based) command-line interface (CLI). No intuitive GUI to help you along. You either know the commands or you don't.

Didn't take me long to realize the CLI was where Linux's true power resides. When we upgraded the site, for example, to a Virtual Private Server, the support-techs who helped me with the move all used the command-line to work their mojo.

Most Linux distros do indeed come with an excellent GUI (usually either KDE or Gnome). But (but!) the Rad VPS does not. Which is why it became necessary to learn the Unix shell. (Something I tried to avoid.)

The Rad VPS is based on CentOS (Community ENTerprise Operating System), an off-shoot of Red Hat, which is probably the most popular of all enterprise Linux distros (.. and now a new member of the S&P 500, a development you may find telling).

GUIs (such as KDE or Gnome) require lots of memory/RAM. My laptop, for example, has 2-gigs, but the Rad VPS comes with an allotment of only 512-MB (.. upgraded from 384 just today).

With that limited amount, I need to run not only all the standard web applications .. such as Apache (web server), MySQL (database), Perl (scripting language), etc. but also cPanel/WHM.

So there's not much RAM left to run a GUI. [ Don't think I didn't inquire about installing a GUI. =) ]

Bottom line » if you wanna administer your own VPS, you need to learn the Shell. So that's what I'm doing. (Of course, there have been distractions, making progress uneven.)

Rad Intro to Calculus

|

Today is the 40th anniversary of the first manned lunar landing (1969) .. a historic event for techies .. cuz it was techies who put us there. And techies used » calculus to put a man on the moon (some 240,000 miles away).

MoonAt the heart of calculus lies the notion of » limits (a concept I'm quite familiar with, unfortunately).

Calculus was invented to solve (among other things) the problem associated with finding the instantaneous rate-of-change .. as visualized by the slope of a line tangential to any given point on a curve (of a graph).

To calculate a slope, you might recall (dust off them algebraic brain cells) we pick two representative points, find their difference and divide the » "rise by the run" .. the change-in-Y / change-in-X (.. commonly referred to as "delta-Y over delta-X").

As the change in the X coordinates (recall from basic Algebra) gets smaller and smaller, we get closer and closer to determining the slope (rate-of-change) at a particular point.

The problem however .. is that a point has no size, so the "change" or 'difference' (in the X coordinates) becomes zero. And dividing anything by zero is a major mathematical no-no. (Defined as "undefined" .. a mathematical black hole that will crash your computer.)

See t=13:00 here, and especiaaly t=13:30.

Limits

The concept of » limits was introduced to address this problem. Imagine standing in your living room, and walking half the distance to the furthest wall. Then walk half the distance again. And again & again.

Each time, you keep getting closer & closer. But .. you'll never actually reach the wall (cuz you keep going only half the distance). A hundred years from now, you'll be very, very close (to the wall), but still not quite there.

Getting closer & closer to the wall is analogous to decreasing the size of the difference between the two X coordinates along a curve plotted on a standard graph (which contains an X & Y axis). But the limit (drum-roll, please .. here it comes) is » the wall! .. even tho, in reality, you never actually get there.

That's why the notion of a limit represents a mathemetical "concept" (not reality). If you think about it, you can't really have an instantaneous rate-of-change (.. cuz nothing can change in an instant, cuz an instant contains no time). And the word 'rate' implies "per-unit-something." That 'something can be (and often is) » time.

That's also why the result is called/termed a 'derivative' .. cuz you can't get there with conventional mathematical manipulations. It's kinda like what that old farmer told me down South when I asked for directions » "Son, you can't get there from here." =)

Guess Who's Back

|

Two county sheriffs (1 male & 1 female) escorted me out after court this week. That's never happened before. I think they were just ensuring nothing happened en route. Keeping the peace. You know how ugly things can get during a custody battle.

Pooh & Piglet catching butterfliesI actually liked being escorted. Felt safe, protected. One walked on each side. They were very nice, professional. So I appreciate whoever it was that set it up. Tho I got some strange looks from passersby.

The sheriffs walked me to the edge of the property, where they watched me cross the street, then waved goodbye. =)

Kinda surreal, I thought, while waiting there at the bus stop (.. like this whole ordeal has been).

This time in court was very different. I hardly said anything. Experts testified.

First, the courtroom was cleared of all unessential people (not uncommon, due to the nature of the accusations). If you were there, and listening carefully, you might've heard the judge say the word I've been waiting to hear for years » enough.

Woke at midnight .. to a disturbing dream. (Didn't get back to sleep 'til 3:30.) Like any artist familiar with affliction, I didn't wanna let good angst go to waste. So I fired up the laptop and resumed my study of the UNIX shell.

The Art of Unix ProgrammingSomewhere 'round 2AM I stumbled upon » The Art of Unix Programmingbook at Amazon.com), by Eric Steven Raymond. (Tho I can't recall how I got there.) He's the guy who wrote How to Become a Hacker, which I quote from time to time.

In his treatment of Unix Programming, ESR uses words like culture & philosophy .. which caught my attention .. cuz I've always been fascinated by other cultures .. not so much for the better/worse comparative aspects, but rather for the mind-expanding effect one gets from truly seeing the world from another's perspective. Plus he writes well (or has a good editor), which I appreciate. Couldn't stop reading.

Here are 10 statements/ideas I found particularly interesting and revealing. Perhaps you might also. (Minor Rad editing for brevity.)

  • Unix was born in 1969. That's several geologic eras by computer-industry standards -- older than the PC or workstations or microprocessors or even video display terminals.

  • Few software technologies have proved durable enough to evolve strong technical cultures, transmitted across generations of engineers. Unix is one. The Internet is another. Arguably they're one and the same.

  • Unix has supported more computing than all other systems combined. It has found use on a wider variety of machines than any other operating system - from supercomputers to handhelds & embedded networking hardware, through workstations & servers, PCs & minicomputers. In its present avatars as Linux, BSD, MacOS X & a half-dozen other variants, Unix today seems stronger than ever.

  • Unix's durability & adaptability have been astonishing. Other technologies come and go like mayflies. Machines have increased in power a thousandfold, languages have mutated, industry practice has gone through multiple revolutions. Still, Unix hangs in there, producing, paying the bills, and commanding loyalty from the best and brightest software minds on the planet.

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.

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