This Week in D Blog

Articles

Ruby-style symbols in OpenD obsolete ETI (enum type inference)
module Blog.Posted_2024_06_17

OpenD library modules are able to do implement features that previously would have required language changes. One of these is the enum-type-inference concept. Details to follow.

arsd 12 when? Not too long but 11.5 first probably.
module Blog.Posted_2024_06_10

My last several blogs have been about OpenD language concepts, but fear not, the arsd libraries are still my main open source project, and there's been some activity lately, especially, in the old email and the new discord modules, and in the ones that support them.

Standard event loop in OpenD
module Blog.Posted_2024_04_22

Having a standardized event loop in a programming language brings many benefits: operating system interop, integration across libraries, async functionality, threaded parallelism work, and more. Standardizing at the lowest level brings possible additional benefits like GC integration. Let's take a closer look.

Another update on safer by default
module Blog.Posted_2024_03_25

Full on safe by default proved enormously daunting to port any real world code to - thousands of errors across druntime, phobos, arsd, and other libs. Even just inserting copious amounts of @trusted annotations would have been an enormous job. But... what about safer by default?

DConf Online 2024 Response
module Blog.Posted_2024_03_18

I watched upstream's DConf Online 2024. Some thoughts about how ideas raised there might apply to OpenD.

Evolving safe in OpenD
module Blog.Posted_2024_03_11

@safe is a bizarre spot in the D language. We've been saying for almost a decade that if it is going to be there, it should be the default, but this has never actually happened. Time for OpenD to take action.

Thoughts on user-defined types in OpenD
module Blog.Posted_2024_02_20

Let's consider a few cases that built-in type can do in D:

OpenD first preview release coming soon
module Blog.Posted_2024_02_15

Almost two months after being announced, OpenD almost has a working release build on a stable foundation. Some details to follow.

arsd 11.4
module Blog.Posted_2024_01_29

arsd 11.4 coming soon.

The release build finally worked
module Blog.Posted_2024_01_22

I'm pretty bad at CI stuff. It took me a lot of tries to figure it out, but after a bunch of messing with it, I did finally get the ldc build out of github actions to work after merging the repos.

OpenD at one week old
module Blog.Posted_2024_01_08

Over 100 people have expressed interest in the OpenD Programming Language over the last week and we've gotten to work. A quick update follows.

A ship carrying silverware has sailed
module Blog.Posted_2024_01_01

Introducing OpenD, a D language fork that is open to your contributions.

arsd.pixmappresenter PR merged, stars and snow demo like the olden days, and update on me and D
module Blog.Posted_2023_12_25

Big thanks to Elias Batek for the new module! Details to follow.

Browsers in D
module Blog.Posted_2023_12_18

