This Week in D Blog


arsd v10 tagged
module Blog.Posted_2021_06_14

Of the 44 things on my wish list, I only actually implemented 7, but the rest can wait - I was able to minimize the breaking changes while maximizing the future potential impact in minigui.

New dmd and ldc releases, ldc with druntime.dll!
module Blog.Posted_2021_06_07

Just community announcements this week: new dmd and ldc releases. druntime.dll support included in ldc packaged, joining gdc's option to compile it yourself. If these work in testing it brings much better shared lib support to Windows.

gdc 11 out with a lot of D updates
module Blog.Posted_2021_05_31

Several interesting community announcements this week: a lightweight D runtime, gdc 11, the IRC channel moved, string interpolation evolves, and more. Also, I continue to work on my projects.

May 24, 2021 general update
module Blog.Posted_2021_05_24

A bunch of little things on my todo list discussed below.

Progress continues toward minigui 2.0
module Blog.Posted_2021_05_17

A Vulkan renderer based on SDL was released for Android and desktops from the community, the PixelPerfectEngine got a new announcement, and in my world, I kept working on minigui 2.0.

C compiler in dmd? new string type in Phobos? brief update on my minigui overhaul
module Blog.Posted_2021_05_10

Walter dropped a basic C compiler in a DMD pr this week, Andrei on evolving Phobos, and meanwhile I've been working on more user interface library code.

Simpledisplay additions, minigui event changes
module Blog.Posted_2021_05_03

I added a list font method to OperatingSystemFont and alpha blending support to the Sprite class in simpledisplay, and I did something I've been meaning to do for a while: start to redesign minigui's event system.

April 26, 2021
module Blog.Posted_2021_04_26

Release D 2.096.1!

arsd 9.5 -- UPDATE: false alarm i forgot to tag it!
module Blog.Posted_2021_04_19

Another small, quick release to bring a few more little features to the http client library.

April 12, 2021
module Blog.Posted_2021_04_12
Core D Development Statistics
arsd 9.4 tagged, adrdox 2.5 released
module Blog.Posted_2021_04_05

A bunch of little things rolled up into tagged releases this week.

Tip of the week: using C libs from D
module Blog.Posted_2021_03_29

Experienced D users surely already know this but newer users should read this tip.

working on gdc on Windows
module Blog.Posted_2021_03_22

Quick post this week but I spent the weekend dipping my toes into gdc development for the first time...

tip: use union to manually control struct member destructor
module Blog.Posted_2021_03_15

Also I finally implemented simpledisplay's takeScreenshot function. Only 4 years late.

Rant: people in the past weren't stupid
module Blog.Posted_2021_03_08

A rant this week from me, more GC info from the official blog in community announcements.

Tip on DIY closures
module Blog.Posted_2021_03_01

LDC 1.25 was released last week which has another template optimization that can make a big difference in binary size and compile+link time, and a quick tip on how to do your own closures.

arsd 9.2
module Blog.Posted_2021_02_22

arsd 9.2 tagged with drag and drop + more, then Java class field access added to arsd.jni (via @property imports), and early write support added to arsd.apng pending next tag.

Did you know about D anonymous classes?
module Blog.Posted_2021_02_15

I use D's anonymous classes and even I didn't know how to pass arguments to their constructors until this week!

"Mental friction": my view on why D rox
module Blog.Posted_2021_02_08

A quick thought on me on why I like D below.

String interpolation DIP prototype
module Blog.Posted_2021_02_01

On the January beerconf (or as i call it, milkconf - basically a 48 hour hangout video call people come and go at random and talk about random things) we were talking about the dip discussion. I started an implementation in this branch on the call:

terminal inline syntax highlighting, sdpy fonts improved
module Blog.Posted_2021_01_25

Some new features and more bugs fixed in arsd libs.

January 18, 2021
module Blog.Posted_2021_01_18

Some bug fixes in arsd libs, idea for a cms.

gdb debugging tips
module Blog.Posted_2021_01_11

Explanation on -debug, -g, and some gdb tips.

A little work on sdpy/terminal interop and apng debugging
module Blog.Posted_2021_01_04

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.

New plain tcp fiber socket class (with "how it works" docs), new arsd docs started, new dub subpackages in arsd. Also Turkish newsgroups added to
module Blog.Posted_2020_12_28

