Programmer turned publisher (but mostly programmer)

Dallas, Texas
Dear programming tool developers: JSON is a program-to-program data transfer mechanism. If you make users of your tool configure it using JSON files, it means you're placing your convenience over theirs.
59
174
1,444
If you haven't seen it, here's the announcement: media.pragprog.com/newslette… The Pragmatic Programmer, 20th Anniversary Edition, real soon now. A whole bunch of new content, a whole bunch of revised content, but no change to the common sense.
15
213
704
"Code reuse is a myth, and most abstractions rot faster than they’re shared." from an upcoming book on Functional Programming in Elixir
53
32
612
40,138
What's wrong with JSON for configuration? 1. no ability to comment things out 2. no trailing commas make maintaining lists more cumbersome 3. quotes around keys are just silly 4. no ability to inherit defaults
20
16
346
Time to recognize the inevitable. The work "agile" is now dead—let's move on. pragdave.me/blog/2014/03/04/…
42
546
286
Switched from using the fancy JavaScript build tools back to using a simple Makefile. Not only is it now reliable, but I can actually reason about what it is doing, and adding one new resource format doesn't incur a day's worth of dependency negotiation.
10
49
259
So, programmer pals. It seems like a lot of developers are great programmers, but at the same time are a bit shaky when it comes to some of fundamentals: stuff down at the machine and operating system level. If I did a course covering that stuff, would there be interest?
25
21
265
Some folks talk about ending the day with a clean checkin. I'm increasingly finding it better to end with a failing test; it helps we regain context the next morning.
21
44
237
Installing react, react-dom, and reason-scripts... + react-dom@16.6.1 + react@16.6.1 + reason-scripts@1.0.0 added 1694 packages from 659 contributors and audited 32802 packages in 79.021s found 0 vulnerabilities *1694* packages. This Hello World test is *solid*
6
72
230
I've been wanting to write a little about how practices from 50 years ago are influencing developers today. As an experiment, I'm starting a series over on Medium: medium.com/@pragdave/weird-p… Please let me know what you think.
12
71
230
This, at every level of a system.
2
140
204
I'm so glad we could do this. The ebook of Programming Elixir ≥ 1.6 (yes, the latest version) is now free to students and teachers. pragprog.com/promotions
14
92
204
I'm starting to explore Elixir's @AshFramework (ash-hq.org/). It's a seriously impressive piece of work and looks like a well-thought out way of both modeling and exposing your domain. I'm going to spend a few days trying to model a subset of the PragProg backend; this might be a good basis for the headless version I want to create.
7
29
206
34,362
Pragdave 2.0—turning the page. pragdave.me/blog/2016/05/03/…
31
82
193
So, I'm looking for a job! Internal or external consultant, devrel, training, team fixing, design, architecture. WFH or travel the world. So, if you know any company that has a Dave-shaped hole, please email me. Some more about me on my site. Links below. Many thanks.
10
71
202
27,974
If you got a previous edition of Programming Elixir from pragprog.com, watch your inbox later on today. Happy New Year...
10
45
166
Reading patterns books is like watching drug ads on TV. By the end, you're convinced you have all the symptoms and need all the remedies.
2
130
168
My @empexco talk about rethinking the way we write Elixir is up. It's no more than a set of initial thoughts, but I really think there's something to them. I was just coming off a case of pneumonia, so sorry about the sniffs. piped.video/6U7cLUygMeI
4
47
154
An Elixir JSON API server in 2 tweets (ignoring application.ex). Once it gets warmed up, it is insanely fast: 21:35:37.321 [info] GET /login/33 21:35:37.321 [info] Sent 200 in 28µs #myelixirstatus
5
40
152
After a seven year break, I'm back running the Pragmatic Bookshelf. I have a lot of cool things planned, but I could really do with your help. For the background, and for details on how to voice your opinions, see pragdave.me/thoughts/active/…. I look forward to chatting with a whole bunch of you. Thanks Dave
8
31
151
20,908
This is how you should write release notes.
11
383
149
If you want to comment a public function, but hide it from the documentation system, try the following. (The trick is the "!" operator.) #myelixirstatus
1
35
140
I'm sorry @rails, but propshaft/import_map isn't a happy experience. When it works, it's magic, but stray just a little from the happy path and you get no insight into what's failing and where. And the differences between dev and production make deploying risky again.
19
3
137
19,449
Not just Junior. All developers. nitter.app/petdance/status/859843…
3
80
124
Sometimes using Dialyzer is like talking to an ancient Buddhist monk. You get suggestions, but it takes a lifetime of exploring to work out what they mean, and in the end you knew the answer all along. #myelixirstatus
24
127
New post: decoupling Elixir apis, implementations, and servers. pragdave.me/blog/2017/07/13/…
4
50
119
After several aborted attempts over the last 18 months, I've finally moved my development environment off my Macs and back to Linux. Only real pain point is the horrible mish mash of control/super/alt between different apps. Small price to paygiven the hardware options available.
17
10
115
Emailing by students notes on their grades. Programming by pipeline. Transformative! #myelixirstatus
2
39
114
First (and tentative) prerelease of Bunyan, a distributed and extendable logger for Elixir. github.com/bunyan-logger/bun… I built it both because I needed it and because I wanted to try out my ideas on structuring Elixir apps on a real-world example. #myelixirstatus
4
30
106
The way @AshFramework handles migrations is spot on. No need to define separate schema and data models. Instead, just model your data, and when you need to reflect those changes in a database schema, just ask Ash to generate the migration and run it. It effectively does a three-way diff are creates the minimal migration automatically. Apart from satisfying my inherent laziness, this also has the nice side effect of allowing you to delete all your migrations at any time and regenerate a single composite migration. (Right now you also have to delete the external files it uses to track the status, but I'm sure there'll be a mix task for this at some point).
3
10
107
17,342
It's my birthday, and I feel like spreading the joy. Use code "cake" at checkout to get 50% off at pragprog.com. Good for 24 hours, or until the grownups find out and stop me...
28
28
103
16,922
At first glance my arguments against project directory structure seem like bikeshedding. They are, to some extent. But I think the way we structure our project tree is a symptom of a real problem. I tried to describe it in an article: pragdave.me/blog/2018/06/02/… #myelixirstatus
7
22
98
Teaching some git to my class today, and noticed this on a student's laptop.
56
93
til: (copy/paste into chrome web developer console) var msg = new SpeechSynthesisUtterance(); var voices = window.speechSynthesis.getVoices(); msg.voice = voices[50]; msg.voiceURI = 'native'; msg.text = 'Gosh! I do believe my browser can talk'; speechSynthesis.speak(msg);
7
22
97
I'd cover things ranging from number representation to how page tables work to operating systems and I/O, compilers, linkers, loaders, networking, and other stuff that people request. It would all be backed by code and projects.
8
3
92
Really, really cool announcement coming out tomorrow of something that's been cooking for a long time.
7
6
100
Picked up an old Dell R710 and installed Fedora. 24 cores, 32GB ram, and 2TB on a Raid controller. <$300.
7
3
95
The challenge of functional programming is making the right data available where you need it. The challenge of object-oriented programming is that this isn't a challenge.
4
20
86
This post from @josevalim is both incredibly well written and very exciting elixir-lang.org/blog/2023/09… Once again, he demonstrates how a project owner can respect the projects customers while still making significant and exciting changes.
2
24
86
7,923
Just saw a demo of the Mastodon server (a Rails app) running in the browser. Full Rails app, including gems with C extensions, Postgres (lite), all bundled into a single wasm binary and downloaded into and run by Chrome.
4
12
87
5,527
If dogs have an afterlife, I hope it’s full of slow squirrels and long grass. Have fun, Moose.
8
7
77
Just came across this while packing up. From my very first programming class.
4
7
92
6,830
I've used OS X for years and never realized how useful 'say' is: rake build; say build done Means I can go do something else, and not poll
18
110
77
Replying to @FrancescoC @joeerl
You never walked up to Joe if you had anything important to do in the next hour, because he always had projects, and they were always interesting, and he was just so damn enthusiastic talking about them. If some people are bright sparks, he was an arc light. (He fizzed, too :)
2
6
80
Elixir for Programmers comes out of β July 4. codestool.coding-gnome.com Now $40, then $60. Sorry to be commercial, but folks want to know.
4
35
85
If you bought the Programming Elixir eBook from us, you now have a coupon in your account for a free 1.2 upgrade.
18
29
80
I'm looking for examples of good source code. Stuff that's well written, or that uses interesting techniques, or that's clever without being obscure; the kind of code that you stop to read and they go "aahhh." Please drop suggestions and urls
40
9
85
15,727
The Unison language (unison-lang.org) has some really interesting ideas, from content-addressable immutable code to dependency-injection with abilities, a powerful yet simple alternative to monads. I've written a couple of articles: pragdave.me/discover/ Enjoy
4
18
74
18,538
Having tried it for a few weeks, I've now switched to doing most of my vector stuff on Affinity Designer by @AffinitybySerif. Currently $25 single payment; Illustrator is $21/month. It's also nicer to use. Maybe I'll be able to stop paying the @adobe tax.
9
8
79
98% of my recent web traffic is about agility, so Google puts this ad on every page. Read it carefully and weep.
27
179
70
I'm a little upset about the state of programmer interviews... medium.com/p/38d9f43d4598
4
15
66
If you've been using @gleamlang, or even if you're just interested in a diverse and strong BEAM ecosystem, please consider sponsoring Louis Pilfold; he's working full time on it. github.com/sponsors/lpil
1
19
72
6,633
I wish I’d written Functional Web Development by @lance_halvorsen (pragprog.com/book/lhelph/fun…)
1
17
72
Updating "Programming Elixir" for Elixir 1.2. Ebook owners will get the new version for free (as it's the same edition of the book)
6
41
73
In my never-ending quest to show my ignorance (or perhaps just my really bad memory) today I discovered (or perhaps rediscovered) how to namespace methods in Ruby without all the "self."s
6
9
71
7,644
TSA fails to detect 95% of threats. This isn't a reason to strengthen them. Instead it proves they aren't needed-nothing happened regardless
6
80
65
A suggestion on how to learn a new programming language pragdave.me/blog/2020/05/05/…
4
24
69
I'm liking what I'm reading in @redrapids and @JEG2's "Designing Elixir Systems". It's a pragmatic approach which (correctly) prioritizes what _you_ need to do over what the frameworks do. pragprog.com/book/jgotp/desi…
2
18
64
I’ve used Emacs for maybe 25–30 years—it has effectively become my window manager. For my next course, I’m thinking seriously about switching to Visual Studio Code plus tmux in the internal console. No particular reason apart from a desire to shake me out of a comfort zone.
14
5
67
Fish shell function to display module and function help from the cmd line: function re --description 'Get help on an Elixir module or function' iex -e "require IEx.Helpers; IEx.Helpers.h($argv); :erlang.halt" | cat end In use: $ re String $ re String.upcase #myelixirstatus
9
65
Massive congratulations to @chris_mccord and the team for reaching the amazing milestone of LiveView 1.0.
8
69
2,376
CoPilot is the ultimate con artist: enough truth to lure you in, and then delivering lies with absolute conviction. I've taken to enabling it only when I'm doing repetitive stuff. In the meantime, anyone want to buy a 15 line loadCustomer function?
7
64
5,569
I've been using various shells for 40 years, and I only just realized you can do: mv app/models/{import_batches.rb, import_batch.rb} Rumsfeld rules....
4
3
61
9,182
I've spent a day playing with rich text editors for @elixirphoenix. I'm passing on CK, ProseMirror, and Trix. I found Quill (quilljs.com/) to be far and away the easiest to integrate and customize. YMM (obviously) V.
4
3
66
7,658
Fira Code uses ligatures to convert coding digraphs to nice looking wide chars. In the image |> becomes ▷ and -> is →. I’ll give it a week.
4
15
64
Today I wrote code in COBOL, Algol 60, and Pascal. #livinginthepast
13
3
63
The Feynman lectures on the character of physical laws. I watched one a night and was spellbound. Highly recommended. piped.video/playlist?list=PL…
1
26
60
Just noticed that vscode-elixir-ls not suggests specs for public functions that don't currently have them, based on Diayzer's inferred success typing. This is very, very cool, and has already found a mistake I made. A massive tip o' the hat to @JakeBeckerCode. #myelixirstatus
2
8
61
Phoenix is so fast that when I switched in Foundation for Bootstrap and reloaded, I had to inspect the styles to make sure it had happened.
24
61
I've decided to get back into the habit of writing short articles about aspects of software development. My first is about using AI to write code, and how it risks taking us back to the SW chaos of the 90s. The link is in the reply below.
3
17
63
4,950
I assigned my students the task of implementing a state machine in the language of their choice. I'm currently grading an answer written in Prolog. Mission accomplished :)
3
4
57
After 7 months using Linux, I finally had to power up my MacBook today: I couldn't find anything on Linux to match Keynote when it can to creating animated diagrams. Surprised how clunky OSX feels compared to Ubuntu.
9
10
58
I'm really, really enjoying the Unison language and environment. The append-only library system is fabulous, but takes getting used to. The language itself is sweet, but the icing on the cake is the fantastic _abilities_ feature (Abstract Algebraic Effects).
2
7
58
13,339
" If you have three pet dogs, give them names. If you have 10,000 head of cattle, don't bother. Nowadays the idea of giving a name to every file on your computer is ridiculous." David Gelernter in 1999.
7
8
53
#sincityruby speaker dinner. Good Thai, great talk.
1
7
55
5,993
Just had some PRs accepted for @BoydMulterer's wonderful github.com/boydm/scenic project (I added the ability to specify scenes declaratively). This was easy to do as the @ScenicFramework code is wonderfully well organized and tested.
1
7
55
certbot is an amazing tool. The first time I installed an SSL cert, it took 2 days. Now it took 5 minutes (including certificate generation)
1
14
56
My talk from Gig City Elixir is available. piped.video/ZHx_1yWkSiA I quite like it...
5
9
50
One of the joys of owning a tractor is the whole new world of warning signs.
3
23
47
my talk at the Lonestar Elixir conference (remember conferences? Those were the days) is out. Not an Elixir talk. More a "make your life deliberate" talk. piped.video/sXXh16455LA
1
8
49
He loved life. He loved knowledge. He loved sharing both. Even if you didn't know Jim Weirich, you're worse off today.
73
52