Archive for January, 2009

Func. Prog. Lang. Ref.

January 30, 2009

Update 3 Feb.! I’m still not ready to learn Haskell, but when I do, I think I’ll start here and here, and I am adding Pure to the list.

Sorry ’bout the abbreviated title, but s/w eng. can read it, right?

N.B. — I’m going out of town this wkend; I’ll post this now, and ‘complete’ it later.   I’ll mark my place so you know…
Comments are more than welcome.  I will respond, eventually.

Here is my “initial” list of languages (from the DDJ article mentioned previously, and friends like FFiend).

  • Haskell, as I’ve already mentioned — a pure FP lang., designed for academics [from the DDJ article]
  • OCaml, some documentation here and tutorial here.*  [<— I’m part way thru this, so I can do that next —>]  I’m currently trying to write this (fr. Haskell syntax):
primes = 2 : [x | x <− [3..], isprime x]
isprime x = all (\p −> x ‘mod‘ p > 0) (factorsToTry x)
  where
    factorsToTry x = takeWhile (\p −> p*p <= x) primes

* the page on labels has some interesting info — this should be book-marked for later…

  • Erlang — by Joe Armstrong at Ericsson “for building highly parallel, distributed, fault-tolerant systems.”  [Dr. Dobb’s  -ed.]  Also, FWIW, this and Haskell were the only two my buddy mentioned.  Interesting: Erlang supports hot code upgrades (among other things)
  • Scala — Java-based, hybrid language
  • F# — Microsoft’s version of CaML
  • J — “strong in mathematical, statistical and logical analysis,” according to the home page.  It was recommended to me, and I did examine it, briefly, a long time ago.  As memory serves, it has a built-in data type for matrices;
    just perusing some of the web-site I recall how terse the language is.
  • Pure — I book-marked this via del.icio.us a while ago, but came back to it recently.  I’ll let you know what I find out, when I try it.
  • Lisp — the original lambda calculus language (my paraphrase).

Some info on lambda calculus can be found here, Wikipedia, and here — the quality and value of these has yet to be determined…

  • Prolog — not sure if it qualifies as functional, but DDJ mentions in passing that is it declarative, as are those listed above.
  • Mathematica — the article points out that this can be a programming language as well; so I might as well mention: maxima (from macsyma), a GPL program I have installed, but not used extensively — I was interested in a mathematical “problem” and wanted something beyond paper and pencil (my college math prof. said always work problems in pencil, not pen; you will have to erase!) and I’d forgotten too much of my calculus to trust my own resources.

Some info about lambda calculus

The case against “The case against Web Apps”

January 30, 2009

A friend put this link up on plurk yesterday, and I just had to disagree.

I think Web apps are resonable and responsible development, and I wanted to respond point-by-point.

1. It’s client-server all over again

Well, yeah, if all you do is on the server only.  But why not distribute the work?  Put the common work in a common location.  Yeah, your laptop may have loads of power, but the server has more, and access to more data, which you really don’t want to distribute it everywhere (or replicate umpteen times)?  Update: By the way, today (3 Feb. ’09) I read a Gartner report from 4 Aug. 2008 which says that Server-Based Computing is cheaper than PCs by 12 to 27%, and has other advantages (according to IDG Connect e-mail I get regularly) — yes, it’s by Citrix, so there’s ulterior motives, but Gartner nonetheless.

The other answer to this complaint is: yeah, so?  It’s not like the client-server model has been completely ‘disproved.’

I should point out that (a) I’m a senior software engineer, and (b) I don’t have a compiler installed on my laptop!  I don’t need one.  All my work is done via web browser.  Seriously, my development tools are MS Word, Visio and IE — and occasionally Excel.  So I think the case against Web apps is way wrong.  Of course, I’m only one perspective, but I think that the generalization I can make is valid, because my work spans two industries and different companies (just check who is using PegaSystems’ PRPC [Pega Rules Process Commander]).