A chat on Saturday about fibers and udp i/o led to me writing a couple new modules and taking my own advice on tutorials, I started writing some new docs.

Little audio player in D
module Blog.Posted_2020_12_21

I did some small changes to simpleaudio.d to give more control over it, then copied in some other ports from ketmar to the lib for more fun.

Thoughts on tutorial writing benefits, D marketing, and some simpledisplay.d improvements.
module Blog.Posted_2020_12_14

Thoughts on tutorial writing benefits, D marketing, and some simpledisplay.d improvements.

arsd 9.0 rollup release, my thoughts on "google it" culture and related practices
module Blog.Posted_2020_12_07

arsd 9.0 out with some arsd.http2 changes and the ttf OperatingSystemFont thing in arsd.simpledisplay, among other things. I also write about how searching is a good skill, but it shouldn't discourage us from asking colleagues. cross-package search finally released! and more terminal getline enhancements
module Blog.Posted_2020_11_30

I've been talking about a cross-package documentation search for a couple years now and my first attempt didn't work very well, so it went on hold again. Last week, I wrote a new postgresql based index built into adrdox, and this seems to be doing a good job.

I did a dconf livestream!
module Blog.Posted_2020_11_23

I did a livecoding session for DConf on Saturday, the 21st. Didn't quite go as planned, but was good nonetheless.

New selective mouse input in terminal stack, Xft used in simpledisplay to improve TrueType font support
module Blog.Posted_2020_11_16

New selective mouse input in terminal stack, Xft used in simpledisplay to improve TrueType font support

simpleaudio now has playOgg, Mp3, Wav with resampling and can access multiple soundcards on Linux, adrdox gets ddoc on function params
module Blog.Posted_2020_11_09

Some improvements to adrdox and a big addition to simpleaudio.d

Weekend experiment: declarative GUI in D
module Blog.Posted_2020_11_02

I added some declarative UDAs to minigui and will talk about it.

October 26, 2020
module Blog.Posted_2020_10_26
Core D Development Statistics
My DConf livestream sneak preview
module Blog.Posted_2020_10_19

I'm on the DConf Online 2020 schedule! Here, I'll give some behind-the-scenes preview on what I plan to talk about.

Off topic jrpg video game review
module Blog.Posted_2020_10_12

I'm writing this late and just want to talk about Final Fantasy. You might not find it interesting at all.

My thoughts on breakage, and I'll be in DConf Online 2020
module Blog.Posted_2020_10_05

Gonna write just a little this time to catch back up: some thoughts on semver and breakage.

cgi.d hybrid server basically working, terminal.d can redirect stdout to a window if requested
module Blog.Posted_2020_09_28

I did some improvements to cgi.d's implementation and add the capability to redirect stdout and stderr in terminal.d's embedded emulator.

Some talk on cgi.d in benchmarks
module Blog.Posted_2020_09_21

This week was primarily focused on the newborn baby, but while I could barely type most the days, I did get some reading and planning done.

September 14, 2020
module Blog.Posted_2020_09_14

My baby decided to come so I didn't get a chance to write anything here!

New D update "dwidder" website launched, making-of post here
module Blog.Posted_2020_09_07

People on the main D forum asked for more little project updates. While one option is adding a mailing list to the forum among other things, I spent part of the weekend to put a little website together people can use here:

white noise app in D
module Blog.Posted_2020_08_31

I've been busy with work and preparations for the baby that is only about two weeks away, but part of that was to make a little white noise program. Just a few lines of D I will share with you below.

More modern opengl in simpledisplay, document undocumented on, tip on default template args
module Blog.Posted_2020_08_24

I had to fix some bugs this week so no new "X in D", but the new features themselves are cool...

Xlib taskbar in D
module Blog.Posted_2020_08_17

Continuing my "X in D" series, here I'll talk about my custom taskbar in D with xlib.

D Tetris running on Webassembly
module Blog.Posted_2020_08_10

Over the weekend, I took last week's Tetris source code and compiled it for the browser, doing minimal ports of required libraries to make that work.

Tetris in D
module Blog.Posted_2020_08_03

