Oracle Murders Solaris

For those unaware, Oracle laid off ~ all Solaris tech staff yesterday in a classic silent EOL of the product.

Simon Phipps

FUCK.

Solaris was a better server and development platform than anything else (OK, after HPUX and SunOS reached EOL), but getting management to spend money up front was always a massive battle. SUN did themselves no favors by going back and forth with SPARC and x86, and getting a freebie OpenSolaris running was a challenge.

But now the world runs servers on piece of shit free-as-in-freebase-heroin Linux, paying fedora-wearing dipshits at DeadRat for "support" consisting of "no, you go fuck yourself".

This future has been brought to you by lawyers and the lowest bidder.

I'm too bummed out to make a playlist for today, so here's a couple of Apple's:

Pascal

Trying out alternative languages to work around my performance and native binary problems, I've circled back around to the '70s and '80s: Pascal. I used classic Pascal on Atari 800 and TRS-80 back in the day, and did quite a bit with Kylix (Linux version of Delphi) before Borland killed that.

Pro

  • Fast Compiles. FreePascal compiles faster than anything I've used in ages. That was always a major Pascal selling point, and it still is. Optimized for programmer time.
  • Fast Runtime. As close to perfectly optimized machine code as you're going to get. Computer Language Shootout has competitive times with C++ for most benchmarks, and I think the worst-cases are variations in style.
  • Object-Oriented. FreePascal reimplements Delphi-style objects, which are pretty standard Simula-type OOP. I dislike having to tag methods as virtual, like some C++ or Swift peon, but it has everything I'd expect in a modern OOP system.
  • Reference Counting. No GC pausing, no manual memory management. Like Objective-C 1.0, you have to nil-out field references in your destructor, but otherwise you never need to worry about it.
  • Exceptions. Unlike Objective-C and Swift (which relies on Obj-C frameworks), you can throw exceptions and catch them and the program keeps working. Hooray! Flow control that isn't insane! There's no checked exceptions, which is sad, but it works.
  • Cross-Platform. Mac, Linux, Windows, Android, and iOS. Has SDL and OpenGL bindings, and some other options. I'll see how building out UI for each of those works, but it's not trapped on Mac like most other choices.
  • Native Binary. No source code included in the downloaded app. Dynamic language obfuscators are a minor obstacle at best, while machine language is hard enough to decompile. Sure, the other option is to put the program online and just have a thin client in the user's hands, but I'm old-fashioned, I believe in networkless programming and not paying Amazon for server time.
  • Easy Native Library Integration. Pretty much seems to be defining functions as external and calling.
  • Case-Insensitive. I'm usually neurotic about proper capitalization, but here it's a mercy: The classic Pascals were all-uppercase, Delphi CapitalizedEveryWord, but I prefer lazyCaps. FreePascal doesn't care.
  • Real Programs. There's working programmers using FreePascal to keep their (often very expensive) Delphi software running, and writing new code in it. That makes me confident it's not an unsupported toy, and there's current documentation and help.
  • BBEdit. Object Pascal syntax mode works fine.

Con

  • Bondage & Discipline. Not quite as BDSM as Java, Swift, Haskell, or classic ISO Pascal, which in practice have no safewords. You can use dynamic arrays, Variant and OOP types, and even dangerously cast anything to anything or screw around with pointers, but it's not beautiful anarchy like Python or JavaScript.
  • Pascal Syntax. Verbose begin/end pairs everywhere, long words of function, procedure, and such. Semicolon rules are insane (yes, they're terminators not separators; this is not how we use them in any other language, including English), I've taken to just always using begin/end blocks because I don't trust a misplaced semicolon not to terminate the wrong block.
  • Documentation. FPC's docs assume you already know Delphi. I found some decent docs at Borland's site and old Pascal textbooks, but I dunno how a normal person would learn this. Some of the libraries have moved in 3.0, and you're never going to figure this out unless you like digging thru the guts of a language.
  • Configuration. Put this in fpc.cfg somewhere, and export PPC_CONFIG_PATH to the path containing it:
    #WRITE Compiling with fpc.cfg
    -O3
    -Xs
    -MOBJFPC
    -Sh
    -Fu/usr/local/lib/fpc/$fpcversion/units/$fpctarget/rtl-console
    -Fu/usr/local/lib/fpc/$fpcversion/units/$fpctarget/regexpr
    

    The write is just a sanity check that I have it configured. Instead of the next two lines, I could put -dDEBUG or -dRELEASE on the fpc command-line, but I'm not currently using gdb (unfrozen caveman Mark debugs by writeln), so this is easier. -MOBJFPC forces modern FreePascal mode, not a compatibility mode. -Sh forces a default string type of ansistring instead of shortstring; but to be precise, I always specify utf8string. The -Fu lines add some paths where libraries have been moved.

    I want to have the local directive {$M+} (reflection support) always turned on, but I can't figure out any command-line option to do that.

  • Look Like a Crazy Person. But sometimes the crazy people are right.

Example

To (re)learn the language, I wrote a 4-function RPN calculator for Mac console: RealCalc

Presumably it compiles just fine on Windows or whatever, but you'll have to customize the fpc.cfg file. I'm a ways from dealing with that.

Our Illiterate Nation

Many Americans are devoted readers of Scripture: More than a third (37%) say they read the Bible or other Holy Scriptures at least once a week, not counting worship services. But Americans as a whole are much less inclined to read other books about religion. Nearly half of Americans who are affiliated with a religion (48%) say they “seldom” or “never” read books (other than Scripture) or visit websites about their own religion, and 70% say they seldom or never read books or visit websites about other religions.

Pew 2010 U.S. Religious Knowledge Survey

All Systems Red (Martha Wells)

Murderbot with no Asimov program just wants to watch TV, but is rudely interrupted by threats to its human clients and awkward social skills.

There's not a lot more to say about this novella, very fast and fun, rather Heinleinian. Murderbot is adorable, a cyborg made from clonemeat with autism-spectrum social problems. The mystery/puzzle of the plot is deducible from evidence given, though the political rules aren't, but they're just there to drive Murderbot's character study.

The science, where present, is inoffensive; some kind of expensive wormhole for FTL, otherwise plausible electronics, software, and cybernetics. Not much of the background is given, and I'd like more in this setting, perhaps a picaresque with a unit like Murderbot going star to star solving problems like the Incredible Hulk TV show.

"So, I’m awkward with actual humans. It’s not paranoia about my hacked governor module, and it’s not them; it’s me. I know I’m a horrifying murderbot, and they know it, and it makes both of us nervous, which makes me even more nervous."

—Martha Wells, "All Systems Red"

★★★★★

Wednesday Music Loves '80s Glam

And while you're listening, why not reread Less Than Zero (don't watch the shitty movie, they just took the title and some character names) and American Psycho (do watch the partially-shitty movie, if only for the Huey Lewis scene, which is how I will always remember Jared Leto).

Here in the post-apocalyptic shithole of the 2010s, nothing's lit in neon, I can't get music videos on MTV or cheap, pure cocaine from trustworthy Colombianos, and I blame the Republicans.

Alas Brian Aldiss

It is with sadness that we announce the death of Brian Wilson Aldiss O.B.E. author, artist and poet, at his home in Oxford in the early hours of Saturday 19th August 2017, aged 92.

Some of the most influential books on me were Brian Aldiss':

A common theme of much of his work is of adaptation, that life evolves and struggles even at the end of the Earth or civilization.