Judy Anderson reshared this.
#LambdaMOO
like this
Digital Mark λ โ๏ธ ๐น ๐ฝ reshared this.
Got my hands on a #shortwave radio, but the fact that I live in a giant concrete box doesn't seem to be helping my reception. Seeing what I can do about that.
Are there any broadcasts that are worth catching that I'd be able to get in Southern Ontario?
Kevin Davy reshared this.
reshared this
(defun lambdamoo-tab-complete ()
"Complete user input using text from the buffer"
(interactive)
(when (memq (char-before) '(? ?\r ?\n ?\t ?\v))
(user-error "Point must follow non-whitespace character"))
(let (replace-start
(replace-end (point))
replace-text found-pos found-text)
(save-excursion
(backward-word)
(setq replace-start (point)
replace-text (buffer-substring replace-start replace-end))
(when (or (null lambdamoo--search-text)
(not (string-prefix-p lambdamoo--search-text replace-text t)))
(setq-local lambdamoo--search-text replace-text)
(set-marker lambdamoo--found-point (point)))
(goto-char lambdamoo--found-point)
(unless
(setq found-pos
(re-search-backward
(concat "\\b" (regexp-quote lambdamoo--search-text))
(point-min) t))
(setq-local lambdamoo--found-point (make-marker))
(user-error "No match found"))
(set-marker lambdamoo--found-point found-pos)
(forward-word)
(setq found-text (buffer-substring found-pos (point))))
(delete-region replace-start replace-end)
(insert found-text)))#emacs #lisp #moo #mud #LambdaMOO
reshared this
@Omar Antolรญn Actually, looking more closely at it, it might just do the trick.
I love it when I spend hours re-writing code that essentially already exists. ;)
In the end, I wound up just binding tab to dabbrev-expand. ๐
It might seem like I wasted a bunch of time writing that, but at least I learned a bunch along the way.
Me realizing that festival uses a Lisp dialect:
Oh cool, I can add accessibility features to my Emacs stuff by procedurally generating the code in elisp.
Me realizing that festival's symbols are case sensitive:
Welp, I guess I can just doand do the rest of the processing in elisp directly. That's probably all I wanted anyway.(defun festival-saytext (text) (format "(SayText %S)" text))
Isaac Kuo likes this.
In 1959, a cement mixer with a full load of cement, wrecked near Winganon, Oklahoma ๐บ๐ธ
By the time a tow truck came to haul it away, all of cement had hardened inside of mixer. Tow truck was not able to remove all wreckage at same time because of weight, and decided to haul only cab/frame and would come back for detached mixer later, which never happened.
Today, 67 years later, it still sits where it fell. Locals have painted it and added "rocket thrusters" to make it look like a space capsule.
like this
reshared this
@LanceJZ @isaackuo
That's a piece of Art, and congratulations to the locals for maintaining it.
(Actually the capsule would have had thrusters: there would be Capsule:Flotation Bag:Heat Shield:Thruster Pack, with the thruster pack held on by straps so it could be jettisoned after deceleration but before hitting atmosphere. On one mission they re-entered with the thruster pack attached because the flotation bag light had come on and they were concerned about the heat shield.)
@Cadbury_Moose @LanceJZ While this is true of the Mercury, Gemini, and Apollo capsules (including the Apollo service module), a reusable capsule could enter nose first rather than tail first.
Nuclear missile reentry heat shields are blunt cones entering nose first.
That said, Dragon does do tail first reentry, placing the thrusters on the sides rather than the tail. I just think it "looks" wrong.
@isaackuo @Cadbury_Moose @LanceJZ That is only true for modern ballistic missile RVs, initially they were launched blunt end forward, since the materials of that time didn't allow a more accurate short end forward reentry because these cause higher temperatures. (That is also why the Space Shuttle got a rather blunt nose)
Also, there are far more than just one kind of capsule. Imagine this as a biconic lifting body, and it isn't that much fictive to retain its aft thrusters.
@LanceJZ @Cadbury_Moose This is what people think of when they think of the Apollo "capsule". It has a big main thruster in the tail, and lots of thruster clusters all over the place.
That's the reason why the artists modifying the cement mixer tank felt the need to add thrusters. It didn't look right without them, because the overall shape looks like a capsule plus its service module.
@LanceJZ @Cadbury_Moose I know what you mean, but that's what people think of.
One reason they think of the Apollo "capsule" as the Command Module and Service Module is that there isn't any footage of the Command Module by itself in space. No one left on the Service Module to shoot the Command Module after separation.
(The Command Module is just the return capsule.)
Bob Jonkman reshared this.
Cute, but a big hazard if a vehicle has to leave the road. I would move this thing off.
Or at least further away from the road. A crane could do this in less than four hours. Much cheaper than having a vehicle plow into it.
@davevolek That would likely require someone to pay for it. Given the little bits I've gleaned about local governance in the U.S. I can easily see no one having any spare budget for it.
The photo looks like a rural highway to me. This means fairly high speeds. If a car "hits the ditch," a bumpy ride turns into a fatal accident.
I suspect the jurisdiction belongs to whoever owns the highway. It could be the state or it could be the county.
A couple of heavy tow wreckers could move this machine. Less than $5000.
But there may be political pressure to keep the machine in place. It does look cute.
There may indeed be more to the story.
I come from a rural background. Many people drive 80 kph (50 mph) on these roads. And they hit the ditch more often.
There might be some weight restrictions that prohibit big trucks on this road. The pavement in the photo (or oily gravel) looks a little on the weak side to me.
Anyways, we need more info to know why this thing has remained in the ditch for 67 years.
Hey all,
I have a friend who's been trying to get on Mastodon but tells me that it doesn't seem to play well with screen readers. I know there are plenty of people on the fedi who do use screen readers, but I have no experience with them myself, so I can't really direct him.
Can someone who does use a #ScreenReader point me in the direction of some resources that might be useful?
#AskFedi #a11y
like this
reshared this
I'm certain I have reinvented a wheel here, but for the life of me I can't find it. Have I?
(defmacro jrl-extract-list (vars list &rest body)
"Split a list into indiviual variables"
(let ((list* (gensym)))
(append
`(let ,(cons (list list* list) vars))
(seq-map (lambda (var)
`(setq ,var (car ,list*)
,list* (cdr ,list*)))
vars)
body)))#emacs #lisp #elisp
Edit: Of course it was pcase.
reshared this
Was loading stuff onto my Jellyfin server for my mom to watch in the hospital. She liked Star Trek and I thought Strange New Worlds might be a good idea because it's a more fun show than a lot of the other recent Trek shows.
I started watching the first episode to be sure it was working, and realized I'd forgotten the whole thing about what happens with Captain Pike.
...maybe this show isn't the vibe after all...
Jonathan Lamothe likes this.
reshared this
Charles Martinet, however is not. ;)
AFAIK, there was never a Japanese-speaking Mario voice.
I think the cadence is all wrong for it to be Japanese, though.
Not an expert, though.
@sotolf? Can you see the context?
no, not Japanese.
The Japanese way to write English: with Katakana. Then reading out these.
I'm (vaguely) familiar with it, but it sounds more like "It's-a me" than "ใคใใ" to me.
Specifically "it's-a" vs. "itsu"
[size=small]This post uses ruby annotations and likely will display only in degraded mode in TUI clients like tut.[/size]
@sotolf @rl_dane @stefano @kabel42 no, no reference. Not ใใคใฟ๏ผญ๏ฝ๏ฝ๏ฝ๏ฝ (ใใชใช).
Literally just ใคใใใใชใช (ใใชใชใงใ). Katakana syllabic writing for what is supposed to be English speech, then read by a Japanese speaker-or-TTS.
Fuck.
My mother had a major stroke today. All I can do right now is sit in the waiting room... waiting.
like this
like this
She spoke! A whole damn sentence!
Of course, it was to chew my dad out for wearing a sweater full of cat hair.
He's never been so happy to be given the gears. ๐
like this
When a #neurodivergent person tells you about how something is difficult for them, rather than thinking of them as whiny, consider that this probably means they have a certain level of trust in you to drop their mask enough to do so.
Invalidating that struggle is likely also a pretty effective way of eroding that trust.
#ActuallyADHD
like this
reshared this
That <insert_expletive_here> boss of mine totally doesn't get this at all, yet somehow he became a people leader.
Has the people skills of a bowling ball
@Sonikku All too freaking common.
A good boss should reduce or remove barriers that impede their subordinates from doing their job effectively. Shockingly few can actually accomplish this.
Just learned that they're shutting the power off tomorrow for 4-5 hours.
That's gonna suck.
like this
like this
like this
I just put a call to eval in my code and I feel dirty now.
The context went something like this:
(eval (cons 'concat (my-function arg1 arg2)))I had initially hoped to use
(concat . (my-function arg1 arg2))...but this resulted in a call to
(concat my-function arg1 arg2)Which was not what I expected.
Is there a better way I could've written this?
#emacs #lisp #elisp
Edit: Got my answer. I wanted:
(apply 'concat (my-func arg1 arg2))Edit 2:
It turns out the code I really wanted was:
(string-join arg2 arg1)I love reinventing the wheel because I didn't know it was already there.
Edit 3:
Here's the actual code:
(defun lambdamoo-run-text-replacements (str)
"Perform text replacements on the string"
(dolist (vals lambdamoo-text-replacements)
(let* ((from (car vals))
(to (cdr vals))
(split (split-string str from)))
(setq str (string-join split to))))
str)Let's see if there's anything else I've reinvented here.
like this
@Simon Brooke What I was looking to do was to call concat with the list returned by (my-function arg1 arg2) used as arguments.
As it turns out, all the functionality I was looking for was already supplied by the string-join function. I just didn't know it existed.
(catch :abort
;; do something
(when condition
(message "A bad thing happened")
(throw :abort nil))
;; do something else
)When the functionality I really wanted was:
(progn
;; do something
(when condition
(user-error "A bad thing happened"))
;; do something else
)I knew the former felt sketchy, but I couldn't think of a better way to do it until just now.
#emacs #lisp
like this
FOSS Dev reshared this.
As a Schemer (and formerly/sometimes still Objective-C), everything is pretty verbose, and my own functions even more so, so I can search by function name knowing the type and parameters. (vector-index vec searchfunc), (draw-rect-with-edge-color rect edge-width color), etc.
There's no excuse for hardcore Lisp functions like (wadsf w q) "wander down stack frames for word query" (fictional but not unlikely).
#lisp
#Elisp logic:
All interned symbols can be found in a lookup table. This table is bound to the obarray symbol.
Hang on a minute...
I can only assume that the underlying C code has its own pointer to this table and the obarray symbol is only provided as a convenience for elisp functions that can't see this pointer?
#emacs #lisp
No no, the obarray you see from elisp is the same one used by the reader. Elisp is an old-style Lisp here, and the obarray is a first-class thing: you can make a new one, rebind obarray, etc.
That's the sort of thing people don't do much anymore, but used to do. The documentation covers it reasonably well gnu.org/software/emacs/manual/โฆ
I'm a little self-conscious about it as non-trivial is relative, but...
(defmacro lambdamoo-chatter-interact
(func-name to msg docstring fmtstr &rest vals)
"Define a function for interacting with another player"
(let ((proc (gensym))
(str (gensym)))
`(defun ,func-name (,proc ,str)
,docstring
(let ((,to lambdamoo-chatter)
(,msg (substring-no-properties (lambdamoo-command-text ,str))))
(if ,to
(funcall lambdamoo-send-line ,proc
(format ,fmtstr . ,vals))
(message "No chatter specified"))))))
That's awesome. I need to hear my own advice, of course, but don't be inhibited to share something that isn't finished. It's the Fediverse! We're all anarchists! The kind sort, I mean.
Lisp macros are just so powerful.
Wait, how do you get the awesome code formatting? Anybody know how to configure this on fediscience.org?
AM I GOING TO HAVE TO SPIN UP MY OWN INSTANCE AGAIN
@James Endres Howell Frendica has a markdown add-on.
I just typed:
```lisp
...code...
```Typing that however was trickier.
RIP Sterrance (my #sourdough starter) who met a tragic end in his glass jar at the hands of gravity and the kitchen floor.
Also, happy birthday to Stella who is going to take a bunch of work to make into another viable starter.
reshared this
Jonathan Lamothe likes this.
Jonathan Lamothe likes this.
reshared this
@screwlisp @Judy Anderson
I've been looking to migrate more of my workflow into emacs, in this particular case I'm looking to moo via emacs which I believe you both do?
I believe @screwlisp has mentioned using rmoo, but the only repo I found for that hasn't been updated in over a decade. Is there something more recent I'm not aware of?
> had do a little finessing to get it to installed
out of curiosity: what was the problem?
Is it that I didn't make a (M)ELPA package out of it? (nobody just drops things in their ./emacs directory anymore?)
or some other issue?
screwlisp reshared this.
M-x package-install-file, it didn't like that the file didn't end with:;;; mud-mcp.el ends hereI just had to add that and it was all good.
ok, so the answer is indeed
"nobody just drops things in their ./emacs directory anymore"
(really, that's all it's supposed to be.
well okay, that plus
M-x load-library mud-mcp
which is the old-school way of doing things)
(wRog needs to learn MELPA. Film at 11.)
screwlisp reshared this.
@Roger Crewโ โโ๐ธโโโโ @Judy Anderson @screwlisp It essentially already was a valid ELPA package with the mentioned exception.
I'm currently in the process of adding my own custonizations. I've added a rudimebtary shim that processes lines entered bu the user so that it can support commands that get processed on the client side.
Here's an excerpt:
(require 'mud-mcp)
(defun lambdamoo ()
"Connect to LambdaMOO"
(interactive)
(mud-mcp-connect "LambdaMOO" "lambda.moo.mud.org" 8888)
(setq lambdamoo-send-line comint-input-sender
comint-input-sender #'lambdamoo-process-line))
(defconst lambdamoo-commands
'(("send" . lambdamoo-send)
("test" . lambdamoo-test))
"Command functions")
(defvar lambdamoo-send-line nil
"The function that is called to send a line to the server")
(defun lambdamoo-process-line (proc str)
"Process input sent by the user"
(if (string-prefix-p "/" str)
(lambdamoo-process-command proc str)
(funcall lambdamoo-send-line proc str)))
(defun lambdamoo-process-command (proc str)
"Process a command"
(let* ((words (split-string str))
(command (string-trim-left (car words) "/"))
(found (assoc (downcase command)
lambdamoo-commands
#'string=))
(func (and found (cdr found))))
(if func
(funcall func proc str)
(message "Command '%s' not found." command))))After I wrote all this, I found comments in the file detailing how to add functionality.
Is there a more "proper" way I could've done this?
Shannon Prickett reshared this.
like this
To the fair folk of the Fedi.
However you choose to deal with the festivities, or don't, or can't, I wish you at least some joy and peace. We are on our way out of the dark and since long before memory or record, humans, it seems, have deemed this worthy of celebrating, at least in some way. But, this may be no more than remembering who you are and realising that the world around us, for all its horror and fear, is still a place of beauty and grace. That there is still kindness and joy and magnificence and the simplest things can show us the most.
So be yourself, enjoy, or not, yourself in the ways that you want to. Let go of shouldn't and what if and all the should be's that plague us. This is not just a time for others, it is your time too. A time to embrace the moment and what we can and we what we have, no matter how little that may seem to be, all the small things and all the great, the stars and the moon (even though we don't have the paperwork for those, and yes, that was a Pratchett reference.) the wind in our hair and everything in between. A time to dream, a time to shine.
Have a good one and wishing you all the best.
Jonathan Lamothe likes this.
Jonathan Lamothe reshared this.
I am dangerously close to unleashing my first #emacs package on the public. It's nothing fancy and still relatively niche, but I deem it potentially useful enough to be worth publishing.
There are a couple small features I want to add and a few things that still need some polish, but it's almost ready for a version 0.1 release.
It's not anything ground breaking or anything. I'm still pretty much an #elisp novice, but I'm proud of it anyway.
More details when it's released.
like this
@รlvaro R. At this point all I need to add is a README and two features (which will mostly reuse code I've already written just in a slightly different way).
Surprisingly enough, the hardest part of the whole project was getting it to display numbers with thousands separators. That code might exist in the bowels of the calc package, but it was easier to just roll my own.
Okay, my first #Emacs package is officially released. It was strongly inspired by @Soroban Exam Website's work, providing practice tools for the #soroban. This is the first Emacs package I've ever released. It's probably not perfect, but I welcome feedback on how it can be improved.
I wonder if there is an overlap of more than say five people who are both soroban and emacs users. ๐
Anyhow, it can be found at: codeberg.org/jlamothe/soroban
reshared this
vim guy here. happy to see I inspire others...
May be you could post on our forum. Not sure you will get more users, though
@Soroban Exam Website Might as well. I wrote it mainly for myself, partly because I don't own a printer and this makes it easier to practice when working from a computer screen, but also just to see if I could.
Still, if someone else is going to find it useful, that's probably the place I'll find them.
May be you didn't see you that you can generate an interactive HTML output, on the site.
That was designed for people who don't want to print.
Should I make it more visible?
like this
Shannon Prickett reshared this.
Well, everything's mostly set up. Cable management needs some definite work, but at least the layout of my desk is more or less unchanged.
The new arrangement makes more logistical sense, but will require some getting used to. Just about every room in the apartment's been rearranged.
format to use a thousands separator? That'd be nifty, but it doesn't look like there is a way.
Katy's been down a YouTube rabbit hole on $medical_condition lately. Today we watched a yoga video that purported to relieve one of the symptoms. Cool cool, yoga can have benefits. Let's give it a go. Some of the instructions in this video were oddly specific but whatever, that's fine. Then we read the comments and my cult alarm started blaring.
This was a video with millions of views and an untold number of comments. Some of them were downright scary in their praise for this guy* and there wasn't a single remotely negative comment to be found.
Not one. I looked.
Someone is really dedicated to sliencing dissent on this video, and I can't imagine that being anything shy of a full-time job. That is probably one of the most massive red flags there is.
* e.g.: "Who needs western medicine? $youtuber is always the answer."
Maybe the best way to fight AI taking over our media, is to stop supporting the arts with clicks on ads and subscription fees?
Go see a new band.
Watch a play.
Visit a gallery and talk to an artist.
Maybe if we made it more about supporting artists, and less about cammodifying the arts for our convenience, we wonโt have to lose one of the things that makes humanity great?
Jonathan Lamothe likes this.
reshared this
Y BUT Y, that is: digital leftcopY BUT physical rightcopY.
The digital domain is freely accessible, but commercial exploitation remains the prerogative of the author; in all other domains, all rights remain with the author or artist.
Public Administration should then monitor the circulation of digital works and citizensโ preferences, and accordingly fund the artists who publish under a Y BUT Y license.



Alrescha
in reply to Jonathan Lamothe • • •I can't speak to specific broadcasts, but space weather has been such that we're not hearing much of anything on shortwave this week.
I could not hear CHU's time signal on 7.850 MHz at all yesterday, and it's only faintly heard today. I can hear WWV weakly on 15 MHz, not much on 5, 10, or 20 MHz.
The concrete box isn't helping, but it's not the only thing going on.
swpc.noaa.gov
Homepage | NOAA / NWS Space Weather Prediction Center
www.swpc.noaa.gov