I'm going to start a new series this week, called "X in D". Each entry will be a small program to implement some simple concept. But, I will not limit to just the simple concept like I do for documentation examples - I'll go a little beyond the basics for more fun.

Zero-runtime classes
module Blog.Posted_2020_07_27

I'll write a bit about how it is easier to use D's classes without druntime than it ever has been before and recent dmd PRs are slated to make it easier and easier.

DConf online in the works for Nov 21-22, image copy/paste coming to sdpy soon
module Blog.Posted_2020_07_20

The DConf isn't official yet, but it looks like they are doing do to an online thing around Nov 21 (which happens to be my birthday btw, lol). I have no idea if I'll try to participate or not at this point. Right now, I can't even think of something to write about here, so I don't know what I'd talk about there either!

July 13, 2020
module Blog.Posted_2020_07_13
Core D Development Statistics
July 6, 2020
module Blog.Posted_2020_07_06
Core D Development Statistics
simpledisplay getting dynamic loads, terminal gui gracefully degrades, i muse on scope raii classes
module Blog.Posted_2020_06_29
Core D Development Statistics
Adam's dynamic link transition
module Blog.Posted_2020_06_22

Been busy work work but will tell a brief tale about static to dynamic link transitioning in D code.

June 15, 2020
module Blog.Posted_2020_06_15
Core D Development Statistics
June 8, 2020
module Blog.Posted_2020_06_08
Core D Development Statistics
June 1, 2020
module Blog.Posted_2020_06_01
Core D Development Statistics
foot pedal and midi fun, some dmd speed enhancements. Forum argues about @safe by default on extern.
module Blog.Posted_2020_05_25

While the forum went on about DIP 1028, I had some fun with other gadgets and dmd enhancements.

May 18, 2020
module Blog.Posted_2020_05_18
Core D Development Statistics
simpleaudio dev work, rasp pi gpio module, static foreach rant, gcc 10's D support upped
module Blog.Posted_2020_05_11

