What God wants God gets, God help us all

Originalism is an innocent-sounding concept: the meanings of laws should be understood, using the language and context in which the authors wrote it. A perfectly sensible proposition, no?

It’s no coincidence that originalists tend to be Christians. The originalist argument is exactly the same that every pastor uses, who gets up behind the lectern to quote out of context from Romans 13. You may have a copy of the Bible on your bookshelf at home, but you can’t merely up and read the thing by yourself; goodness sakes it is a lot of onionskin pages to paw through. So the helpful pastor will tell us what the intent of the chapter was: the Bible commands us to obey the law, and illegal immigration is against the law, so illegal immigration is against God.

There’s always a second, unspoken half of originalism.

First, the spoken bit: we should interpret the Constitution as the Framers intended.

But the authors of said Constitution are dead, just as much as whoever wrote Romans 13; they are all just as dead as Marcus Aurelius said they would be.

Second, the unspoken bit of originalism: we have just the right person to perform said interpretation.

And there’s the crafty little heart of originalism. They are ready — at this very moment no less! — to expose their detailed understanding of the authors’ intents. And only their interpretation of the original text is valid. Because only they truly understand the Second Amendment, or Jesus, or whatever thing must be reanimated from the grave. Only they can provide fair legal representation to the dead.

Do you know how a Ouija board works? You place your hands on the edge of this plastic tray and slide it around a board, to get messages from the other world. You may then proceed to get rich quick, as your beloved dead Granny will send you today’s Mega Millions numbers. Granny was always trustworthy in such matters.

It’s the easiest thing in the world to elect yourself, consciously or no, as the One True Vessel of an entity who isn’t around to fend for themselves.

Most liberals I know, roll their eyes and continue doomscrolling when confronted with a calm-sounding originalist interpretation. But the correct moral and legal response to originalism, which liberal-minded folks are for some reason afraid to do, is to simply yank the reins out of the driver’s hands and yell No! Jesus and the Bible specifically orders you to love all immigrants! The Second Amendment is conditional to a well-regulated militia! Granny was morally opposed to gambling! Ouija is a trademark of the Hasbro Corporation! And only I understand the intent of the original authors, not you!

At this point, the discussion will likely devolve into a musical round of No you don’t understand it no you don’t understand it. But conservative jurists are limited, by definition, to thinking only what others have previously thought. That lack of creativity, will give pause to any conservative, before they consider puppeteering the dead again.

Cause I’m alive, live wire

It’s possible to connect to a WireGuard VPN without administrator privileges on Windows.

But by design, the process for doing so is documented poorly.

First, install the WireGuard quick configuration file as an administrator. (The user won’t be able to create or delete new tunnels, just start or stop existing ones.)

Then, you’ll need to run RegEdit as an administrator (type in regedit.msc into the Run window, right click, and select Run as administrator), and then create a DWORD key in the HKLM\Software\WireGuard\LimitedOperatorUI registry key. Set that DWORD to 1.

Then, you’ll need to provide new permissions to the user who you want to be able to connect and disconnect from your VPN.

To do this, run Local Users and Groups as an administrator (type in lusrmgr.msc into the Run window, right click, and select Run as administrator), select the Users folder, right click the user you want to give permissions to, and then click Properties.

Select the Member Of tab.

Then, click Add… at the bottom of the screen.

In the “Enter the object names to select” text box, type in Network Configuration Operators and click Check Names.

You’ll have the option to select the Network Configuration Operators group. Do so and click OK.

Click OK on the Select Groups window, and click OK on the Properties window.

Now, your non-administrative user can connect to, or disconnect from, any existing WireGuard tunnel, without being able to add or delete existing tunnels.

You’ll still need to add or delete new WireGuard connections as an administrator, but using this technique, a non-administrator can turn on or off VPN connections on Windows.

‘Cause my sweet baby ain’t around

Bluegrass.  It’s a totally American music. Born around the same time as rock and roll, it developed in a parallel path, touching other musics and being touched by them.

I’m choosing bluegrass for you because it is what I remember.  It was an old music already, when I was growing up in Sissonville, West Virginia.  It always seemed to be back in the corner of consciousness — the only thing the radio would receive, on those long car trips to the trailer at Franklin.

Like all musics, we have to choose a starting place for bluegrass, and if we were to be fair, we’d have to go back through bluegrass’s Scotch-Irish roots, to the country dances of the Old World and to the rich ballad tradition there.  And we’d have to include work songs and the banjo as an instrument of purely African heritage.

