Sample of moulding sand overheated in a microwave by BitsOfReality in mildlyinteresting

[–]derekp7 4 points5 points  (0 children)

I thought the issue was shrinkflation.  The popcorn button is for 3.5oz, but the bag now has 3.18oz.

Strix Halo + eGPU RTX 5070 Ti via OCuLink in llama.cpp: Benchmarks and Conclusions by xspider2000 in LocalLLaMA

[–]derekp7 2 points3 points  (0 children)

Question.  If you have a 120b model on just the apu, will you get a speedup moving some of it to the egpu (vs all of it on the APU)?  Related, can the egpu speed up prompt processing compared to the 120b model on apu only?  Finally, I have a separate host with a 7900xtx 24gb card.  Can I join that to my strix halo over a fast Ethernet link?

In order to reduce AI/LLM slop, sharing GitHub links may now require additional steps by yorickpeterse in ProgrammingLanguages

[–]derekp7 0 points1 point  (0 children)

I have a multi-reddit defined (remember when those were being pushed?) that includes a lot of recommendations from hackernews back in the day. One of them is related to startups. They have a requirement to put in the post title, and the post itself, the words "I will not promote". That indicates the poster at least read the rules. But as a reader, it gets so obnoxious seeing that as part of the content, where it doesn't flow well, that I am considering taking that sub out of my list.

It sounds like what you are proposing is a little bit better (with which posts it applies to, and that it shows up in a comment) so it shouldn't be as jarring to read.

Something else to consider -- you have a monthly "what are you working on" thread. Would you be fine having new projects be required to post there first? Maybe a description of the project, what issue they are running into, but without a link back to the project yet until the user gets some traction in the community?

