@BoydStephenSmithJr@hachyderm.io avatar

BoydStephenSmithJr

@BoydStephenSmithJr@hachyderm.io

Born 1980-05-15 in Mena, AR
Cis White Male He/him
Liberal Democratic Socialist Idealist
Professional Haskell Programmer
Lives in Cove, AR
(24 years resident of Fayetteville, AR)

Please use Wire (or Signal) for private messaging.

This profile is from a federated server and may be incomplete. Browse more on the original instance.

dbsalk, to random
@dbsalk@mastodon.social avatar

"Today is Thursday. Can we skip today? I want it to be Friday."

I feel like the 11yo is way too young to be having these thoughts.

BoydStephenSmithJr,
@BoydStephenSmithJr@hachyderm.io avatar

@dbsalk School schedules had me quickly appreciating the weekend. I was (and am) still fairly food motivated and Friday had "better" food in the school cafeteria throughout my primary and secondary education.

BoydStephenSmithJr,
@BoydStephenSmithJr@hachyderm.io avatar

@dbsalk My primary school had pizza on Friday; my secondary school had burger and fries-day. My favorite lunches they served at the time.

BoydStephenSmithJr, to random
@BoydStephenSmithJr@hachyderm.io avatar

@adamconover seems to have stopped posting Factually! here since about number 255.

For this one (260), I'll be the hype man: https://www.youtube.com/watch?v=LuDbktG9lD8

foone, to random
@foone@digipres.club avatar

you know what'd be a cool feature for an image editor?
"export last action as code"

where it looks at the last thing in the undo/redo buffer, and saves it out as a program (in C/C++/whateverscripting) that uses an ImageEditorLibrary to do the same thing

BoydStephenSmithJr,
@BoydStephenSmithJr@hachyderm.io avatar

@foone For some reason, I thought the GNU image manipulator could already do this. Maybe it was just the UI focus on playing scripts last time I used it. (I use for what little image editing I do for a while now.)

rbreich, to random
@rbreich@masto.ai avatar

Donald Trump has violated the gag order placed on him during his NY trial ten times so far. If he keeps violating it, what should Judge Juan Merchan do?

BoydStephenSmithJr,
@BoydStephenSmithJr@hachyderm.io avatar

@rbreich Sorry if this is a repeat -- I haven't read your replies/thread to completion.

To answer your question: Escalating incarceration. First, held by the bailifs during a break. Then, all breaks for 2, 3, and (in turn) 5 court days. Next jailed while still being allowed to attend court, for 24, 48, 72 then 168 hours.

If during that whole time, and after, he continues to violate the gag order, after a week-long stay and 2-3 more warnings, incarceration until the jury is isolated.

BoydStephenSmithJr, to random
@BoydStephenSmithJr@hachyderm.io avatar

Today's BP was a very computer sciency 128/64.

BoydStephenSmithJr, to haskell
@BoydStephenSmithJr@hachyderm.io avatar

Note to self: type variables in and cannot be bound to partially applied type synonyms.

If you try to do so, in a sufficiently polymorphic way, you'll get very confusing type errors as the checker attempts to solve things with the variable bound to the "head" of the (parametrically expanded) type alias.

Last night it was (forall r. (forall f. Foldable1 f => f a -> r) -> r) and tonight it was (a -> Term a). Introducing a newtype can help, but beware impredicativity.

BoydStephenSmithJr, (edited ) to haskell
@BoydStephenSmithJr@hachyderm.io avatar

Hey, , what's the more conservative extension to the report?

I think I can do what I want either way, but I don't really know how to do it in Haskell2010 with no extensions. (I have a non-parameteric type function/family in my semantics, and don't want to give up totality.)

nixCraft, to random
@nixCraft@mastodon.social avatar

why does counting start at zero in programming? wrong answers only.

BoydStephenSmithJr,
@BoydStephenSmithJr@hachyderm.io avatar

@nixCraft

Arab plot to destroy US technology. (Zero introduced by adoption of "Arabic" numerals.)

OR

Invented by Big Undefined to sell more NULL.

eh, to random
@eh@functional.cafe avatar

What is the best way to start using #purescript + halogen with #nix on ARM and macOS? purs-nix seems to only support x86_64. :|

BoydStephenSmithJr,
@BoydStephenSmithJr@hachyderm.io avatar

@eh If you don't have non-purescript dependencies, you might just start with a nix setup for npm. Spago package sets are nix-ish handling for purescript deps.

Best of luck. Boosted for reach.

mangoiv, to haskell
@mangoiv@functional.cafe avatar

Out:
(A -> D) -> B -> C -> D

In:
(A -> (D, B, C) ) -> D

