My favorite alt time is definitely the ancient way of doing things: there are twelve hours during the day, and twelve hours during the night. Yes, this means that the length of an hour at night is different from the length of an hour during the day (at least most of the year). This system is still used in some oddball places (like certain aspects of Jewish religious law, and possibly Islamic law as well for all I know), but, having written such a clock once, I did kind of like that you could get a feel for where you were in the year purely based on how fast the second hand was ticking during which half of the day.
HN user
gecko
I'm Benjamin Pollack, a human living in Raleigh, NC and working as a senior manager at The Knot Worldwide. I've previously worked as a staff engineer at a startup called Bakpax, led the Backend Team at Khan Academy, and worked at Fog Creek Software, where I founded Kiln wrote large chunks of Copilot. You can read more at https://www.bitquabit.com
I will say that a lot of that RAM is going to creature comforts that aren't about apps getting worse per se. For example, everything is running double buffered images and windows in HiDPI. The era you're talking about, applications were in charge of redrawing their window whenever you exposed their contents/tabbed back to them/etc. If they genuinely needed double buffering, they'd need to do it themselves, so apps rarely did. Plus side, less RAM, downside, you would get gray nondescript windows and redraw errors when moving and resizing windows. Nowadays, Windows/macOS/Linux instead keep double- (or even triple-) buffered copies of all that. Throw on all the HiDPI images and whatnot, and you've already used up more RAM just on that one thing than the old apps used to take. But you can tab between apps with full previews, and you don't get gray blobs and tearing when an app is overloaded. Other things, like 64-bit pointers, or static linking becoming a common way to deal with DLL hell (sigh), also add RAM, but are also solving real problems.
I'm not really defending all those decisions or anything, beyond that it's not simply a case of lazy devs or whatnot. We made trade-offs as a community that genuinely improved the user experience. I may not agree with all of them, but I get why they happened, and don't spend a lot of time wondering why we used to need fewer resources.
Uh, that title is...wrong...
I'm in PowerShell 7.4.2 and they're definitely absent. I hadn't thought to install directly from GitHub, given part of the whole shtick of winget is it's The One True Package Manager and bundled, but I can't say I'm surprised, either...
I was super excited to see this comment, but I don't seem to have those cmdlets, even though I'm on Windows 11, fully updated. Are you sure you didn't install something extra?
I mean, it is a country of laws. Just...some of those laws are pretty bad. For what it's worth, the Court in this case is narrowly focused on correcting a lower court's interpretation of the Copyright Act, not something in the Constitution or something fundamental, and on a first glance, I at least feel that their conclusion is highly justifiable. That doesn't mean the Copyright Act isn't fundamentally broken (it is, on my opinion), but that's trivially fixable by Congress if we get appropriately minded representatives.
I'm not sure you understand how WSL works: it's just the native `curl` binary for whatever Linux distro you're using in WSL. On both Ubuntu and OpenSuSE, which are the two I have installed, --cacerts works as expected, because of course it does.
Separately, Microsoft bundles curl.exe as part of Windows since somewhere in the later Windows 10 or early Windows 11 releases, I forget which. This also appears to be honoring --cacerts.
So no, this seems to very much be an Apple problem.
I love the concept of Fossil being in SQLite, but there's a reason that Mercurial invented revlogs and Git tries to keep related objects close to each other in packfiles. Sometimes, you really do need a dedicated file format optimized for specific use cases. I'm completely unsurprised OpenBSD wasn't able to pull this off.
(Kiln split the difference by storing metadata in SQL Server, but keeping all the actual source data in their native formats. This works great, but is only really viable if you can guarantee things never get out of sync, which is basically impossible for random local Git repos.)
Isn't that literally just slightly different colors? I don't remember meaningful differences between OS/2 1.3 and the Windows 3 line. I always thought that was part of why WinOS2 worked well: the Win32 apps looked like the old OS/2 apps, both giving them familiarity and emphasizing they were old.
It hasn't changed radically, but it has changed. Wikipedia actually has a nice write-up if you want the details, but support for symbolic links, transactions, and partition resizing are all things that have materially improved my life in the last ~5-10 years.
It'll reset the engine control unit (ECU), which will cause your car to run rough constantly as the computer has to relearn how to adjust the engine tuning from scratch every drive. You'd be better served using a trickle charger.
I'm happy to always have London, but I could do with forgetting most of Cambridge.
As an aside, I do think that targeting Mono was the right thing to do for
the universe, as it butterfly-effected tedu into writing weird and wonderful
technical blog posts for the next ten years :p
I've never figured out whether that work broke him or was simply his muse, but I also do confess to liking the result. So not a complete loss. (Since you're answering arbitrary Fog Creek questions) In retrospect, do you
think it was a mistake to make kiln hg-centric at first?
No; I think it was a mistake to not also support Subversion out-of-the-box.Our customers were overwhelmingly Windows shops, and Git on Windows in 2007 was just unusably bad. It really would not have been a viable option. (I did look at Bazaar and Fossil, which were good players on both Windows and Unix, but neither seemed like a good fit for other reasons.) But Kiln's core value prop at the beginning was actually code review, and I think we could've found a cool way to bring in a Phabricator-like patch workflow that would've meshed just fine with Subversion and given our customers a much easier way to get access to Kiln's goodness. In that world, Mercurial would be a kind of bonus feature you could use, not the only way into Kiln. The resulting product would've been very different, mind, but I think it would've gone way better.
The other three technical mistakes we made, since you didn't ask me, were having FogBugz target .NET instead of Java (given the immaturity of Mono at the time only; I love .NET); having Wasabi compile to C# instead of IL (especially given the previous note); and having Copilot directly modifying VNC and its protocol instead of just jacketing it with a small wrapper app. These three decisions collectively slowed the company down a ton at a time when we shouldn't have let ourselves do that.
I enjoyed working with you, Alex. Glad to see you doing well!
Everything you're asking about happened after I left, so I have no idea. I didn't even know they'd discontinued FogBugz for Your Server.
[Edit: We did discontinue Kiln for Your Server while I was there. We nuked that because the support burden was monstrous, to the point we needed three extra SDETs/sales engineers purely to handle testing and on-prem bug fixes. It threatened Kiln's ability to be profitable. The FogBugz team may've made the same calculus a few years later.]
There's an imdb trivia item[0] about how you and Liz disagree about whether
it was a shush, but it's unsourced, so it was hard to put much stock in it.
This is a much more satisfying answer.
Liz thought I shushed her for a long time, but I didn't even know that until years later, at which point I apologized and explained what actually happened. So I guess there was disagreement in the sense that I didn't know she thought that, but we talked that through many years ago.I am aware of the IMDB factoid. Since they also had my bio wrong and gave me a Bacon number of two for years, I have generally just concluded IMDB doesn't care about having accurate data, and never felt a need to correct it.
How do you feel about the movie looking back? I notice on your website that
you recommend people watch it "if [they]’re feeling masochistic." Is it just
the awkwardness of being the focus of a film at that age or were there
things you disliked about how it came out?
On a personal level, there's a lot I dislike. There was a lot of pressure on us to have reality-TV-show-like conflicts, which we mostly just didn't have. As a result, I end up being the antagonist in quite a few scenes (the building jump experiment is the main one), where it looks like I'm a bit of an asshole due to how things got edited together. So, normal reality TV show stuff.(Me being awkward and arrogant also does play into it, but, like everyone else, I've grown a lot since then. Seeing how far I've come is at worst a reminder not to let myself be like that again, but usually just ends up making me feel happy I've been able to learn from my mistakes and grow. I can't say it bothers me.)
I also just kind of feel like it's a lousy movie. The soundtrack was literally written on the way to the recording studio, and you can tell. The interviews are usually not asking great questions, as much as rehashing Joel's and Paul's blogs via interviews. And there's the fact the movie is so close to being about reddit and Y Combinator right at their inception, but somehow, just...misses it.
I should tone down the "masochistic" comment so it doesn't sound like I'm bitter or hate the film. I don't. I just don't really know it's worth a watch in 2023.
What did you like/dislike about working at Fog Creek? How'd it change during your tenure?
I learned a lot about tech, I got incredible freedom to work how I wanted on what I wanted, I had great coworkers, and I really believed in and used all of our products. They all brought me joy. That was all good. And it wasn't a grindstone like some of my friends went through at thefacebook and Google, so I had time to genuinely enjoy my hobbies and be with friends.The dislikes are mostly just versions of me noting that working in an anarchistic environment is great only if you shout loudest and care more than the next person, but I will add that that company was so young in so many ways. We often were figuring out how to do things from base principles instead of hiring people who knew what they were doing, because we weren't sure if we knew how to tell that someone knew what they were doing. And when we started to hire our way out, we made Some Mistakes. So, things that fell out of those bits.
This is honestly quite a trip to read (I'm the Benjamin Pollack in the movie). I did want to make two small corrections, though:
In one scene, she’s being interviewed on her birthday. Nobody remembered,
so she had to buy herself a birthday hat. While she’s explaining this to the
camera, one of her co-workers shushes her for making too much noise. On her
birthday!
No, this coworker right here was starting to say "shit fuck shit dammit" on camera as he discovered that a stale precompiled header was getting picked up on the build box and then realized Lerone was rolling, so you're hearing me halt myself before saying a pile of profanity on film. In retrospect, Liz talking about her birthday and me suddenly cussing like a drunk sailor would've been a much better take. I regret the error. [Benjamin Pollack] seems to have never caught the startup bug, mainly working
at larger, more established companies.
I worked at Fog Creek (max ~60 employees during my tenure, usually more like 40) from 2005 to 2014, Khan Academy (~120 if you count contractors) from 2015 to 2017, Spreedly (~40) from 2017 to 2018, and Bakpax (there were a dozen of us) from 2018 to 2021 (we got acquired, I wanted to stay at startups, so I didn't stay once we were bought), and another small startup briefly after that before settling at The Knot Worldwide. Yes, I'm currently at a very large company (~6500), but I'm a bit confused at how you'd come up with that summary of my career.I honestly really enjoyed the article, though, and neither of these are exactly big errors; just some extra color I wanted to provide.
[Edit: I'm also happy to answer any questions anyone has about the movie or about that time at Fog Creek.]
It's worth noting that Compose Multiplatform, which makes the same core decision, actually has a pretty solid accessibility story (https://github.com/JetBrains/compose-multiplatform/blob/mast...). It'd be nice if I didn't need the Java Access Bridge, but that doesn't seem like a major break for me.
Can you explain what you mean? Multiple insertion points is kind of The Point Of Helix (and Kakoune, for that matter)
It's worth noting that OpenSuSE is one of very few distros in the Windows store, and the only one other than Ubuntu with really solid put-of-the-box interop (e.g. adding Linux apps to the Start menu). I'm really curious if that's had a role.
You're correct. And they didn't "revert", as GP is saying, but rather added junction points such that "C:\Documents and Settings\All Users\Application Data" is the same as C:\ProgramData, and that junction point was, at least based on my contacts at Microsoft at the time, more added because Microsoft devs were getting annoyed trying to `cd` there than anything else (i.e., explicitly not a repudiation of forcing devs to deal with spaces). The fact it was introduced only in Windows Vista, after everyone'd been forced to deal with it, was intentional.
I mean, even the IIGS wasn't really an Apple II in a real sense. Classic Apple II programs did use the IIGS' CPU, but were otherwise basically running on the MEGA-II (which I think is also how the Mac LC did Apple compatibility, although I've forgotten). Writing programs for GSOS had more in common with Mac programming than the Apple II, and properly using all of the GS's advanced sound and graphics required entirely different code from an Apple IIe. The 65816 also had a lot of practical issues stemming from the global nature of the 8/16-bit toggle that would've only gotten compounded if you tried to naively extend the architecture to 32-bits.
In the end, yes, I'm very curious what extending the Apple II line would've looked like, in an academic sense. But I suspect that, by the mid-90s, the "Apple II" would've been as technically unrecognizable from the Apple IIe as late 90s PCs were from the original XT: lots of echoes and lots of backwards compatibility, but extremely different when properly and modernly used.
Generically, anything by Microsoft will historically have used UCS-2, and will use UTF-16 these days, so this is utterly unsurprising to me as an experienced Windows dev. Conversely, Linux (and POSIX, more generally) deciding that filename encoding is a per-filename and untracked thing is a bit lit, from my perspective. Point being: when it comes to handling unicode and foreign characters, just, like...always read the documentation. Assume nothing.
The title of this article had me do a double-take: C and C++ development on Windows is great. No sanity is needed.
But that's not what the article is about. What the article is about is that the C runtime shim that ships with Visual Studio defaults to using the ANSI API calls without supporting UTF-8, goes on to identify this as "almost certainly political, originally motivated by vendor lock-in" (which it's transparently not), and then talks how Windows makes it impossible to port Unix programs without doing something special.
I half empathize. I'd empathize more if (as the author notes) you couldn't just use MinGW for ports, which has the benefit that you can just use GCC the whole way down and not deal with VC++ differences, but I get that, when porting very small console programs from Unix, this can be annoying. But when it comes to VC++, the accusations of incompetence and whatnot are just odd to me. Microsoft robustly caters to backwards compatibility. This is why the app binaries I wrote for Windows 95 still run on my 2018 laptop. There are heavy trade-offs with that approach which in general have been endlessly debated, one of which is definitely how encodings work, but they're trade-offs. (Just like how Windows won't allow you to delete or move open files by default, which on the one hand often necessitates rebooting on upgrades, and on the other hand avoids entire classes of security issues that the Unix approach has.)
But on the proprietary interface discussion that comes up multiple times in this article? Windows supports file system transactions, supports opting in to a file being accessed by multiple processes rather than advisory opt-out, has different ideas on what's a valid filename than *nix, supports multiple data streams per file, has an entirely different permission model based around ACLs, etc., and that's to say nothing of how the Windows Console is a fundamentally different beast than a terminal. Of course those need APIs different from the Unix-centric C runtime, and it's entirely reasonable that you might need to look at them if you're targeting Windows.
You can do that right now, albeit not directly in the import: it's done via an explicit `lock.json` file (https://deno.land/manual@v1.16.4/linking_to_external_code/in...). I'm tempted to agree that having some ability either to directly import, or even just to have that better integrated (right now, you have to ask for the lockfile to be used and pass an explicit path), would probably be a good idea.
I’ve written about why FogBugz failed before, but it basically came down to Atlassian having vastly better marketing, being much more willing to support every edge case instead of being opinionated, and having a better pricing model.
Unrelated, the new owners of Kiln and FogBugz are asshats, I moved my stuff off ages ago, and I’d encourage anyone else still on them to do the same.
Is there a definitive fork yet? I've been waiting for the community to coalesce around one of them.
If Russia had a secret sci-fi weapon like this it would be very stupid (and completely useless) to waste it on US-diplomats.
...like...you are aware the Russians used polonium traceable to their reactors to publicly poison individuals they disagreed with, right? Using special stuff to explicitly trace back to them is kind of their MO.
Smalltalk is traditionally done in a proportional font. Short methods, and an editor that only does one method at a time, help that work out.
I thought the Foenix was canceled. We had a discussion about it the last time the Commander X16 came up: https://news.ycombinator.com/item?id=23801266