I didn't write blog text last week, so a lot to talk about this week. Meanwhile, gcc 10's D updates can be read here (though the changelog isn't formally merged, the code is!), including static foreach support:

May 4, 2020
module Blog.Posted_2020_05_04
Core D Development Statistics
my http more compatible with ssl, script+jsvar can do subclasses of D objects
module Blog.Posted_2020_04_27

More fun stuff in the arsd repo these last couple days. And btw I got my first eye treatment too and it seems to have been a success I feel improvement already! But still gotta avoid staring at computer screens all the time.

i want to make a jrpg, and have eye damage.
module Blog.Posted_2020_04_20

I saw an eye doctor today after a week of pain. I have damage likely from being a computer worker. Should be treatable but if you have eye pain and/or dry eyes... talk to your doctor without waiting months like I did, it is likely to just get worse. And if you are feeling fine, remember to blink while working and frequently look away from the screen to stay that way!

Dustmite post on official blog
module Blog.Posted_2020_04_13
Core D Development Statistics
What if I were dictator?
module Blog.Posted_2020_04_06

What would I do if I were made dictator of D? More below.

March 30, 2020
module Blog.Posted_2020_03_30

@safe by default discussed, people question if we should call it D3, and Mir libraries get a big update.

terminal.d with built-in emulator option releaed
module Blog.Posted_2020_03_23

I finally released my built-in terminal emulator option on dub and marked it version 6.0... I was hoping to put in a cgi.d server control object too, but instead had to fix bugs in the websocket server and minigui widgets and ran out of time. Hopefully for 6.1 though.

Online DConf in the works
module Blog.Posted_2020_03_16

Walter has agreed to try to do an online dconf. No other major movement though but maybe we will try it.

Dconf 2020 cancelled, Adam plays with terminal gui integration
module Blog.Posted_2020_03_09

Due to concerns about the COVID-19 disease spreading, DConf 2020 has been cancelled. I suggest we still write some stuff for it and just share it online!

March 2, 2020
module Blog.Posted_2020_03_02
Core D Development Statistics
some adrdox/dpldocsinfo updates
module Blog.Posted_2020_02_24

I did some more updates to my service for dub package documentation this week.

terminal.d gets clipboard functions, ldc 1.20 out.
module Blog.Posted_2020_02_17

I worked a little on terminal.d this week in between day job and house stuff.

DConf keynote speaker announced: Lua architect Roberto Ierusalimschy, Named args DIP discussed
module Blog.Posted_2020_02_10

DConf is getting Lua architect Roberto Ierusalimschy to speak, and Walter's named argument DIP is being discussed. I see some potential for expansion in it later, but also have no objection to it as-is.

February 3, 2020
module Blog.Posted_2020_02_03
Core D Development Statistics
Adam's terminal suite explained
module Blog.Posted_2020_01_27
Core D Development Statistics
Understanding mixin templates, terminal.d improvements
module Blog.Posted_2020_01_20

I wrote about how mixin templates actually work for today.

My attribute-by-default proposal. Also dmd 2.090 came out.
module Blog.Posted_2020_01_13

I don't think we should change the attribute defaults. Instead, make the foo: at the top of the file work well.

DConf 2020 announced: June 17-20 in London. @safe by default debated. Adam did: Android, JNI, WebSocket in arsd libs
module Blog.Posted_2020_01_06

DConf 2020 was announced this week. It will be on June 17-20 in London, rather than the May we've traditionally done. On the newsgroup, @safe by default was debated.

tar.xz, --DRT tip, dom bug fixes, more Android and JNI, link to old phobos docs
module Blog.Posted_2019_12_30

Lots of open source stuff this week by me!

LDC 1.19 - Android, AVR. My rant on tests, update on JNI and COM.
module Blog.Posted_2019_12_23

LDC 1.19 released with more android and AVR (the arduino chip) support built in. I rant on tests and update on JNI and COM.

Walter's string interpolation proposal is OK but not great. My Android thing nearing beta release. dub downtime explained.
module Blog.Posted_2019_12_16

My Android stuff is now on the dub repo:

Android project update, introduction to arsd.jni
module Blog.Posted_2019_12_09

Android code works - big thanks to other people for doing the work in ldc as I'm building on that. Also the JNI stuff I think may be generally useful for D.

New pattern about interface contracts
module Blog.Posted_2019_12_02
Core D Development Statistics
Adam shares Windows console secrets - DO NOT USE chcp!!
module Blog.Posted_2019_11_25

The community announcement about a webassembly proposal is solid, and the author has done some good work toward it already. I'm excited to see where he goes with it!

Adam's rant on benchmarks
module Blog.Posted_2019_11_18

A DIP to remove the ~= operator from slices was shot down by the community, and there were forum posts about benchmarks. I write about why I don't really care for benchmarks.

Socket tutorial
module Blog.Posted_2019_11_11

Socket tutorial today, it may be simple for experienced programmers but hopefully useful to people new to the idea.

November 4, 2019
module Blog.Posted_2019_11_04
Core D Development Statistics
October 28, 2019
module Blog.Posted_2019_10_28

I don't have anything to say today, been busy lately.

arsd package updates, forum nonsense
module Blog.Posted_2019_10_21

arsd-official tagged 4.1.4, my 11 1/2 old library demonstrates compatibility with Slackware's gdc package as well as newest dmd.

Update on Android
module Blog.Posted_2019_10_14

D on android almost just works out of the box - ldc can build D code, as well as the D runtime, for the android platform and package it into a shared lib. The part I'm fighting with is just integrating it ergonomically.

Adam does iOS "goodbye world"
module Blog.Posted_2019_10_07
Core D Development Statistics
September 30, 2019
module Blog.Posted_2019_09_30

Another LDC beta, and my thoughts on the PHP to D blog post ideas.

D turns 20, Adam rants on software freedom
module Blog.Posted_2019_09_23

D is about 20 years old now, and wow it has changed a lot over the years. Early D didn't even have templates! It is my opinion it has been reinvented about every five years: first to add templates, then to add immutable, then focusing on an era of more stability. We're about due for another change, and I'm encouraged to see D continue to develop.

Named arg DIPs and my thoughts on code organization
module Blog.Posted_2019_09_16

Lots of DIP discussions this week and I will write a little about code organization.

September 9, 2019
module Blog.Posted_2019_09_09

Sorry, phoning it in again this time. But dmd 2.088 came out this week and it has __traits(getLocation) which is exciting. I'll have more next week.

I wrote about mixin templates vs string mixins on Stack Overflow
module Blog.Posted_2019_09_02

I don't have much time to write today, but earlier in the week, I wrote about mixin concepts in D over on Stack Overflow that you might want to check out.

August 26, 2019
module Blog.Posted_2019_08_26

I see gcc 9 and gdc are now in the Slackware Linux package repo, which is fun - D in gcc is something I'm really excited to see.

Bug bounty in D again - my hot take, on reusing code, a fun picture, my tentative plan for the next month
module Blog.Posted_2019_08_19

The SAOC submissions are now in and will be evaluated next week, a new dmd beta came out - with __traits(getLocation) which I'm personally a little excited about - and a bug bounty thing is now live. My hot take below.

Time invested is worth a lot
module Blog.Posted_2019_08_12

My thoughts on invested time and inventions are below.

cgi.d's new scheduler, static this tricks
module Blog.Posted_2019_08_05

This week, I wrote a new schedule server. Below, I describe how it works.

July 29, 2019
module Blog.Posted_2019_07_29

I'm sorry I haven't written much these last couple weeks, I have been busy with family.

July 22, 2019
module Blog.Posted_2019_07_22
Core D Development Statistics
Solving vs managing problems
module Blog.Posted_2019_07_15

Not much time to work on D this week. Got some open source contributions, but mostly the free time was spent elsewhere. This next weekend, I'm visiting family so don't expect much then either.

A big week in the arsd repo
module Blog.Posted_2019_07_08

I spent the last week writing a lot of D code. My new framework in cgi.d is now operational, though it still isn't quite done (notably, the timing system isn't done yet!). In this post, I'll briefly describe some of the new stuff.

