Archive for the Everything old is new again Category

I am in so much trouble …

Posted in Chapel, Everything old is new again, Hardware on September 20, 2018 by asteriondaedalus

I was poised to look into a few more ODROID or NANOPI as an extension of my cluster, then a 2U Dell PowerEdge 2950 with dual 3GHz CPU with 8Gb memory is at action, with only two hours to go, no bids so I went with $15.

So that would be 2×4 Core for 8 all up.

Good enough for a Chapel box.

Not sure how I will hide it from the wife.

So, hopefully someone will decide to outbid me.


In the last half hour of the auction, two others made a run.  One an auto bid and one manual.   I worked out that the auto bid had fizzled, they had set their max to $50 just as I had.

So, I sat poised to make a last bid as the auction was about to close – assuming that the manual bidder might be assuming both auto bids had fizzled and weren’t being tracked or that the manual bid would be fumbled in the last few seconds of the web based auction.

Tension was high.

My bid was in the browser waiting for that last button click.

The clock ticking down.

With 10 seconds to go, enough time to get the bid in but to befuddle someone trying to get a counter bid in before close, I … I … I … chickened out.

Fair the well  2U Dell PowerEdge 2950 with dual 3GHz CPU with 8Gb memory, fair the well.  I hope you went to a nice home.



DrRacket is a racket

Posted in Everything old is new again on December 6, 2015 by asteriondaedalus

What a way to get people through their prejudices.

Change the name from Scheme to Racket and bank on people not having a history of being misinformed to believe Lisp and Scheme are dead.

They ain’t of course.  Been hanging on for a Renaissance.

Go figure functional languages have resurged.  You remember those.

Of course Erlang does Lisp (aka lfe).

But what ballsy misdirection. Just don’t call it Scheme no more no more, just don’t call it Scheme no more.


Bad form in the examples:

(define (reply-more s)
     [(equal? “hello” (substring s 0 5))
     [(equal? “goodbye” (substring s 0 7))
     [(equal? “?” (substring s ( (string-length s) 1)))
       “I don’t know”]
     [else “huh?”]))
> (reply-more “hello racket”)
> (reply-more “goodbye cruel world”)
> (reply-more “what is your favorite color?”)
“I don’t know”
> (reply-more “mine is lime green”)

The problem being  the test for “?” and that one is forced to fall through the first two tests and so it cracks up when a string shorter than 5 char comes through as there is an overrange condition.

For example:

(reply-more “bug?”)
. . substring: ending index is out of range
ending index: 5
starting index: 0
valid range: [0, 4]
string: “bug?”

Still takes me back.  I did knock up a lisp interpreter in FORTH years ago … for the shear fun of it.

The safer version thus (forgive the loss of indenting):

(define (reply-more s)
    [(equal? “?” (substring s ( (string-length s) 1)))  
      “I don’t know”]
     [(equal? “hello” (substring s 0 5))       
     [(equal? “goodbye” (substring s 0 7))
     [else “huh?”]))

> (reply-more “bug?”)
“I don’t know”

I will leave it to the reader to work out if there is a bug if a 6 character string is used.

Now why I like lisp/scheme/forth?  The same reason I like python.  Very productive code and test and code and test and code and test.

So, now I like Racket too.



The anti-pattern becomes the new anti-anti-pattern

Posted in Everything old is new again, Software on May 15, 2014 by asteriondaedalus

Functional thinking.

So, I played with lisp years ago, and other functional languages.

Somewhere along the line the notion of thinking functionally became an anti-pattern – at least from the OO camp.

So, functional thinking has returned!  Apparently.

I have been watching in the background, it would always have come back IMHO.

OO tried to be the Panacea.  But the biggest problem, I felt, it obfuscated the functional model for the application.

We still end up with a functional model, even if its a tacit one.

In fact, sequence diagrams, activity diagrams and even robustness diagrams of UML – not to mention BPMN, all are functional modelling approaches.

The problem is you need the right orientedness for the problem expression.

It harks back to my chattering on Jason vs Jack in the Agent Oriented world.  Jack obfuscates the Agent Orientedness of the problem, making you develop with Java OO libraries.

DSL are in vogue, even if its just @nnotations in Java or Python – allowing you to create you’re own “orientedness”.

Now, don’t get me started on parallel computing – recall I used to code in OCCAM and Transputers decades ago.  It is been driven by multi-core world somewhat but, of course, they haven’t architected for parallelism.  Just stuck lots of cores on a substrate hoping someone would sort out the coding problem.

So, how do we do it?  We don’t use OCCAM!?  Although Go! is a great alternative I am thinking.   Still no one gets behind mature ideas like Plan 9?!  We just start afresh with same stale old ideas.