I don't understand what anyone is saying anymore - <AUTHOR> http://blogs.hbr.org/pallotta/2011/12/i-dont-understand-what-anyone.html#.TwCrZ2uMbSU.facebook

<comment><USER2> This reminds me of an anecdote from "Surely You're Joking, Mr. Feynman!". Feynman had been invited to a cross discipline conference on the ethics of equality. While there, he was given a paper to read by a sociologist. Here's Feynman's description of reading that paper (the list he refers to was a list of books they had sent around before the conference):

\</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>-----

There was a sociologist who had written a paper for us all to read—something he had written ahead of time. I started to read the damned thing and my eyes were coming out—I couldn't make head nor tail of it. I figured it was because I hadn't read any of the books on that list. I had this uneasy feeling of, "I'm not adequate," until finally I said to myself, "I'm going to stop, and read one sentence slowly so I can figure out what the hell it means."

So I stopped at random and read the next sentence very carefully. I can't remember it precisely, but it was very close to this: "The individual member of the social community often receives his information via visual, symbolic channels." I went back and forth over it and translated. You know what it means? "People read."

Then I went over the next sentence. And I realized that I could translate that one, also. Then it became a kind of empty business. "Sometimes people read. Sometimes people listen to the radio." And so on. But written in such a fancy way that I couldn't understand it at first. And when I finally deciphered it, there was nothing to it.

</comment><comment><USER3> The English parlance of American business is utter gobbledygook. The vocabulary within non-profits is even worse.

The more I read from Dan Palotta the more endeared I become to him. His book, "Uncharitable" is about the ridiculous mores, both intrinsic and extrinsic, that impair the effectiveness of charities. I was blessed to find him a kindred spirit when I began my own non-profit in 2010. By that time I had developed a tolerance for non-sensical jargon and group-think in business. The non-profit sector, however, is immersed in such a say-nothing, mean-nothing, decide-nothing, do-nothing culture that it's amazing that anything gets accomplished.

In fact, were there not a steady influx of starry eyed bleeding hearted young people, it would be a great environment for leaders to commit heinous crimes and find no internal condemnation. Kind of like Jerry Sandusky and The Second Mile.

</comment><comment><USER4> When I was younger I thought long words and jargon were a sign of intelligence.

George Orwell's essay, "Politics and the English language", changed overnight how I think when I'm writing: <http://www.mtholyoke.edu/acad/intrel/orwell46.htm>

Learning to filter jargon and communicate it in plain English is probably the most valuable skill I've acquired in my career.

</comment><comment><USER5> Bringing it closer to home, and admirably demonstrating my pedantry, every other thread on HN contains, to me, nonsensical extensions to words, such as: "build out" for build, "abstract away" for abstract, and so on, there are hundreds of these "why use one good word when two will mess it up real good".</comment>


Show HN: I Started a No-Code Project to Curate the Web - <AUTHOR> http://readlist.in/ <comment><AUTHOR> Hi,

OP here. I have had this idea of building an Internet Library for quite some time now. So, thanks to a perfectly timed random tweet, I started working on it in Coda. It's still a WIP and we are adding topics on it every week.

If you want to contribute to the project, my email is on the link.

Do let me know what you think about it!</comment>


Helm plugin for editing release's values - <AUTHOR> https://github.com/mstrzele/helm-edit <comment><USER2> For me, the value of helm is that the templates are something I can commit and track through source control.

This essentially bypasses that.

I can see how it might be handy in a pinch, or during development, but I'd rather invest in tooling to ensure I can foster a commit to release rather than have operators one-offing my cluster.

<comment><USER3> That's funny, because Helm is actually already keeping a revision history with Kubernetes primitives (the pods belonging to the old release are scaled down and Helm marks the ReplicaSet as "superseded", from the prior release, that's how rollback works.) To begin with I have no doubt there are great reasons to keep all of that in a formal source control.

I have always wondered about the decision to put all of the charts into a single "Kubernetes/charts" repo. It seems like it would make a lot of sense to have a repo for each chart, but then I guess you lose the capability of being able to pull them all down at once, or quickly update your local copies of everything in one shot. The charts are extremely small by design, maybe the overhead of a single git repo per chart was judged to be too much, and the value of having all the stable charts in one place was considered to be of greater magnitude.

One common pattern I've seen is to put your charts directly into the application's source tree (which is certainly under version control.) This is how Draft sets up a chart. That seems OK to me, it seems very much like the creators of Helm would like for you to be able to get to work and having rollback capabilities without creating any (user-facing) dependency on a Git repository, or necessarily knowing anything about how to use Git or other SCM tools.

(Draft takes this a step further; if you're using it to the fullest extent, then it generates a new release in Helm for every FS_NOTIFY as you save your work.)

<comment><USER4> This is basically what we're doing: With each app, we put the chart in the app's repo itself, and we built a wrapper around Helm that performs deploys for us, using "helm upgrade --install ./k8s" from the file system. Keeping the chart with the app means it's versioned along with the app.

(It's not a general-purpose wrapper; it's the CLI we use to manage anything related to our clusters and apps, basically: DNS, secrets, ad-hoc shells etc.)

One of the things this wrapper does is ensure that every deploy is annotated with metadata — git revision, git branch, git repo, and also who deployed it. This allows a developer to run a status command to determine what versions of each app are currently deployed, and also show a log of new commits that haven't been deployed yet. It also means you can easily see that an app was deployed from a specific branch, for example.

I think Helm's design is a bit flawed here. It's catering to two different purposes: One is deploying packaged versions of third-party software (e.g. PostgreSQL); the other is deploying your own software. There's an inherent conflict there in that the release process is different. Why can't Helm pull directly from git and use its revisions as version numbers? It doesn't make any sense for us to "publish" an app to a "repository" when we _already_ have git.

Right now, we're basically using Helm as a glorified templating system, and it's a somewhat buggy one, so we may decide to ditch Helm and use a pure templating solution instead. I haven't looked at Draft, but seeing as it's based on Helm, I'm not sure that it can improve on the basic design?

<comment><USER3> Draft is a very simple tool and it's not just based on Helm, it is using Helm under the hood.

You will probably not find much use for Draft given the more advanced state of your tooling. It's been described as "a gateway drug to k8s" because, for the uninitiated, it simplifies the process of "OK, I want to put my app on K8s, what now?" – it sets you up with a reasonable default chart, and a dummy Dockerfile based on what kind of app the Draft logic decides your app is. (Eg. it's going to recommend ruby:onbuild if you have a Ruby app.)