2. Web UIs are a mess

Yeah, they can be.  What UI isn’t? or, is there a UI that can’t be a mess, or can’t be cleaned up?

3. Brower tech. are too limiting

This may be true, but I think Google would disagree.  Besides, are we really limited to browser?  Maybe we are now, but not for long if people continue to develop software there, and all forms of UI change over time (no paradigm lasts forever).

4. The big vendors call the shots

If they follow some standard, I don’t care.  This may be my weakest argument, but what form doesn’t that apply to?  Tell me that Microsoft doesn’t control the Windows UI, or Apple the Mac?  Have you seen the outcomes for applications that break with existing norms in any arena?  not pretty.

5. Should every employee have a browser?

You’re kidding, right?  What century do you live in?

Someone Understands How I Read

January 28, 2009

I found another person who reads the way I do… unfortunately.

I mean, I wish I had more time, but I don’t know how my chiropractor deals with three kids — I’m busy w/ one, and answering tech. questions for my wife, and replacing light-bulbs (five burned out last month), and this and that, and the other thing…

Geek Dad says it pretty well.

MSM Dinosuar

January 23, 2009

This is a pure opinion piece!

For those looking for functional programming info: check back later.

If you’re looking for my personal perspective, here it is:

One blogger I follow (found via Twitter), sometimes only posts links to other stories (not that I’m ‘endorsing’ either), so I feel somewhat justified in doing so just this once.  PowerLine has a story here illustrative of the problem of lack of knowledge by the main stream media.  For more humor, you can check out this ‘blog’ of ‘humorous’ corrections, in the vien of John’s post, you can see this one.

We’ll return to our regularly scheduled program shortly…

My 2nd Functional Programming Intro

January 20, 2009

The results of my cheat sheet “experiment” are here (and I’m not done yet!).

I haven’t had time to digest even the beginning of this (watch for this post to update frequently over the next week or so…); but I found this “interesting” (funny) — ways to misuse lambdas in Python
and I started reading about a genuine Sieve of Eratosthenes! (see the PDF).

I’m also going to post a list and a basic review of functional programming languages, since several have been suggested to me…

  • Haskell — I guess I need to start here in order to understand the paper on the genuine sieve (above); now I see that I need to learn monads

It’s too late tonite for me to do more, but I’m going to post this anyway — check back for updates.

My Functional Programming Intro

January 19, 2009

This is not yet a lot of direct info (that’s coming, I promise), but rather the oral history of what sparked my interest: besides F# (I still have to write my commentary on that, but I found another resource there: [UPDATE] Robert Pickering)

Well, okay, maybe that’s the gist of it: that and Dr. Dobb’s Journal — but now I’m doing my investigating; I installed F# on my laptop, and OCaml, also OCaml on my (personal) PowerBook.

I started this process, but I’m not done yet:

I’m following the process described here: Building a Social Media Cheat Sheet

First, using http://delicious.com/tag/blog+functional+programming; (I found that installing GreaseMonkey and using the scripts mentioned was ludicrously simply.)
Second, I had to convert the OPML file to UTF-8 because NewsFire on the Mac saved it Unicode, or else I accidentally converted it in TextEdit when I removed the extraneous feeds… 

Well, I found the homepage of Philip Wadler, and OCaml best practices; oh! and here’s Learning Haskell, and this looks interesting: Programming in the 21st Century., finally (over the weekend) Lambda the Ultimate.  (Some of these are general programming blogs/websites, but have an entry or two about functional programming.)  
And the blog defmacros doesn’t seem to have an RSS feed, but should be checked sometimes as well — and at that site is also a nice intro to fp. (I’ve read that somewhere before;  I’m starting to abbreviate, but I think it’s clear what I mean.)

I may need to learn Haskell. It’s just that searching for FP stuff, I keep hitting this lang.