But I’m going to lie to you, and say that bluegrass started in Dallas of 1927, and we’ll listen to a recording that Blind Lemon Jefferson had to travel all the way to Chicago to lay down:

A sparse recording of a modified blues progression.  Not much there, really, until you notice the fingerpicking and the blues singing that turned into several different kinds of American musics in the decades to come.

Let’s move to Bristol, Tennessee.  It’s 1927.  That guitar is being picked on by one Maybelle Carter:

Yet again, that fingerpicking, with the melody in the bass line.  Totally unlike the Dixieland frailing sound that you get when you strum the guitar.  Here and as above, the guitar serves as its own rhythm instrument.  This is a novel sound, and it’s transmitted out of Maces Spring, Virginia, and Ceredo, West Virginia, and anyplace else big enough to set up an antenna and a phonograph player.

Bluegrass and radio are deeply intermixed.  In the Appalachian hills, the presence of one meant the presence of the other.  My grandfather did tap dancing shows on a local radio station when he was young.  The shows always featured local talent playing local songs, and there was never any music that was cheaper than bluegrass.  Here’s Jimmie Rodgers, out of Mississippi, laying down “Blue Yodel #9.”  By this point, everyone with a radio has heard how to fingerpick a guitar.

Now before the 1940s, the banjo was generally strummed.  You could stroke the strings with the backs of your nails, and pick out a melody with your thumb, much like Mother Maybelle did on the guitar above.  That playing method was called frailing, and it was “the way a banjo sounded” for decades.

Until The Grand Ole Opry, broadcast out of Nashville since 1927, discovered Lester Flatt and Earl Scruggs in the 1940s.  These important early radio broadcasts, seeded the signature metal fingerpick sound, that you probably already associate with banjos.

Technical precision was always a key part of the bluegrass sound.  Flatt and Scruggs proved that you didn’t have to play perfectly, as long as you played fast and loud.  But at the same time, important bluegrass guitarists like Chet Atkins paved the way for diamond-cutter exactitude from guitarists like Don Felder and Mark Knopfler and Brian May.  Rock and roll was popping when Atkins recorded this stately piece in 1954:

Bluegrass took its storytelling roots from Scotch-Irish tradition.  And one of the most fascinating vestiges of that tradition, is the murder ballad.  The basic idea, is that you’re singing a cloyingly sweet song, about the fact that you beat your girlfriend with a stick and drowned her, for some inadequately explained reason.  Murder ballads are weird and spooky as hell, but they come from a long and honorable line of storytelling.  Before the Knoxville Girl was the Knoxville Girl, she was the Wexford girl, from Irish ballads of the 1800s; and before she was the Wexford girl, she was the victim in a popular broadside that Samuel Pepys wrote about in his diary.  Like I said earlier, I lied when I told you when bluegrass got started.  Here’s the Louvin Brothers, from 1954; but really, the story is from 1683 or thereabouts.

So there was never any particular Knoxville girl or boy, but there was Cas Walker of Knoxville, and he was just as bad or worse than any murderer.   The Cas Walker Farm and Home Show was a popular variety show broadcast out of Knoxville, from 1929 on, hosted by this particular owner of a chain of local supermarkets.  Cas Walker was a legendarily ornery son of a bitch, and is probably worth several books in and of himself:

Anyway, the Knoxville locals that managed to get on the program, got play across Tennessee.  A few of those locals managed to make some good of themselves:

Bluegrass music never tolerated the weak.  If anything, the bluegrass women were meaner than the men.  Here’s Loretta Lynn in 1968, committing interstate transmission of a threatening message:

By 1970, both country music and bluegrass were more or less in final form.  Here’s Cherryholmes playing a crossover hit from 2005.  There’s nothing in this song that wasn’t in the genre forty years earlier:

From 1970 onward, technical production ability began to trump creative performance ability in country and rock music.  The Phil Spector wall-of-sound production technique made popular rock and country into Wagnerian-sized orchestral fireworks.

That’s the opposite of the bluegrass I remember.  I choose to give you bluegrass, for the same reason that I would prefer to make you a meal with my own hands.  Bluegrass is human.  Bluegrass doesn’t come out of machines or recording studios.  It comes out of amateur musicians with cheap, out-of-tune voices and cheap, out of tune instruments.  It comes out of driveways and trailers and little white churches in the valley.  Bluegrass has never, ever been formal.  When musicians play the good stuff, the real stuff, they tear instruments apart.  Like all things from the heart, bluegrass is full of disorder and complexity and passion and immediacy and love.

