Gemini

Mar. 11th, 2021 01:05 pm
jbanana: Badly drawn banana (Default)
I stumbled upon the Gemini protocol. I've no idea if it will be a success, but it seems like a nice idea. And it's not too hard to write a client, so I've been doing that.

I already have a thing for making a GUI. Rendering a page with links just means putting some HTML into JEditorPane and adding a HyperlinkListener, so I just have to fetch a page and translate it. There was some fun and games with the TLS/TOFU requirement, but I asked the internet and got a sensible answer.

Bug list: preformatted text... isn't; all responses assumed text/gemini - whoops; not handling external links - HTTP, etc; back button... doesn't; general styling yuckiness

Memory

Jun. 28th, 2017 03:54 pm
jbanana: Badly drawn banana (Default)
Some things are easy to remember, and some are hard.

For example, I wrote a thing called Tilex for making images that will tile on your desktop. There were meant to be two ways of making a tile. I implemented one way about nine years ago (according to source control). I never got around to the other because it seemed more effort to implement. A few days ago I picked it up again and I could remember exactly what I had in mind for how it should work. It was as clear as if I had thought of it yesterday.

I can't do names. If I see people regularly their names mostly stick, but if I only see someone occasionally then I'll struggle to remember their name. And if I haven't seen someone for a long time then there's a fair chance that I'll remember lots of things about them, but not their name. And I'm aware that people can be quite upset if you can't remember their name.
jbanana: Badly drawn banana (Default)
A big new thing is Kotlin (presumably because it's supported on Android) so I hacked up some support in Compositor. It wasn't too hard - an afternoon's work including learning a bit of Kotlin, so that was good.

Now the world's Kotlin developers can rush to Compositor to make desktop apps. Ahem.
jbanana: Badly drawn banana (Default)
Software releases come and go. Today I found something that have been around for quite a while, but was new to me. Plain vanilla Java includes a UI design language, FXML.

This is significant for me because I wrote something very similar, but for Swing instead of JavaFX. Maybe I should abandon that and migrate stuff to FXML. It's a little depressing.
jbanana: Badly drawn banana (Default)
Remember my UI generator, Compositor, that I mentioned before? Never mind. 8~)

I released a new version today: http://sourceforge.net/projects/compositor/files/0.4/
jbanana: Badly drawn banana (Default)
Remember my UI generator, Compositor, that I mentioned before? Never mind. 8~)

I released a new version today: http://sourceforge.net/projects/compositor/files/0.3/
jbanana: Badly drawn banana (Default)
I released my UI builder, Compositor, again today. A year is too long between releases.

Someone's recommended it on Sourceforge! Unfortunately as there's only one recommendation, it looks as if I've done it myself. Which I didn't.
jbanana: Badly drawn banana (Default)
I have a UI generator called Compositor that builds an UI from an XML descriptor. It works fine for me, but I was thinking about what other people might want if they were to use it (and sadly, it took me quite a while to give this any serious consideration.). It occurred to me that there are several languages that run in the JVM, and that it shouldn't be to hard to have Compositor work for them too. Surely in the depths they all generate POJOs?
Groovy
This was a piece of cake. Groovy is easy if you're familiar with Java, and it didn't do anything very unexpected.
Scala
The only problem here was that Scala fields are implemented property-style: the compiler auto-generates getters and setters. That was easily fixed. Blimey, the Scala compiler is slow!
Jython
I've only got this partly working because it looks as if the Java class that's generated from a Jython class doesn't contain any of the Jython class methods. Ouch. I think I see where they're hiding, but I need to poke around some more.
Clojure
I couldn't get this one to work at all. I found documentation of how to extend a Java class, but I couldn't see how to get the examples to work. I need more Lisp knowledge.
JRuby
Haven't tried this one. Whoops.
A side effect of this work was to make me think about the OO-ish-ness of Compositor. That would allow more pluggy-inny-ness of elements for other languages. It's not clear, though, how the code would know which language context it's running in. At run time, everything is a class with some byte code in it. (Note to self: poke is System.properties to see if there's anything helpful)

May 2025

M T W T F S S
   1234
5678 91011
12131415161718
19202122232425
262728293031 

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 13th, 2025 03:09 pm
Powered by Dreamwidth Studios