N.B.  I just need somewhere to direct people to give notice that I’m starting to investigate the whys and wherefores of functional programming…  I’ve started following people on Twitter, and looking for more info.

Technical Learning for the Day

January 14, 2009

Today I learned this (maybe someone else may find it useful):

I use TweetDeck for managing Twitter groups.  (Update: the rest of this post has very little to do with the functioning of TweetDeck, which is a nice program for managing Twitter, and that is all — but rather, this is what I did to synchronize the configuration between two computers.)  However, I run on both my work PC and my personal Mac PowerBook.  Well, by now, there is enough differences that I tried to figure out how the data is stored so I could move the configuration back and forth between the two.  It took some digging, but using FileMon for Windows XP, I found the file, and opening it with UltraEdit (any text editor would do), I see that the format is a SQLite db.  (Finding the same on the Mac was easy, albeit manual: my user folder –> Library –> Preferences –>  TweetDeckFast.F9107117265DB7542C1A806C8DB837742CE14C21.1 –> Local Store –> td_26_GParks.db)

Then it was a matter of finding a way to examine that database, I picked a Macintosh program: Mike T’s SQLite DB Admin Tool.  Using two simple SQL cmds, I made updates to the groupings of my friends and got everything straight, now I just need to e-mail the database back to my work PC and everything will be synchronized…

SELECT f.fName, c.cName
FROM friends f, groups g, columns c
WHERE f.fUserID = g.gUserID
  AND g.gCID = c.cID
ORDER  BY f.fName, c.CName

and

SELECT *
FROM friends
WHERE fUserID NOT IN (select gUserID from groups)

There you go — my education for the day. If you find it helpful, let me know…

Descartes is Dead

January 12, 2009

I printed out the first chapter of this quite a while ago, and started reading it Tuesday, but it took me ’til Friday to finish it. And I still haven’t completely processed it.

If you read this all the way thru, post a comment.  I’d like to know what kind of person would read this.  The philosophy herein is not light.  Not that I’m all that, but this is a long, complex post.

Here are my initial thoughts:

  • I am an Impure Thinker.”  That’s true, and now I’m no longer afraid to admit it!  “I am hurt, swayed, shaken, elated, disillusioned, shocked, comforted, and I have to transmit my mental experiences lest I die.  And although I may die.”
    It’s nowhere near as strong as Jeremiah 20:9, but it’s similar in thought.
  • respondeo etsi mutabor — yes!  I respond although I will be changed.  That’s a good mantra, I think.

It would be worthwhile to explain how I found this, and why.  Here’s the story in reverse: “Eugen Rosenstock-Huessy was a historian and social philosopher, who work spanned the disciples of history, theology, sociology, linguistics and beyond.”  So says Wikipedia.  I read this brief biography and found half a dozen more books to read (Wikipedia lists a three page of bibilography, not counting the references section).

Rosenstock-Huessy was a notable influence on Harold J. Berman, a Christian legal scholar, who passed away in November, 2008.  Specifically, his theory of revolution in the West “postulated … that there is no such thing as smooth history, … there are cataclysmic moments” when “civilization explodes, or implodes, and new metaphors are summoned to govern the next era in Western civilization.”  This idea inspired Berman, which can be seen in his important work, still referenced today, Law & Revolution, published in 1983.  The quotes here are by John Witte, Jr., who I listened to on Mars Hill Audio magazine, volume 91, Director at the Law School at Emory University, where Berman taught since 1985, after teaching for 37 years at Harvard.

This history is greatly condensed, not including Berman’s vision of Christ, a Damascus road experience in Russia shortly after World War II….

 

Okay, so here goes.  A “brief” overview.  This is my attempt to digest the thoughts herein.

So much of the chapter, Farewell to Descartes, is quotable, I will use part of the closing (p. 18-19) to start with.