And would you call it to his face?

Here’s a story I wrote for you.

Two poor brothers were wandering through the forest.

In a clearing, the two brothers came upon two children.

On each child’s neck, there was a rich and fine jewel-encrusted necklace, tightly locked onto her.

The mark of each necklace bore the name of an extremely powerful king that lived far away.

One brother took a child and said:

“I recognize this mark; it is my master’s mark. My master has promised a rich reward to all who are good to his children. Therefore, I will not kill this child and take the necklace, for my master would punish me with fire and torture. I will protect the child, and travel the far distance to my master, where he will reward me with untold riches instead.”

The other brother took a child and said:

“I do not recognize this mark. I have no master. I could kill the child and keep the necklace for myself, and no one would know. But I choose to save the child, because it is good and loving to do so. I will protect the child, and travel the far distance to his master. But I do not care whether I am rewarded. To make the right choice is its own reward.”

So here is your question:

Which of the brothers is the most good? 

As we move with zeal and desire

LLVM’s TableGen tool, as well the domain-specific language that goes with it, are exceptionally powerful. Tablegen is intended to take an extremely compact representation of almost everything a target machine does, and to spew out tons of helpful C++ support code, to make writing a compiler easier.

However, the documentation for TableGen is dreadful. It’s not written to the audience of developers who trying to port LLVM to a new target.

Here are some items that I wish that the documentation had explained going in.

  1. At its core, LLVM is fundamentally a set of base classes.  The base classes can be used to build language-related tools, such as a compiler, an assembler, a linker, and so on.  LLVM is not a single toy; it’s a bunch of Lego blocks that can be pulled apart and reassembled.  Being productive in LLVM development, is strongly related to understanding the existing LLVM class hierarchy.  This, in turn, implies that you must first understand what the LLVM class libraries take care of for you, so that you don’t reinvent the proverbial wheel.
  2. The standard LLVM distribution, for Windows anyway, doesn’t have all the built-in tools that you will need to work on LLVM.  You will need to bootstrap your own build of the LLVM compiler, with all the bells and whistles enabled, to do productive work.  This will probably be a via a two-stage bootstrap, where you use Visual C++ to generate a stage-one LLVM compiler, and then use the stage-one compiler to generate a complete, optimized stage-two LLVM compiler.  
  3. On Windows, make the new Visual Studio Code your primary development environment.  Use CMake and Ninja as your build system.  Although it is possible to generate a working build with classic Visual studios, do not do so, unless you absolutely must for some reason.  The projects generated by CMake for LLVM on Visual Studio, are bloated and slow.  You will eventually hate life as you wait for your Visual Studio solution to check every single project, in order to compile a single file.  
  4. The “Porting LLVM” guide suggests that you start with the SPARC target implementation, and copy it, in order to implement your own target support.  This might have been a good idea twelve years ago, but it’s a bad idea now.  A far more workable solution is to start from an implementation that already resembles your target in some way.  For example
  5. Although the TableGen language is a general-purpose templating language, a great deal of convention already exists regarding what kinds of things can be done with the language.  You must observe these conventions, as the base classes in LLVM 

Bootstrapping the LLVM compiler on Windows

Here’s the formula I used to bootstrap a complete release build of LLVM on Windows.

  1. Open a Visual Studio 2019 command prompt window
  2. git clone https://github.com/llvm/llvm-project
  3. cd llvm-project
  4. mkdir -p build/stage1
  5. cd build/stage1
  6. cmake ../../llvm -G "Visual Studio 16 2019" -A x64 -Thost=x64 -DLLVM_TARGETS_TO_BUILD="X86" -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;libcxx;libcxxabi;lldb;compiler-rt;lld" -DCMAKE_BUILD_TYPE=Release -DLLVM_OPTIMIZED_TABLEGEN=1 -DCLANG_ENABLE_BOOTSTRAP=On -DCMAKE_INSTALL_PREFIX=[ a complete path to a stage-one compiler output directory ]
  7. cd ..
  8. mkdir stage2
  9. cd stage2
  10. cmake ../../llvm -G Ninja -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=AVR -DLLVM_TARGETS_TO_BUILD="AArch64;X86" -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;libcxx;libcxxabi;lldb;compiler-rt;lld" -DCMAKE_BUILD_TYPE=Release -DLLVM_OPTIMIZED_TABLEGEN=1 -DCLANG_ENABLE_BOOTSTRAP=On -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=c:/git/llvm-project/build/ninja-clang-release/install -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_LINKER=C:\git\llvm-project\build\ninja-msvc-release\bin\lld-link.exe