July 1, 2019
module Blog.Posted_2019_07_01

I've been very busy the last few weeks doing something crazy, which is taking all my time but I can't talk about yet. As a result though, lots of testing and formalization stuff in my libs, I'll write about it soon.

June 24, 2019
module Blog.Posted_2019_06_24

Thee last two weeks have been awfully busy with other stuff, so I haven't had time to write. I have been writing some D though - the arsd repo is about to get new modules for database code generation and web template handling.

June 17, 2019
module Blog.Posted_2019_06_17

adrdox got package releases in a few places, yay. I also wrote more about avoiding stringof.

CRTP thoughts, named arguments DIP review, DConf videos now on youtube
module Blog.Posted_2019_06_10

My thoughts on the potential of the curiously recurring template pattern in D

musings on hybrid CT/RT tests, some more progress on new web framework
module Blog.Posted_2019_06_03

New LDC beta, GtkD updated (and now uses adrdox for their official docs!!), and I think about CT/RT hybrid tests as well as some more progress on my new web framework.

a little more webassembly
module Blog.Posted_2019_05_27

I was just goofing around with webassembly a bit more this weekend.

May 20, 2019
module Blog.Posted_2019_05_20

I tried to improve cgi.d's build time, but it refused to budge; in this case, Phobos dependency was not to blame, so I have to keep trying things. (It is amazing how much D spoils us; this 2 second complete rebuild from scratch feels soooo slow.)

Adam's string interpolation proposal
module Blog.Posted_2019_05_13

Well, DConf was this week, but I only caught a couple hours of it due to technical difficulties on day one, timezone on day two, and personal life on day three, so I will have to write about that later.

DMD 2.086 live, GCC 9 with D support formally released, DConf coming soon, links to posts on builder pattern and disallowing implicit conversions with templates, and 2d array op overloads
module Blog.Posted_2019_05_06

D 2.086 came out last week. The big news this week though is that DConf is happening in London. It is supposed to be livestreamed and recorded, but I haven't heard any details as to where yet.

template constraint error improvements coming?
module Blog.Posted_2019_04_29

tsvutils update on forum, release candidate dmd, rant on website weight

dmd 2.086 beta, dstep 1.0 released, Adam works on memory usage
module Blog.Posted_2019_04_22

A new dmd beta came out this week, along with DStep officially reaching version 1.0! Meanwhile, I have been fighting growing memory usage in my programs.

obj-c and webassembly report, tips on is expressions linked.
module Blog.Posted_2019_04_15

obj-c and webassembly report, tips on is expressions linked.

new ldc, new dmd, dpp on the blog
module Blog.Posted_2019_04_08