BoydStephenSmithJr,
@BoydStephenSmithJr@hachyderm.io avatar

@mangoiv Higher ranked types, FTW?

aksharvarma, to programming
@aksharvarma@mathstodon.xyz avatar

Evolution of how I think of while :

  1. When I first learned "loops":

while (condition is true) {do these things, adjust things so a slightly new condition is checked}

// That's where I first saw infinite loop and how there are intentional infinite loops.

  1. A small step to move condition update out of the loop body:

for (i=0; i< N; i++) {do these things}

// After the couple of days it took to get used to them, I found them neater and closer to how I think of things.

  1. Most of the time, the i from before is indexing into something, so let's directly deal with the item being indexed:

for item in collection:
do stuff

After the few days to rewire syntax muscle memory, going back would decidedly feel like a step back.

I don't want to give up automatic (and transparent) out-of-bound checks.

  1. There are actually only about 3/4 things one does inside a loop:

map/fold/scan/filter function-to-call collection-to-traverse-through

;; Getting rid of explicit indexing was just step one.
-- After a few days/months/years, I now realize that it is more important and less buggy if I think only of the function to call (and whether I want to end up with a new (maybe pruned) collection, a single thing, or "both" (that's how I think of scans))


Alternatively, my evolution as I learned new languages idioms:
-->
or -->
-->
or --> ???

BoydStephenSmithJr,
@BoydStephenSmithJr@hachyderm.io avatar

@aksharvarma Loop bodies are F-algebras and the "collection" over which you loop is a fixpoint of F. The recursion-schemes library handles that when F is an endofunctor on the term/expression category in your language.

You can still apply algebra semantics for "higher" functors F (when F is "really"/also a [type-indexed] functor family) with the appropriate Kan extensions.

BoydStephenSmithJr,
@BoydStephenSmithJr@hachyderm.io avatar

@aksharvarma I was just yes-and-ing your post with what I think is the next step.

There's definitely categorical jargon, but that's how you fit the idea into 500 characters.

Basically every "container" type is recursive: some trivially [e.g. (a,a)] and some in much more interesting ways. Each of the "layers" is a (categorical) functor, the container is just a fixed-point (recursive self-call) of that functor.

grumpygamer, (edited ) to random
@grumpygamer@mastodon.gamedev.place avatar

When you first launch a game do you...

BoydStephenSmithJr,
@BoydStephenSmithJr@hachyderm.io avatar

@grumpygamer Most games don't like my tiling window manager, so I have to fiddle with their settings before they are remotely playable.

koz, to haskell
@koz@chaos.social avatar

Fedi: do int2Word# and similar operations have a runtime cost? I assume 'no', but I'd like to be sure.

BoydStephenSmithJr,
@BoydStephenSmithJr@hachyderm.io avatar

@koz I'm not sure but I think https://github.com/ghc/ghc/blob/bf3d4db0894233ec72f092a4a34bce9ed4ff4e21/compiler/GHC/Builtin/primops.txt.pp#L817 says that actually no code is emitted for that prim op, which would mean no runtime cost.

Hopefully, a expert will come through and confirm or correct me.

Of course, that's not part of the language spec, or the public API of GHC, so it could change on a whim. (It won't.)

lily, to random
@lily@glaceon.social avatar

frequency can be used to measure things that really feel like they should use different units.

"how often should my OS check the state of the keyboard"

"middle C"

this is technically a coherent answer

BoydStephenSmithJr,
@BoydStephenSmithJr@hachyderm.io avatar

@lily I feel like this might be useful / funny in the same vein: https://www.youtube.com/watch?v=KmfdeWd0RMk

charliejane, to random
@charliejane@wandering.shop avatar

Audiobooks don't count as reading. Neither do e-books. Or printed books.

You haven't really read a book unless it was tattooed on the entrails of a one-eyed goat under the full moon during the winter solstice. While wearing a piece of rutabaga on your head.

BoydStephenSmithJr,
@BoydStephenSmithJr@hachyderm.io avatar

@charliejane That's why it didn't work. I was using cabbage (and before that, broccoli). I knew it was some brassica!

molly0xfff, (edited ) to random
@molly0xfff@hachyderm.io avatar

<s>Two</s> Three more questions. Please answer both!

  1. When were the "good old days" of the net?
BoydStephenSmithJr,
@BoydStephenSmithJr@hachyderm.io avatar

@molly0xfff I've had "good old days" in all of those periods (I'm now 43), but I think I peaked somewhere 2012-2016.

Trump's election was traumatic, even though I was not in danger. I did "fine" in 2020 -- but 2021 and 2022 kicked me in the teeth, and while there are definitely ways I think I'm better than I ever was, I'm never quite as content.