That might work out of the box, more likely you need to make some changes in the Dockerfile, but that could very well be all.

It's really more like an advertisement for Deis. It's the "zeroconf" version of Deis. If you've never heard of Deis, I'll be happy to tell you more about that; Deis has a builder service/pod and acts as a git repository, so you set it up as a git remote with the deis commandline tool and 'git push deis' to prompt a release upgrade. It is more likely what you are probably expecting as a piece of your CI/CD solution.

For people that aren't already fluent users of git, k8s, helm, charts... Draft is easier to get started with, and it gives a chance to expose you to all of those things, without making any of it prerequisite knowledge to spin up your app on k8s at once.

For literally anyone else, you're going to get a much better experience from Deis, which is not only out of Beta but long past the 2.0 milestone (when it moved to K8s from the prior CoreOS/Fleet-based stack.) Deis is installed via helm, but after that you do not need to use the Helm client. Your apps can use Procfile-style or Dockerfile for deployments.

The builder is very modern and developed, and as it evolves, it picks up a lot of efficiencies that you might have seen before on Heroku if you're familiar with that platform, making it very convenient to work with. (That also means it brings the baggage of 12-Factor, if you consider that as baggage...)

<comment><USER3> To be clear, I think that Deis is using helm under the hood too, but you never have to interact with helm or your chart.

Draft is written so you could probably avoid ever running the helm client, but it is a much thinner layer of sugar on top. You are very near the helm charts, but in Deis you might never even realize that there are helm releases associated with your app. The Deis client interface is pretty fully featured, almost drop-in as a comparison to heroku client. Using Draft, you are encouraged to edit your charts, but with Deis it is well-hidden and there is probably never any need to do that.

Service brokers (for supporting dynamic allocation of things like shared instances of postgres and redis, like you get with heroku) are a thing, but they are newer and I have not seen them being used in practice yet.

</comment></comment></comment></comment></comment><comment><USER5> came expecting something emacs related, saw something weird instead

<comment><USER6> Yes. Helm for a Kubernetes package manager makes things really confusing when you spend much of your day in Emacs.

</comment></comment><comment><USER3> Very nice contribution! I did not even know there was a plugin architecture for Helm tbh

<comment><USER7> It has only really become viable a few releases ago. One of my colleagues here at SAP did a diff plugin for visualizing what's going to happen in the next upgrade: [https://github.com/databus23/helm- diff](https://github.com/databus23/helm-diff)</comment></comment>


Ask HN: What's the best way to get started with Vi(m) - <AUTHOR> The title says it all. It's one of the things I've been meaning to do, but never quite did. Any suggestions? I'm a TextMate power user currently. <comment><USER2> I think with something like Vim it's best to get a grasp on the very basics (saving/opening documents, moving into and out of insert mode, navigating with hjkl) and then add one of two things at a time as you get comfortable with those. If you try to do everything at once you just end up getting overwhelmed.

I didn't really start to like Vim until I started playing around with my .vimrc file. There were too many minor irritants and things I wanted changed. An Ask HN on the subject came in very handy: <http://news.ycombinator.com/item?id=856051>

Mine (along with a few other minor customizations) is at <http://github.com/samdk/vimconf/blob/master/dotvimrc> if you'd like to take a look.

Some other good resources: <http://dotfiles.org/.vimrc> <http://www.vi- improved.org/vimrc.php>