But just remember brothers and sisters, you can still stand tall

Pecan smoked roaster turkey made from this recipe

Pecan smoked roaster turkey made from this recipe

Here is the Best Thanksgiving Turkey that can be made with commonly available store-bought ingredients and tools.

This is a pecan-smoked turkey with rosemary and thyme aromatics, and it will be, by far, the moistest and most flavorful turkey you have ever tasted.

Brine your bird in overnight in salt, sugar and peppercorns; then, season and smoke your bird slowly at low temperature, with moist heat, in a smoker roaster. This will result in an incredibly moist, incredibly flavorful turkey, that is a HUGE leap in quality over classic oven methods.

A bird made using this method will keep well in the fridge. Sandwiches and other things made with leftovers, will be especially tasty.

Oster manufactures a smoker roaster; it’s about $60 on Amazon as of this writing. Most hardware stores stock pecan wood chips for smoking, but it’s available on Amazon as well.

Ingredient measurements are approximate. For this recipe, measure amounts with your heart, not your cups and spoons.

This recipe comprises lessons learned from hundreds of turkey recipes and dozens of turkeys cooked over thirty years. Thus, it can be objectively described as the Best Thanksgiving Turkey.

  • 1 1/4 c salt
  • 1 c brown sugar
  • 1/4 c peppercorns
  • 1 10-14 lb turkey, fresh or frozen
  • 1 onion
  • 4 sprigs fresh rosemary
  • 2 sprigs fresh thyme
  • 2 c white wine (whatever you have open in your fridge will do)
  • 6 T butter, softened
  • 1 1/2 c pecan wood chips, for smoking

  1. Choose an outdoor location for safely smoking with the smoker roaster. You will require electrical power for the smoker roaster. Do not smoke food indoors, and do not smoke where your roaster can be rained upon.
  2. Prepare brine by mixing 1 c salt, the brown sugar, and peppercorns in a clean, food-safe cooler, bucket, or other container of sufficient size to hold the turkey.
  3. Remove giblets, neck, and any plastic trussing from turkey. Reserve these for making gravy if you wish. Add turkey to cooler. Cover turkey with water. Brine bird by keeping cooler cold for a day; you may refrigerate it or top it up with ice.
  4. The day of your event, line your smoker roaster pan and its rack with wide aluminum foil, making sure not to cover smoke vents.
  5. Coarsely chop onion. Clean rosemary and thyme. Chop thyme leaves finely.
  6. Remove turkey from brine; drain. Place turkey on rack and place rack in smoker roaster. To stabilize turkey on rack, position wings upward, behind where turkey’s neck would be.
  7. With clean hand, gently separate turkey skin from breast with your fingers, starting from cavity. Try not to tear the skin and try not to move it much out of place.
  8. Generously rub 1/4 salt, butter, and thyme, underneath turkey skin onto turkey breast.
  9. Put sprigs of rosemary and coarsely chopped onion into breast cavity. These are aromatics only; do not eat these. If you want stuffing, prepare it separately. Do not cook stuffing inside your bird, as this cooking method does not achieve a safe temperature for this purpose.
  10. Add pecan wood chips to smoking cups. Make sure smoking vents in pan are not covered by foil.
  11. Add wine to smoker roaster pan. Place rack into smoker roaster pan, and then pan into smoker roaster, in your chosen outdoor location. Cover with lid.
  12. Set temperature to 200 F (two hundred degrees Fahrenheit).
  13. Roast bird for approximately four to five hours, more or less.
  14. Every half hour or so, baste the turkey with its drippings and wine, using a turkey baster.
  15. Temperature control during cooking is key. If your bird is cooking too fast for your party, you may need to pull the temperature back to 175 degrees F; if your bird is too slow, you may need to rush it along at 225 degrees F or higher. You may even hold its temperature below 150 degrees F. The slower you cook your bird, the juicier it will come out.
  16. Your bird is done when a digital thermometer, inserted in the deepest part of the breast against the breastbone, reads precisely 165 degrees F. Measure temperature precisely; do not estimate temperature through other methods. Your bird’s skin will be quite dark due to the smoking.
  17. Unplug roaster smoker. Move roaster smoker indoors. Let bird rest covered in pan for ten minutes or so.
  18. Insert a large serving fork in neck and a large serving fork into bird cavity. Lift bird slowly and carefully onto serving platter. Note that the bird may be lightly stuck to rack. Use caution while removing to avoid burns.
  19. If you choose to make gravy, do not use turkey pan drippings for it; smoked turkey drippings tend to be too bitter for this purpose.