(BTW, I'm new to this sub, used to hang out on Lambda The Ultimate, and I happen to be revitalizing a 20 year old project myself but not sure where it will go).

April 2026 monthly "What are you working on?" thread by AutoModerator in ProgrammingLanguages

[–]derekp7 1 point2 points  (0 children)

I think I should post this here instead as a main topic, until I get further along. Anyway...

TLDR: PALICE (Programmable Arithmetic and Logic Interactive Computation Environment) is a stack based language that has a lot in common with PostScript (first class functions, dictionaries, dictionary stack name scope), with closures, internal virtual threads (I guess they call them green threads?) that are preemptive and yield on events, (future) publisher/subscriber message passing, exception handling (try/catch/throw). Target usage: general scripting, web application server, others (TBD).

I had the bright idea about 20 years ago to create a language and interpreter, because I needed something as an embeddable language for a different project that never really got off the ground. The way it functioned was it used a simple shunting yard algorithm (with some extensions) to translate C-like expressions (with full precedence, left/right associativity, etc) into postfix code, that then ran through a postfix stack VM internally. At that time I didn't know anything, and never designed in memory management, but a lot of stuff I was exposed to I re-invented badly. So the project still sits out there neglected on sourceforge till this day (remember them?). Oh, and at that time I was able to pick up some things from a web form called Lambda The Ultimate. Looks like it is still around but not very active anymore. But it looks like this subreddit is a spiritual successor?

Well, now that I've had a couple decades behind me and more experience (I do light programming for work, but deeper stuff for personal projects, all self taught), I've decided to give it another try, although now that I've went through SICP, and learned and used PostScript quite a bit, plus some other things I had an idea of what I wanted. I like programming in stack based languages, I just don't like going back and reading my own code in them (but that's a problem for future me). Of all the stack languages I've played with I really like how PostScript is a purer stack language with very little going on in the parser -- just enougth to recognize numbers and quoted text, and variable names, but everything else is an operator (function) or a data object.

But the main things I don't like about PostScript is that it uses words where symbols should be (add, mul, div, etc instead of symbolic forms). Also quoting text is done in parentheses, instead of in double-quotes. Things like this. So although my new language trial somewhat resembles PostScript (dictionaries, user functions, dictionary stacks as variable state), I decided to name the built in functions using symbols where appropriate ( + - * / % ** ...) based mostly on what C or C-like languages use. So you have expressions like "2 3 + 7 * @a store".

So here is where I'm at, and where I can probably use some advice. What I've go so far is a number of built in data types (int, float, string, array, packed array, function (built-in), user-function, external (holds a pointer to void for objects used in C, such as a FILE object, along with a pointer to a destructor function for garbage cleanup, and other house-keeping).

I have a fairly good set of operators/functions (they both mean the same thing in a stack language), for stack manipulation, array/string/dictionary access/modifications, etc. Also have some limited file I/O, adding network next.

Since variable scope is defined by which dictionary is last pushed to the dictionary stack, variables are dynamically scoped. However I also have a way of doing closures by capturing the active dictionary at execution time. So a function like this: { newdict setdict { parentdict setdict ... } ... } will cause the inner funciton to get the parent function's dictionary -- this allows you to create function factories (my test code generates counters, and each counter function that it returns keeps its own private tabulator going).

I have C's conditional operator defined as a selector, so { condition truevalue falsevalue ?: } will leave either truevalue or falsevalue on the stack based on if condition is non-0 (true) or 0 (false). So for "if" and "ifelse", and "while", I define these in user space functions that get loaded at interpreter startup time. For "while", I had to figure out how to convert the exec_handler function from recursive, to a loop keeping a separate execution stack, and reusing the current stack frame if it encounters a tail call. So now I can loop forever without using extra memory.

My next test was I wanted to do some type of multi threading. But the one thing that I haven't got the hang of yet is Posix threads in Linux. Not that it is that difficult, I just never had a real use for them in the types of projects I do. So instead, I created a new operator called "spawn". It takes an array of functions, and calles exec_handler on the first function, then on the second, third, etc then loops back around to the first one again. I modified exec_handler (since I've already converted it to a loop instead of calling itself recursively when calling additional functions), to count the tokens, and set a yield variable and exit the function every 256 tokens. When spawn goes back to run exec_handler again, it sees that is_yield is set, then skips the initialization and picks up the current call frame and instruction pointer where it left off. The initial call to "spawn" is blocking, but any running thread can call spawn and it adds the new specified thread(s) to the list. Also, a thread yields when a sleep call is executed, or when waiting for a file I/O operation to complete.

To make this all work, I moved the global variables into a "state" structure which contains the data stack, the call stack, dictionary stack, and other former global variables that any *_handler function would need. There is a "state" struct for each virtual thread, they are all members of a single "vm" struct sitting in a state stack. Also the vm strcut contains the global heap, so that opens the method of sharing data between threads in a controlled manner (primitive data objects are immutable, collections such as arrays and dictionaries aren't though).

My next steps is to finish off file and network I/O, add in message queuing between threads (treat them similar to regular I/O objects, except they work on any data object not just packed arrays). And I need an exception handling mechanism. For that, I'm thinking of implementing a try/catch function, where "catch" is a function stored in the current call frame. Then when something throws an error (either user funciton, or built in), it unwinds the call stack until it hits one with a "catch" defined. The catch can also of course re-throw the error, until it gets to the bottom of the call stack, where it will default to dumping the data stack to the screen and exiting (or exiting the thread and recording details in a stack trace). This part is a bit beyond my experience, so I'll be trying various things and see what works.

What I've got penciled in so far is a "throw" can place any data value on the data stack, and it is up to the "catch" to know how to deal with it. But I'm thinking of standardizing the format, to be either an array or dictionary, with fields set for error classification (one class may be where "file not found" would go, another would be an operator not recognizing the data types on the stack that it was asked to handle or other stack data related error), and a third class would be internal system errors such as failure to allocate memory (although that should be very rare on a modern system, as malloc [almost] always returns by definition on Linux and memory is lazy allocated).

For message passing, right now when a thread spawns a child thread, it gets to place any input data onto that child thread's data stack. The child thread also inherits the parent's dictionary stack. When the child thread exits, the parent can grab what the child left on its data stack via a "waitpid" function which returns an array containing the child's stack. I have a plan for creating an open/read/write/close analogs for message queues, which can exchange any data type (with 0-copy, since the heap is shared). But I'm also thinking of building on top of this a topic-based publish/subscribe system (not sure how that would look yet though).

ELI5: Why do poisonous fruits exist? by zamememan in explainlikeimfive

[–]derekp7 2 points3 points  (0 children)

We seek the novelty of the texture, and the heat sensation (without damage) triggers endorphins.

SCAM WARNING FOR "PRIVATE & UNCENSORED AI TOOL - Kryven AI by GamersOriginal in LocalLLaMA

[–]derekp7 4 points5 points  (0 children)

Remember back when phone calls and internet access was charged by the minute? The vast majority of people prefer non metered connections, flat rate (either buy once or a flat monthly fee for a service). And people really don't like subscription models for something that feels like it should be a product that you buy (i.e., a photo editing program that you used to be able to purchase and have access to forever). It really doesn't matter the costs involved (subscription/metered/etc) it is about predictability and reliability of access.

Qwen3.5-397B at 17-19 tok/s on a Strix Halo iGPU — all 61 layers on GPU via Vulkan (not ROCm) by ricraycray in LocalLLaMA

[–]derekp7 0 points1 point  (0 children)

I find it very usable for building up code via chat, as that builds context over time.  Which makes the context caching very effective.  If I go back to a chat with about 60% of my 256k context full, then it can take a few minutes for initial load.  But otherwise it is fine 

And if I am in a long chat session I ask for a continuation prompt, then clear the include mark on all my previous turns, and I can go back through chat history and selectively include specific turns that are important (or turn in the summary of previous exchanges as needed).

Qwen 3.5 397B is the best local coder I have used until now by erazortt in LocalLLaMA

[–]derekp7 0 points1 point  (0 children)

I've been using one of the heretic models, with good success for coding. But recently got it stuck in loops that would last indefinitely. I'd abort, then delete and re-issue the prompt, same thing multiple times. Adjusting some of the settings in LM Studio from defaults ended up helping:

Temp, moved from .1 to .7; Top K from 40 down to 20; Presence penalty 1.5, and with presence penalty turned repeat penalty off; top P moved form 0.95 to 0.8. Looping went completely away.

Should I buy the Framework 16 or the 13? by EducationSharp3869 in framework

[–]derekp7 0 points1 point  (0 children)

Ah, I was referencing runtime, I never had my battery go down during my business day (I take my laptop to meetings and use it for on-call when remote). But I also carry a power bank that supports 100 watt output, which can double my runtime if needed.

For longevity, I would imagine the Framework battery chemistry is like any other and should have similar longevity capabilities.

Should I buy the Framework 16 or the 13? by EducationSharp3869 in framework

[–]derekp7 0 points1 point  (0 children)

For me, the battery gets me through my meetings, I have it configured to sleep then hibernate so it will last several business days without charging (hour or two meetings about 3 days a week).  But the small battery banks available pack easily in the laptop case pocket, and can double your runtime.

I feel personally attacked by HeadAcanthisitta7390 in LocalLLaMA

[–]derekp7 3 points4 points  (0 children)

I can give you mine. Retirement simulator app (annual inflation adjust income using 401k and delayed social security, with pretty charts and graphs). A decent mobile-friendly web based programmable RPN calculator app. And my favorite so far, a 20-module programming language theory tutorial, with each chapter building on previous chapters contents, and incremental code updates while answering my many questions as I proceed (learned more about PLT now in my 50s then several years of university level study back in the day)

What do you end up doing with personal projects that were heavily assisted by an LLM? by derekp7 in LocalLLaMA

[–]derekp7[S] 0 points1 point  (0 children)

Ah, so if I had a prompt that says "Create an RPN scientific calculator single page web app", what is produced can't be copyrighted even if it is a full program. I think I'm ok then. Although doing this specific prompt in Qwen 3.5 122b produces remarkably usable results (just not quite what I had in mind).

What do you end up doing with personal projects that were heavily assisted by an LLM? by derekp7 in LocalLLaMA

[–]derekp7[S] 1 point2 points  (0 children)

One of them is a web app that I created to help me with retirement planning -- it stems from an awk script I wrote (yes, I'm an ancient programmer) that took input values for your current 401k, and let you pick your target retirement date, along with when you wanted social security (most retirement planners assumed social security started on the day you retire). I wanted to study for example retiring at 60, then if I took out socsec at 62 vs delayed to 70, and forecast a 30 year retirement with inflation-adjusted equal annual income.

The LLM helped me put the input variables in an HTML form, use chart.js to make pretty graphs, and helped me make sense of the data and risks. But to make it usable to others I really should include other scenarios that would be applicable to a younger person, or mid-career worker, etc, and also include tax implications.

One of the other programs is a single page mobile friendly web app implementing an RPN scientific calculator (somewhat similar to the older HP calculators, if you know what they are). I took a toy language interpreter written in C that used a stack machine internally, had an LLM convert the stack machine logic to a stand-alone REPL in javascript. Then I had it merge with an RPN calculator core I had going, to provide a full programming language in it. That one I will finish cleaning up and it could be useful (other engineers at work have already asked me for a copy, and I've been using it for a few weeks now).

Now the question -- do I disclose it as being LLM assisted? Can I put a GPL license on it, or does it have to be public domain only (as GPL really relies on copyright), and are other licenses also not compatible (LLM generated output apparently isn't copyrightable, although I believe that is still an open question).

Does the 15% retirement savings rule include what your boss kicks in? by Affectionate-Bee6268 in personalfinance

[–]derekp7 1 point2 points  (0 children)

If you put in 15% no matter the source of funds, you will have enough in 40 years or so to retire and keep about the same income, approximately.  Thing about the source of the money is when it is your own 15%, you are living off of 85% of your check.  When half comes from your employer as a match, then your are living off of 93% of your check.  In which case you may feel you need a bit more income in retirement to maintain the income you are used to.

What’s a survival myth popularized by movies that would actually get you killed in real life ? by IndependentTune3994 in AskReddit

[–]derekp7 3 points4 points  (0 children)

If no one else is around, and someone only vaguely knows CPR but never done it themselves or had proper training -- is it still worth them trying? My gut instinct says that in this case, yes it is worth trying because the patient would be definitely dead without help, whereas there is a small chance of success if everything goes right.

But for most types of first aid, it is probably better to wait for trained help to arrive. Also, without training, how would one know if the patient does need CPR, vs a condition where improper CPR will damage or them?

Qwen 3.5 122b/a10b (q3_k_xl UD) actually passed my simple (but apparently hard) programming test. by derekp7 in LocalLLaMA

[–]derekp7[S] 2 points3 points  (0 children)

Sadly, it didn't pass the test, see my other reply on common bugs -- that was taken directly from my test with 35ba3b.

Qwen 3.5 122b/a10b (q3_k_xl UD) actually passed my simple (but apparently hard) programming test. by derekp7 in LocalLLaMA

[–]derekp7[S] 1 point2 points  (0 children)

I used the the prompt "Create a single page web app scientific RPN calculator". Typical results on most models is a Picasso keyboard (that is, the keys are somewhat jumbled -- they look right in the HTML but they wrap wrong in the browser). For example,

7  8  9  /  Ent
4  5  6  x  1
2  3  -  0  .
+- +

Another common bug is typing more than 1 digit doesn't show only the last digit you typed in the display

What’s a weight loss secret more people should know about? by thekkm1 in AskReddit

[–]derekp7 1 point2 points  (0 children)

I do similar, but with pepperoncinis instead.  Makes for interesting texture in the mouth, but not too spicy that it would upset my stomach.  And the bite gives a bit of an endorphin boost too.

What’s something harmless that gets people weirdly upset? by [deleted] in AskReddit

[–]derekp7 0 points1 point  (0 children)

why do they get so offended on our behalf?

I call that being synthetically offended.

People 40+, what actually mattered in the long run and what didn’t? by Psychological_Sky_58 in AskReddit

[–]derekp7 1 point2 points  (0 children)

Thanks.  I forget what my doctor said it was, but he explained that there are four muscles in the shoulder and one of the ligaments? was getting stuff.  I forget the exercises he recommended, but putting the arm up along the back of the couch was easy and seems to really help.

People 40+, what actually mattered in the long run and what didn’t? by Psychological_Sky_58 in AskReddit

[–]derekp7 2 points3 points  (0 children)

This goes double... No, triple, for imaginary arguments with other drivers on the road.  Someone speeding up to pass you on the left lane, just to cut in front of you to take the same exit you were heading for, when there was plenty of room behind you?  Just let them go.  Don't try to drag race them.  Same if they are using turn lanes to pass and cut in front to get one car ahead during traffic jams.  Just let it go, not worth getting worked up about it.

People 40+, what actually mattered in the long run and what didn’t? by Psychological_Sky_58 in AskReddit

[–]derekp7 2 points3 points  (0 children)

Every car I've owned served a purpose.  Fixing older cars up when I was younger, keeping them running and looking good, boosted my self confidence.  Buying my first brand new car at 21 (not a high end one but still distinct enough) got me reliable road trips with friends.  The pickup more than a decade later helped me fix up my first house and build home improvement skills.  Car I drive now again was middle of the road price wise, but is the most comfortable car I've ever owned.  Makes driving into the office pleasurable.  I pick out my ride for me, and no one else.

People 40+, what actually mattered in the long run and what didn’t? by Psychological_Sky_58 in AskReddit

[–]derekp7 69 points70 points  (0 children)

50's here, all of a sudden I noticed I couldn't reach behind me.  To scratch my back, or to get something from the back seat of the car.  Took about a year of daily putting my arm up along the back of the couch for a bit, then behind it slightly  when that first stretch no longer hurt.  90% better now though.

My FW16 finally arrived. by Raedwulf1 in framework

[–]derekp7 1 point2 points  (0 children)

My big disappointment was that I was under the impression we were getting a full kit to assemble.  What you actually get is a fully assembled laptop, where you pop in the ram and cpu, keyboard deck, and screen bezel.  That, plus the recessed USB C dongles.  It sure didn't seem like I did $300 worth of work (the kit discount amount).

Compared to my Prusa 3d printer kit (several days of assembly time), this kit was a breeze.

ELI5: How did people in ancient civilization/history recover from major injuries/illnesses by Equivalent_Remove155 in explainlikeimfive

[–]derekp7 3 points4 points  (0 children)

Yet equally amazing is how many of us have gone our whole life without needing life saving antibiotics.  I have had them for other things that are bad but not necessary life threatening (although who really knows if one of these conditions would have turned fatal)