Firefox 73 - <AUTHOR> https://hacks.mozilla.org/2020/02/firefox-73-is-upon-us/ <comment><USER2> I switched to Firefox this month. Had to, with everything that's going on in Chrome. After struggling to remember to use Firefox, I just signed out of all my accounts in Chrome. Now I reach for Firefox much more naturally. Soon enough it should take.

Great to see the emphasis on DevTools in this release. DevTools have definitely much improved since I last tried, but they are still glitchy compared to Chrome. For example, I was using the JS debugger, and for some reason breakpoints wouldn't "hold"—after being stopped for some period of time (not long), the page would refresh. Also little things like [https://bugzilla.mozilla.org/show_bug.cgi?id=1613957](https://bugzilla.mozilla.org/show_bug.cgi?id=1613957), which I was able to report. It was frustrating. Had to go back to Chrome for development. Still, it was nice to see many features that Chrome doesn't have, like breakpoint logging, which is nice when you want to insert a log into third party code.

And as a browser from a non-dev perspective, it's great. Great to know this browser is all about privacy instead of just trying to provide the bare minimum to keep people on board. Great to have the Facebook Container.

Thank you Firefox!

<comment><USER3> Everything that's going on?

<comment><USER4> [https://www.wired.com/story/google-chrome-ad-blockers- extens...](https://www.wired.com/story/google-chrome-ad-blockers-extensions- api/)

</comment></comment></comment><comment><USER5> One more Firefox release, one more long list of people on HN who:

* have switched from Chrome because <...> reasons why Chrome is worse or has become worse

* have always used Firefox and never left it

* have used Firefox but have faced issues and would want to try it if <...>

What I, as a long time Firefox user and evangelist, would like to know is how we can have Firefox thrive and grow, what Mozilla Corporation is doing (or not doing) to get more funding for Firefox, and why we aren't seeing all those services that they wanted to sell to generate revenue. The Firefox team has reduced in size recently, and more money might probably help avoid such situations (or postpone them).

P.S.: Donations on mozilla.org go to Mozilla Foundation, which is the non- profit parent of Mozilla Corporation (the maker of Firefox). I do not know of any direct way for end users/supporters to fund Firefox development.

<comment><USER6> _how we can have Firefox thrive and grow_

Not that anyone is asking me, but I think the mobile browser is a limiter. No matter how much I like a given desktop browser, I like bookmark & password syncing more. Unfortunately for me I find the Firefox desktop browser is first class, but the mobile browser is not. As a result it's almost immediately ruled out.

I've never seen anyone else mention this so I might be a tiny minority.

<comment><USER7> You're not alone, Firefox mobile is practically unusable. But! For a while now, Mozilla has been putting all their development effort into Fenix (Firefox Preview on the Play Store), which has all the speed and responsiveness main Firefox doesn't, plus a better UI and general slickness. It even has limited extension support in the alpha, which should make it to the release version very soon. I've been using it as my main mobile browser for a few months now and it's great. There are still occasional bugs, but it's finally a legitimate Chrome alternative.

<comment><USER8> >Firefox mobile is practically unusable.

I vehemently disagree. With support for add-ons including uBlock Origin, it's one of the very few usable browsers on mobile.

<comment><USER7> I was using Firefox mobile with uBlock Origin, and I found that Chrome with no adblocking was a better experience. Page loads, scrolling, zooming, and the other interactions were so slow they counteracted the advantage.

That said, new Firefox mobile is way faster and the nightly build already has uBlock support. Best of both worlds.

<comment><USER9> Slow? I don't find it slow at all, and my phone isn't exactly top-end; what kind of hardware were you running on?

(I don't use uBlock on mobile, but I might go look into it...)

My only complaint is that it doesn't integrate quite as well as Chrome, but I don't think that's Mozilla's fault.

<comment><USER7> I tried it on a Galaxy Tab s5e and an LG v35, which have last year's mid-range Qualcomm chip and 2018's high-end chip respectively. On the v35 loading was slow, and sometimes it would crash or make all my tabs blank until restarted. On the tablet it couldn't even scroll down a page without lagging. I haven't run into any other apps that do this on either device. Zooming was always laggy and a bit _off_ \--bad acceleration curves or something--enough that they've redone it from scratch for other platforms instead of trying to fix the code.

There's a reason Mozilla is rewriting the whole thing.

<comment><USER9> That's crazy =(

That LG v35 outspecs my BlackBerry KEYone by a good margin, and Firefox is just as fast as Chrome for me. Which is to say, snappy.

I read more details about your performance problems in another comment, and it sounds horrible; I can't imagine anyone using that. Sounds like a nasty bug, I guess..?

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> FYI, if you're switching to Firefox, I strongly (strongly) recommend checking out the Tree Style Tab extension ([https://addons.mozilla.org/en- US/firefox/addon/tree-style-ta...](https://addons.mozilla.org/en- US/firefox/addon/tree-style-tab/)), which puts all your tabs in a tree in a sidebar. Once you have it installed and are happy with it, you can remove the horizontal tab bar entirely and gain a nice chunk of precious vertical space ([https://github.com/piroor/treestyletab/wiki/Code-snippets- fo...](https://github.com/piroor/treestyletab/wiki/Code-snippets-for-custom- style-rules#on-firefox-69-and-later)).

I use a slightly more compact layout that saves space and lets me see more tabs; put this in "Advanced->Extra style rules" in the addon preferences:

        /* Compact tab layout */
        :root { --tab-height: 20px !important; }
        .tab { height: 20px !important; }
        /* Shrink space between pinned tabs and tab bar, only when pins are present */
        #tabbar[style*="margin"] { margin-top: 20px !important; }

I've used this extension for nearly a decade at this point, and I could never imagine switching back to a top tab bar. It scales very nicely to an arbitrary number of tabs, organizes them in a highly natural way, and gives you a bunch of new power-user ways to manage your tabs (close a whole tree, migrate subtrees to new windows, ...).

<comment><USER11> I've never understood this AddOn. Maybe it's because I use less than 8 tabs and am diligent about closing ones I don't need.

Does it reduce memory because it's more like a temporary bookmark system?

Why does it look so ugly :(

<comment><USER12> It's specifically an addon for folks who normally have dozens (or hundreds) of tabs open, and I can only imagine it's actively detrimental to someone who only has a handful of tabs at a time.

IMO you should just be thankful that your workflow/habits haven't develop in such a way that you benefit from the organizational power of tree style tabs ;-P

<comment><USER13> I'm a zillion tab person. But even aside from that, it improves the usability of the browser.

A problem with browser UI is that - given our monitor form factor - it makes text hard to read. Studies show that very wide columns of text are harder to read than something relatively narrower.

By changing the viewing pane of the browser, moving the tabs off the top and to the side, we mitigate that extra-wide shape somewhat, making the text more easily readable while giving ourselves a bit more vertical space.

</comment></comment></comment></comment><comment><USER14> > To date, CORS network errors have been shown as warnings, making them too > easy to overlook when resources could not load. Now they are correctly > reported as errors, not warnings, to give them the visibility they deserve.

I know this is a small improvement (s/warning/error), but like it nevertheless. What I would _LOVE_ however is that CORS errors would be displayed where it would make sense - in the Network tab. When I'm debugging connections I am looking there, not in Console.

<comment><USER15> Firefox dev here. Making sure failed requests are properly highlighted in Network panel is a big one on our list!

<comment><USER14> Very glad to hear that! Now that I know what is going on, I check the console whenever the request doesn't appear in Network tab, but it is very unintuitive. Keep up the good work!

</comment></comment></comment><comment><USER16> Soon, People, Soon: [Wayland] Implement ffmpeg/VAAPI video playback

[https://bugzilla.mozilla.org/show_bug.cgi?id=1610199](https://bugzilla.mozilla.org/show_bug.cgi?id=1610199)

<comment><USER17> I wish I could take Wayland for a spin but it feels like HL3 vaporware that only a select few individuals are actually capable of using. (I have an nVidia card)

<comment><USER18> "Select few" being anybody with an Intel or AMD GPU? That's actually quite a lot of people. Shit not working properly is one of the prices you choose to pay when you choose to purchase hardware with poor FOSS driver support.

<comment><USER17> My poor little Intel GPU can't do 4K and the last 2 AMD GFX cards I purchased had such brutally bad coil whine I decided to switch brands out of sheer frustration.

The Nvidia card I have now is silent and works pretty well.

One day I'll get to take Wayland for a test drive.

</comment></comment></comment></comment><comment><USER19> "Did you know that console logs can be styled using backgrounds? For even more variety, you can add images, using data-uris"

Ha ha, oh my... Sooo many recruiting ads coming our way!

[Edit: also the WebSocket inspector is really awesome. I wish I had that years ago!]

<comment><USER20> What's the point of spending time on that?? Some bugs have been open for a very long time that don't appear to have been fixed in this release [0]... but we can select a background color in the console????

[0] [https://bugzilla.mozilla.org/show_bug.cgi?id=1220696](https://bugzilla.mozilla.org/show_bug.cgi?id=1220696)

<comment><USER21> The point is it's open source, so people will volunteer to work on what they want. Just because the bugs you cared about weren't worked on doesn't mean this work took any resources away that could have been applied to them.

<comment><USER22> Yes, but presumably Moz with their $300M from Google, or whatever it is (pretty sure it's of that order) also surely employ a few programmers to squash bugs, so just waving your hand and saying "volunteer developers" doesn't quite answer the parent commenters dissatisfaction.

<comment><USER23> And they so squash bugs? Yeah there def some old ones, but a priority was chosen for them and work continuous based on that.

</comment></comment></comment></comment></comment><comment><USER24> I switched to Firefox Dev Edition last year and havnt gone back since. It really does have a noticeably smoother feel to it. I do miss certain Chrome dev tools such as Lighthouse, however its not a difficult transition at all.

I hope more people take the leap.

<comment><USER15> Firefox dev here: Just to understand the use case (and others can pile on too) – do you use Lighthouse for online staged/prod sites or local testing?

<comment><USER25> I use Chrome to benchmark my local version of a website. The use case is very limited, because the results fluctuate a lot depending on the overall load on my machine (including the dev server), so I usually do three passes on the master branch of my project, get scores like 53, 56, 51, then switch to my development branch, three passes again, if I see e.g. 58, 56, 61 then it's fine, if the results are noticeably lower than master then time to investigate.

In any case we have a dedicated environment with lighthouse-ci and this is where the real pre-release benchmarks are executed.

</comment></comment></comment><comment><USER26> With Safari removing my ability to use uBlock in version 13, I've been wanting to make the jump back to Firefox on the desktop. The one thing that has been holding me back is that Firefox can't use the OSX Keychain for passwords. All my passwords are in my OSX/iCloud Keychain, and this is great. It works on my iOS devices and on my Mac and everything is lovely, but its keeping me using Safari on the desktop.

There was an extension that did this, but the API it relies on was removed in FF 57 with the switch to the extension API.

<comment><USER27> Long time Safari user as well, primarily for its speed and OSX feature integration (keychain). Made the jump back to Firefox in December and installed uBlock Origin, Privacy Badger, HTTPS Everywhere, NoScript and a video ripper/transcoder.

While entering my passwords into FF and exporting/importing bookmarks was a minor (and brief) annoyance, the utter joy of using a feature rich and secure browser with no ads made it worth the switch, even if I don't have keychain integration.

Give it a go, even just for a week.

</comment></comment><comment><USER28> I'm an avid, avid, avid Firefox user, but I switched to Vivaldi last month after doing a comparison of RAM load with the same exact open tabs and seeing a difference of:

Firefox sitting at 12 gigs Vivaldi sitting at 5 gigs

This is on MacOS, so mileage may vary and all that, but with the same tabs open, why would there be such a difference?

Edit: And there's no difference in the plugins. I use the same plugins on both browsers: password manager, uBlock Origin, React dev tools, and Redux dev tools and that's it.

<comment><USER29> I wish I knew but something has always bothered me about people jumping browsers due to open tab usage for tab counts above 20.

Is that really the only feature people care about?

<comment><USER30> When it completely bogs down the browser so that opening a new window stakes 5s and other normal actions are extremely laggy, no other features matter. This can happen even on my 64GB workstation when Firefox hasn't consumed all the available memory yet. Performance is a feature.

(That said I continue to use Firefox exclusively b/c 1) Firefox is really good now, 2) best addon/extension support, 3) Google's leadership is Evil now, and 4) I don't want a rendering engine monoculture).

<comment><USER31> That's understandable. But what exactly is the thought process in having so many tabs (10+) open in the first place?

<comment><USER5> Having multiple tabs (or "too many tabs") is a neat and very visible way to keep track of what's to be read and processed. It does result in keeping things for far too long sometimes, but there is no better interface that surfaces all the different sites/URLs to be processed. It's very useful when you're troubleshooting or researching something (could be some tech stuff in general, some software development/debugging stuff or anything else you're researching).

<comment><USER31> Ok, using browser tabs as "bookmarks".

I used to do something similar too with Opera (the original one with Presto engine) but with their "Speed Dial" feature. I miss Presto Opera - it was light-weight, fast and wasn't bogged down by even with 100's of open tabs and had fantastic browser features that nearly all their competitors copied.

<comment><USER5> It's actually way better than bookmarks because it stores the content in a quickly accessible way (unless the tab has been unloaded manually or through another extension), and it also stores history (you can go back and forward in each of those tabs). Bookmarks and "Speed Dial" (which is available on Firefox) do not support tab history. I do not know how Opera's Speed Dial worked though.

<comment><USER31> > _It 's actually way better than bookmarks because it stores the content in a > quickly accessible way_

I am skeptical about this part. If you tag your bookmark's, it then becomes easy to look it up right from the address bar by just typing a tag name. That is actually much easier and faster than searching through 100's or 1000's of tabs.

> _... and it also stores history_

That's a very good point that I hadn't considered.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER32> I just set up a small monthly donation to Mozilla. You can do the same if you wish at: [https://donate.mozilla.org](https://donate.mozilla.org)

I think it is worth it since I have been using FF since forever for free.

<comment><USER5> Note that donations go to Mozilla Foundation, the non-profit parent of Mozilla Corporation that works on an open web and other social initiatives. Mozilla Corporation, the maker of Firefox, does not get anything from your donations because of the way these organizations are structured.

I've asked about this here before (how to support MoCo and Firefox with money), but there doesn't seem to be a way to do that so far. This is one of the reasons Mozilla Corporation has been looking at other services, like the VPN service we've heard of, to get more revenue. Mozilla Corporation also laid off several people from the Firefox team recently because...not enough money, in very simple terms! This is not to say that one must not donate to Mozilla Foundation. Just be aware of where your money can go and what it can be used for.

On the other hand, donations to Mozilla Thunderbird go directly to Thunderbird development, maintenance, etc.

Edit: Removed an erroneous statement about the search engine partnerships.

<comment><USER32> Thanks for bringing this up. I remember reading something similar in a previous thread, but while making the donation I couldn't think of why it would be a reason not do donate anyway.

If I could donate directly towards ff development, I would probably choose to do so. Anyway from your comment I get the impression that donating to Moz Foundation is not such a great idea. If so, could you elaborate why?

My reasoning is this: I wish to donate to the people that brought me FF. If they believe those funds are better allocated to something else (instead of FF development), I guess it is should be their choice. Unless they start neglecting FF I see no reason not to donate some small amount anyway.

<comment><USER33> I use Tab Mix Plus. (I'm on Waterfox just for that one extension.)

Back when Firefox switched to the new UI backend and broke approximately all of the addons, it was promised that the missing APIs they'd ditched would be re-added post release as JS APIs. This is now many years overdue.

Frnakly, I disagree that it should be their choice, and will not donate until they give me an avenue to donate to Firefox Browser specifically.

<comment><USER5> I miss Tab Mix Plus too. I also miss Session Manager, Lazarus form recovery, etc. It's been very frustrating that Firefox hasn't provided adequate support for these fantastic extensions to continue in the WebExtensions world.

<comment><USER34> Tab Session Manager is a WebExtension. I'm not familiar enough with the others to know what's missing and can't be replicated, but session management is alive and well.

</comment></comment></comment></comment></comment></comment><comment><USER35> 20 year old bug coming through: [https://bugzilla.mozilla.org/show_bug.cgi?id=34572](https://bugzilla.mozilla.org/show_bug.cgi?id=34572)

</comment><comment><USER36> I think Firefox shines when it comes to flexbox, grid, CSS animations & dealing with fonts. Aside from those key features, Firefox and Chrome are roughly identical when it comes to debugging capabilities and being memory hogs.

</comment><comment><USER37> I recently started using Firefox more. I love containers. Firefox should make the extension part of the Firefox install wizard or ask the user to install it after you install the firefox.

<comment><USER38> Even better, delete all cookies, session and local data for each domain after all tabs for this domain have been closed (after 15 seconds), unless the user specifically whitelist a particular website. Like the amazing Cookie AutoDelete addons, that has completely changed my browser usage.

</comment></comment><comment><USER39> It took some time, but I finally feel comfortable with Firefox. I stuck with Brave for a while but the weird blockchain bookmarks syncing worked like total shit, and I'd open a browser on my nth device and it'd reset my bookmarks to what they were three weeks ago. Total nightmare.

Firefox is working great currently.

I have one gripe and it's that the DevTools frame doesn't let you drag-resize on the _entire_ bar. That is, the tab bar (Inspector, Console, Network, Debugger, etc). On Chrome, you can click anywhere on the bar and drag it up. As a web developer, I'm constantly resizing the viewport, and sometimes it's nice to have a larger console, but I have roughly ~2px to work with every time, and it takes some trial and error a lot of the time.

Would be nice for a fix to that soon.

</comment><comment><USER40> Excited to see NextDNS being added to DNS over HTTPS. I've been using them device wide but this just means more people will be able to find them.

</comment><comment><USER41> Previously I had managed to force Firefox not to make unwanted automatic connections using gHacks user.js [0] and this official guide [1], but this new version makes a connection to firefox.settings.services.mozilla.com after startup no matter what. Not a big deal, but leaves a bad aftertaste from the upgrade.

[0] [https://github.com/ghacksuserjs/ghacks- user.js](https://github.com/ghacksuserjs/ghacks-user.js)

[1] [https://support.mozilla.org/en-US/kb/how-stop-firefox- making...](https://support.mozilla.org/en-US/kb/how-stop-firefox-making- automatic-connections)

</comment><comment><USER42> Does "Zoom text only" only change the default text size (and thus the `rem` unit) or does it have other effects as well?

</comment><comment><USER43> Strangely lately Firefox has been failing both Acid2 and Acid3 tests (see [https://www.acidtests.org/](https://www.acidtests.org/)) even though it used to pass them years ago.

<comment><USER44> ...so?

> and the Acid Tests are correspondingly no longer being maintained. Acid3, in > particular, contains some controversial tests and no longer reflects the > consensus of the Web standards it purports to test, especially when it comes > to issues affecting mobile browsers. The tests remain available for > historical purposes and for use by browser vendors. It would be > inappropriate, however, to use them as part of a certification process, > especially for mobile browsers.

</comment></comment><comment><USER45> >...The General tab in Preferences now has a Zoom tool. You can use this feature to set the magnification level applied to all pages you load. You can also specify whether all page contents should be enlarged, or only text. We know this is a hugely popular feature because of the number of extensions that offer this functionality. Selective zoom as a native feature is a huge boon to users.

This is terrific! I have been shocked that this has not been a feature with accessibility otherwise having decent focus from major software vendors.

I no longer have to have the zoom level preference in my toolbar to tune every site.

</comment><comment><USER46> The developer tools still need a lot of performance work. Why does the UI crash or become unresponsive? The UI needs to be decoupled from whatever state is being managed by the tools and incrementally updated on whatever state changes. It doesn't feel like that when using the tools as they get slower and slower the larger and more complex the application.

There doesn't appear to be any notion of paging. A good example is the console. I should be able to have an infinite log, limited by my available memory. Under no circumstances should the tools crash or get slow when dealing with a large or complicated console output. It feels like that although I'm only viewing a few dozen lines of the console the entire buffer is rendered and then clipped out. The console and many other features get slower and slower the more data I'm working with. Expanding and inspecting an array with 100 items should be no different from inspecting a list with 50 million items. This is something that chrome devtools just works, so whatever they are doing Firefox just needs to copy that in order for the tools to be useable on anything other than trivial demo's.

If the goal is to be able to develop UI's in Firefox that can manage large datasets in the browser the devtools themselves need to be able to work with such data. Otherwise, what's the point?

</comment><comment><USER47> And still no support for RegExp features from ES2018(!), i.e. named groups [1]. I love FF as much as the next web dev, but sometimes features fall by the wayside, and it takes forever for FF to implement them. For example, it took literally years for FF to implement focusin/focusout events after they were standardized and all other browsers implemented them.

[1] [https://bugzilla.mozilla.org/show_bug.cgi?id=1362154](https://bugzilla.mozilla.org/show_bug.cgi?id=1362154)

</comment><comment><USER48> Still waiting for when Firefox starts supporting Matroska container for videos. Right now it cannot play h264 recorded by Chrome as Chrome puts it in Matroska for some reason. Bugzilla: [https://bugzilla.mozilla.org/show_bug.cgi?id=1422891](https://bugzilla.mozilla.org/show_bug.cgi?id=1422891)

</comment><comment><USER49> One of the pain points of developing with Firefox dev tools, which has kept me on Chromium for development, is lack of proper formatting for tracebacks. Reading tracebacks in FF has been quite an eye strain, whereas Chromium offers syntax highlighting and formats tracebacks for readability.

</comment><comment><USER50> It will be nice if Firefox restores support for high-quality scaling. transform(scale) used to work well, then for a long time it produced horribly pixelated text. They improved it a few months back, but it's still noticeably pixelated. Chrome is perfectly smooth.

<comment><USER51> This is an ongoing struggle for the graphics teams involved with both browsers, and the behavior will be different depending on OS. It _really helps_ if you file bug reports for text quality issues that provide an example of the scenario that looks wrong. I've had multiple text/transform quality issues fixed in both Firefox and Chrome by providing examples of corner cases that perform badly.

The CSS + HTML specs (and the general nature of the primitives involved) make it very very difficult to get this right in every case.

Your issue is almost certainly not a question of 'high quality scaling' and instead a question of how the heuristics are selecting the source resolution to rasterize the text at.

fwiw in the long run it would be possible to solve many quality issues specifically for transformed text by using variable-rate shading (like Slug, maybe Pathfinder) but this is still effectively a research area, I'm not aware of it being shipped in real software.

</comment></comment><comment><USER52> On a related note, I find myself using Safari for its password management and Chrome for everything else because it's so pleasant to use on mobile. They really nailed down the icons and animations (which doesn't seem like it would be that important compared to other issues going on). You'd think privacy would be a major concern for me but when I observe my behavior honestly, it doesn't seem to be that big of a factor.

The voice to text feature on Chrome is really useful too when you're searching for something and don't want to type it all out. Stunningly accurate. iOS has a built-in voice-to-text feature on their keyboard but it's not as good.

</comment><comment><USER53> It would be nice to have the progress bar like "XX% of C++ code was rewritten in Rust" for every new Firefox release.

</comment><comment><USER54> Would love to see an option in FF to only give CPU to the visible tab and sleep all others. I have a lot (!!!) of open tabs and ever so often one of them seems to go wild and CPU hogs. Have to restart FF for remedy.

</comment><comment><USER55> Glad to see console background images being fixed. console.table is nice but sometimes you just need a console.plot, and that doesn't work without background-image styling.

</comment><comment><USER56> Another Firefox release means yet again my browser's going to quit working while I'm busy in the middle of the workday. It'll offer to restart, but it won't work, and then I'll have to reload all my pages manually.

I've been using Firefox since it was Phoenix. I never switched to Chrome at any point. This behavior is so damn annoying that it might be the one thing that actually gets me to switch.

<comment><USER15> I am on Nightly which updates 2x daily without problems. If restart doesn't work maybe try a re-install. Filing a bug would be great so Firefox devs can work with you to find a root cause.

On Windows it should background update now as well.

</comment></comment><comment><USER57> With the way that they are releasing new versions frequently, It is going to be a future. Good job Mozilla!

</comment><comment><USER58> I'd prefer the mobile version of the browser to be more polished, rather than the desktop one.

<comment><USER59> Firefox Preview (early release of next generation Firefox on Android) has been improving fairly rapidly. Extension support landed in nightly a week or so ago, for those who have been holding off on checking it out.

<comment><USER60> I switched that day. Ublock origin was the only thing holding me back. I like it. I do want my I don't care about cookies add on.

</comment></comment></comment><comment><USER61> I think it's inevitable that we'll see a steady increase in Firefox's market share.

<comment><USER62> I think you are being optimistic. Like, "Year of the Linux Desktop" optimistic. The fact is that Firefox has earned its tiny marketshare by not providing significant value for its drawbacks except to a relatively small segment of vocal people on HN. Their past hijinks don't help either.

</comment></comment><comment><USER63> A year or so ago they introduced a bug (was it with the Quantum release) that Firefox would eat huge amounts of CPU (basically pegged at 100%) if used on MacOS with a scaled resolution.

Any idea if there has been any progress on this issue? Last time I tried a few months ago it still wasn't fixed.

</comment><comment><USER64> Addons are still not available in Reader View. :(

</comment><comment><USER65> Still no LastPass on Android. Why is this so?

<comment> yjftsjthsd-h Is that a firefox problem, or has lastpass just not made their extension mobile-capable?

<comment><USER65> Did a little more reading and, my bad. For both Android and iOS the LastPass app works within browsers. No extension needed. Was maybe trying to justify not switching my life to FF from Chrome because PITA. Oughtta just do it.

</comment></comment></comment><comment><USER66> So what features are removed, added despite user complaints or demonstrate an inability to understand how the internet works?

</comment><comment><USER67> My Firefox install is at least 30x slower than chrome.

Is this my fault?

It's what prevents me from using Firefox.

<comment><USER68> What does 30x slower mean? Is this a benchmarking issue? Firefox UX responsiveness? Website responsiveness?

Personally, I've never had a problem with my daily firefox usage, perf is basically indistinguishable from other major browsers like Chrome and Edge.

<comment><USER67> It's exactly how it sounds. Reddit loads in 1s on chrome and 30s in Firefox.

I used to blame my computer for not having enough free space, but now that I have 200GB of SSD free, I suppose I need to blame the software at some point.

<comment><USER69> Sounds like something isn't loading and Firefox waits for it to time out.

<comment><USER70> Not a Chrome user, but didn't they recently bypass the system DNS in favor for their own? If so, a slow DNS could explain it as well.

<comment><USER69> Yeah but that's experimental and it's supposed to have failsafes and fallbacks. I guess it's possible that it malfunctioned, and I'd never rule out DNS more generally though.

<comment><USER70> I meant the other way around: Google's DNS being fast and the local one being slow. At least I've experienced on more than one occasion my ISP DNS taking forever to resolve some domain where Cloudflare's or Google's DNS responded quickly.

<comment><USER69> Oh I misunderstood because Firefox also started experimenting with DOH lately. So it could be either, yeah!

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER71> TL;DR Firefox development is focused on helping web developers deliver more junk to users, safely.

Mozilla never actually caring about user features: [https://bugzilla.mozilla.org/show_bug.cgi?id=1520119](https://bugzilla.mozilla.org/show_bug.cgi?id=1520119)

Mozilla introducing unnecessary complexity and denying sane configuration management in the name of performance: [https://blog.mozilla.org/addons/2018/08/03/new-backend- for-s...](https://blog.mozilla.org/addons/2018/08/03/new-backend-for-storage- local-api/)

Mozilla just being bored I guess: [https://www.techsupportalert.com/content/how-get-old- firefox...](https://www.techsupportalert.com/content/how-get-old-firefox- aboutconfig-menu-back.htm)

<comment><USER72> > Mozilla never actually caring about user features: > [https://bugzilla.mozilla.org/show_bug.cgi?id=1520119](https://bugzilla.mozilla.org/show_bug.cgi?id=1520119)

(a link to a fixed bug)

<comment><USER71> In version 74. I linked this to illustrate, that features for users are made hastily, as if by "intern", to check the box and get paid. I cannot imagine a job or a student project where I was tasked to make keyboard shortcuts editor and got away with implementation that lacked ability to delete shortcut. But I get it. Since Firefox is for free, I have to either a) shut up, or b) hail it positively. There's no room for negative feedback.

<comment><USER73> You mean like the room right here where you're literally providing negative feedback right now?

</comment></comment></comment></comment><comment><USER74> it would be nice if firefox would stop sending unapproved requests on the background to mozilla's infra. i am tired of blacklisting all those domains in my hosts file. also the famous welcome screen full of google and other trackers... epic joke on the users.

also, still not having custom search engines via keywords in the url bar, like chrome, is so lame.

<comment><USER22> Erm, they've had keywords for ages?

I thought they also had some defaults, but I use "g $word1 $word2" for Google search from the address bar for what feels like over a decade. The don't have the fancy UI to go with it that Chrome has.</comment></comment>


Commit messages are not titles - <AUTHOR> http://antirez.com/news/90 <comment><USER2> Dots, periods or starting with caps - it makes no difference (except for aesthetics, perhaps.) What does (or at least: did for me) is Angular-style commit messages: [https://github.com/angular/angular.js/blob/master/CONTRIBUTI...](https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#commit).

> <type>(<scope>): <subject>

> [...]

> feat: A new feature

> fix: A bug fix

> docs: Documentation only changes

> style: Changes that do not affect the meaning of the code (white-space, > formatting, missing semi-colons, etc)

> refactor: A code change that neither fixes a bug or adds a feature

> perf: A code change that improves performance

> test: Adding missing tests

> chore: Changes to the build process or auxiliary tools and libraries such as > documentation generation

There is a big difference in knowing if someone added a feature, fixed something, or did some refactoring.

<comment><USER3> Whenever I see a convention like this, I think to myself, "There is another data model being serialized into text."

<comment><USER2> Not exactly. The actual commit content is in the code difference. Code message is just some kind of human-readable abstract, or at least - a hit of what was changed.

There is a big deal of subjectivity (e.g. what is a bug, and what is a feature) but (as with any comments in the code) it is nice to see at least what was intended (e.g. someone wanted to position a misaligned button, or added it, or improved its visuals or optimized its click from O(n!) to O(1), ...).

<comment><USER4> The code message is metadata, like the commit hash, date and author. It could easily be split up into different fields.

</comment></comment></comment></comment><comment><USER5> Speaking of Git commit messages, it's worth pointing out this wiki[1], written and reviewed by some long time open source contributors. It's a bit verbose, but rewarding to the patient reader.

On writing Git commit subject lines, I've come to appreciate why the imperative mood is nicer (as opposed to the and indicative mood). Some related reasoning here[2].

[1] [https://wiki.openstack.org/wiki/GitCommitMessages](https://wiki.openstack.org/wiki/GitCommitMessages) [2] [http://chris.beams.io/posts/git-commit/](http://chris.beams.io/posts/git- commit/)

<comment><USER6>
      Add comment strongly agreeing with parent

      The links in the parent comment are to documents which are
      prescriptive, based on hard-earned experience, and provide
      well-reasoned justifications for how and why to format commit
      messages, along with examples of projects which do so.

      I wish the parent comment were at the top of the page, but I can
      provide only a single upvote. This comment is to provide more
      exposure than an upvote alone, and so that I can find it my HN
      history.

<comment><USER7> \- [http://orgmode.org/](http://orgmode.org/) (or Evernote, this-pad, that- pad...)

\- [https://en.wikipedia.org/wiki/Bookmark_%28World_Wide_Web%29](https://en.wikipedia.org/wiki/Bookmark_%28World_Wide_Web%29)

\- Direct link to parent comment: [https://news.ycombinator.com/item?id=9764039](https://news.ycombinator.com/item?id=9764039)

</comment></comment></comment><comment><USER8> Does anyone actually care whether commit messages contain a period or not? If they're lower case, title case, sentence case, it's completely irrelevant

<comment><USER9> Sadly. In my view they're bikeshedding, hard.

<comment><USER10> Bikeshedding like this is useful as a team efficiency metric.

If you can't get quickly to an agreement about such a thing, or if the members of the team that didn't get their way actively rebel (or worse sabotage), you are working with a team of divas.

(note: of course developers whinge, as long as you stick with the team decisions once their are made, whinge all you want)

<comment><USER11> > If you can't get quickly to an agreement about such a thing ... you are > working with a team of divas.

Or you're working on such a trivial problem that it should have been given to an individual, not a team.

<comment><USER10> Well that's the point. Feed the team with a trivial problem to see how they react.

A well working team will probably do as you say - volunteer an individual to write the rule in an email and follow it from there on.

If you going to introduce changes in a team, like for example introducing Agile (the proper way) or you are starting a new project, you want to quickly gauge the team dynamic, and that's a good exercise.

</comment></comment></comment></comment></comment><comment><USER12> As for me, I don't care about the style at all.

What I care is about the content. And the thing I hate the most are commit messages that explain the _what_ , but not the _why_! (It's the equivalent to comments in the code that explain something obvious.) To me, this kind of commit messages express the same as if there was no commit message.

<comment><USER13> But if the commit message says what happened, then you don't need to read diffs to find out what happened. Reading an English sentence is easier than reading code diffs, and also you can read a bunch of sentences in list form (eg, git log).

I'm not saying you don't need to include the 'why', I'm saying there is value just in the 'what'.

As for code comments that just 'explain something obvious'... I have no problem with comments that simply summarise, in English, what the next few lines do. It means I can skim through a file just reading the comments, until I find the part I want to debug/modify/understand in more detail. Also, if you can sum up some code with a sentence then there's a good chance it makes sense, so it's a good quality check.

<comment><USER12> With the 'what' of course I don't mean 'what happened', as the latter would be actually kind of the 'why' you're making the change. So with the 'what' I mean 'what is being changed', some people just write what file are changing and what they are adding to it, explaining how the code is changing in the diff, but not _why_ the code is changing.

As for code comments, I think you're basically wrong. If you can summarize some fragment of code under a sentence, extract that piece of code into a method and name that method in the same way you were going to write that comment; otherwise comments get outdated easily. These kind of techniques are well explained in a very good book I read a while ago, it's called "Clean Code".

<comment><USER14> I have no objection to summary comments - they can guard against certain types of accidental or otherwise erroneous edits. If the code and the comment don't quite agree then suspect both of them are wrong.

Personally I think check-in comments should be a concise (but not generic like "bug fix") description of "what" with a smattering of "why" (perhaps a reference to a bug/ticket/feature/request ID). The details of "what" can be seen by looking at the diffs. Where the details of "why" go is split. Why you chose a particular method over others available? Any constants or magic numbers you think might need clarifying when someone else looks? You've done something that looks odd/unnecessary at first glance in order to work around a bug/limitation beyond your immediate control? Those things go in comments in the code. Just about everything else goes in the ticket and possibly makes its way to other documentation, there is not point cluttering the code up too much (unless your implementation documentation is all in-code and you use tools to extract it into other forms, as I've seen done before now, in whic case everything goes in there). "FIXME" and "TODO" markers can go in the code too though generally you want them gone for release (if they survive between releases then they should really be feature requests in your backlog rather than just code markers, so they can be tracked/managed/prioritised as needed.

What really grinds my gears is commits without any comment at all.

<comment><USER15> > What really grinds my gears is commits without any comment at all.

That just shouldn't be allowed. Commits without JIRA (or whatever you use) task reference should just be automaticaly rejected.

<comment><USER14> Yeah, the legacy project I'm working on isn't that modern... And even when rules are enforced, people sometimes work around them and leave a useless commit comment. Lax documentation, sometimes deliberately lax, is a person problem unfortuntely - one better solved in ways that HR would disaprove of then via technical blocks!

</comment></comment></comment></comment></comment></comment><comment><USER16> Oh god, another commit message discussion.

It's funny how the ones who contribute the least to the functionality have the most outspoken opinions on commit messages. Perhaps it's easier to be puritan when you only handle trivial code changes.

I prefer productive people with messy commit messages over pedantic people with meticolous commit messages any day.

The picky ones usually refuse to touch anything surrounding their particular feature and end up increasing code complexity with every commit, whereas the productive people massage the code into the best possible state as they go along.

<comment><USER17> I don't understand how you could possibly tolerate messy commit messages. It's as if you've never had to do a code investigation/audit ever, heaven forbid you do.

<comment><USER18> I don't think that's a fair statement, at least based on my own experience. When I'm investigating how code arrived at a certain state, I'm looking primarily at the code.

The commit messages are nice as indicators of intent, but I don't rely on them. The real change is in the code, not what somebody remembered to write in a summary of the change.

<comment><USER17> Investigating code deltas tells you nothing about HOW the code got there. It's there. Someone committed it. But WHY? Hence, the commit message.

"new feature. fix it. fixed. lol. WIP. COMPILES NOW"

None of these tell you how the commits came to be other than that they are already there.

</comment></comment></comment></comment><comment><USER19> Regardless of my opinion about this subject, i always find it good to see when people try to think out of the box. Nowadays most people just follow what is the current hype:

yeah, let's do semver! And it HAS TO BE react, agile and also it must be in Git, because... yeah, because what? Did you as a developer _really_ think why you are following a certain practice and if it is beneficial to your project at hand? Most people don't. They just do what John Doe posts on his hipster blog about Web3.0.

<comment><USER20> If you join a team project, you have to follow the team convention. It is not necessary to put dbo. in front of table names in SQL server. Yes, you can use .PHP instead of .INC for class files. No, C# will compile just fine if you indent with four spaces or eight spaces instead of a tab.

However, when you are working in a team, you follow the convention of the team. Or change the convention so the team is on the same page.

<comment><USER21> >It is not necessary to put dbo. in front of table names in SQL server.

Depending on default schema, it definitely can have performance considerations on compilation.

Maybe some of those team conventions are actually based on real world things.

From: [https://msdn.microsoft.com/en- us/library/dd283095%28v=sql.10...](https://msdn.microsoft.com/en- us/library/dd283095%28v=sql.100%29.aspx)

SELECT * FROM Table1

Will assess the following statement first: SELECT * FROM <defaultschema>.Table1

If it cannot find the object, the server will assess the following statement: SELECT * FROM dbo.Table1.

The assessment process can be improved by using either the fully qualified name or the DEFAULT_SCHEMA option described earlier. By setting a value for DEFAULT_SCHEMA for the user, the server will check the DEFAULT_SCHEMA first, removing an unnecessary ownership checking process. This can improve performance considerably on heavily utilized systems.

</comment></comment></comment><comment><USER22> I really like bitbucket and JIRA for this in a business use case.

We use the format "JIRA-XXX commit message/title/synopsis/whatever you wish to call it" where JIRA is our project name in JIRA and XXX is the ticket number. Bitbucket then can turn that into a link to your JIRA project

All of the who/what/why is already in the JIRA ticket as more often than not there are non-coders who have input/insight around the issue. When I am looking at the commit log I see a brief summary and if I need more details I can go to JIRA and get the full history with screenshots, designs, reproducible steps, business cases, etc.

Another side effect of this is, when someone is searching in JIRA and finds a ticket they can easily see all of the commits related to that ticket. This also works with Github

The commit becomes simply the "how" "JIRA-XXX brief desc" was implemented

<comment><USER23> The issue with this is that, over the course of development, the comments on a given JIRA ticket will start to cover QA and release steps, and they drive down the signal-to-noise ratio.

<comment><USER15> Never had problem with this. Usually people add separate linked task for release (and specification).

</comment></comment></comment><comment><USER24> Way too much energy to expend on worrying about this.

I put Github issue numbers into my commits because I use Github. Anything is fine if you're consistent.

</comment><comment><USER25> The first comment under the post is frankly outrageous.

This is precisely the reason why the rest of the world abhors programmers and the software community. Random strangers contributing nothing to the debate but their angry and immature bile. No wonder content creators are disabling comments one after another, why wouldn't you?

<comment><USER26> Well, programming can be picked up by just about anyone these days, so its no wonders you get people as mature as youtube commenters in the mix.

This is what differentiate professionals from amateurs.

</comment></comment><comment><USER27> In a previous gig, we had a simple rule: there must be a ticket number with a certain format at the beginning of the commit message. A summary follows.

The ticket has pretty much all the info you need, so there's usually no need to write a very detailed commit message.

This essentially mandates tickets for every single commit, which might sound too process heavy for some people, but ticketing was part of our process anyway for other reasons (change management, compliance, etc).

In the rare event that a commit is not originated by a ticket, you can still cheat by writing a fake ticket number.

<comment><USER28> It ought to be a simple matter to start a new ticket and dump your work into it.

A la the Joel Test, your ticketing system should:

\- open a new ticket on receipt of unknown email, sending back the ticket number

\- treat email with a proper subject prefix as a comment on an existing ticket, adding any attached files

\- easily merge two or more tickets, preserving both histories and redirecting all references to the old tickets to the new one

\- maintain metadata and ACLs for metadata

\- automatically re-open a ticket when a new comment or reply is received

\- require a message to close a ticket

\- provide summaries

\- be full-text searchable

\- track all history immutably

\- provide a method to associate many individual reports of the same problem

</comment></comment><comment><USER29> I was recently advised to use the "commit messages are subjects" style, but I get a pang of... something, every time I have to omit the full stop (I always type it out of habit and then press backspace).

I agree completely with Antirez, messages are not subjects or titles, and we should make them as succinct as possible, not force ourselves to write something that leads into a full-text piece only to omit the latter.

If it can fit in one line, make it fit, otherwise summarize the change as well as you can. Our goal should be to have to read the least amount of text to understand what the change is doing, and the hierarchy is: short commit message > long commit message > diff.

<comment><USER30>
        I get a pang of... something, every time I have to omit the full stop

Good. :) One thing that's very nice about the full stop:

You know that you've read to the end of something.

In the absence of one, there's always the chance that text has been cut off

<comment><USER29> Cut off what? The suspense is killing me!

</comment></comment></comment><comment><USER31> > How many emails or articles you see with just the subject or the title? Very > little, I guess

I hate to go OT and "well actually", but, _well actually_ this is more common that you'd think. I first learned about "subject only" emails back in 1998 and most places I've worked at use them to convey succinct email messages where there's no need for extraneous words in the body. It's a real time saver when you have a busy inbox.

I've also worked in places that "EOM" (or some variant of) their message subjects to be explicit that there's nothing in the body [0].

WRT to the remainder of the article, I don't have any strong feelings either way.

[0]: [http://lifehacker.com/5028808/how-eom-makes-your-email- more-...](http://lifehacker.com/5028808/how-eom-makes-your-email-more- efficient)

<comment><USER32> NT

</comment></comment><comment><USER33> I also prefer treating them as sentences and prickle at the level of enthusiasm for no dots. In the end consistency with others is more valuable though. However, the article is entirely unconvincing to me, despite being on his side - the removal of a dot and writing succinctly are not mutually exclusive.

</comment><comment><USER34> It always felt natural to put this dot at the end of (what antirez nicely called) commit synopsis, so AFAIR I always (or at least since I started using git and when was not forced by particular project's rules to do some other way) put it there and found advices to avoid it quite strange. The only exception (beside forgetting about full stop yet pushing to public repo, it does happen sometimes) I have is when the commit is sole version- bumping/releasing one, because then I usually go with following style

        PROJECT_NAME [v]VERSION

There are some half-broken SCM managers that always display whole commit message (sometimes even without respecting paragraphs) and then such synopsis without full stop yet followed by another sentences looks rather awful. YMMV

As some commenters here already wrote, it's not a grave matter, but it's good to have consistent style. It goes without saying, that having relatively short commit summary in one sentence separated with blank line from further details (if they are necessary) is far more important matter than the period or lack thereof, as it immensely eases groking commit log.

</comment><comment><USER35> Commit messages need to convey what _will_ happen if you merge that commit in. Plain and simple. That's all that is needed of them. Of course, you need to tag the ticket number (in case you are using Cloud based solutions like Github) but I am more interested in what the changes will do if I merge them in.

</comment><comment><USER36> I think the body of the commit message is way more important than the title: [http://blog.jgc.org/2013/07/write-good-commit- messages.html](http://blog.jgc.org/2013/07/write-good-commit-messages.html)

<comment><USER37> Body is super important, but when you can craft a very good single line commit message, is not bad either. It is hard to find a balance but what I try to do is to reserve multi line commit messages for situations where it is appropriate to provide mode details compared to just "git show" the commit to check the actual content.

</comment></comment><comment><USER38> Is it me or the entire "Kosher Commit Messages" movement really gained traction with the widespread adoption of DVCSes?

I really cannot recall contributors obsessing that much over SVN, CVS or VSS commit messages. Now, you could change these after the fact, but still.

<comment><USER39> We used to have a Perforce changelist guideline newsletter here.

No, I'm not kidding.

</comment></comment><comment><USER40> How about: if your message doesn't fit into a single sentence, the commit is too big. Split it. If it's a huge architectural change merged from another branch, describe it in a separate document referenced in the message.

</comment><comment><USER41> It seems obvious that inside any given organisation, it makes sense to have a convention regarding the form of commit messages, so you know how to look for certain things.

However, pretending there is a one-size-fits-all rule is taking it too far.

</comment><comment><USER42> I'm waiting for the 'Commit messages considered harmful' blog post.

</comment><comment><USER43> While I commend the poster's ideals, the method only works in the glass cathedrals model of development. One in which no commit gets made without having followed the process from inception, through requirements gathering, through unpressured development, through appropriate and thorough QA/code review, and deployment. In the street market bazzar you're left with thousands of micro commits that you don't have time to sit down and create an illuminated manuscript page for each commit explaining it's small description, and it's naritive history.

</comment><comment><USER44> We use Redmine and just put the relevant issue number and the title of the issue. If more information is needed, you can go to Redmine to check more details or how to reproduce.

<comment><USER45> I prefer the next step over: Branch is named after the ticket and a short description of what the branch does, commit messages just talk about the contents of the commit itself.

<comment><USER44> We actually don't make a branch for each ticket because we need to expose the repositories to outside and so we use Gitolite, and having to reconfigure branch permissions each time... Ain't nobody got time for that.

</comment></comment></comment><comment><USER46> The 50 character limit on the first line of a commit message really bugs me. I try to stay within 50 characters but sometimes I don't care. I can't always fit what I want in 50 chars and adding a second line can be too much. This is the worst kind of thing around tooling, these types of conventions, in this case because that's how Torvald's wants kernel git commits formatted. I am not committing to anything Torvald's cares about.

<comment><USER47> The 50 character convention has nothing to do with Linus Torvalds.

<comment><USER48> I've seen a lot of posts and comments about the 50 character convention but I'm not sure I've ever seen a reason for that specific number. What _is_ the reason for that anyway?

<comment><USER49> It appears to originate with Tim Pope: [http://tbaggery.com/2008/04/19/a-note- about-git-commit-messa...](http://tbaggery.com/2008/04/19/a-note-about-git- commit-messages.html)

Reading between the lines, it seems that the 50 character limit is to accommodate commands like "git log --pretty=oneline" and "git rebase --interactive" on an 80 column terminal. He also recommends 72 columns for any subsequent text because git makes a left margin of 4 characters and it looks balanced if you also have a right margin of 4 characters (80 - 8 = 72).

As someone who actually uses an 80 column terminal, I appreciate this practice. Probably younger people with good eyes won't be able to understand the reasoning behind it ;-)

<comment><USER46> > Probably younger people with good eyes won't be able to understand the > reasoning behind it ;-)

Serious question, have you tried reading glasses? You don't have to just deal with bad eyes as you age, you can wear reading glasses. This what I do now.

</comment></comment></comment></comment></comment><comment><USER50> I think people tend to overthink this. The only thing I need from a commit message is what you did and why you did it. (One might be implicit from the other). If there's more than that, you might be committing too much at once. People hardly ever go over commit history unless something got fucked up, and then those are the things you're interested in. Whenever people get OCD about the form or rules I cringe.

<comment><USER51> As others have observed, these comments are used for auto-documentation, for reporting, and for merge requests. Its handy to be able to categorize them, to schedule and organize these activities.

<comment><USER50> I feel like things like "auto documentation" and "automated reporting" are code words for "things that superficially sound useful that in reality no human should ever use to make an actual decision". So in that context, well formed commit messages are very important for supporting bureaucratic nonsense. My feeling is that if you want to publish a change log, you should do that by hand while keeping the intended audience in mind, and if you want to review the performance of people, "metrics" are extremely game-able and instead the work should be considered as a whole.

<comment><USER51> You don't read release notes?

</comment></comment></comment></comment><comment><USER52> This is what I'm using now: [http://seesparkbox.com/foundry/semantic_commit_messages](http://seesparkbox.com/foundry/semantic_commit_messages).

chore: add Oyster build script

docs: explain hat wobble

feat: add beta sequence

fix: remove broken confirmation message

refactor: share logic between 4d3d3d3 and flarhgunnstow

style: convert tabs to spaces

test: ensure Tayne retains clothing

</comment><comment><USER53> Right. Commit messages are not titles.

Commit messages ought to consist of a title, followed by an empty line and a short(-ish) summary.

</comment><comment><USER54> I think the two most important rules are:

1- The first line should give a good description of the commit

2- Avoid long lines (reading truncated commit messages is painful)

Other than that I think it's all common sense/good judgment and I'm not attached to a particular writing style or kind of sentences one should make.

</comment><comment><USER55> At our company we use a svn hook with Jira, so all commit messages must contain a valid Jira issue ID which contains a detailed explanation of the commit itself. So our messages are always like: PROJ-0001 I did this. IMO does the job and is much easier for the developers.

</comment><comment><USER56> Commit messages are like tabs and spaces. However you write them, keep them the same across your repository.

But obviously lower case, present tense, no dot, 50 char limit, and usually starting with add/fix/refactor/update/remove is the way to go. ;)

</comment><comment><USER57> Linus on good git comments: [https://gist.github.com/matthewhudson/1475276](https://gist.github.com/matthewhudson/1475276)

The first line is special for a reason, it makes shortlog clean and clear.

</comment><comment><USER58> An option for git or magit that would automatically look at recent commits and maybe capitalize or add a period to my commit message so that it is consistent with the majority of the commits for the project would be nice.

Does something like that exist?

<comment><USER59> I don't know if someone has already written one, but a commit-msg hook could certainly achieve this.

[http://git-scm.com/docs/githooks](http://git-scm.com/docs/githooks)

</comment></comment><comment><USER60> I perceive the condensed sentence fragment (as requested for Angular) as a conceptual gist, which is all it really is (a few words to suggest the bigger picture), not a title (each commit is identified by its hash).

</comment><comment><USER61> I _ALWAYS_ commit message like this:

<action>: <brief explanation>

For example like this:

"refactor: tightened for() loop in networking code"

"added: feature #134"

"removed: debug cruft"

"fixed: one-off bug in string parser"

</comment><comment><USER62> Fuck it. From now on, all my first lines will be UTF-8 emoji.

</comment><comment><USER63> my commits are not only titles they are milestones , I have lolcommits installed and pose for the selfie and everything.

Could be because of I am new to git

</comment><comment><USER64> Commit messages could have titles :-)

Most tools only shows first line of message. Rest of the message can contain whatever you want.

</comment><comment><USER65> What's your blog theme? So cool and minimalistic.

</comment><comment><USER66> I have the following in my git config for handling these kinds of discussions:

        [jlouis@lady-of-pain ~]$ cat .gitconfig | grep phk
    	phk = commit -a -m 'upd'

<comment><USER67> Does phk mean what I think it means? It's definitely funny and I'd definitely decline all your pull requests, but in company work it really doesn't matter because most people don't look into the history anyway. So yeah, it's probably a productivity tip.

<comment><USER66> It pays eternal homage to a toy-repository by phk in which that commit message occurs. I found it more fun than `git yolo`. And easier to type as well.

The other reason I have it is that when you are first building up a piece of software, you may want to snapshot it now and then, but you don't care too much for the archeology because things are still not working. Once you reach something which seems to work, you squash everything down and cut your first release with a meaningful commit.

<comment><USER67> Yeah in a feature branch it's also reasonable. `git yolo` is also nice.

</comment></comment></comment></comment><comment><USER68> why is this even important?

<comment><USER17> Because commit messages are important.

</comment></comment><comment><USER47> When using Git's mail features -- remember, not everyone uses GitHub -- the first line of a commit _is_ a subject line. It's good practice to just think of it that way. If you write sentences in your subject lines in e-mail, I guess, that's up to you. Don't take it from me, read the Tim Pope counterpoint, with eight extremely good reasons for concise subjects in the closing paragraph:

[http://tbaggery.com/2008/04/19/a-note-about-git-commit- messa...](http://tbaggery.com/2008/04/19/a-note-about-git-commit- messages.html)

Strong disagree with antirez on this one. Even vim filetype gitcommit disagrees. (Try it on the "smart synopsis" example.)

<comment><USER69> I don't see how this is a counterpoint. tpope says "This first line should be a concise summary of the changes introduced by the commit", and antirez says the first line should be a "synopsis of the meaning of the change operated by the commit"; these appear to be exactly the same thing.

But then, I don't understand the distinction the original post seems to be making between "titles or subjects" and "synopses." A good title or subject for a git commit _is_ a synopsis of the changes in the commit, in the same way a good headline for a newspaper article is a synopsis of the article.

</comment></comment><comment><USER70> Why is it that programmers invariably state their opinions as if they were facts.

<comment><USER51> Qualifying an argument weakens it. And makes it less concise. Note: I could have said "I think that usually qualifying an argument tends to weaken it in the eyes of the reader". Which is better in a text discussion?

</comment></comment><comment><USER71> How can anyone take the author's word on whether or not to put a full stop at the end of something when he puts a full stop at the end of the bullet points in his list? That's far worse usage than anything he's doing in the title/summary/smart synopsis. [https://www.oxforddictionaries.com/words/bullet- points](https://www.oxforddictionaries.com/words/bullet-points)

<comment><USER72> That link you posted says you can put fullstops at the end of lists if the elements of the list are full sentences.

<comment><USER71> "And resulted into this" is a full sentence now? I guess. It's not really English though.

The whole thing is serious bikeshedding in my opinion.

<comment><USER73> "Sentence" is a highly debated linguistic construct with no clear rules for what does or doesn't apply. You don't think that's a sentence? So what?</comment></comment></comment></comment>


Prosthetic Limbs, Controlled by Thought - <AUTHOR> http://www.nytimes.com/2015/05/21/technology/a-bionic-approach-to-prosthetics-controlled-by-thought.html <comment><USER2> Really fantastic work by the team at the Johns Hopkins APL. It's amazing to see the struggles Mr. Baugh goes through, and then his reaction to having use of arms again.

It's unfortunate that there's no way currently for him to have access to the robotic arm unit outside the lab. I think it would benefit the team to learn the how quickly people gain proficiency with the prosthetic limbs under a constant use scenarios, which might better inform the design process. Hopefully that will come soon.</comment>


Are Environmentalists the Fossil Fuel Industry's Useful Idiots? - <AUTHOR> https://medium.com/libertarian-socialism-american-style/are-environmentalists-the-fossil-fuel-industrys-useful-idiots-49ca072ce20e <comment><USER2> > Fission is really the only option for always available industrial amounts of > power

Why not batteries, of all kinds (pneumatic, hydrogen, gravitational), or specifically electrical? Costs, perhaps?

The argument between proponents and opponents of fission power rarely focuses on externalities costs. Opponents claim nuclear power is very costly when nuclear waste utilization is considered. What is missing here?

To paraphrase, given the current growth rate of solar+wind and other renewable sources of energy, one would think the biggest remaining problem is to neutralize intermittent nature of those sources - or at least of biggest of them, for which batteries would be a solution. Nuclear proponents disagree. Can we have good numbers to compare?

<comment><USER3> We don't really have good options for "industrial-size" batteries e.g. something that can offer many GWh of storage, which is something that would be required to sustain modern society through the daily (and nightly) variations of solar and wind power.

Pumped hydro can do that in certain places and with major changes to local ecosystem, so this is what we're using, but a full switch to renewables would need much more than what we can get from current pumped hydro locations.

Pneumatic, hydrogen or gravitation other than pumped hydro have never been a reasonable option in scale - there are various companies working on that, some of them have posted their PR pieces here, but up until now all that has been pure puffery with no way to scale to large amounts (GWh, not MWh) in anything close to practical costs or infrastructure size.

Electrical batteries are not _yet_ sufficiently capable but they may be becoming an option in the near future. E.g. the Tesla superbattery in South Australia is (or at least was) the largest project with 129 MWh of storage - that is a step in the right direction, it is very useful for rapidly covering short-term fluctuations, but the 'superbattery' is comparably _tiny_ , it's less than 1% of the capacity of a single decent pumped hydro plant which get 20000 MWh or more. And if we want enough storage so that the country won't have blackouts every time there's a windless winter evening, then we need much more than that. E.g. UK seems to consume 25GW electricity even during nighttime, so a single windless winter night with 12 hours of darkness needs 300 GWh of storage (so, some 2000 stations like Tesla built in Australia) just for the daily variation - without accounting for seasonal variation in solar and wind.

So the answer to "why not batteries" is that this will happen when we will have the capacity to install 1000+ times larger batteries than current megaplants while still having a reasonable price. I'm sure that this is possible and will eventually happen, but we're not there yet.</comment></comment>


You Don't Need a VPN - <AUTHOR> https://perezbox.com/2020/07/you-dont-need-a-vpn/ <comment><USER2> The picture is slightly more nuanced. What's your exposure from browsing a web page or your mobile phone? Your IP address alone is enough for companies that use network provided APIs obtain your full billing information, location information, and more:

[https://medium.com/@philipn/want-to-see-something-crazy- open...](https://medium.com/@philipn/want-to-see-something-crazy-open-this- link-on-your-phone-with-wifi-turned-off-9e0adb00d024)

<comment><USER3> And having a VPN can let you do away with some of the more questionable third party tools that let you manage things at home. I could pay some cloud provided service to let me manage security cameras at home or I could have a VPN and access them like local resources and keep more of my data in-network.

</comment></comment><comment><USER4> I'm going to say the quiet part loud: The main use cases for a VPN are BitTorrent and changing regions on streaming sites. For which they provide a necessary and valuable service. But since they can't say "Download any movie only $4/mo" in their ads, we get "military-grade encryption" instead.</comment>


Flex: The Unix Geek's Ideal Flash Environment - <AUTHOR> http://benjisimon.blogspot.com/2008/09/flex-unix-geeks-ideal-flash-environment.html <comment><USER2> There's also haxe (<http://www.haxe.org>), which we're using to good effect at justin.tv.

<comment><USER3> That's awesome. Do you guys post on the compiler list?

<comment><USER2> I haven't yet, but I plan on it. I already have a few small patches I'd love to get rolled back into haxe.

</comment></comment></comment><comment><USER4> "For those who don't know, Flex allows you to write XML and JavaScript and compile it to a .swf instead of using the traditional GUI timeline based tools." uhm... you write ActionScript3, not javascript. Different beasts and likely to remain so given the current fragmentation in ecmascript recommendations.

</comment><comment><USER5> flash, regardless of any development environment, is not ideal to any unix geek.

</comment><comment><USER6> The article is focused on developing Flex using Emacs, but probably also worth mentioning that the non-free Flex development environment (Flex Builder) is Eclipse-based.

I've never truly used it in anger, but I found it extremely good. It's US$250 or something last I checked.

If you're more of an IDE-type, worth checking out.

<comment><USER7> I'm an Actionscript developer by profession, and having recently moved into Flex work I can strongly recommend both the Flex framework and Flex Builder -- at least, if you choose to create content for the Flash Player at all. The programming model is worlds ahead of what Flash developers have been putting up with for the past decade; they made clear and effective efforts to make it work like the languages, frameworks, and systems professional developers are already familiar with.

Since Actionscript 3 has optional static typing, and contains little- documented but very real implementations of closures and functional programming, it can be written as a Java-like OO language, as a Javascript- like dynamic language, or as a clunky but at least workable functional language; and the XML-based GUI-layout component, MXML, is surprisingly powerful and consistent.

Even though Flash is where my paycheck comes from, I am not at all convinced that it is the ideal format for most web content, so I won't argue with anyone who hates it. But anyone who has avoided Flash because of its programming model should definitely give Flex a second look.

(As for Flex Builder, I use it for its debugger and compiler, while doing heavy-duty text editing in jEdit. I mean, it doesn't even have parenthesis balancing, for chrissake.)

<comment><USER8> Please tell me that all those crazy redundant type declarations I see in AS3 code is optional too? IMHO AS1 started as a broken but usable language then AS2 and AS3 came along and added layers of Java-style bureaucracy for no good reason. AS should've been more like Javacsript with simple duck-typing and first order functions, etc. Flash developers are web developers who know and understand Javascript. Why on earth AS3 has to become so different then Javascript is beyond me.

<comment><USER9> Actually, ActionScript can be an extremely elegant and powerful language, when coded "correctly". The vast majority of Flex developers come from either a design or Java background, and as a result you find that most ActionScript RIA code adheres to strict application frameworks, static typing, etc...and rarely takes advantage of the interesting parts.

ActionScript has first-order functions, allows for dynamic typing, and utilizes class as well as prototype inheritance, even for built-in classes. This means you can do neat things to the prototype object associated with any object - even the Function object itself.

Just because the majority of people developing in ActionScript don't utilize the functionality doesn't mean it doesn't exist! Take a minute to look into the language yourself - you might be very surprised.

<comment><USER7> Definitely. I sat in on a Flash user group meeting last Wednesday (shouts to any FlashcodersNY folks), where Alan Shaw gave a fascinating presentation on prototype-based inheritance in AS3. One of the tricks he showed off involved having one class add methods to the prototypes of other classes at compile time -- to get the same effect with the Java-like static-typed OO that AS3 <i>appears</i> to encourage, you'd need a veritable bouquet of Command and Factory structures. Instead, sprinkling a little prototype stuff in among the traditional OO allowed this particular trick to rest all in one class.

The same thing applies in a lot of areas of AS3 -- you can write a GoF-y 2001-Java-looking app with self-documenting code and doc comments and blah blah blah, and then if it's convenient, you can ALSO use first-class functions with currying and all that geek stuff for statements like (just an abstract example):

newArray = oldArray.map(convertFrom(value)).map(applyTransform(transformParams)).reverse().filter(namesFromLanguage(Language.GERMAN));

<comment><USER10> Oh that is fascinating. I just recently installed Haxe on my Ubuntu a few hours ago. Hacked a swf after reading the documentation. (Which I believe is lacking.) Do you know of any good Haxe tutorials for a newb in ActionScript land?

<comment><USER7> I'm afraid I don't know anything about haXe; it doesn't matter if it's a superior language if it makes it harder to collaborate with non-haXe Flash developers and to use Adobe tools such as the Flex SDK.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> Ha, is this guy a joke?

AS elegant? I think it's the ugliest language next to java.

AS has deep roots in Scheme!??

Also, I know you can use javascript for Flex, but can you create a swf using javascript?

<comment><USER12> I believe the original author of JavaScript went to Netscape with the promise of doing "scheme" for the browser. It didn't happen, but he included some ideas from scheme as part of it.

See [http://Weblogs.mozillazine.org/roadmap/archives/2008/04/popu...](http://Weblogs.mozillazine.org/roadmap/archives/2008/04/popularity.html) for a brief history.

</comment></comment><comment><USER13> Nice! I've been waiting for a write-up like this.

Because Flash has such good browser support, it's common for bits of rich functionality on sites to be implemented with little SWF files, with or without UI. Sound players, upload widgets, cross-domain sockets, even browser- proof clipboard access. I do all my web programming in Emacs, and the text- file-based development method he suggests is right on.</comment>


Etherpad, resurrected:  typewith.me - <AUTHOR> http://typewith.me

<comment><USER2> There's also <http://ietherpad.com> and <http://piratepad.net>

<comment><USER3> Etherpad is also integrated into <http://talkerapp.com/>

</comment></comment><comment><USER4> As someone who has been using Gobby for real-time collaborative coding recently, Etherpad is appealing because it is amazingly temping to link Etherpad with SVN. Imagine being able to have each author's changes automatically checked in to a repository on save.

One of the most limiting factors of Gobby is that access control is virtually non-existent, and it has no integration with any sort of version control. Hooks and scripts are required to hack up source control systems.

It seems like a startup would do quite well to create a service combining Etherpad and SVN (or another flavor of version control).

All that said, Gobby is a pretty fun solution for private collaborative editing. Watching colleagues fix your mistakes in real time (and doing it for them) never gets old.

[1] <http://gobby.0x539.de/trac/>

</comment><comment><USER5> Does anybody know if there is an Etherpad-like service that allows to draw charts/tables/`free style' stuff? I was thinking that that might be useful during brainstorming sessions to help crystallize ideas...

<comment><USER6> woobius eye?

[http://www.woobius.com/scribbles/posts/0021-woobius-eye- beta...](http://www.woobius.com/scribbles/posts/0021-woobius-eye-beta.html)

</comment></comment><comment><USER7> Could you save the list of users + colors? So, if John disconnects, I can check with the document and see that green were revisions John made. I know if John typed in the chat I could associate his color/name. Maybe highlighting colored text or mouseovering colored text would show the revisioner's name!

Otherwise, smooth and no complaints. Maybe custom urls? Then again I'm just lazy and could tinyurl for customizing.

Possibly an IRC like interface (with privs for writing) or read-only urls and read-write urls!

<comment><USER8> This is just Etherpad (see <http://etherpad.com>). They're just hosting it since Etherpad's shutting down soon.

Also, there are custom urls. Just go to <http://typewith.me/foo> and if that's not a pad it'll let you create one.

<comment><USER7> Ah wasn't paying attention to the title. Its my first time seeing something like this.

<comment><USER8> It's really nice. You don't really get the experience until you and someone else work on a pad simultaneously. (You can simulate it by opening the same pad on 2 computers/browsers, setting yourself up so you can see both at once, and typing in one to see just how fast it updates.)

</comment></comment></comment></comment><comment><USER9> Is there a straight forward way to self host your own Etherpad?

<comment><USER10> This was posted a while ago <http://news.ycombinator.com/item?id=1013563> I don't know how helpful it is though.

</comment></comment><comment><USER11> See etherpad.org too which seems to be maintaining the project.</comment>


Mark Suster to Twitter on behalf of users - <AUTHOR> http://www.bothsidesofthetable.com/2011/02/18/twitter-i-love-you-but/

<comment><USER2> I hate when people write letters like this, trying to be more reader-friendly by dumbing down language with garbage like "Twitter, I'm a friend. I love you, man."

Write your views, don't pretend you're a nine year old writing to your dad.

<comment><USER3> It was called irony. It was meant with humor. My views were already publicly expressed & known on Quora.

See: [http://www.quora.com/Why-did-Twitter-suspend- UberTwitter/ans...](http://www.quora.com/Why-did-Twitter-suspend- UberTwitter/answer/Mark-Suster)

<comment><USER2> Yeah, I get that you're not actually a moron who thinks writing in that style will make Twitter more likely to listen to, and perhaps my original complaint was worded slightly too harsh.

What I meant by "dumbed down" wasn't that you were trying to make it easier for people to understand, just that you were dumbing it down for that comic effect.

More and more people are writing blog posts in that style, and I just happen to find it annoying.

edit: Thanks for linking to the Quora version of your thoughts, now those I 100% agree with (as a UberTwitter user).

</comment></comment></comment><comment><USER4> I believe this is the quote from Twitter - "We've had conversations with UberMedia, the developer of these applications, about policy violations since April 2010, when they first launched under the name TweetUp – a term commonly used by Twitter users and a trademark violation. We continue to be in contact with UberMedia and hope that they will bring the suspended applications into compliance with our policies soon."

I agree with you entirely Mark that they can handle something like this better, but I think that a company like Twitter that is still figuring out the best way to monetize has a right to enforce their trademarks to reel in other people trying to make money off of their product.

Then again, at a $4-10bn valuation, they probably can afford to not cut off things that make their users happy.

<comment><USER3> You're totally right that Twitter "has a right to enforce their trademarks to reel in other people trying to make money off of their product."

That isn't in question.

My argument: \- today they affected millions of users \- they should have first issued a public statement to major media outlets that service would be cut unless UberMedia fixed problems in 72 hours. Users would then have a chance to migrate if they wanted \- I also think it's bad policy to cut off 3rd-party developers. Even mildly competitive ones. My view: let the ecosystem innovate on their dime. Then you either buy them or tax them.

My reaction today was as a user of UberTwitter who felt caught in the crossfire. And as such it felt like Goliath attacking David.

<comment><USER4> That all makes sense to me, and like I said, it seems really an issue of how they're handling it. If they were to tax them, what would it look like? Facebook and Apple both seem to be implementing ways to take a cut of the money going through 3rd-party apps... I don't know enough about Twitter myself. Is it possible for them?

</comment></comment></comment><comment><USER5> _I use you every day. I use you more than email now. I hate email, by the way._

Amazing how someone can use short emaciated 140-letter shoutings as a replacement for something as deep as email.

<comment><USER3> I didn't say I don't use email. I just use it much less than previously. It's funny but the opposite is also true. The fact that people can write really long, verbose emails can be as much of a productivity drain as anything else inside of companies.

It's why I'm a big proponent of these guys <http://three.sentenc.es/>

<comment><USER6> In that vein, then.

Why was your post more than 3 sentences?

Perhaps, the message is more important than the style?

<comment><USER7> Replace a period of your choosing with a semicolon and it's three sentences - but it will cost you the irony.

</comment></comment></comment></comment><comment><USER8> _Facebook? That's for my mom._

Oh, how times have changed. I share this sentiment.

</comment><comment> brown9-2 _I love that you are social & democratic._

What does this mean?

<comment><USER9> social: I'm assuming you got that part.

democratic: level playing field. ie, "one vote per person" - you have as much influence as you have, nobody's granted a super-tweeter account that can @ everyone at once simply by being, say, Bill Gates. It's a stretch, but I've seen it used this way before for Internet things.

</comment></comment><comment><USER10> And Dick Costolo responds:

 _@msuster your post is a misinformed and contrary to what I'm certain you would counsel as an investor._

[1] <https://twitter.com/dickc/status/38853714320166912>

<comment><USER3> I'm not sure which bit was misinformed. If I learn that some bit was I will correct it.

My premise holds: \- issue a public warning to UberMedia & its users and allow 72 hours \- if not resolved take action then \- don't issue an advertisement for your mobile product the exact same day you block a large mobile client. It is in poor taste and this is evidenced by the majority of the Tweetstream that trashed Twitter on this issue

I'm all for fair & hard competition. But if I were an investor this is what I would have counseled. And if Twitter or its investors know something I don't (which I concede is possible) I would suggest that they have a marketing offensive to make more information available.

<comment><USER10> So, what do you think is going on at Twitter?

It's an experienced set of investors and entrepreneurs, but they seem to be making rookie mistakes, over and over again (first with scaling the tech+business and now with the way the API/ecosystem, which was instrumental to their success, is being handled). Have you seen this before? What the hell is up at Twitter HQ?

</comment></comment></comment><comment><USER11> maybe UberMedia really has plans to jumpstart a Twitter-like service off of the Twitter clients soon and somehow Twitter got wind of this and moved to cripple the trojan horses it bought / is buying.

<comment><USER3> I accept that this is possible.

If I were Twitter in this case then at worst I would issue a public statement of why they don't support UberTwitter's moves and I would encourage users to migrate over 72 hours if they saw fit.

Then at least the user community would be more on Twitter's side. What they did today is block us from using their product on our mobile devices. I'm not sure that's sound policy.

</comment></comment><comment><USER12> Seems you HN peeps are just being unnecessarily hostile to Mark. He has written a part 2 no "Never hire Job hoppers" move on.

There is nothing wrong with how the mail was written. I was expecting a discussion about Twitters approach with UberTwitter (which I think is frightening). Not nitpicking at the way/method Mark had decided to express his views.</comment>