Never did mankind acquire a common knowledge by storing it away in libraries.  Tell me, however, that you are willing to experience your life as a sentence in humankind’s autobiography, tell me how far you share responsibility with the blunderers of the past, and when you have shown me to what extent you are capable of identification with the rest of mankind, I shall know whether your knowledge is survival knowledge, “metanomics” of society as a whole, or merely your private metaphysics.

… In the community that common sense rebuilds, after the earthquake, upon the ashes on the slope of Vesuvius, the red wine of life tastes better than anywhere else.  And a man writes a book, even as he stretches out his hand, so that he may find that he is not alone in the survival of mankind.

I like what I’ve read in that this writer really seems to be solid and deep in thought, but also poetic in expression.

In order to begin to understand “metanomics,” you’ll have to read the chapter — beyond the brutalities of social chaos.

Let me summarize the ideas, and then move on:

Knowledge, in order to be useful, can’t be the abstract, ‘objective’ knowledge advocated by Descartes; rather, it must be ‘living’ knowledge.

Physics … and metaphysics … do not touch the core, since they begin by investigating dead things or abstract notions.  They are not concerned with the real life, ….  This may explain the former presumption that, in studying a vast quantity of stones, gravel and dust, or an endless series of doctrines and ideas, one was attacking the substances which preponderate in the world.  Yet this presumption remains a vicious circle.  In the whole valley of stones and lava, one blade of grass is enough to refute a system which pretends to explore the grass by weighing and measuring all the gravel in the valley.  In the same way, the presence of one living soul among the three million volumes of a great library offers sufficient proof against the notion that the secret of this soul is to be found by reading those three million books. [emphasis mine, except for “explain” above, which was the authors original]

The objective knowledge creates a (false) dicotomy of “It” and “Ego” — the object, which is also a subject.  “Our survey of revolution shows that they are both insupportable extremes.  The positions of Ego and It are deadening caricatures of man’s true location in society.”

Though man tends to become an Ego and is pressed by his environment to behave like an It, he never is what these tendencies try to make him.  A man so pressed into behaviourism by awkward circumstances that he reats like matter, is dead.  A man so completely self-centred that he is constantly behaving as a sovereign Ego, runs insane.  Real man enjoys the privilege of occasionally sacrificing personality to passion. … To veer between Ego and It is the secret of man’s soul.  And as long as a man can return to this happy balance he is sound.”

There is a discourse on the subject of our non-independence (my term, what would you call it?), the fact that we do not begin from a blank slate (more later).

A man is commanded from the outside for a longer time in his life than he can dispose of the “I.”  Before we can speak or think, the imperative is aiming at us all the time, by mother, nurse, sisters and neighbors: “Eat, come, drink, be quiet!” … We are called a Man and we are summoned by our name long before we are aware of ourselves as an Ego.  And in all weak and childlike situations later we find ourselves in need of somebody to talk to us, call us by our name and tell us what to do.

The crux of this chain of thought is the fact that our situation (remember this was written in 1938 – right after World War I), calls for an answer that is beyond us.

The problem is put to us by a power which far transcends our free will and by situations beyond our choice.  Crisis, injustice, death, depression, are problems put to us by the power that shaped our miseries.  We can only try to give a momentary answer, our answer, to the everlasting protean question.  Our knowledge and science are no leisure-hour luxury.  They are our instruments for survival, for answering, at any given hour of life, the universal problem.  The answer given by science and wisdom are like a chain of which every link fits one special cog on the wheel of time.  The greatest and most universal answers that man has tried to give, like the Reformation or the Great Revolution, even these, as we have seen, were temporary answers, and had to be supplemented after a century had passed.

Again, a poetic expression:  “We are swimmers in a buoyant and everlasting medium.  The dawn of creation is upon us, and we await our question, our specific mandate, in the silence of the beginnings of time.”

The real riddles are put before us not by our own curiosity.  They fall upon us out of the blue sky.  But we are “respondents.”  That is man’s pride, that is what makes him take his stand between God and nature as a human being.