Enses, enses requirimus, requirimus saevos nos

DEAR MISS MANNERS THE BARBARIAN: I’m a pharmacist. I have always been told that I look young for my age, which I have chosen to accept as a compliment. However, at the pharmacy, my customers frequently ask me my age, and some come right out and say that they would prefer to be served by an older pharmacist.  This is really starting to irritate me, as it’s directed at me multiple times a day and it’s none of their business how old I am. Is there any other polite way to get these people to stop asking?

GENTLE READER: When King Numedides lay dead at my feet and I tore the crown from his gory head and set it on my own, I had reached the ultimate border of my dreams. I had prepared myself to take the crown, not to hold it. In the old free days all I wanted was a sharp sword and a straight path to my enemies. Now no paths are straight and my sword is useless. What you can say, with a pleasant smile, is: “Perhaps you would prefer to come back tomorrow. I’ll still be the pharmacist, but I’ll be older then.”

DEAR MISS MANNERS THE BARBARIAN: My parents are first cousins. I have a friend who likes to tell jokes about people whose parents are first cousins. She is not aware that my parents are first cousins, and if she knew, she would be horribly embarrassed. Is there a way to politely put an end to these jokes?

GENTLE READER: Open, blast you! I’m a guest. I’ve paid Aram for a room, and a room I’ll have, by Crom! Bring me a tankard of Ghazan wine—I’ve got just enough left to pay for it. I notice nobody sleeps in the streets of Zamboula. The very beggars hunt a niche they can barricade before dark. The city must be full of a particularly bloodthirsty band of thieves. The easiest way of refuting prejudice is open to you. “But my parents ARE first cousins” is so good a stopper, that Miss Manners the Barbarian has heard it used by people who are not really the target of such remarks.

DEAR MISS MANNERS THE BARBARIAN: After a long flight from overseas, I realized that I had left my phone on my seat. As I could not return to the plane myself, I found a security guard, who found a representative from the airline to assist me. Before I could explain what happened, she snapped, “How could you be so irresponsible and not check for all your valuables before leaving the flight?” I was so taken aback by this customer service rep. How should I have responded to her?

GENTLE READER: Son of a slut! Mesmerism! Did you deem yourself strong, because you were able to twist the heads off civilized folk, poor weaklings with muscles like rotten string? Hell! Break the neck of a wild Cimmerian bull before you call yourself strong. I did that, before I was full-grown —like this! Hundreds of necks have been snapped between these fingers! Miss Manners the Barbarian would have said tersely, “Thank you for your courtesy” while checking the person’s nameplate.

Feeling incorrect? Do you wish to crush your enemies, see them driven before you, and to hear the lamentations of their women?  Address your questions (in black or blueblack ink on white writing paper) to Miss Manners the Barbarian, in care of this newspaper.

The time has come at last to throw away this mask

Here are some pretty mathematical identities that I found while trying to answer a programming question. Let’s say you want to find a sum of the following form:

0 \times 1 + 1 \times 2 + 2 \times 3 + 3 \times 4 + ... + (n-1) \times n

Or, in other words, you want to find:

\left \{ n, k, f(n)  \hspace{2mm} \epsilon \hspace{2mm} \mathbb{N}^0 \hspace{2mm} | \hspace{2mm} f(n) = \sum \limits_{k=0}^n k(k-1)\right \} \hspace{1cm} (1)

Now, the boring and slow way of doing this would be to write a computer program to iterate through all those possibilities and sum the results. But there’s a way we can calculate that result directly, without doing all those multiplies and adds.

First, let’s get some intuition as to what form a solution to this problem might take. Now an integral is not exactly the same as a finite sum, but the two are related.  For a monotonically increasing finite sum like the one above, the definite integral from 0 to n might resemble the formula we’re looking for:

\begin{aligned}  f(n) &\approx \int_{0}^{n} n(n-1) \\  &\approx \int_{0}^{n} n^2-n \\  &\approx \int_{0}^{n} n^2 - \int_{0}^{n}n \\  &\approx \frac{n^3}{3} - \frac{n^2}{2}  \end{aligned}

Now we’re not lucky enough to have this ballpark estimate be equal to the answer. However, this estimate gives us a hint that we might be able to find a solution in the form of a cubic polynomial of n:

