D Project Updates

This website is meant to be something between a chat and a blog post. You talk about stuff you are doing without the expected effort of a blog post, but also without the expected real-time answer of a chatroom.

Just write a few words (or more if you feel like it) about what you are doing or thinking about doing with D! Don't worry if you talk about something that goes nowhere, this is just a brainstream from the D community.


Post your own update

You will be automatically logged in if already registered, or automatically registered if not.

The registration is just to help search and to give you edit and me a bit of spam control. You should just use a random password you don't mind losing if it leaks; this website is probably not secure. Let your browser remember it for convenience.

The email address is not currently used but might be later for emailed updates or something. Totally optional.

D Programming Language. Put those words in the following box to pass my primitive captcha.

Recent updates

ttk 2021-07-19 20:18:23.466953-04

I've had reason to look at Go again, recently, and figured that by now they really should have a json library which doesn't suck.

It turns out they don't. In Go, JSON documents must decode to predefined structs, which is a huge pain in the derriere when you're not sure what kind of JSON structure a remote API might send back, or if the JSON structure has variant substructures.

Something like https://code.dlang.org/packages/jsonwrap would be a ginormous improvement, so I might try porting that to Go.

0 comments
surlymoor 2021-05-17 00:44:58.977898-04

A recent thread in NG.learn reminded me of a talk given by [John Colvin](https://www.youtube.com/watch?v=BtuzSlKRmzA) wherein he mentions the degree to which the process of designing ranges is interesting, i.e very. I've pissed away hours and hours working on range types without realizing time's passage, and it only became frustrating after realizing how little was done towards a project's goals. They might be more seductive and mesmerizing than abusing templates. But hey, the result is pretty damn cool.

1 comment
Adam D. Ruppe 2021-03-04 16:19:39.10681-05

Another basic info quickie to catch up on my #dlang blog: a point about diy closures and delegates:

http://dpldocs.info/this-week-in-d/Blog.Posted_2021_03_01.html

Hopefully I'll actually post on time next week!

0 comments
Adam D. Ruppe 2021-02-28 15:18:07.086323-05

arsd 9.2 updates:

http://dpldocs.info/this-week-in-d/Blog.Posted_2021_02_22.html

0 comments
Adam D. Ruppe 2021-02-27 15:05:22.325998-05

http://dpldocs.info/experimental-docs/arsd.jni.html

java field get/set from D as well

0 comments
Adam D. Ruppe 2021-02-27 12:29:42.526842-05

http://dpldocs.info/experimental-docs/arsd.apng.html#examples

apng write example. i don't love my interface but meh it works for now

0 comments
Adam D. Ruppe 2021-02-01 21:19:49.985089-05

http://dpldocs.info/this-week-in-d/Blog.Posted_2021_02_01.html

0 comments
Adam D. Ruppe 2021-02-01 21:19:47.276263-05

http://dpldocs.info/this-week-in-d/Blog.Posted_2021_01_25.html

0 comments
Adam D. Ruppe 2021-01-22 15:42:41.244266-05

http://arsdnet.net:8080/

cms starting to work. bare basic so far though lol

0 comments
Adam D. Ruppe 2021-01-18 14:51:15.536003-05

http://dpldocs.info/this-week-in-d/Blog.Posted_2021_01_18.html

my cms idea

0 comments
Imperatorn 2021-01-09 10:02:38.464138-05

D boulders

1 comment
surlymoor 2021-01-07 23:12:30.119576-05

I'm working on a bespoke message board for someone to replace the current PHP 5.x codebase. I've cobbled together an ad-hoc "framework" using Adam's CGI module, diet templates (diet-ng), and some other libraries to deal with smaller stuff (e.g. configuration formats, crypto, etc). It's working out fairly well, but I'm not too happy with the database-library-situation. I'll probably need to limit the support to one database service/format, and then either fork an existing library or build my own that would cover MySQL/MariaDB+PostgreSQL+sqlite.

2 comments
Adam D. Ruppe 2021-01-04 15:02:10.064891-05

http://dpldocs.info/this-week-in-d/Blog.Posted_2021_01_04.html

I spent my code time this week mostly working on application code, but did a little library work on my apng.d and terminal.d.

1 comment
Adam D. Ruppe 2020-12-28 11:58:17.014997-05

http://dpldocs.info/this-week-in-d/Blog.Posted_2020_12_28.html

And more stuff, the real content there are the links inside, especially http://dpldocs.info/experimental-docs/arsd.fibersocket.html to see how fibers work

0 comments
Adam D. Ruppe 2020-12-28 11:21:34.520984-05

http://dpldocs.info/this-week-in-d/Blog.Posted_2020_12_21.html

little audio player using the arsd libs

0 comments
Adam D. Ruppe 2020-12-20 10:50:52.348678-05

http://dpldocs.info/this-week-in-d/Blog.Posted_2020_12_14.html

Includes a link to my thoughts on D's marketing.

0 comments
Adam D. Ruppe 2020-12-07 11:38:15.838525-05

Some thoughts on "google it" culture and arsd 9.0 tagged

http://dpldocs.info/this-week-in-d/Blog.Posted_2020_12_07.html

1 comment
Adam D. Ruppe 2020-12-01 11:40:51.926312-05

dpldocs.info cross-package search finally released! and more terminal getline enhancements
http://dpldocs.info/this-week-in-d/Blog.Posted_2020_11_30.html

1 comment
Adam D. Ruppe 2020-12-01 11:40:44.219582-05

I did a dconf livestream! Would you like to know more?
http://dpldocs.info/this-week-in-d/Blog.Posted_2020_11_23.html

0 comments
Adam D. Ruppe 2020-12-01 11:40:34.924876-05

New selective mouse input in terminal stack, Xft used in simpledisplay to improve TrueType font support
http://dpldocs.info/this-week-in-d/Blog.Posted_2020_11_16.html

0 comments
Adam D. Ruppe 2020-12-01 11:40:26.035108-05

simpleaudio now has playOgg, Mp3, Wav with resampling and can access multiple soundcards on Linux, adrdox gets ddoc on function params.
http://dpldocs.info/this-week-in-d/Blog.Posted_2020_11_09.html

0 comments
Adam D. Ruppe 2020-11-03 14:41:09.920337-05

Declarative gui in D: http://dpldocs.info/this-week-in-d/Blog.Posted_2020_11_02.html

0 comments
Adam D. Ruppe 2020-10-21 17:14:34.042115-04

http://dpldocs.info/this-week-in-d/Blog.Posted_2020_10_19.html
I'm on the DConf Online 2020 schedule! Here, I'll give some behind-the-scenes preview on what I plan to talk about.

0 comments
Adam D. Ruppe 2020-10-21 17:14:06.918427-04

Off topic jrpg video game review
http://dpldocs.info/this-week-in-d/Blog.Posted_2020_10_12.html

0 comments
ttk 2020-10-10 23:42:22.202683-04

I thought Python was bad about burdening sleep() with boilerplate, but D's core.thread.Thread.sleep() takes the cake ;-)

Wrote a wrapper function to make it more like Perl's Time::HiRes sleep:

void sleep(double seconds) {
long usec = roundTo!long(1000000 * seconds);
if (usec <= 0) return;
core.thread.Thread.sleep(usec.usecs);
}

12 comments
Adam D. Ruppe 2020-10-05 23:06:43.977084-04

On breakage and versioning:

http://dpldocs.info/this-week-in-d/Blog.Posted_2020_10_05.html

2 comments
Adam D. Ruppe 2020-10-04 12:35:58.129797-04

Finally had the chance to write up my long-form blog showing how the terminal.d stdout thing was implemented

http://dpldocs.info/this-week-in-d/Blog.Posted_2020_09_28.html

0 comments
Adam D. Ruppe 2020-10-02 23:34:15.085113-04

terminal.d is gaining the ability to hijack `stdout`. Especially useful for Windows GUI applications who might want to writeln but don't want it to throw invalid file descriptor.

0 comments
Adam D. Ruppe 2020-09-26 22:57:26.280243-04

And in just one hour of code time, I fixed the evented backend for cgi.d's thread mode... and indeed it corrects the 99th percentile problem in the benchmark, even without distributing the workload across its threads yet!

Requests per second: 13657.25 [#/sec] (mean)
100% 35 (longest request)

That was kinda easy!

4 comments
Adam D. Ruppe 2020-09-26 15:17:57.745492-04

On my computer now, cgi's default main impl now looks like this:

void cgiMainImpl(alias fun, CustomCgi = Cgi, long maxContentLength = defaultMaxContentLength)(string[] args)
if(is(CustomCgi : Cgi)) {
        if(tryAddonServers(args))
                return;

        if(trySimulatedRequest!(fun, CustomCgi)(args))
                return;

        RequestServer server;
        // you can change the port here if you like
        // server.listeningPort = 9000;

        // then call this to let the command line args override your default
        server.configureFromCommandLine(args);

        // and serve the request(s).
        server.serve!(fun, CustomCgi, maxContentLength)();
}

Been refactoring so people can pick and choose their own mains more than before.

0 comments
Next Page