Skip to main content



Wrote my first non-trivial #elisp macro yesterday. Macros were the thing that scared me away from #lisp the first time I tried learning it.
#emacs

Shannon Prickett reshared this.

in reply to James Endres Howell

@James Endres Howell
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"))))))


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

in reply to Jonathan Lamothe

when Stella is good and bubbly and produces good loaves, dry a bit and store it in a jar.


I'm finally MOOing from #Emacs. I've still got a bunch of work to do to port my customizations over from my old client, but it's Emacs... I'm sure it can do that.
#LambdaMOO #moo #mud


@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?

in reply to Roger Crew✅❌☑🗸❎✖✓✔

@Roger Crew✅❌☑🗸❎✖✓✔ @Judy Anderson @screwlisp I've got this one working, though I had do a little finessing to get it to installed. Now I need to see if my elisp knowledge is sufficient to customize it in a manner similar to how I'd customized TF.
in reply to Jonathan Lamothe

> 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.

in reply to Jonathan Lamothe

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.

in reply to Roger Crew✅❌☑🗸❎✖✓✔

@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.



I've got to stop writing code on my phone. The combination of a touchscreen keyboard and tiny screen allows stupid typos to make their way into my code that I would be much more likely to catch on a proper computer.
in reply to Jonathan Lamothe

I gotta ask... What motivated you to write choice on a phone in the first place?
in reply to Darcy Casselman

@Darcy Casselman It was mostly written properly. They were just little edits that I was too lazy to go over to the computer to make.
in reply to Jonathan Lamothe

I strongly prefer being able to write code on my phone when I need to but I try to keep it to code that I plan to run once immediately and discard.


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.

in reply to Jonathan Lamothe

We can never have too many elisp packages out there! Almost welcome to the club! ;)
in reply to Álvaro R.

@Á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.

in reply to Jonathan Lamothe

your package, your rules! Sometimes rolling your own is more fun and you get exactly the UX you wanted.
in reply to Jonathan Lamothe

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

in reply to Jonathan Lamothe

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

in reply to Soroban Exam Website

@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.

in reply to Jonathan Lamothe

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?

This entry was edited (5 days ago)
in reply to Soroban Exam Website

@Soroban Exam Website Yeah, that's what I'd been using. I just wanted sonething that worked offline. It's also got some tweaks that make it easier to see what line I'm on when doing additions since I can't slide my soroban over the page.


Whenever Katy tells me "I have an idea but you're not going to like it" she's usually right.
in reply to Jonathan Lamothe

In other news, my workspace is moving to another room in the apartment.

Shannon Prickett reshared this.

in reply to Jonathan Lamothe

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.



So, I've made the typo "tje" enough times now that my phone's keyboard has stopped correcting it (and even on occasion correcting to it).


elisp shenanigans
I just put a call to format inside my call to format. This is probably fine, right?
#emacs #elisp
in reply to Jonathan Lamothe

elisp shenanigans
Side note: is there a way to tell format to use a thousands separator? That'd be nifty, but it doesn't look like there is a way.
in reply to Jonathan Lamothe

elisp shenanigans

Sensitive content

in reply to Alex

elisp shenanigans
@Alex I'll have a look. Worst case scenario is that I have to roll my own.
@Alex


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."



They told me no spicy foods until tomorrow, but the curry in my fridge is beckoning...

It's not that spicy. Should I?

I probably shouldn't, right?

in reply to Jonathan Lamothe

Having been through many colonoscopies and colon cancer surgery last year my tendency is to trust "them".


One thing I like about running #Debian is that when some project adds something that people don't like, I get plenty of heads up before that version actually hits the official Debian repos. 🙃

in reply to Jonathan Lamothe

while the recursive name certainly helps, pizza developers use proprietary ingredients while mac and cheese development is fully free. The source code is in the name!

Although you could argue that Kraft Dinner is proprietary, but that's like a proprietary version of UNIX. People just go to it for nostalgia knowing it's way outdated, and any attempt to replicate it will give a better result.



ph

Taking my first dose of one of the drugs I was instructed to take before my procedure tomorrow.

How am I supposed to take this again?

*reads prescription label*

"Take as directed"

Thanks. 🙃


This website uses cookies. If you continue browsing this website, you agree to the usage of cookies.