When I think of component programming, I think of something at a higher level than what Walter was referring to in his recent nwcpp presentation. But that’s neither here nor there. I had no plans to watch this entire video, especially since I’ve already seen the blog post he made on the same topic. But it sucked me in. If you’re interested in learning about a functional style, or pipeline style, of programming in D, this video is for you. The slides are also available.
I learned something new about D today. When doing any sort of string formatting, such as with writeln and family, it’s possible to create your own format specifiers. I really like that.
Phillipe Sigaud has put together a tutorial on D templates. Well worth the read if you haven’t yet familiarized yourself with them. It’s great to see this stuff popping up these days. It makes getting into advanced D features easier than ever.
Ali Çehreli wrote a book on D in Turkish. He has been translating it into English chapter-by-chapter. In the newsgroups, he recently posted a link to the English translation of the chapter on ranges.
The topic of ranges is, in my opinion, the single most difficult concept for D newcomers to wrap their heads around. I know I’ve had my fair share of head-scratching moments when functions in std.algorithm or std.range didn’t work the way I expected them to. This chapter definitely goes a long way to reducing them.
Charles Petzold’s “Programming Windows Fifth Edition” has been sitting on my bookshelf since a year or so after it was first published. My copy is worn. Very, very worn. I’ve gotten more mileage out of that book than nearly any other of the couple hundred technical books I own. By comparison, Jeff Prosise’s “Programming Windows with MFC Second Edition” would be in pristine condition were it not for the dust.
So I thought it was super cool when I opened Thunderbird to check the D Newsgroups and found that Andrej Mitrovic has ported most of Petzold’s C examples to D. You can read all about it, and grab the source, over at github. Nice work, Andrej!