BoydStephenSmithJr,
@BoydStephenSmithJr@hachyderm.io avatar

@cshlan I answered the first question based on that, but I saw the third question out of context because the default Mastodon UI displays threads from people I follow out of order. So, I answered it based on the text "your good old days".

molly0xfff, to web
@molly0xfff@hachyderm.io avatar

If you've ever found yourself missing the "good old days" of the , what is it that you miss? (Interpret "it" broadly: specific websites? types of activities? feelings? etc.) And approximately when were those good old days?

No wrong answers — I'm working on an article and wanted to get some outside thoughts.

BoydStephenSmithJr,
@BoydStephenSmithJr@hachyderm.io avatar

@molly0xfff Proper many-to-many threaded conversations on mailing lists that I could participate in, but also be caught up with at the end of every day.

RSS feed full of webcomics.

... I think that's what I miss, but I'm not sure I'd participate in them anymore. I never did figure out the best way to "sync" my reading "context" with my phone for either.

mloxton, to random
@mloxton@med-mastodon.com avatar

Seven things that should be entirely free at point of use:

  1. Healthcare
  2. Education
  3. Justice
  4. Fresh air
  5. Clean potable water
  6. Public Transport
  7. Internet
BoydStephenSmithJr,
@BoydStephenSmithJr@hachyderm.io avatar

@mloxton The devil's in the details. If I want to learn alchemy and astrology, and can find people that can teach those subjects but they want to be paid for the teaching activity, under what conditions should society pay them, and by what mechanism(s)?

Also, there's a not insignificant block of people that believe in retributive justice. Is that want you want to be free?

douglascrockford, to random
@douglascrockford@layer8.space avatar

Many people do not understand why I think that the IEEE 754 Floating Point standard is defective and should be replaced.

So I made a demonstrator. You can enter a number literal or arithmetic expression, and it will show you IEEE 754's version. I think the errors are shocking.

https://www.crockford.com/deconstruct.html

BoydStephenSmithJr,
@BoydStephenSmithJr@hachyderm.io avatar

@andreasbombe @douglascrockford Haven't we done decimal floating point (and hex floating point) several times in the past, and it always (a) has all the same kinds of errors, just for different specific values and (b) is less efficient because it has to store the leading digit of the mantissa (for non-denormed values) since there are 9 options?

If you really want to do Rational numbers, most languages have a library, though they aren't fixed size.

rain, to random
@rain@hachyderm.io avatar

disconcerting that "reading a lot of code and thinking really hard" is still unparalleled as a way to find bugs

BoydStephenSmithJr,
@BoydStephenSmithJr@hachyderm.io avatar

@jmc @rain Yeah, I think fuzzing might be on par these days.

llimllib, to random
@llimllib@hachyderm.io avatar

I started hacking on a git ls alias this morning, which lists files in a similar way to github.

My favorite thing about it is that the file names are hyperlinks, so when I click on them they open in my editor.

My least favorite thing is dealing with git alias + bash escaping. The implementation ended up super ugly: https://github.com/llimllib/personal_code/commit/99c73baeb1bf3d43972cef970a213ed50a9ac0ff#diff-bb90adde01400490cbd04620ffbe509e58cc7c7f39a6780c9ca693a2405800d9R32-R53

BoydStephenSmithJr,
@BoydStephenSmithJr@hachyderm.io avatar

@llimllib I suspect you already know this, but for complex tasks instead of an alias, you can just have a git-my-command executable in your $PATH and git my-command will invoke it.

I believe you could even have something like gitls-github-style.bash in your path and also use an alias to tie that to git ls.

It might save you one level of escaping?

schratze, to random
@schratze@todon.nl avatar

Help I cannot stop interpreting POS as Piece of Shit instead of Point of Sale

BoydStephenSmithJr,
@BoydStephenSmithJr@hachyderm.io avatar

@schratze Having worked on POS software, "they are the same picture".

Well, not really, but there's a LOT of money spent on cost-cutting in lieu of "quality".

  • All
  • Subscribed
  • Moderated
  • Favorites
  • anitta
  • kavyap
  • cisconetworking
  • thenastyranch
  • magazineikmin
  • hgfsjryuu7
  • DreamBathrooms
  • InstantRegret
  • Youngstown
  • slotface
  • PowerRangers
  • Durango
  • everett
  • rosin
  • normalnudes
  • vwfavf
  • modclub
  • ethstaker
  • khanakhh
  • tacticalgear
  • ngwrru68w68
  • osvaldo12
  • mdbf
  • tester
  • cubers
  • Leos
  • GTA5RPClips
  • provamag3
  • All magazines