</comment><comment><USER3> In addition to all the excellent suggestions here, I will also suggest reading the free book "A Byte of Vim" (<http://www.swaroopch.com/notes/Vim_en:Table_of_Contents>).

This is how the book introduces itself:

 _"A Byte of Vim" is a book which aims to help you to learn how to use the Vim editor (version 7), even if all you know is how to use the computer keyboard.

The first part of this book is meant for new users who want to understand what Vim is and learn how to use it.

The second part of this book is for people who already know how to use Vim and want to learn about features that make Vim so powerful, such as windows and tabs, personal information management, making it a programmer's editor, how to extend Vim with your own plugins, and more._

<comment><USER4> Byte of Vim is one of the Best technical writings for newbies and pros alike. I had a wonderful time reading it and the way I use vim after that has changed a lots!

</comment></comment><comment><USER5> Type `vimtutor` on your command line and hit enter.

<comment><USER6> Then spend a week doing as much as possible from within vim. You will start to get the basic hang of it. Then as you want to do other things, _assume vim can do them for you_ and try and figure out how. #vim on freenode is good for this, although much of the help comes in the form of :he X. This means, read the documentation, the topic keyword is x. You literally type that into the editor command line :) The vim documentation is _very_ good -- in fact just reading a few things extra every time you use vim is a good idea.

A final note: I have been using vim for my main editor for years now, and still learn new stuff all the time. Playing with new scripts, finding new bits of workflow, and getting really fast at it all take time. This is natural. I try and pick a couple new things a week an use them. Sometimes I will then forget about them for weeks, months or years because I think they are useless, but "rediscover" them only to use them all the time. Its actually quite fun.

</comment></comment><comment><USER7> Check out vimcasts.org. The guy who makes them even occasionally refers to how to do things in vim that he likes in TextMate.

</comment><comment><USER8> To become a vim power user, you will really need to understand how and why vim works the way it does and how you should think about editing while using vim. Once you have gone through some of the great tutorials on basic vim usage take a look at these:

Stay out of insert mode: [http://cloudhead.io/2010/04/24/staying-the-hell-out- of-inser...](http://cloudhead.io/2010/04/24/staying-the-hell-out-of-insert- mode/)

Good explanation of how vim commands are actually formulated (Stack Overflow answer): [http://stackoverflow.com/questions/1218390/what-is-your- most...](http://stackoverflow.com/questions/1218390/what-is-your-most- productive-shortcut-with-vim/1220118#1220118)

</comment><comment><USER9> This is the cheat sheet that I used to get started: <http://home.uchicago.edu/~gan/file/vim.pdf>

Learn the basics first:

1\. Basic movement (h l k j)

2\. Insertion mode (i), deletion (x), selections/visual Mode (v), copying/yank (y), pasting/put (p), and exit insertion mode (esc)

Once you learn those the rest is pretty easy to pick up.

I should warn you though, once you get used to the key commands it's hard to go back to another editor.

<comment><USER10> I've always thought that the f and t motions along with I and A to switch to insert mode, and . (repeat) should be included in the basic motions and text objects should be the next step.

They're relatively simple to remember and you can string them together to accomplish a lot more than the character-wise to word-wise motion progression I've seen in most vim intros.

</comment></comment><comment><USER11> Assuming you're on Mac you'll need to set up a decent .vimrc to enable syntax highlighting, indentation and some other bits. Vim is a different beast depending on how it's set up.

The built in tutorial is a decent place to start. I think that's the only thing I did apart from editing code. It takes a while to get over the hump but it's worth it.

I also suggest remapping your CAPS LOCK key to ESC. PCKeyboard Hack is free and simple to set up for that purpose. I've never liked the role of ESC in vi. It's too far away from the home keys.

If you learn to love the efficiency, I'd suggest looking at Komodo Edit or another editor that has vim key mappings. I prefer Komodo because it's vim plus code completion (I'm not aware of a vim solution for that) and a bunch of other bits that will save time.

<comment><USER12> Not sure what features komodo has for completion, but between the built in omni-completion in vim 7, it's pretty powerful which will complete on symbols in all loaded files and in things like header files. That's activated by Control-X Control-O. Control-P or Control-N in insert mode.

There are various plugins available to make it smarter for C++ and other languages (so it only searches in appropriate namespaces and the like).

</comment></comment><comment><USER13> IMO the only thing you can do is to start writing real code and force yourself to use it. Honestly, the vim help stuff was almost useless to me at first because I would forget it as soon as I learned it, since I didn't understand the vi mindset.

You will notice a big drop in productivity at first, but hopefully you should notice yourself getting faster in a week or so.

</comment><comment><USER14> I'm surprised no one has mentioned Derek Wyatt's excellent series of videos.

See his blog page with links to his videos: [http://www.derekwyatt.org/vim/vim-tutorial-videos/vim- novice...](http://www.derekwyatt.org/vim/vim-tutorial-videos/vim-novice- tutorial-videos/)

Or go to his Vimeo page where they all sit: <http://vimeo.com/user1690209>

</comment><comment><USER15> This was my best answer to the question, written 4 years ago, hope it helps:

[http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial...](http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html)

I also prepare this write up answering "Why vi?":

<http://www.viemu.com/a-why-vi-vim.html>

They've been on the HN front page a few times, too.

</comment><comment><USER16> I found that being a touch-typist helped, since the concept of vim is to have your hands on the home row using letter keys rather than arrows or mice. (I happened to learn Dvorak but I'm sure Qwerty would have a similar impact on getting the most out of vim). Plus it's a transferable and generally recommended skill for programmers.

</comment><comment><USER17> I switch between vim and textmate. My favorite textmate/vim feature is column select - in vim, its ctrl+v (<http://sethmason.com/2007/09/27/vim-tip-select- column.html>) in textmate it's option+click.

Also, fwiw, Macvim may help retain vim usage.

</comment><comment><USER18> Use the Vimperator firefox plugin, so you can exercise your Vim muscles while you browse the internet.

</comment><comment><USER19> I just started using it do code everything I do. Found other coders I know through IRC that know how to use it, and we traded tips. Over time I found my self becoming more and more efficient with it. vimtutor, as mentioned in other comments also works really well.

</comment><comment><USER20> As a long time vim user, I have to ask: what's the appeal?I use it because I already knew vi, and I knew vi because it was the one editor I could be confident of finding on any UNIX box.

I'm curious: what's the motivation for learning it from scratch?

<comment><USER21> As opposed to doing what? Using a GUI editor? Using emacs?

vim is just as likely to be on any linux/os x box today as vi was to be on any UNIX box when you were learning vi, and it's still very powerful today.

</comment></comment><comment><USER22> The way I learn to use my tools is I start customizing them, thereby understanding how they work, how others use them and how I can utilize them. Look for .vimrc's of other hackers. I learn't many things just from the dotfiles.

</comment><comment><USER23> I learned Vim inside and out because it was the only Linux console editor at the time that did syntax highlighting, and it kind of stuck.

Also, working in 80x50 with only the editor open for a couple of months kind of gets you into the mode :)

</comment><comment><USER24> Attach this to a visible surface near your desk: [http://r00tsecurity.org/db/cheat-sheets/SOFTWARE/Vi/vi- vim-c...](http://r00tsecurity.org/db/cheat-sheets/SOFTWARE/Vi/vi-vim-cheat- sheet.gif)

</comment><comment><USER25> <http://vim.runpaint.org/> and seconding Vim wiki (<http://vim.wikia.com/>)

</comment><comment><USER26> I started by learning ed from "The Unix Programming Environment", and then vi. By tackling vim directly, you may get swamped in the details.

</comment><comment><USER27> Start with hjkl and see where it takes you. :)

</comment><comment><USER28> You can borrow my vim cheat sheet tomorrow.

</comment><comment><USER29> Type this into your terminal: emacs

<comment><USER30> On a more serious note, do please feel free to give any and all helpful advice on how to get started with emacs. I'm okay with vim, I've been using it more and less for about 2 years, but emacs has always seemed more esoteric and I never did quite get the hang of it.

<comment><USER31> Get a friend that uses it well and will be nearby (physically) for a few months. I didn't learn until I spent a summer with Slava (coffeemug) at my side willing to answer questions.

Find ways to do as much as you can of what you normally do with your computer in emacs. If you use IRC a lot, use erc. If you use email a lot, try out gnus or rmail. Don't try to replace your web browser with w3m, that's just stupid and you'll hate it.

Also, find a mode you really like. This will keep you using emacs whether you like it or not, until you really do like it. For me, it was gdb-mode. For most, it's one of the inferior repl modes (slime for lisp or clojure or whatever, ruby, python).

I've heard good things about <http://github.com/technomancy/emacs-starter- kit>, but I've never tried it.

<comment><USER30> Thanks for the very helpful answer, it's just what I wanted. :)

I do use IRC a lot, and I'll start using erc per your suggestion. One question, is there any way to get spell-checking on it? I'm hoping the solution is as straight-forward as x-chat's (this screenshot demonstrates it fairly well: <http://i42.tinypic.com/rw2ljr.jpg> though, I don't require fancy multi-language spell-checking, just an English spell-checker will do for me)

I wish I had a friend who used emacs! On that note -- anyone in this HN crowd who uses emacs from Milwaukee? I'm willing to gift copious amounts of chocolate (or whatever else you prefer) in exchange for even short periods of guidance. :)

<comment><USER32> As for spelling I believe enabling flyspell-mode will do the job, i.e. M-x flyspell-mode</comment></comment></comment></comment></comment>


Mozilla Labs Game Gallery - <AUTHOR> https://gaming.mozillalabs.com/games/

<comment><USER2> Requiring registration (or Facebook / Google / Twitter account) before seeing anything is a major fail for many entries.

If some sort of account is indeed necessary (rarely the case), please give us single click demo account, or at least show us screenshots / videos from the actual gameplay.

<comment><USER3> Mine has a single click demo -- <http://www.davesgalaxy.com>

Oh, and it requires some form of sign in since it has a persistent world.

</comment></comment><comment><USER4> Freeciv.net, wow, never thought these people were so far into a web port.

</comment><comment><USER5> Tried playing a half dozen games. If this isn't a lesson in teaching users how to play your game I don't know what is. Before releasing a game you need to silently watch someone else try to play your game for the first time and take notes. All those cool features you added are pointless if they can't even figure out how to do the first level. Tank world is a good example. Wow does it look cool, but the instructions show up on the screen for just a few seconds and then go away leaving you to get frustrated and quit.

<comment><USER6> I agree - I entered a game in the contest and was very worried that it wouldn't hold up to the rest of the entries because mine is very simple in comparison. I tried playing ~12 of them and couldn't believe how complicated many of them were!

</comment></comment><comment><USER7> Here is my entry (<http://www.crajsh.com>) and the related write-up (<http://bit.ly/godroY>).

</comment><comment><USER8> An impressive list... though the first one I actually _enjoyed_ has been this impressively well designed one quite a ways down: <http://sketch- out.appspot.com/>

</comment><comment><USER9> Renders wrong in Chrome for me. Seriously guys? Good thing it's not an HTML5 gallery showcasing the benefits of open standards.

<comment><USER10> I ran into the same problem in Chrome. It seems like a font issue relating to the OrbitronMed font. I wonder if lots of computers have a messed up version of that font, or if something else is going on.

<comment><USER9> The font problem seems to be localized to Chrome on Windows machines. Chrome on my Macbook renders the font correctly. The page still renders unusually slowly on the Macbook though.

Some of these games (e.g. Gates of Olympus) explicitly mention Firefox 4, so the stable build of Chrome might be "too old."

</comment></comment></comment><comment><USER11> Why did they choose an 8 bit look? While it's good for nostalgia, I'm not sure that's smart if you're championing the future of gaming.

PS: I actually think the 8bit looks is kinda ugly.

<comment><USER6> I am of the same opinion. It sure gets the point across that the page is about games. But for how long you can tell somebody spent working on those graphics, they just don't do it for me...

I DO dig the trophy with the joystick though.. it's mainly just the little spaceships and guns that look out of place.</comment></comment>


Don't download software from SourceForge if you can help it - <AUTHOR> http://www.howtogeek.com/218764/warning-don%E2%80%99t-download-software-from-sourceforge-if-you-can-help-it/ <comment><USER2> _In our testing, we've found that SourceForge's downloader behaves more nicely in a virtual machine. If you want to see what it actually does, be sure to test it in a real Windows system on a physical machine, not a virtual machine._

 _This is the same sort of behavior that malicious applications are increasingly using to avoid detection and analysis._

Very interesting! I'd be interested to hear the corporate-speak rationale for this. Kind of interested, anyway.

<comment><USER3> this is unbelievably malicious! In our earlier discussion there was some discussion about the installer asking for permission to install crapware. in fact if you're going to do malware stuff like this, why even ask?

On a technical level - how come you can detect VM's? with something like BOCHS and if you lie about wall time inside your OS, can't it emulate a PC perfectly? How does crapware know whether it's in a VM or not?

<comment><USER4> >in fact if you're going to do malware stuff like this, why even ask?

Just a guess, but probably plausible deniability reasons for when they're inevitably brought to court.

<comment><USER3> there is no plausable deniability if it does something different in a VM. that takes active coding to set up, there is no reason anyone would ever have any code that has this effect.

<comment><USER5> There are PLENTY of reasons to code your application to act differently based on environment... while many of them may be bad, not all of them are.

Some abuse this to make speed tools run faster, ala Graphic Card tests that run faster when it detects NVidia/AMD... some abuse it to skirt protections in VMs...

Do we need to ban torrents because a lot of torrents are illicit materials? Ban bitcoins, because some people use it for drugs? Ban tor?

</comment></comment></comment></comment></comment><comment><USER6> _" In truth, the man was an oathbreaker, a deserter from the Night's Watch. No man is more dangerous. The deserter knows his life is forfeit if he is taken, so he will not flinch from any crime, no matter how vile."_

~ Ned Stark, A Game of Thrones.

I think that pathetic blog post where they tried to justify their actions made one thing clear - SourceForge knows how dead they are. No amount of internet outrage is going to help, they don't think they've got anything to lose at this point.

The best thing to do at this point would be to speed up their demise. If you're a developer that still hosts with them, delete your project and move to Github or Bitbucket.

Also, start reporting these malicious pages to Google so they don't show up in search results. [https://www.google.com/safebrowsing/report_badware/](https://www.google.com/safebrowsing/report_badware/)

<comment><USER7> Also contact the people who provide mirroring services for them.

Take away their free bandwidth and they'll collapse even quicker.

<comment><USER8> perhaps someone should mirror sourceforge and rebuild binaries and take sourceforge out of the equation?

</comment></comment></comment><comment><USER9> I wonder how many people outraged here know YC funded a company that bundles malware with installers and continues to justify it publically on HN.

<comment><USER10> InstallMonetizer?

<comment><USER9> Yes

</comment></comment></comment><comment><USER11> This makes me so mad and sad at the same time. For years, it would bring me immense pleasure to just browse projects on sourceforge to see what the world was up to. Now this is just another case of corporations ruining a good thing. I'm glad there are links to Filezilla and Gimp - two products I use frequently.

<comment><USER12> I kind of view it as a consequence of the market falling out from under their feet - it's cheap enough to host your own files now, and with package managers (even on Windows!) the power users that used to be the target audience of Source Forge have been vanishing.

<comment><USER13> IMHO it's more a function of their inability to compete with Github and Bitbucket. They were slow to react to the rise of distributed VCS, failed to exploit their social network features, and probably had already accumulated too much technical debt to effectively change course by the time overall trends became clear. Once developers shifted, power users had to follow suit.

</comment></comment></comment><comment><USER14> > Click through to a project's official website and you'll find actual > download links. For example, Audacity's homepage redirects you to FOSSHUB to > download Audacity, not SourceForge. But searching for "Audacity" on Google > still brings up the SourceForge page as the top result.

This is an error on Google's part. For everyone's sake, they need to apply some serious ranking penalties to malware distributing sites like SourceForge, as well as click-through warnings that you are going to a site other than the original authors'.

</comment><comment><USER13> I've tweeted someone close to the Pywin32 project (hosted on SF) asking to move it, but didn't get a reply. For long-established projects, it's not an easy migration. Please keep prodding any critical project you know of.

<comment><USER15> Some people just don't care or they're profiting from it like Tim Kosse of Filezilla - [https://forum.filezilla- project.org/viewtopic.php?t=35221](https://forum.filezilla- project.org/viewtopic.php?t=35221) and [https://forum.filezilla- project.org/viewtopic.php?t=30240](https://forum.filezilla- project.org/viewtopic.php?t=30240)

</comment></comment><comment><USER16> At least for Mac, there is a TINY "direct download" link next to the SF Installer button. Using this link will provide the non-junkware, original install files.

</comment><comment><USER17> If you download from Sourceforge try unzipping the installer which will usually defeat the spyware installer that they have been bundling with it.

</comment><comment><USER18> So sad. Especially for Windows tons of valuable stuff is there, especially smaller utilities like DDMM and similar :(

</comment><comment><USER19> Just today I had to get Boost for the first time since the whole gimp-win debacle - their tars and zips are hosted on SourceForge. Guess I'll be building from Git until they fix it :/

<comment><USER20> It's only .exe installers that are affected, and probably only ones that they can easily wrap; I doubt they're actually modifying any source code.

</comment></comment><comment><USER21> Can someone provide a link to filezilla thats not through sourceforge? I just posted an Ask HN about this.

<comment><USER22> Two trusted packages available at [https://chocolatey.org/packages?q=filezilla](https://chocolatey.org/packages?q=filezilla)

Also available from [https://ninite.com/](https://ninite.com/)

<comment><USER23> Why are the packages from chocolatey trusted?

I am not familiar with chocolatey but the powershell script on [https://chocolatey.org/packages/filezilla](https://chocolatey.org/packages/filezilla) (click show files) contains the following

      $url = "http://sourceforge.net/projects/filezilla/files/FileZilla_Client/${version}/FileZilla_${version}_win32-setup.exe/download"
      $url64bit = "http://sourceforge.net/projects/filezilla/files/FileZilla_Client/${version}/FileZilla_${version}_win64-setup.exe/download"

So its still fetching executables from sourceforge using plain http with no checksums or signatures in sight. On the assumption that executable does include the sourceforge malware, The silent install argument ("/S") passed to the executable by chocolatey seems to be the only reason its not installed along with filezilla.

Is there any reason to believe ninite does anything different?

<comment><USER24> We should play this up more on our site, but Ninite (I'm a co-founder and we're YC W08) does this stuff right.

All our .exes are signed, app config information comes over https, and downloads are all checked for hashes that match our testing before being automated. We're not just naively adding silent switches either, we'll automate clicks to get through less well-behaved installers when needed.

Why can you trust Ninite? Money. Thousands of businesses pay us for Ninite Pro and the free version is our marketing department. We're extremely careful to make sure our updates come out on time and junk free.

</comment></comment></comment></comment><comment><USER25> I never use the "downloader", either from Akamai, Sourceforge, etc. I downloaded a few programs recently on sourceforge and never had to use their software.

</comment><comment><USER26> Just realized the double meaning of "forge" in SourceForge:

1) to form or make by concentrated effort

2) to imitate fraudulently; fabricate a forgery

They're certainly living up to definition #2..

</comment><comment><USER27> tldr; don't download from SourceForge it uses its own installer bundled with garbage. Do download using ninite.com ([https://ninite.com/](https://ninite.com/)), the "only trusted" downloader according to these guys.

</comment><comment><USER28> This is why we need some kind of trade organization -- the developers who wrote this stuff need to be kicked out, or disciplined in some way...

<comment><USER29> There would have to be a lot of careful discussion about such an organization. I would hate to see it end up being little more than a vector for rent- seeking, and shutting people out of our industry for a host of arbitrary reasons (immigrants, people with the "wrong" education, etc).

<comment><USER28> Yeah, I'm just saying that fields like engineering and law have recourse for bad industry behavior. I wish software had the same or a similar path.

</comment></comment></comment><comment><USER30> Is BOTH Sourceforge and Github -other-verted or per-verted? or sub-verted? The attack on the clean code-base continues.

Advice. Unix Linux - separate user. low privilege. configure, make, but make install with ROOT PRIVILEGE. check files.

all source code should have search engine keywords for vulnerabilies, updates, etc. for even BSD is somewhat broken, IMHO.

make it easier for the NOT C expert and ASM expert to install reasonably clean software, PLEASE.

Thank U. Thank U. Thank U. ... 1000 times

</comment><comment><USER30> ARE BOTH Sourceforge and Github other-verted or perverted-like? What are the alternatives?

Thank you. Thank you. the attack on code repo and the infiltration of the clean database continues, perhaps.</comment>


Why are there so many knobs in GarageBand? - <AUTHOR> https://theoutline.com/post/2157/why-are-there-so-many-knobs-in-garage-band <comment><USER2> _I've been using Logic for around eight years, and in that time, its built-in ES2 synthesizer has not changed. I have also not come closer to understanding what any of its controls do, or why they are laid out like this._

It's kinda hard to take design suggestions from someone who refuses to learn the basic tools and techniques of a specific domain. Yes, there is some insight to be leveraged from articulating the confusion and perplexity of the user encountering am unfriendly interface, but the skill inheres in being able to manipulate and combine the basic characteristics of acoustic waveforms in predictable ways.

Other interfaces exist, but the reason that most plugins have so many knobs is that musicians want a high degree of parametric access so as to produce distinctive sounds. Sure, you can make very simple plugins that sound great and apply a complex process with the adjustment of just one or two parameters...but those tools are easy to recognize to the point of being either basic or faddish.</comment>


Making industrial chemicals "green" requires a lot of renewable electricity - <AUTHOR> https://arstechnica.com/science/2019/05/does-it-help-to-make-industrial-chemicals-with-captured-co2-sometimes/ <comment><USER2> This is fascinating to me, because if the primary use of fossil energy at these plants is in process heating... why use electricity here at all? Seems to me like there are a variety of renewable options that could generate process heat at scale without involving the electrical grid at all.

Small-scale nuclear comes to mind first - after all, for every MW of electric a typical plant generates 2-3x that in thermal power, and removing the turbines+generators seems like a good way to lower complexity of an installation.

Solar-thermal might also be a viable option to explore in low latitudes with abundant sunshine colocated with existing oil reserves and processing plants. Even wind-powered heatpumps exist, though I doubt there is sufficient energy density for the levels of process heat needed for many refinery operations.</comment>


Instapoetry - <AUTHOR> https://www.newstatesman.com/culture/books/2019/03/instapoetry-rupi-kaur-genre-rm-drake-rh-sin-atticus-hollie-mcnish <comment><USER2> Reminds me of the stuff Emo teenagers used to post on MySpace. There's nothing groundbreaking here.</comment>


Explaining science won't fix information illiteracy - <AUTHOR> http://www.slate.com/articles/health_and_science/science/2017/04/explaining_science_won_t_fix_information_illiteracy.html <comment><USER2> I see a comment here that was dead within minutes of posting. While I and others might disagree with its message I feel it would be more useful to confront uncomfortable ideas. To allow that and other discussion to occur I am including the content of that comment here

\</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>----

User: BuuQu9hu

I am not happy to hear this idea. If you convince people that science is true or real not by logic, but by rhetorical tricks, then you are no longer peddling truth; you are blindly proclaiming that science is the only correct epistemology.

<comment><USER3> There are some users on the site which have been banned. Their posts still show up if you have showdead on. This appears to be the case with BuuQu9hu given the comment is [dead] and not [flagged][dead]. If you feel a dead comment (flagged or not) is worth reviving (and you have enough karma), you can click the _vouch_ link to make it visible.

<comment><USER2> I guess I don't have enough karma, as I did not see that link, although I did look for it.

<comment><USER3> That may be. I don't recall the karma required for vouching. Similar to the _flag_ link, it's visible in the individual comment view which is accessed when clicking the comment timestamp.

In the meantime, it looks like the comment you referenced has since been vouched.

</comment></comment></comment></comment><comment><USER4> "He then assessed each person's scientific literacy with questions such as "True or False: Electrons are smaller than atoms."

This is not a scientific literacy. It does not require to understand what science is and how it differs from a belief. Not much difference from asking "What is heavier: air or water?"

Edit: What people really lack is the understanding what science is. Why this method of exploring the world works better than the others. Only after that they can understand why it is worth to pay attention to it.

<comment><USER5> How are you going to know what science is if you don't even understand the most basic of scientific facts? The only way someone goes around not knowing the answer to that question is if they've never even seriously discussed science in an educational manner.

>What people really lack is the understanding what science is. Why this method of exploring the world works better than the others. Only after that they can understand why it is worth to pay attention to it.

Absolutely not. You don't have to know how money works to know it is worth having. You don't have to know how language works to know that you have to speak. And you can certainly understand the value of science without having any knowledge of how to personally do it. You just need some respect for those that do.

And I would bet that most people who care enough about the scientific method already understood that it is valuable before they ever bothered to study it. You can't ask for this to be done the other way around. Nobody is going to develop scientific literacy so that you can later show them that it is valuable.

<comment><USER6> > _How are you going to know what science is if you don 't even understand the > most basic of scientific facts? The only way someone goes around not knowing > the answer to that question is if they've never even seriously discussed > science in an educational manner._

I don't know the answer to that question but I understand the scientific method.

Memorizing facts about natural phenomena has nothing to do with understanding the concept of science.

</comment></comment></comment><comment><USER7> Thanks for sharing this. I specially like this part:

> They may have more luck communicating if, in addition to presenting facts > and figures, they appeal to emotions. This could mean not simply explaining > the science of how something works but spending time on why it matters to > the author and why it ought to matter to the reader.

I'll try to apply it.

As for "changing the frame, instead of repeating what you're trying to refute", I noticed that's something that Trump applied effectively. E.g. when he came up with the wall idea, people started pointing out the many reasons why it was a bad idea. One of those reasons was cost, and he came up with "Mexico's gonna pay for it", which is even more egregious than the wall itself. So people changed the focus to that, and whether the wall itself was immoral, or ineffective, wasn't discussed further. "Who's going to pay for the wall?" was a good frame for Trump, because it takes for granted that the wall's desirable.

<comment><USER8> "Selling past the close."

</comment></comment><comment><USER9> Dan Kahan, who is one of the people mentioned in this article, has a blog ([http://www.culturalcognition.net/blog/](http://www.culturalcognition.net/blog/)), which goes into more depth on this.

</comment><comment><USER10> "They may have more luck communicating if, in addition to presenting facts and figures, they appeal to emotions..."

In other words, you need to relate to your audience. Be a bit vulnerable, and show that you are a real person, not just a brain on a stick.

</comment><comment><USER11> I am not happy to hear this idea.

If you convince people that science is true or real not by logic, but by rhetorical tricks, then you are no longer peddling truth; you are blindly proclaiming that science is the only correct epistemology.

<comment> norea-armozel I hate to be mean but the reason argumentation isn't always about facts is because there's the written (most formal) and the spoken (most informal). Along that spectrum you can be as rigorous as a mathematical proof to being fast and loose with emotive appeals with your arguments. But what's important to take home with this idea is that you construct a logically valid and sound argument that's easy to digest but also emotionally comprehensible. Otherwise, you're going to lose your audience. For example, Vox ran a video on renewable energy from a person who is a conservative (part of the Tea Party movement and supported/advocated-for Donald Trump). She pointed out that to get conservatives on the side of mitigating climate change with adopting renewable energy we have to ditch the climate change rhetoric. We have to go for what drives conservatives: competition, cheaper energy, and energy independence. Oddly enough, this holds true back in my home state with Governor Brownback (who I despise) because he's gone against the Kochs with respect to adopting/advocating wind power. Now the wind farms are growing and making a profit for Westar and other power companies in the state. Basically, when trying to convince to an audience you have to know that audience.</comment></comment>


Storing password securely - hashses, salts and bit stretching put into context - <AUTHOR> http://blog.zoller.lu/2012/06/storing-password-securely-hashses-salts.html <comment><USER2> That table in Colin's paper is so great. Here's a direct link to just the table:

<http://yfrog.com/j248cp>

</comment><comment><USER3> Microsoft Active Directory servers store passwords as plain MD4 hashes and have done so for more than a decade and will likely continue to do so for another decade. <http://16s.us/ms_ad_hashes/>

</comment><comment><USER4> bcrypt was introduced at usenix in 1999, though the source was committed in 1997. Not 2002. The article links to some random utility called bcrypt that is completely unrelated to the bcrypt password hashing function.

<comment><USER3> When I think of bcrypt, I think of OpenBSD Blowfish hashes. I hate cracking those damn things. ;)

</comment></comment><comment><USER5> For the love of God, please switch off "mobile enhanced" versions of your blog. You can't pan around to view the tables because that switches to another article, complete with sparkly transition

</comment><comment><USER6> See [http://en.wikipedia.org/wiki/Application- specific_integrated...](http://en.wikipedia.org/wiki/Application- specific_integrated_circuit) (ASIC)

</comment><comment><USER7> nice summary. it is missing sha-crypt though.

<comment><USER4> Is sha-crypt different in a meaningful way from md5-crypt except spelled a little differently?

<comment><USER7> ehm. yes.

(to say something substantial: see <http://www.akkadia.org/drepper/SHA- crypt.txt>)</comment></comment></comment>


Humble Lifehacker Software Bundle - <AUTHOR> https://www.humblebundle.com/lifehacker-software-bundle <comment><USER6> Paying more than the average gives you a 1-year subscriptions for LastPass Premium and a VPN service called CyberGhost.

A list of everything included:

      $1 or more
       - <USER2>
       - Fences + DeskScapes
       - Directory Opus 12 Light
      More than average
       - <USER3>
       - <USER4>
       - <USER5>
      $15 or more
       - Acronis True Image 2017
       - Bitdefender Antivirus Plus 2017</comment>


Masterminds of Programming: Conversations with the Creators of Major Programming Languages - <AUTHOR> http://oreilly.com/catalog/9780596515171/toc.html <comment><USER2> Interesting claim that "language designer" == "mastermind." Being great at designing notation for algorithms (which is what languages really are) is conceptually distinct from what most people think of as being a good programmer. It so happens that some language designers have found themselves in that place by virtue of being great programmers (the example that jumps to mind is Dennis Ritchie), but the two coincide less and less often as the field matures, and languages become less of a "systems" problem. At least in academia, the programming language people are perhaps the least likely to ever have to write a line of code in anger.

This gap between coming up with neat notation and the resources need for a world-beating implementation of a language is one of the tragedies of the "dictator-for-life" that has arisen for the "developer productivity" languages (perl, python, ruby...) The language equates in practice with the particular implementation that the designer banged out and maintains. The presence of this reference implementation strangles other implementations in the crib, because users know that libraries, .deb's, new language features, etc., will appear first in the dictator's implementation. Thus, we have datacenters full of nice fast CPUs that spend their lives executing Joe's-favorite-language's switch-on-bytecode VM loop, when they could be running a compiled implementation with more sensible resource usage.

</comment><comment><USER3> From a brief examination (my university has a subscription to Safari Books-- one of my favorite parts of being a college student), this book seems like it lacks direction.

As much as it's useful to read a detailed account of what Chuck Moore was thinking when he created Forth, or chuckle as Tom Love takes pot shots at Bjarne Stroustrup [1], I really don't see a cohesive message across the whole work. Obviously, this won't be a problem for many people, but really, as many of these stories are already all over the web, I'm not sure how much original value this work is providing.

[1]Tom Love (co-creator of Objective-C): _There's the successful direction, and then there's the approach that Bjarne took with C++. In one case, it was a small, simple—dare I say, elegant—programming language that was very crisp and well defined. In the other case it was a pretty ugly, complicated, difficult language that had some really troublesome features. I think those are the distinctions between the two._

<comment><AUTHOR> The issues addressed in the table of contents appeal to me; but I expect you're right, that there would only be cohesiveness within each section, not between them.

BTW: I've heard good things about Objective-C. Any idea why it was not successful outside Apple? Was it because of Apple's proprietary approach?

<comment><USER3> As far as I can tell (as an amateur mac developer), the major advantage Objective-C has on the mac over other platforms is the extensive support that Cocoa [1], Apple's giant grouping of APIs/Frameworks/etc, lends. It's so helpful, in fact, that many Mac developers refer to programming in Objective-C as "Cocoa Programming" (also, it's the title of the best programming book I've ever read [2]).

[1]<http://developer.apple.com/cocoa/>

[2]<http://www.amazon.com/gp/product/0321503619>

<comment><AUTHOR> Sounds like it's branded/positioned as "Cocoa"... and possibly support is lacking on other platforms (I guess you mean libraries - they're crucial for language success).

<comment><USER4> more so in objective-c which is really a simple language.

the framework is everything.

</comment></comment></comment></comment></comment><comment><USER5> From the interview with Tom Love, co-designer of Objective-C:

"Does productivity depend more on the quality of the programmer or the characteristics of the programming language?

Tom: The effect of individual differences will far outweigh any effect of the programming language. Studies from the 1970s show for programmers with the same educational background and same number of years' experience, the number was 26:1 individual differences. I don't think anybody claims that their programming language is 26 times better than somebody else's."

I wonder what others think of this, especially in light of Lisp vs. blub debates?

<comment><USER6> It's mostly true. But it also means programming languages attract certain kinds of programmers, a language that fits their individual differences. The reason I moved to Lisp is simple. I was tired of syntax. I was tired of the language straight jacket. I'm always surprised that these things never bother other programmers. It surprises me even more that programmers tediously compare the features of their language when any non-trivial program means a large API (that is a language on top of another language). Once you realize that, who really cares about language features? What you want is something malleable. You want something that can program the program. You want (as has been said elsewhere) a language for growing languages. Instead of wasting time learning about each language's arcane meta programming facilities- learn how to write macros, and you can have all the meta programming facilities you'll ever need. But this doesn't seem to interest most programmers, I guess that's part of the individual difference thing.

</comment></comment><comment><USER7> No Smalltalk or Lisp? Seems like an odd list.

<comment><AUTHOR> And no Scheme (Guy Steel is perhaps the broadest language designer there is).

It's perhaps to do with who had time/was willing to have a conversation.

<comment><USER8> I've worked on many interview projects before; it's always about who has time and interest to have a conversation.

</comment></comment></comment><comment><USER9> O'Reilly has come up with some decent books recently, including _The Productive Programmer_ and _Beautiful Architecture_. They don't seems to have got much attention.

</comment><comment><USER10> Which languages to cover is an interesting question in this day and age. Should a book like this strive for completeness, or should it exclude topics that are well-treated elsewhere? I doubt they got any new stuff out of Bjarne Stroustrop, Guido, or Larry Wall. The images of Java and C# are professionally managed, so talking to their creators seems likely to produce the same old party lines. I'll definitely buy it for the other chapters, though.

</comment><comment><USER11> UML?

<comment><USER12> I saw Grady Booch give a presentation at SIGSCE one year -- actually a very interesting guy and a dynamic speaker. He said a quote that has stuck with me since: "Hardware eventually fails. Software eventually works."

<comment><USER13> Grady's a smart guy but UML has been an utter failure.

Here's a good summary as to why: [http://littletutorials.com/2008/05/15/13-reasons-for-umls- de...](http://littletutorials.com/2008/05/15/13-reasons-for-umls-descent-into- darkness/)

<comment><USER14> Theres often more interesting stuff to be said about why something failed than about a language that is mainstream designed by committee and compromise.

</comment></comment></comment></comment><comment><USER15> Good luck getting the reader to complete the book when you start with C++.

<comment><USER16> You don't have to like a language to learn from what its designer has to say about it.

Although I would be surprised if Stroustrup says anything that wasn't said in D&E (<http://www.research.att.com/~bs/dne.html>) and his recent HOPL III paper (<http://research.ihost.com/hopl/HOPL-III.html>)</comment></comment>


Refresh Firefox on Vim save - <AUTHOR> http://vim.wikia.com/wiki/Refresh_Firefox_(preserving_scroll)_on_Vim_save,_using_MozRepl

<comment><USER2> I have a simple tool for autorefreshing a page on save too, albeit you need to add a script tag to the html you are editing which adds a comet connection behind the scenes. Works across browsers so you can have IE, firefox, and chrome all running in different windows and see them all refresh every time you save a change.

<http://www.willwagner.com/autorefresh/>

<comment><USER3> Just tried it out - works well for editing code over SSH. Great work, thanks.

</comment></comment><comment><USER4> If you're on Linux and use a different browser you can do the same using xdotool.

        autocmd BufWriteCmd *.html,*.css,*.haml :call Refresh_browser()
        function()! Refresh_browser()
            if &modified
                write
                silent !xdotool search --class google-chrome key ctrl+r
            endif
        endfunction

<comment><USER5> Won't that refresh _all_ instances of Chrome?

<comment><USER4> You'd think so, but when I was doing some quick testing with just one window and multiple tabs it only refreshed the current tab. Doing some more tests now with multiple windows, it seems to only refresh the active tab of the back- most window in the stack.

I think that's rather counter-intuitive, but I doubt it'd be much of an issue in practice.

</comment></comment></comment><comment><USER6> Another awesome tool to do this is <http://xrefresh.binaryage.com/>

No vim hack required. However, this is my first hearing of MozRepl(out of the loop I know). I now have a bunch of ideas for interesting things that I can do with it, thanks!

<comment><USER7> I was very confused when I saw this link. There is another program called xrefresh that forces X11 to redraw all applications.

<comment><USER8> Hey Antonin here. I'm the author of xrefresh from binaryage. Yes, my bad. I started this project in the times when I was pure windows user and has no awareness of X11 utility. xrefresh stands for "eXternal refresh" which sounded kinda cool.

</comment></comment></comment><comment><USER9> If the goal is not take your hands off the keyboard, why not save, then Alt- TAB once to get to Firefox, then Cntrl-R to refresh? This works with any editor (including my favorite, nvi).

<comment><USER10> I used to use the same keyboard sequence, but since I started using an editor with the ability to "refresh in running browsers", I can attest to value of the reduction in inane repetition. It's nothing life changing, but when you experience it it, the feeling is kind of like the one you have when you first encounter lights that come on automatically when you enter a room: "Hey, cool!"

</comment></comment><comment><AUTHOR> Maybe this is well known, in that case disregard this submission. However, if your like me and never thought to do this and you do a lot of Sass or css editing in vim then this article is a huge help.

Note: make sure to include _.sass,_.erb in your .vimrc if your using Sass and Rails. For example

      autocmd BufWriteCmd *.html,*.css,*.gtpl,*.sass,*.erb :call Refresh_firefox()

2nd note: Make sure to start MozRepl:

Go to Firefox Tools menu and select MozRepl → Start

</comment><comment><USER11> I've found that saving code, and refreshing the browser, then going back to code, then going back to the browser, is a terribly inefficient practice and horrible for flow. If you're finding yourself having to do this so often as to require a vim hack, you're doing something wrong.

Something like autotest for ruby projects, and cucumber / selenium etc should be making sure your code does what it is supposed to.

<comment><USER12> Horrible for code, maybe. For doing design with CSS(/Sass/etc) though it's essential.

I do :w, Alt-Tab, Ctrl-R _constantly_ when I'm doing design. I'm constantly testing little changes. This looks like it could be quite a useful little hack.

<comment><USER13> Why not just do it all in firebug and then copy the final result over?

<comment><AUTHOR> Thats like asking why not dig ditches with a spoon? Sure its possible but any one who has tried a Shovel or a back hoe is going to hate it.

see this slide: <http://www.slideshare.net/c9s/perlhacksonvim>

</comment></comment></comment></comment><comment><USER14> The poor man's version I use on Chrome is to add one of the plugins that will autorefresh every n seconds. It's far from ideal, but if I'm working on css it saves me a lot of time.

Another hack I've put together is to use applescript and a keyboard shortcut. Set it up as a universal shortcut and give focus to your code editor at the end of the script.

</comment><comment><USER15> Another alternative is to use Playground: <http://owyheesoftware.com/playground>. It works with any text editor.

</comment><comment><USER16> Why not generalize? Have a background process that watches the file, and whenever the modification time changes, refresh the browser. Then it works with any editor.</comment>


Show HN: How many tabs does Gaelan have open right now? - <AUTHOR> http://tabs.gaelan.me <comment><USER2> I recorded this for a while back when Jetpack[0] was a thing (~2010). Was most interesting watching the ebb and flow of the work days through the tab count graph.

[0] [https://wiki.mozilla.org/Jetpack](https://wiki.mozilla.org/Jetpack)</comment>