f(n) = an^3 + bn^2 + cn + d \hspace{1cm} (2)

So let’s start by manually calculating the first few answers to equation 1:

\begin{aligned}  f(0) &= 0 \\  f(1) &= 0 \\  f(2) &= 2 \\  f(3) &= 8  \end{aligned}

Plugging these answers back into equation 1 we get:

\begin{array}{cccccccccccc}  a(0)^3 &+ &b(0)^2 &+ &c(0) &+ &d &= &0 \\  a(1)^3 &+ &b(1)^2 &+ &c(1) &+ &d &= &0 \\  a(2)^3 &+ &b(2)^2 &+ &c(2) &+ &d &= &2 \\  a(3)^3 &+ &b(3)^2 &+ &c(3) &+ &d &= &8 \\  \end{array}

Which we can immediately simplify to:

\begin{array}{cccccccccccc}  0a &+ &0b &+ &0c &+ &d &= &0 \\  a &+ &b &+ &c &+ &d &= &0 \\  8a &+ &4b &+ &2c &+ &d &= &2 \\  27a &+ &9b &+ &3c &+ &d &= &8 \\  \end{array}

Now before we begin solving this particular system of equations, just look at the first one, which has all of a, b, and c being multiplied by 0. So they can have no effect on the result of the equation, regardless of n. Therefore we know, without doing any real work, that:

d = 0

Plugging in zero for d, back into the system of equations, simplifies things a little more for us:

\begin{array}{ccccccccc}  a &+ &b &+ &c & & &= &0 \hspace{1cm} (3) \\  8a &+ &4b &+ &2c &- &2 &= &0 \hspace{1cm} (4) \\  27a &+ &9b &+ &3c &- &8 &= &0 \hspace{1cm} (5) \\  \end{array}

Okay, so we have reduced the problem to finding the three unknowns a, b, and c. Now there are a bunch of ways we can solve this system of simultaneous equations. Good old fashioned algebra works here, but we just have to be patient with carefully shuffling symbols around. From equations 3 and 4:

\begin{aligned}  a+b+c &= 0 \\  2(a+b+c) &= 0 \\  2a+2b+2c &= 0 \\  2a+2b+2c &= 8a+4b+2c-2 \\  -6a-2b &= -2 \\  \frac{-6a-2b}{-2} &= \frac{-2}{-2} \\  3a+b&=1 \hspace{2cm} (6)\\  \end{aligned}

And from equations 4 and 5:

\begin{aligned}  8a+4b+2c-2&=0 \\  \frac{3}{2}(8a+4b+2c-2) &= \frac{3}{2}(0) \\  12a+6b+3c-3&=0 \\  12a+6b+3c-3&=27a+9b+3c-8 \\  5&=15a+3b \\  15a+3b&=5 \hspace{1cm} (7) \\  \end{aligned}

Now — coming into the home stretch — from equations 6 and 7:

\begin{aligned}  3a+b &= 1 \\  3(3a+b) &= 3(1) \\  9a+3b-3&=0 \\  9a+3b-3&=15a+3b-5\\  2&=6a \\  a&=\frac{1}{3} \hspace{1cm} (8)  \end{aligned}

Finally! Now we have values for a and d. Now we can solve for b, from equation 6:

\begin{aligned}  3a+b &= 1 \\  3(\frac{1}{3})+b&=1 \\  b&=0  \end{aligned}

And from equation 3, we can get c:

\begin{aligned}  a+b+c &= 0 \\  \frac{1}{3}+0+c&=0\\  c&=-\frac{1}{3}\\  \end{aligned}

So we’ve figured out all the coefficients for the simultaneous equations:

\begin{aligned}  a&=\frac{1}{3} \\  b&=0 \\  c&=-\frac{1}{3} \\  d&=0\\  \end{aligned}

And we can insert those into equation 2 to find the characteristic equation, and hence we discover a couple pretty identities:

\begin{aligned}  f(n)&=\frac{1}{3}n^3 + 0n^2 -\frac{1}{3}n - 0 \\  &=\frac{1}{3}n^3 -\frac{1}{3}n \\  &=\frac{n}{3}(n^2-1) \\  f(n) = \sum \limits_{k=1}^n k(k-1) &= \bf{\frac{n(n^2-1)}{3}} \hspace{1cm} (9) \\  &= \bf{\frac{(n-1)(n)(n+1)}{3}} \hspace{1cm} (10) \\  \end{aligned}

Now that’s one way to do it. But this identity can be proven in multiple other ways.