I made my own browsers in D: a mainline one using webviews (Microsoft's WebView2 on Windows, and Chromium Embedded Framework on Linux, with secondary webkit impls that need more work to go mainline), and a little homemade toy with 100% custom engine. More after the stats.

Minigui's mechanism is ok now, what about policy?
module Blog.Posted_2023_12_11

I am finally feeling like minigui is reasonably usable, but what can we do to take it to the next level? Random thoughts follow the stats.

Ephemeral web chat in 50 lines of D
module Blog.Posted_2023_12_04

I slapped together a very quick web chat thing to demo how the EventSourceServer can work in cgi.d. The source and link will be below.

November 27, 2023
module Blog.Posted_2023_11_27

Was busy with the kid this week and never got around to writing.

arsd 11.3 coming soon, dpldocs search works again
module Blog.Posted_2023_11_20

Fixed the broken dpldocs.info search engine last week and I plan on tagging arsd 11.3 either this week or next. More below.

November 13, 2023
module Blog.Posted_2023_11_13

Never got around to writing this week.

D's selective imports have effects you may not want
module Blog.Posted_2023_11_06

The implementation of selective imports is lowering to an alias. This can be trouble, especially when used inside a struct or class definition.

Dos and Don'ts in D
module Blog.Posted_2023_10_30

A reader emailed me this week asking if I could make a simple list of dos and don'ts based on my experience. I'll do that here, and even edit this post later if more ideas come to mind.

Interpolated Expression Sequence PR opened
module Blog.Posted_2023_10_23

I opened a PR for interpolation on dmd and started a repository of use case examples to clear up misconceptions on how it works and focus development in a productive direction.

version considered harmful
module Blog.Posted_2023_10_16

I wrote a chat post about some trouble with version. Cleaned up and reproduced here.

di files are currently useless - the compiler does the same thing for the original source anyway
module Blog.Posted_2023_10_09

Consider a potential new paradigm for caching ctfe results: simply wrapping them inside a standard runtime function. Using a property getter around a template instance instead of declaring a variable means it is emitted to the object file and not recalculated on import.

arsd 11.2 - COM dispatch revamp
module Blog.Posted_2023_10_02

A user dug out my old arsd.com module and tried to use it to automate Word and Excel. It didn't work out of the box, but I was able to patch it up to work similarly to Python.

arsd on Mac - solid progress
module Blog.Posted_2023_09_25

I got a Mac and made some solid progress on actually using it in the arsd libs. Some history and future.

September 18, 2023
module Blog.Posted_2023_09_18

I had a bunch of stuff to talk about, but got busy with other things. Maybe next week.

arsd 11.1 tagged, cgi.d performance, SerpentOS moves to Rust, trying out reggae
module Blog.Posted_2023_09_11

Some thoughts about cgi.d future optimizations with api and allocator design, some brief commentary on some snakes, and a long exploration of reggae.

DConf 2023 roundups
module Blog.Posted_2023_09_04

Last week was the DConf 2023 in London. I didn't go (and I'm glad I didn't), but I have reports from the youtube.

dconf 2023 coming and arsd 11.1 progress - minigui tweaks, cgi hybrid new default mode on dub
module Blog.Posted_2023_08_28

I plan to tag 11.1 next week. Also got a new chair and rearranging my desk, but no commentary on that at this time. Too soon to say.

August 21, 2023
module Blog.Posted_2023_08_21

Tagged arsd v11.0.1 to fix a minor regression bug in a specific cgi.d configuration that slipped past me, but otherwise no time to write.

August 14, 2023
module Blog.Posted_2023_08_14

No time to write this week.

arsd 11.0 finally tagged
module Blog.Posted_2023_08_07

Despite being behind on features, I decided it is good enough to tag the release anyway to get dub caught back up to git. Some details below.

arsd update - cgi listen to many
module Blog.Posted_2023_07_31

An update on a bunch of little things.

July 24, 2023
module Blog.Posted_2023_07_24

I did some small code things this week but not enough to write about.

July 17, 2023
module Blog.Posted_2023_07_17

I'll be on a DLF meeting this week. I plan on bringing up static ctor cycles, docker request, and LTS.

July 10, 2023
module Blog.Posted_2023_07_10

There was an announcement from Walter about changing the deprecation process, but I didn't have time to write more.

SAoC announced, my thoughts on potential projects
module Blog.Posted_2023_07_03

I finally have a little bit of time available this morning to write a blog in between sick me, sick kid, day job, and everything else. A critique on Symmetry Autumn of Code proposals.

June 26, 2023
module Blog.Posted_2023_06_26

I got sick this week, so again, nothing.

June 19, 2023
module Blog.Posted_2023_06_19

No time to write again.

June 12, 2023
module Blog.Posted_2023_06_12

No time to write again.

DConf deadline passes, write up on the -mv switch
module Blog.Posted_2023_06_05

The DConf deadline has gone past with a good number of talk submissions for the Aug 29-Sep 1 event. The selected speakers will be announced in another week.

What is all this talk about IVY?
module Blog.Posted_2023_05_29

Mike Parker made an announcement post that mentioned the term "IVY" last week that set off some threads. He followed up in a beerconf call over the weekend and I talked to him myself too.

May 22, 2023
module Blog.Posted_2023_05_22

Another week, another auto-generated report with no additional commentary.

May 15, 2023
module Blog.Posted_2023_05_15

Another busy week, sorry, no extra content.

My rpg finally releasing a demo this month?
module Blog.Posted_2023_05_08

A user on the chatroom announced that he will accept entries for a game jam. If I can find the time in between the hundred other things I have to do, I might slap together a short playable demo of my rpg. Some thoughts on it below.

May 1, 2023
module Blog.Posted_2023_05_01

Missed another week. Sorry, been busy with other work.

April 24, 2023
module Blog.Posted_2023_04_24

Busy week again with non-code stuff. Sorry.

April 17, 2023
module Blog.Posted_2023_04_17

Work kept me busy again.

Guis vs Games, why one library is unlikely to do both well
module Blog.Posted_2023_04_10

I copy/pasted a post from the forum into the blog for this week about how guis and games work differently. This post is based on some thoughts I had about why arsd.game uses part of, but is not a part of, simpledisplay.

Linux is better than BSD. Directory watchers and decompressors in arsd.
module Blog.Posted_2023_04_03

Is that a flamebait headline? Better click to find out.

Busy working this week
module Blog.Posted_2023_03_27

Just the stats.

arsd 11 progress report
module Blog.Posted_2023_03_20

The work-in-progress new arsd.core module has been formally added to git master. Still a lot of work to do, but some concepts finally becoming code.

A few more debugging tips - run debugger automatically on linux
module Blog.Posted_2023_03_13

Some more things that might be helpful about using gdb on linux, especially for segfaults.

March 6, 2023
module Blog.Posted_2023_03_06

Another week dominated by day job and some arsd 11 work, no time to write. Will try to update next week.

Mike Parker hints D management changes coming, I write about static assert and platform porting
module Blog.Posted_2023_02_20

See community announcements for Mike's post, also Steve did a blog on attribute inference debugging. I write on static assert porting patterns here.

Guest tip from Webfreak about toString
module Blog.Posted_2023_02_13

Tip of the week about how to define toString and some preview about new dub features.

Demo on custom sections
module Blog.Posted_2023_02_06

Object.factory might be on its way out. What are some alternatives for its users?

A couple user programs announced, Adam writes more cgi.d docs
module Blog.Posted_2023_01_30

Qonquest and WildCAD announced on the newsgroup, and Qonquest uses my simpledisplay.d and WildCAD uses X with some custom widgets, so both kinda cool to look at.

On fullyQualifiedName
module Blog.Posted_2023_01_23

I've been saying for a few years now that fullyQualifiedName is a useless strawman. As it is being enshrined in the language as a new trait this week, it is apropos to go over this again. I also touch about alias in error messages.

Some thoughts on UI
module Blog.Posted_2023_01_16

Here, I write a bit about ui generators I actually have for batch programs, and some concepts that would be nice to explore for more interactive programs.

Moving toward arsd 11
module Blog.Posted_2023_01_09

The textlayouter is in a new module, so that will be a minigui build process breaking change. Also moving forward slowly with the arsd.core module since the next tag may be 11.0, gonna try to batch as many of these little breaks together as possible.

January 2, 2023
module Blog.Posted_2023_01_02

I was busy with other work and didn't have time to write the blog this week.

More mixin tips to avoid stringof
module Blog.Posted_2022_12_26

I wrote at some length in a chatroom about mixin and since I'm behind schedule I'm gonna be lazy and link it here.

new textlayout class, dconf online thoughts, step by step tech progression
module Blog.Posted_2022_12_19

Right after the DConf Online weekend, I have a brief write up, and some of the design on my new text layout class after a history lesson on why version one and two of that haven't worked out.

Write barriers might not fix thread registration since you need to scan the stack
module Blog.Posted_2022_12_12

Not much else to say rn.

Brief thought: D from Java/.net could be another write barrier benefit
module Blog.Posted_2022_12_05

This week got very busy with unrelated things, so just a quick thought after the stats.

DIP DIP part 2: the user side
module Blog.Posted_2022_11_28

A while ago, I wrote up a proposal to improve the maintainer's side of the DIP process. More recently, I wrote up some thoughts on how to improve the user side of it, which is here following the stats.

new dmd, new DIP, beta dub docs, game lib announced. And politics in D
module Blog.Posted_2022_11_21

Lots of announcements this week, including revamped dub docs, Hipreme's game library, and the first new dmd release for months - which includes the first practically usable version of ImportC (though I remain critical, this is a major milestone), and a new DIP, but all announcements that risked being overshadowed by a single thread and its aftermath.

dconf 2022 online schedule, some arsd.game work, template emission discussion with d index file proposal
module Blog.Posted_2022_11_14

The big thing this week is explaining library version mismatches, a radical idea of a linker-driven compiler, and a more likely to happen proposal to fix problems inherent to D's current build paradigm.

How NO_SCAN makes shorter GC pauses
module Blog.Posted_2022_11_07

Blocks of GC memory for types without pointers don't add to gc pause times. A chat lecture turned into a blog post after the stats.

Write barriers could work
module Blog.Posted_2022_10_31

I sketch out some thoughts on how D could easily and efficiently add write barriers to enable more GC strategies without affecting other code, analogizing them to bounds checks.

simpledisplay custom font stream of thought
module Blog.Posted_2022_10_24

I am unifying some of the simpledisplay font interfaces and wrote some random thoughts while doing it.

Writing more arsd dox
module Blog.Posted_2022_10_17

I've been filling in some missing docs in the older arsd files lately. Otherwise, not much to say this week.

D on Arduino
module Blog.Posted_2022_10_10

I write some explanation and brief update to the D Wiki AVR article.

October 3, 2022
module Blog.Posted_2022_10_03

Never got around to writing blog this week.

September 26, 2022 - tip of the week to bypass IFTI
module Blog.Posted_2022_09_26

First issue with wontfix bug report and tip of the week about bypassing IFTI

September 19, 2022
module Blog.Posted_2022_09_19

Sick week, so just the stats.

My thoughts on bitfields and recap of binary literals
module Blog.Posted_2022_09_12

A misconception from DConf led to a thread on the forum about what it means to simplify D, and I separately wrote up some thoughts on how bitfields ought to work.

September 5, 2022
module Blog.Posted_2022_09_05

I never got around to finishing the post for this week, so just stats.

preliminary design discussion of arsd.core event loop
module Blog.Posted_2022_08_29

I wrote up some ideas on event loop things over the weekend.

arsd 10.9 released
module Blog.Posted_2022_08_22

Release notes for arsd 10.9 below.

Idea: user-extensible effect attributes
module Blog.Posted_2022_08_15

What if we could define @nogc, pure, and even things like @vibe_fiber_safe in library code instead of compiler additions? Discussion to follow.

DConf 2022 thoughts
module Blog.Posted_2022_08_08

Some thoughts on dconf after I finally caught up on the youtubes.

DConf in session, some more exception experimentation from me
module Blog.Posted_2022_08_01

DConf is this week, so nothing to say about it until after it happens (though I'll be doing some comments on the chat rooms, likely after the fact given the timezone shift and other business - i still have to work!), but i'll show an experimental exception concept I've been playing with again.

musings on pure websites
module Blog.Posted_2022_07_25

cgi.d's dispatcher system can turn normal-looking D functions into websites. But what about database mutations?

static import object tricks
module Blog.Posted_2022_07_18

Did you know you can static import object; and suppress the automatic implicit import? Let's play with it!

Thoughts on inferred attributes
module Blog.Posted_2022_07_11

A lot of people ask for more inferred attributes - safe, nogc, etc. I have some thoughts.

I write on respect in discussions. D Vision document partial draft released.
module Blog.Posted_2022_07_04

A brief write up about how I want to be respected in discussions.

Exception idea: third Throwable branch. Probably won't work but written anyway.
module Blog.Posted_2022_06_27

I'll briefly write up an idea I had for a marginal exception performance improvement migration path and why it probably won't work, though some of the individual items in the way should probably be fixed anyway.

DIP DIP
module Blog.Posted_2022_06_20

I wrote up the key ideas behind my proposal to improve the D Improvement Proposal structure.

June 13, 2022
module Blog.Posted_2022_06_13

Busy week making both a work deadline and a little web application for a charity stream this weekend so no time to write... again.

June 6, 2022
module Blog.Posted_2022_06_06

Another wrote-nothing week. Have two things that need to be done soon and there's a lot of work to do for them.

DConf 22 announced. arsd 11 not likely needed soon, 10.9 expected in another month
module Blog.Posted_2022_05_30

Links to dconf 2022 info. Brief thoughts on next arsd releases.

May 23, 2022
module Blog.Posted_2022_05_23

Been busy with a (non-D) work project this week.

ImportC's module namespace problem
module Blog.Posted_2022_05_16

Following up from last week, I will write about another problem importC has that I haven't seen other people discuss.

Happy birthday, ImportC!
module Blog.Posted_2022_05_09

ImportC was released one year ago today. Let's take a look at where it is now and how it compares to the alternatives.

Developers developers developers developers
module Blog.Posted_2022_05_02

A have some thoughts on philosophy of language design.

More dub 2.0 idea refinement
module Blog.Posted_2022_04_25

A little more thought on dub 2.0 concepts.

Thoughts on async io
module Blog.Posted_2022_04_18

I'll write a few thoughts on async io.

April 11, 2022
module Blog.Posted_2022_04_11

Nothing except the stats again.

arsd bug fixes, stack overflow answer about X child windows
module Blog.Posted_2022_04_04

I've done a little bit of work on my D browser, but most the week has been spent fixing bugs and doing work meetings, but I'll link to something I wrote about X below.

dub 2.0 design discussion
module Blog.Posted_2022_03_28

In this post, I outline some ideas I have about a potential dub 2.0 to fix some problems with dub 1.0.

Tip of the week on justification comments
module Blog.Posted_2022_03_21

I know I haven't written for a long time, but here's a short post finally.

March 14, 2022
module Blog.Posted_2022_03_14

Another week, another lack of writing...

March 7, 2022
module Blog.Posted_2022_03_07

Another week flew by with no time to write. Biggest D thing was changing the index on dpldocs.info to focus entirely on name. Should be much faster now.

February 28, 2022
module Blog.Posted_2022_02_28

The building my sister was living in burned down! Another wild occurrence keeping my attention away from blogging. Will try to write next week.

February 21, 2022
module Blog.Posted_2022_02_21

Been busy trying to finish a work project that's a little behind schedule, so no time to write.

dpldocs reindexing
module Blog.Posted_2022_02_14

I tried to reindex the dpldocs database today. I still don't like it but it is a bit better than it was last week.

More rant on names
module Blog.Posted_2022_02_07

Library names should be descriptive and arbitrary.

Adam's thoughts on naming in code, tip from Steven about ufcs `i`
module Blog.Posted_2022_01_31

Brief thoughts on naming variables and functions today.

Tip of the week: use mixin to hack around order-of-eval problems
module Blog.Posted_2022_01_24

Tip of the week from Snarwin on discord.

Tip: if code getting complicated, try rethinking the approach
module Blog.Posted_2022_01_17

Lots of work bugs to fix, so I'll write a little about a lesson.

January 10, 2022
module Blog.Posted_2022_01_10

Tip of the week on alias members and this.

arsd 10.5 coming this week, new midi code, a FF1 nsf player/editor application
module Blog.Posted_2022_01_03

I spent much of last week writing more support code and implementing a player/editor application to hack custom music in to the old Final Fantasy 1 game.

December 27, 2021
module Blog.Posted_2021_12_27

Got busy with this week, more info next week!

my thoughts on std.socket design
module Blog.Posted_2021_12_20

A few updates on cgi.d's hybrid server coming to Windows and other arsd things, but mostly I'll talk about std.socket and what I'd like to see from it in a hypothetical v2. Spoilers: it isn't what most the proposals describe.

arsd work in progress updates and new "do it in D" idioms section
module Blog.Posted_2021_12_13

A lot of little things since last update, some info below.

December 6, 2021
module Blog.Posted_2021_12_06

No time to blog again, alas.

gdc sync going upstream, arsd 10.4 released, otherwise i was busy.
module Blog.Posted_2021_11_29

gdc upstream now uses the D version of the compiler allowing closer version sync. On schedule to fully sync in gdc 12!

working toward arsd 10.4
module Blog.Posted_2021_11_22

Been almost a whole two months since 10.3 and a lot of things are coming together.

DConf Online 2021 livestream
module Blog.Posted_2021_11_15

My dconf livestream to finish the ronaroids game from last time is here: https://www.youtube.com/watch?v=XuYcZPYWbKk

arsd.webview work, public imports in adrdox changed
module Blog.Posted_2021_11_08

arsd.webview revived, new web demo will have to wait. Also made adrdox public imports list integrated with other members.

importC released, preview of arsd web, database, gui updates, phobos2 coming, dual context tip of the week
module Blog.Posted_2021_11_01

Several things: importC first use, web, database, gui updates in arsd, phobos2 might happen, dual context tip of the week.

October 25, 2021
module Blog.Posted_2021_10_25

adrdox gets arcz support to make more of dpldocs.info server space.

My webasm updates, gdc in D
module Blog.Posted_2021_10_18

I wrote a malloc and free finally! Some talk on assumeSafeAppend and webasm drawing.

Assorted quick thoughts
module Blog.Posted_2021_10_11

Terminal password read function, dchar.init musings, tracking email rant, tip on struct ctor that checks all values present.

October 4, 2021
module Blog.Posted_2021_10_04

idl2d on dub, more leadership talk

arsd 10.3, dmd -target, druntime.dll
module Blog.Posted_2021_09_27

dmd as a cross compiler in beta, ldc shared druntime improved, arsd 10.3 tagged.

A potential GC puzzler discovered
module Blog.Posted_2021_09_20

I was going to write about minigui grid, but instead a discussion came up that looked like a codegen bug and I had to help with the investigation.

nanovega font improvement from me. from community: DConf Online 2021 announcement, GtkD blog back to work, DCompute update
module Blog.Posted_2021_09_13

See the community announcements for several new things and see below for some discussion on my new font improvement: you can load system ttfs into opengl usage libraries now.

Rant: using Firefox is meaningless
module Blog.Posted_2021_09_06

My rant today isn't exactly on topic for D, but it is a response I've been wanting to write for a while: using Firefox does nothing to address Google's power. Mozilla won't save the web.

August 30, 2021
module Blog.Posted_2021_08_30

The week flew by again. Sorry.

Improving today's error handling
module Blog.Posted_2021_08_23

Last week, I wrote some speculative thoughts on error handling ideas and hinted that I had ideas improve today's things as well. Today, I'll go into some ideas for better exceptions and better error codes in D.

Thoughts on error handling
module Blog.Posted_2021_08_16

Walter tweeted that exception handling was a mistake. I don't agree. But I also don't think D's exceptions are as good as they could be.

August 9, 2021
module Blog.Posted_2021_08_09

Another week where I just didn't have time to write things up. My ideas list is getting long though lol.

August 2, 2021
module Blog.Posted_2021_08_02

Again, no time to write this week.

arsd.qrcode introduced and on my wish list: __arguments.
module Blog.Posted_2021_07_26

I added a qrcode module and wish we had a tuple of arguments in all functions, not just variadics.

July 19, 2021
module Blog.Posted_2021_07_19

I never got around to writing blog content this week.

Drama on the github
module Blog.Posted_2021_07_12

Last week, a contributor said "goodbye" in a PR comment. My thoughts on the underlying problem.

arsd 10.2 with http cookies support
module Blog.Posted_2021_07_05

I tagged arsd 10.2 this week, not much in it though.

June 28, 2021
module Blog.Posted_2021_06_28
Core D Development Statistics
arsd 10.1, thought on virtual functions, community announces light weight Druntime 0.3 among others
module Blog.Posted_2021_06_21

just docs: arsd 10.1, thought on virtual functions, community announces light weight Druntime 0.3 among others

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 forum.dlang.org
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.

dpldocs.info 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: https://dwidder.arsdnet.net/

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 dpldocs.info, 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: https://gcc.gnu.org/pipermail/gcc-patches/2020-May/545326.html

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: http://code.dlang.org/packages/d_android

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 also with mtriple appendix
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:

Modules

Posted_2023_02_27
module Blog.Posted_2023_02_27