Skip Navigation

InitialsDiceBearhttps://github.com/dicebear/dicebearhttps://creativecommons.org/publicdomain/zero/1.0/„Initials” (https://github.com/dicebear/dicebear) by „DiceBear”, licensed under „CC0 1.0” (https://creativecommons.org/publicdomain/zero/1.0/)S
Posts
4
Comments
262
Joined
3 yr. ago

  • I used to work summers as an apprentice electrician. The amount of crazy wiring I saw in old houses was (heh) shocking. Sometimes it was just that it was old. Real old houses sometimes just had bare wire wrapped in silk. ... And a few decades later that silk was frayed and crumbling in the walls and needed replacing.

    My current house was wired at a time when copper was more precious, so it was wired up and down through the house, with circuits arranged by proximity, not necessarily logic. When a certain circuit in my house blows the breaker, my TV, PC and one wall of the master bedroom all lose power. The TV and PC are not in the same room either.

  • Just saying.

    .... Saying what, exactly?

    I said that we should

    • design for change
    • "within reason"
    • because we can't know what exact changes are needed.

    And you argued... The same thing? Just in the reverse order?

  • Have you ever been in an old house? Not old, like, on the Historic Register, well-preserved, rich bastard "old house". Just a house that has been around awhile. A place that has seen a lot of living.

    You'll find light switches that don't connect to anything; artwork hiding holes in the walls; sometimes walls have been added or removed and the floors no longer match.

    Any construction that gets used, must change as needs change. Be it a house or a city or a program, these evolutions of need inevitably introduce complexity and flaws that are large enough to annoy, but small enough to ignore. Over time those issues accumulate until they reach a crisis point. Houses get remodeled or torn down, cities build or remove highways, and programs get refactored or replaced.

    You can and should design for change, within reason, because all successful programs will need to change in ways you cannot predict. But the fact that a system eventually becomes complex and flawed is not due to engineering failures - it is inherent in the nature of changing systems.

  • ... And can you fix it?

  • That sounds amazing - OMW to check it out!

  • Oh, for sure. I focused on ML in college. My first job was actually coding self-driving vehicles for open-pit copper mining operations! (I taught gigantic earth tillers to execute 3-point turns.)

    I'm not in that space anymore, but I do get how LLMs work. Philosophically, I'm inclined to believe that the statistical model encoded in an LLM does model a sort of intelligence. Certainly not consciousness - LLMs don't have any mechanism I'd accept as agency or any sort of internal "mind" state. But I also think that the common description of "supercharged autocorrect" is overreductive. Useful as rhetorical counter to the hype cycle, but just as misleading in its own way.

    I've been playing with chatbots of varying complexity since the 1990s. LLMs are frankly a quantum leap forward. Even GPT-2 was pretty much useless compared to modern models.

    All that said... All these models are trained on the best - but mostly worst - data the world has to offer... And if you average a handful of textbooks with an internet-full of self-confident blowhards (like me) - it's not too surprising that today's LLMs are all... kinda mid compared to an actual human.

    But if you compare the performance of an LLM to the state of the art in natural language comprehension and response... It's not even close. Going from a suite of single-focus programs, each using keyword recognition and word stem-based parsing to guess what the user wants (Try asking Alexa to "Play 'Records' by Weezer" sometime - it can't because of the keyword collision), to a single program that can respond intelligibly to pretty much any statement, with a limited - but nonzero - chance of getting things right...

    This tech is raw and not really production ready, but I'm using a few LLMs in different contexts as assistants... And they work great.

    Even though LLMs are not a good replacement for actual human skill - they're fucking awesome. 😅

  • What I think is amazing about LLMs is that they are smart enough to be tricked. You can't talk your way around a password prompt. You either know the password or you don't.

    But LLMs have enough of something intelligence-like that a moderately clever human can talk them into doing pretty much anything.

    That's a wild advancement in artificial intelligence. Something that a human can trick, with nothing more than natural language!

    Now... Whether you ought to hand control of your platform over to a mathematical average of internet dialog... That's another question.

  • In order to add their names to your dictionary. You don't have to allow it. But given that there's no internet access for the keyboard - it seems pretty safe

  • Lots of little quality of life things. For instance, in Kotlin types can be marked nullable or not. When you are passing a potential null into a non-nullable argument, the compiler raises an error.

    But if you had already checked earlier in scope whether or not the value was null, the compiler remembers that the value is guaranteed not to be null and won't blow up.

    Same for other typechecks. Once you have asserted that a value is a given type, you don't need to cast it everywhere else. The compiler will remember.

  • Kotlin is Java with all the suck taken out.

    It's a modern, ergonomic language that runs on the JVM and removes as much GD boilerplate as it can.

    It's fantastic.

  • That one dude still using Delphi is getting screwed.

    Also, these salary numbers seem... real low. I get that it's the median so maybe a huge number of overseas engineers are pulling the results down but in my neck of the woods 105K is less than what we pay juniors.

  • Argh. I hate that argument.

    Yes - "Rewriting history" is a Bad Thing - but o argue that's only on 'main' (or other shared branches). You should (IMHO) absolutely rewrite your local history pre-push for exactly the reasons you state.

    If you rewrite main's history and force your changes everybody else is gonna have conflicts. Also - history is important for certain debugging and investigation. Don't be that guy.

    Before you push though... rebasing your work to be easily digestible and have a single(ish) focus per commit is so helpful.

    • review is easier since concerns aren't mixed
    • If a commit needs to be reverted it limits the collateral damage
    • history is easier to follow because the commits tell a story

    I use a stacked commit tool to help automate rebasing on upstream commits, but you can do it all with git pretty easily.

    Anyway. Good on you; Keep the faith; etc etc. :)

  • Net removal of 1500 LoC...

    I'm gonna make you break this up into multiple PRs before reviewing, but honestly, if your refactoring reduced the surface area by 20% I'm a happy man.

  • Mechanically - both games are puzzle games in the same rough 3d-platform-puzzler vein as Portal. Instead of solving puzzles with teleportation however, you've got laser beams and force fields.

    On a more metaphysical level, the first game is a philosophical investigation of what it means to be human - to be alive and an individual.

    The sequel is a meditation on what makes societies succeed or die.

    Both games are fun, the puzzles are just hard enough to be interesting with a sprinkling of well-hidden secrets. But the real reason to play The Talos Principle is if you've got an interest in philosophy - the storylines are deeply interested in asking some very big questions. ... and they don't provide answers either - the game poses questions and allows you to answer as you see fit.

  • If you haven't played it already - Inscryption - by the same author - is also really good.

    ... and I should lay off the emdash for the rest of the night.

  • One of the best programmers I worked with was a hunt and peck typist.

    His code was meticulous. I frequently learned things reading his PRs.

    Pair programming with him otoh....

  • Amazing.

    I'm just starting to learn how language development works and like... of any language to try implementing, Haskell definitely seems like one of the most complex.

    Like - one dev could reasonably implement a Forth or Lisp, but you need a long time window to finish a Haskell...

  • You don't have enough zucchini markers.

    Hmm. How many kilos do you have? It doesn't really matter how much zucchini you plant - you will need at least three times as many markers as you think.

  • Fascinating.

    I'm a minor programming language nerd. While I'd never recommend writing an in house language - I can see the appeal for me personally.

    What were the languages like? OOP? FP? ...Logic?

    Why'd they build 2 languages?

    This seems so wild to me - sorry if I'm prying.

  • Ask Experienced Devs @programming.dev

    What's the best interview process you've experienced?

  • 3DPrinting @lemmy.world

    Don't forget to change your z offset after swapping nozzles

  • Programming Languages @programming.dev

    Advice for writing my own compiler?

  • Linux @lemmy.ml

    What's the best way to restore your desktop environment after install?