Next there is a section, the first of several, praising the maxim cogito ergo sum, and the positive results, and setting the stage.  “Or formula ‘respondeo etsi mutabor’ reminds us that human society has outgrown the stage of mere existence which prevails in nature.”

Then a note that although Descartes complains that man is “unable to think clearly from the day of his birth, or that he should have memories which antedate his maturity,” the right response to that is laughter!  It is ludicrous, as he said before, to think we should be a blank slate.  But the fact that we take the idea seriously shows what is missing from “science” “today.”  

Common sense … acs on the principle that a man who fails to apply laughing and weeping in the discovery of vital truth simply is immature.

There is a lengthy explanation of why and how knowledge must “make an impression” on us — it must stir an emotional response, or it is not vital knowledge.

No scientific fact may be verified before it has made an indelible impression. … “Indelible” is a quality that differs widely from “clear.”  In fact, the more confused and complex and violent the impression, the longer it will stick, the more results will it produce.

The cowardice of the social thinker who denies that he is impressed and shellshocked personally by a revolution or a war-scar, makes him turn to statistics describing the buttons on the uniforms of the soldiers,  or makes him list the botanical names of the trees of the trees on the parkways where the insurgents fell.  The impressions that matter, as they are given, for instance, in Tolstoy’s War and PEace (his own fears, hopes, etc.), he is at a loss to admit: and so he looks for second-rate impressions that are too funny for words.  And again, nobody dares laugh.

Hence, scientific progress in the social field depends on the regulating power of humor.  Humor precludes wrong methods by simply ridiculing them.  Le ridicule tue.  … If we could place mirth on the throne of society, the war-scar that produced this volume would finally have vanished.  [emphasis mine]

Now, that was a long summary, but it was still shorter than the nineteen pages it would take to read the entire chapter.

If you got this far, please let me know.  I’d be more than happy to elaborate more, or shorten some too long section.

How I got Here

January 9, 2009

Some people who may read this I haven’t talked to since I was a college student at Bethel (now Bethel University).

This isn’t going to be a resumé, but to start with: for nearly five years after I graduated, I had a different job almost every year (I was at one place about three, but apart from that…), while a friend was at the same job that entire time; then I was at the same place about that long, while he was at a different job every year…

I am and continue to be a computer programmer (“software engineer” if I’m trying to sound official).  I was at my previous job for almost seven years, now I’m working at Blue Cross Blue Shield of Minnesota (but I’m not responsible for any policy of theirs, I just write the software to implement such).

However, that says very little about me.  I’ve tried to live by the motto wrongly attributed to Ralph Waldo Emerson:

“To laugh often and much;
To win the respect of intelligent people and the affection of children;
To earn the appreciation of honest critics and endure the betrayal of false friends;
To appreciate beauty, to find the best in others;
To leave the world a bit better, whether by a healthy child, a garden patch or a redeemed social condition;
To know that even one life has breathed easier because you have lived.
This is to have succeeded.

So I’ve spent myself in time with other people, as much as possible.  I have attended Woodland Hills Church for over fifteen years.

Five years ago I got married to the most wonderful woman in the world.  My friend (same mentioned above) said at the time, “I always knew you’d get married, Greg.”  But I didn’t know it until it happened.  In fact (and there’s a story here), I didn’t know we were dating for six months.

I married a woman who was owned by two cats (cat owners understand: dogs have owners, cats have staff).  Then about two years ago, we got another that owns me, particularly — a Silver Persian.  I’ll have to add pictures ASAP.

I have to brag on my wife a little bit: she is one of the most competent, independent women I know.  A true Proverbs 31 woman.  I was admiring her over the past holiday season, and saw how she managed to take care of herself thru a medical “emergency” and deal with a fussy little boy, and deal with difficult family.  And yet, although I tried to be helpful as much as I can, I did not worry for a minute that she would decide and do the best she could on her own if and when she had to.
I’m sorry I’m not very specific — the details would be boring, or personal, but I had to say something, because I really do love her, and appreciate her.