I'm going to have to be lazy this week, since I spent last Monday through Sunday night at various meetings that demanded my attention.

D's future discussed in forums
module Blog.Posted_2019_04_01

Thread with Andrei talking about changes, rvalue ref brought up again (this time by Andrei), tip on CTFE in -betterC, Adam works on web stuff more.

LDC beta, DConf blog link, Adam introduces gamehelpers.d
module Blog.Posted_2019_03_25

I forgot to post last week, so I slapped that post up without commentary, and now for this week, I write a little about a module that has been sitting in my repo for a long time, but hasn't been very useful. Now, it is minimally useful.

March 18, 2019
module Blog.Posted_2019_03_18

DConf schedule release. Otherwise, tbh, I forgot to write and post this week.

LDC 1.15.0-beta1, responsive design rant
module Blog.Posted_2019_03_11

New LDC beta came out, DConf proposal deadline passes, old DIPs get status updates. Adam rants about responsive design.

dmd 2.085.0 released
module Blog.Posted_2019_03_04

Well, most my D work this week was playing with the Objective-C binding. I filed a few bugs and Jacob fixed them, but not all made it into the release. I am awaiting the point release to do more with it, but with the understanding I have of Obj-C now, I was able to get create window in simpledisplay working on Cocoa again.

Obj-C interop and D without druntime code to copy/paste
module Blog.Posted_2019_02_25

More DIP talk in the forums, but I basically ignored all that and played with the new Objective-C interop and some runtime-less D code this week.

dmd beta, more info coming next time, demo of new web framework initial prototype
module Blog.Posted_2019_02_18

The new dmd beta came out this week, with lots of objective-C stuff, but I haven't had a chance to try it yet. Meanwhile, we got another LDC release, and in my world, I made some more progress on my new D web framework.

automatic web interface discussion, reflection tips and tricks
module Blog.Posted_2019_02_11

I got some work done on new web interface generation this week. A new dmd bug fix release came out, among many other community announcements, too.

Adam busy with weather and a move, lots of community announcements
module Blog.Posted_2019_02_04

I spent a huge amount of last week helping a friend do a last-minute move and dealing with a lot of snow... for the second week in a row! As I look outside now, the sun is out and we are back to a whopping 50 degrees Fahrenheit, so I don't wanna sit here typing on the computer for long.

January 28, 2019
module Blog.Posted_2019_01_28

GtkD blog, forum fundraiser, ref accept rvalue DIP argument, and more. Adam rants about libraries.

Working on official blog 2018 retro, C++ new wrapped, dmd reading zips?
module Blog.Posted_2019_01_21

I was approached to write "Last Year in D" for the official blog, and spent much of my free time this week working on that. Upstream, I noticed a little more obj-c code merged, some talk about wrapping C++'s new operator for D as yet another memory management option, and there is a forum post (again) about expanding D to read zip files directly.

dmd obj-c growing, Adam static foreaches an interface to RPC
module Blog.Posted_2019_01_14

In the dmd land, the Objective-C binding keeps getting new stuff pulled, so that is progressing quickly right now, and in my world, I am writing new from-scratch reflection using dmd's new features.

dmd 2.084, hope for future, but busy non-D week for me
module Blog.Posted_2019_01_07

I've had a crazy week with a lot of offline stuff and a lot of day job related work. So, alas, no time to write much for this issue, and I haven't finished the stuff I talked about last week :(

IDE tools released, my cgi.d gets new features
module Blog.Posted_2018_12_31

While the newsgroup raged about professionalism, a new DCD, DScanner, DServer, and other IDE helper tools came out, and I spent the week writing some new code in cgi.d - add-on servers. Also, TWID has its RSS feed live again!

DConf announced, tip, Adam rants: mouse trap
module Blog.Posted_2018_12_24

Big announcement this week: DConf 2019 announced for May 8 - 11, 2019 in London. And I want to call out the thread on CTFE floating point printing - that is some hard code, so having a self-contained port that happens to be CTFEable is cool to keep in mind! Lastly, read on for statements-in-mixin-template tip!

This Week in D is back!
module Blog.Posted_2018_12_17

After a year hiatus, This Week in D is back! However, this time, I want to do things a little differently: