Twitter | Search | |
Gary Bernhardt
Illuminating the dark corners of programming. Destroy All Software (dense programming screencasts); Deconstruct (independent software development conference).
4,812
Tweets
120
Following
32,353
Followers
Tweets
Gary Bernhardt retweeted
-.- 12h
Replying to @garybernhardt
but he's so greedy :/
Reply Retweet Like
Gary Bernhardt retweeted
Vaidehi Joshi 12h
and may all you traveling salesmen find the shortest path home for the holidays
Reply Retweet Like
Gary Bernhardt 12h
may Dijkstra bring your computer joy this holiday season
Reply Retweet Like
Gary Bernhardt 13h
Replying to @tomdale
This is a pretty accurate description stated badly. Among languages that have gotten any mainstream traction at all, Clojure is an outlier in how carefully it was designed up front. Its careful design has paid off in practice in the form of little breakage over time.
Reply Retweet Like
Gary Bernhardt 15h
Replying to @aaparella
failbowl.jpg; it's a very old hostname
Reply Retweet Like
Gary Bernhardt 21h
happy birthday to my dotfiles repo, which was born on this day ten years ago failbowl:~(master) $ git l | tail -1 * d9da825    (10 years)    <Gary Bernhardt>              Initial commit
Reply Retweet Like
Gary Bernhardt Dec 16
Replying to @aaronmallen
You'll have to try it for a few months and see!
Reply Retweet Like
Gary Bernhardt Dec 16
Replying to @aaronmallen
Type systems most definitely aren't solutions looking for problems.
Reply Retweet Like
Gary Bernhardt Dec 15
Replying to @ngauthier
I have a similar thing set up, but for Ruby. The bin/server script runs tsc -w&, webpack -w&, and tychus to proxy and reload the backend.
Reply Retweet Like
Gary Bernhardt Dec 14
That's what I was doing before, which is where all of the bugs in this thread occurred.
Reply Retweet Like
Gary Bernhardt Dec 14
Replying to @kblomster
It can emit ES3, but it won't actually polyfill/compile ES6 features down to ES3. It basically constrains your TS to be ES3 plus type annotations. That's what seemed to be happening when I tried, at least.
Reply Retweet Like
Gary Bernhardt Dec 14
Replying to @garybernhardt
p i p e s
Reply Retweet Like
Gary Bernhardt Dec 14
Replying to @garybernhardt
I realize that what I actually want in this thread won't be obvious to people who are newer to Unix. Basically, I want my watcher to be this one-liner: fswatch -o src | while read; do tsc | es6-to-es3 | minify | write-file-with-content-hash 'dist/bundle-%s.js'; done
Reply Retweet Like
Gary Bernhardt Dec 14
Replying to @garybernhardt
We now run both `tsc -w` and `webpack -w` in the same terminal, both backgrounded. I'm pretty confident in `tsc -w`'s ability to report errors, even when files are renamed, moved, etc. Though Webpack may still hose itself in those situations, requiring a restart. We'll see.
Reply Retweet Like
Gary Bernhardt Dec 14
Replying to @styfle
That's quite quick. But I don't want a watcher at all; I want a fast compiler.
Reply Retweet Like
Gary Bernhardt Dec 14
Yes, unfortunately. (This is relevant to me because literally five minutes ago I further complicated our build process: we now run both `tsc -w` and `webpack -w` in the same terminal, backgrounded, with output interleaved.)
Reply Retweet Like
Gary Bernhardt Dec 14
Replying to @tenderlove
everything bad about life is because numbers in JS are floating point
Reply Retweet Like
Gary Bernhardt Dec 14
Replying to @garybernhardt
I used to avoid Webpack etc. by running `tsc` directly, along with a 15-line custom module loading hack. I got a lot of extremely dismissive "just use Webpack" replies, including people telling me that I was making things hard. This thread documents what "easy" means to them.
Reply Retweet Like
Gary Bernhardt Dec 14
Replying to @garybernhardt
(This one isn't directly related to watching, but it illustrates the same kind of disregard for correctness, which is a special property of JavaScript tooling as compared to (almost) all other languages.)
Reply Retweet Like
Gary Bernhardt Dec 14
Replying to @garybernhardt
After 48 hours of Webpack, I now have three huge watcher bugs. The new one is that the reported line numbers for errors are wrong. But only sometimes. I've written production code in something like 20 languages and have never seen this happen in any programming tool, ever.
Reply Retweet Like