I earned a degree in pastoral counseling.  I became very interesting in how the human brain works, and I learned a lot about how the people process experiences and communicate, but I don’t know that I’d recommend it to someone else, now.  (I’ll have to fill in details later, I feel like I must post this today!)

We now have a twenty-month old son.  And that is about all there is to my life for the past two years or so.

Last night we shared the “last” Christmas celebration with neighbors who also babysit, and they have five kids — three younger, adopted: 6 yrs old, 8 and 9 or something like that — anyway, we were laughing and throwing Christmas paper around and just generally having fun, and I realized again just how fortunate I am.  Blessed indeed to have friends and loved ones near.  I also see how infrequently I take time to appreciate that simple fact.
I had conversation today with my chiropractor.  He asked how I thought the country was going, presumably meaning what did I think of the stimulus package, etc., etc.  I dodged the question then as now, because I answered that I have a friend who doesn’t consider politics and the like anything more than a curious intellectual exercise — there are things that matter much more.  To quote a song that I like:

“Time doesn’t scare me.  No, I’m not impressed by time!
In the scheme of eternity, millenia don’t seem to be worth much more than a dime,
Except for the love that you find in it, and every minute’s worth its weight in gold
whether you’re a million years young, or a million years old

“And if I’m still around a million years from now,
if I’d been around a million years ago
Everything I’ve learned or forgotten,
Imagined or come to know
would disappear into that Moment
I found a Love that won’t let go
even if I’m still around, another million years…”

Meet One of our Owners

January 5, 2009

Note: this entry was written by my wife, Lana.

Most people reading this blog already know that we are owned by 3 cats–Lilly, Patsy, and Smudge. If you know cats at all, you are aware that cats own you, you don’t own cats. That’s just the way it is, you may as well learn that you are a mere staff member that will provide food–preferably tuna–treats, and some fuzzy hugs when and if the particular cat is in the mood. If you are owned by a cat, you also are aware that each cat has his/her distinct purrsonality.

Lilly, our most mature, is a very intuitive creature. If there is anything amiss, she will inform one of her staff members. If Patsy has dumped over the garbage, Lilly is waiting by the door to inform the staff upon their arrival, if there is food missing from her dish, she is on staff’s face no matter the time, if her staff’s blood sugar is low, Lilly is jumping on this staff member’s stomach and face until she wakes up at which time Lilly escorts her to the refrigerator. And, she had to give her paws of approval before Greg could become my husband. She walked up to him and gave him a kiss on the cheek the first time she met him (she’s never done that with anyone before or since). Needless to say, Lilly has been an amazing cat. She is, however, getting older and with age comes some challenges. She has taken care of me for 12 yrs. and now it’s time to care for her. She’s not quite as astute at grooming any longer, so we get her groomed more frequently; she’s “extremely fluffy”, so we have special low-cal/low carb food; and she can’t jump as high, so we have stairs up to our bed. But, the biggest hurdle happened 2 yrs. ago when she was acting lethargic and we almost lost her. After 3 misdiagnoses from 2 different doctors, we took her to the University of Minnesota Veterinary Hospital where after undergoing countless tests, they found a kidney infection (which can be lethal and is usually only found postmortem) and kept her for almost a week in the Intensive Care Unit on an IV of antibiotic. Cha-ching! After taking another mortgage on the house and living on beans and wieners for months on end, we have paid the vet bill. Every 3-6 months she goes in for an ultrasound on her kidneys to ensure that nothing has changed and the condition is not returning. Was it worth it?? YES!! We would do it again in a heartbeat.

Yes, our owners are as important as our child. They have been there for us no matter what the situation with unconditional love and acceptance. Our belief is that we need to care for them as we would any other family member as they are family members, they just happened to have a fur coat.