PreZentit, Our Startup (Online PreZentations). Asking for feedback. - <AUTHOR> http://prezentit.com/ We have been working on this for the last four months. It's an online presentations editor that allows a team to edit the same presentation simultaneously.
Feedback is really appreciated. (We will apply to YC this week).

<comment><USER2> Nice work! Regarding your application to YC, I'd guess that if this were a past project, and now you were doing something that wasn't this, YC would accept you in a heartbeat. You guys could even be one of the "leave the 'what will you make?' field blank" groups, and get accepted.

But, YC already funded a _very_ similar company. I wonder if they would have reservations about funding a competitor. Perhaps not, given that Zenter has been acquired, but I don't know.

I was going to say that another issue is going head-to-head against Google. But I now don't think that's so much of a problem. Yahoo and Microsoft are going to need their own versions of Powerpoint, and I think they'd totally snap this up.

</comment><comment><AUTHOR> We have been working on this for the last four months. It's an online presentations editor that allows a team to edit the same presentation simultaneously.

Feedback is really appreciated. (We will apply to YC this week).

</comment><comment><USER3> Your timing could be better.

</comment><comment><USER4> Very nice work. I tried the editor and was impressed.

\+ I love the way the font size changed as I mouseover'd.

\+ ALL of the text in the front page graphics looks like its messed up. I guess it was some effect that was supposed to look nice, but it just looks blurry/jagged to me.

\+ It wasn't immediate obvious how to "try it".

\+ I do not like the fullscreen popup "Try it" link. I would much prefer a new window or just the same window.

\+ I created a little presentation and then clicked "Publish" which gave a weird blank window (because I'm not registered I assume). Then I looked elsewhere before finding "Show". Maybe I'm slow, but that was confusing and I almost gave up before seeing what my presentation looked like.

\+ I want an account with a sub-domain "rep", so I can login at <http://rep.prezentit.com/>

</comment><comment><USER5> We were afraid of Google slides... but now not so much.

</comment><comment><USER6> Looks pretty slick.

I really, really dislike clicking on the try-it link and getting a fullscreen- ish popup. Someone, somewhere that knows something about design must have a list that includes "Don't change my window size, unless you're a musician."

</comment><comment><USER7> The "Try It" link should be huge, in the middle of the page, and not below the fold.

<comment><AUTHOR> That's a good one, I'll start working on it right now!

Maybe I should make also a Sign Up button next to it.

(Try It) (Sign Up)

I think of placing those buttons below the tag line.

Thanks.

</comment></comment><comment><USER8> wow. a pleasure to use and look at. And there is already more than enough features to be useful.

Only one thing: it would be better to me if the site would fit in one or two windows. Now I have:

     1- the web site
     2- the working presentation
     3- the running presentation

That's a lot of windows for one website.

<comment><AUTHOR> You're right.

We did it because:

\- The working presentation was easier to work in a new window (bigger workspace).

\- The running presentation needs a new window to be in full screen.

We are thinking in previewing the presentation in the editor, so you will have just 2 opened windows.

Also, if you just want to run the presentation you can do it directly from the website.

What do you think about that solution?

<comment><USER8> a preview in the editor looks like a must indeed, for that and other reasons.

More comments: If I'm editing a presentation, switch windows, and go to the presentation list, if I choose one and click edit, the working presentation is automatically saved (gasp) and the editor does not come into focus either (although that might be KDE's focus stealing prevention at work).

<comment><AUTHOR> Preview in the editor... done.

</comment></comment></comment></comment><comment><USER9> 1> no obvious demo button to see the tool in action

2> why I gotta register

3> can I upload powerpoints?

That's a review of your web site, not your web application, but that's kind of the point - I didn't get to your application, because your web site is in the way.

Demo, on the home page, using your own tool to pitch me your own tool.

<comment><AUTHOR> Thanks for that,

1> Well, you can try it, pressing the Try it link ( you're right it should be a button).

2> You need o be registered to access your presentations, editing, and managing them. (We should also explain it too).

3> No, you can't upload powerpoints yet.

Have you tried the presentation editor?

<comment><USER10> Does it have OpenDocument support?

I tend to use desktop apps for this kind of thing, but for on-the-go editing while travelling, or remote presenting, this would be really useful. All my existing presentations are in OpenDocument tho.

</comment></comment></comment><comment><USER11> On your feedback page is this sentence:

"Your opinion is very important for us since it help us to build a better preZentit for everyone. "

Proper grammar would be since it helps us to. . .

Just some feedback.

</comment><comment><USER12> Can you put up a few sample presentations that I can just go and view right away? (I guess there will be some under Explore soon). The editor looks very professional and cool but I want to see the end result too.

<comment><AUTHOR> Here is a sample PreZentation.

<http://prezentit.com/german/6>

Hope you like it :P

<comment><USER13> Is there a way to go full-screen? I hit F11 but there is still a small bar at the top of the screen.

<comment><USER5> IE7? No, that bar is for "security". Firefox/Opera/etc: real fullscreen.

<comment><USER13> Firefox 3

<comment><USER5> That's weird. Are you opening the presentation in a tab? I'm trying it in Ubuntu and Windows XP and it works as it should (no bar).

</comment></comment></comment></comment></comment></comment><comment><USER13> Pretty slick. Can anyone that used the real Zenter make a comparison?

<comment><USER14> This one is missing quite a bit of the graphic stuff that Zenter had (but seems to have lost for Google Presentations). Rotations of text and images and browsing of Flickr and Google Images for images with drag and drop. Font handling in Zenter was also awesome to behold. It tried to replicate some of the really hard stuff in PowerPoint, that this one doesn't (yet).

Looks very slick, though. Definitely a contender, particularly if Google Presentations doesn't bring in all of that functionality that we were seeing in Zenter before it got sucked up by Google. The design is nice and clean, too, which is a plus.

<comment><AUTHOR> We are working on the graphic stuff right now, we have awesome ideas for it, I think we should have it done in a couple of weeks.

I think that one of the things that makes us different is the ability to edit presentations between a group of people in real time.

We worked a lot on the design too, we believe that a good tool must have a nice design and be easy to use.

<comment><USER14> "I think that one of the things that makes us different is the ability to edit presentations between a group of people in real time."

I'm pretty sure Zenter was already demoing this feature, as well. You've picked a hard target to top. ;-)

</comment></comment></comment></comment><comment><USER15> Given your username, that's just weird, but I loaded it from Germany, and I got a web page in Spanish. Google correctly loads as google.de, so something must be wrong on your side.

<comment><AUTHOR> I'm not from Germany, my name is German (it's a Spanish name). We will have the site translated to German in a couple of days.

</comment></comment><comment><USER12> change Cintributors to Contributors

<http://prezentit.com/help/contribute>

;-)

<comment><USER5> changed (thanks)

</comment></comment><comment><USER16> I see pre zen tit on the front page image.

</comment><comment><USER17> Very neat. Some of the demo slides ( I think the 9th one) disappeared faster than others.

</comment><comment><USER18> This is fantastic but can you try and get it working properly in Opera and Safari? :D

</comment><comment><USER19> Great execution. Bad concept. Been there done that. good luck.

<comment><AUTHOR> About the concept, can you please tell me what is wrong with it so we can think about changing.

Thanks.

<comment><USER19> Again i want to stress that you did great work. However as to the concept, your what people call a "me too" company. Alot of other companies doing the same thing at the same time. Yes you are a little bit different ,but not enough that most people will pick over .....google or whoever. If you can figure a way to interact with other service and provide features that they not have that might work.

Did you work on this alone or with a team?

<comment><AUTHOR> Thanks, we work are a team of 2 co-founders: juanpablo and me.

</comment></comment></comment></comment><comment><USER20> I like it, its good. You could work on the name though. :)

<comment><USER14> I don't think the name is all that bad. All the good ones are taken, so you've got to go outside the realm of good spelling to get something even close to appropriate.

</comment></comment><comment><USER21> very nice</comment>


Doing the opposite of everyone is valuable - <AUTHOR> http://sivers.org/contrarian <comment><USER2> Perhaps "finding opportunities to be unique" would be a better way to describe this concept. Doing the opposite of everyone else sounds like a profoundly bad idea when applied to many, many things.

This stirs up some of the sense of irony found in business-friendly phrases like "think outside the box."

<comment><USER3> Trying to figure out what "opposite" is can be a challenge.

Everyone is building Web apps; what's the opposite? Phone apps? Brick-and- mortar services?

Many things don't have a proper opposite. Like when people say that "pepper" is the opposite of "salt". You _know_ that's not true, but the actual opposites is ... complicated.

<comment><USER4> The definition of "everyone" is even more difficult than "opposite," I think. If the definition of "everyone" is "most people on the planet," then developing Web apps is as close to the opposite of subsisting in a developing country I can think of.

This post is a pretty useless generalization, notable only because the guy who wrote it is wildly successful. And somehow, we're supposed to learn something from it -- "Thanks."

</comment></comment></comment><comment><USER5> The article is half-true. Doing something opposite everyone else is only valuable if you create demand for it, or if (very rarely) everyone realizes its worth.

Just as with everything else, it comes down to marketing. In popular areas, you market how you are different from competitors. In unpopular areas, you market how what you do is of value.

</comment><comment><USER6> Here is one thing you can do that 95% of web startups aren't: "add a Pricing page "</comment>


Ask HN: How can hackers learn to get customers? - <AUTHOR> <comment><USER2> I learned a lot from [https://stackingthebricks.com/](https://stackingthebricks.com/)

</comment><comment><USER3> Empathize with them. Really try to put yourself in their shoes. Does your product actually solve a problem for your customer? Is it a problem they're willing to pay for?

Once you build a product that solves a problem customers are willing to pay for, figure out where they are and go there. At the risk of sounding trite, like pg's advice, do things that don't scale: [http://paulgraham.com/ds.htm](http://paulgraham.com/ds.htm). Literally go to potential customers in person and talk to them.

</comment><comment><USER4> Not an any order:

\- try putting your self in the shoes of your potential customer(what are they trying to accomplish?)

\- start with training, consulting, coaching your potential customers.

\- Promote a freebie. try making it viral and/or habitual

\- hang out where your customers are.

</comment><comment><USER5> Depends on the product/market. What is yours?

</comment><comment><USER6> Study marketing and copywriting.

</comment><comment><USER4> Do you already have a product?

</comment><comment><USER7> port scanning?</comment>


Show HN: A simple Docker deployment CLI tool - <AUTHOR> https://github.com/jaequery/docker-deploy <comment><USER2> Isn't this exactly what Docker-Machine does, but without the need for SSH access to the remote machine?</comment>


Thoughts on our early beta? - <AUTHOR> http://www.listrater.com

<comment><USER2> Sorry it wasn't interesting.

<comment><AUTHOR> Content or concept?</comment></comment>


Ask HN: Inexpensive dedicated servers for testing Skylake? - <AUTHOR> I have some SIMD algorithms that I'd like to check for performance on recent Intel chips.   In particular, "gather" performance is reputed[1] to be much better on Skylake than earlier processors. Are there any cloud or dedicated server providers offering these yet?
I found http://www.reliablesite.net/dedicated-servers/quad-core-server/intel-core-i7-6700k starting at $99 month.    But I'd prefer something by the hour rather than by the month, as it's really just proof of concept testing at this point, and I can probably do all the testing I need in several hours spread over a couple days.
I'm surprised Intel doesn't go more out of their way to make instances on these available to researchers and software developers.   The potential of these newer chips is not reached by existing software, and it would seem to be in Intel's interest to encourage more research in to how to take full advantage of them.
[1] See "Fig 11-4 Throughput Comparison of Gather Instructions" in http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-optimization-manual.pdf <comment><USER2> > and it would seem to be in Intel's interest to encourage more research in to > how to take full advantage of them.

This seems a little overstated -- we're talking about CPUs that are widely publicly available for around $300 USD, not some big iron.

<comment><AUTHOR> I don't think it's overstated: Intel would benefit from published research that plays to the strength of their newer processors, and there is a lot of published CS research based on older processors because the researchers don't have access to the newer machines.

The CPU is several hundred dollars, but since it requires a different motherboard and DDR4 RAM, it would be over $1000 to put together a test system to meet our needs. The norm is that it just doesn't happen, and that people publish using a single machine that they replace every couple years.

Consider the plethora of articles published for the last couple years of showing the very modest improvements in processor performance running existing software. Then consider the value of just a couple high profile cases of people showing 2x-4x gains on newer processors using algorithms that target them.

I think that value would be much higher than the cost of providing access, and that the absence of such articles is because the hassle and cost of testing on newer processors is still quite high. Consider the innovative project I just posted here: [http://cglab.ca/~morin/misc/arraylayout-v2/](http://cglab.ca/~morin/misc/arraylayout-v2/) Great project, legitimate research, but no numbers for any Broadwell or Skylake processors. Or Power8 for that matter.

<comment><USER3> Some time back I was working at a company that made very popular cutting edge graphics software. Some of the key developers had beige-box machines labeled "Property of Intel" and "Confidential". Inside were Intel motherboards populated with pre-release Pentium III CPUs - also etched "Intel Confidential". These were Katmai machines which the engineers were using to implement SSE instructions[1] in the software.

So, yes, Intel does supply hardware to key developers. I have no idea what the criteria is, but next time, talk to your connections and see if your company or research group qualifies.

[1] [https://en.wikipedia.org/wiki/Streaming_SIMD_Extensions](https://en.wikipedia.org/wiki/Streaming_SIMD_Extensions)

</comment></comment></comment><comment><USER4> One way which could work out is to post on /r/gaming and request anyone who has a Skylake machine to run an Ubuntu liveusb (with openssh-server) and give you access for a couple of hours. In exchange you could buy them a Steam game.

<comment><USER5> /r/buildapc may be receptive to this as well.

<comment><USER6> or /r/pcmasterrace

</comment></comment></comment><comment><USER7> Note Intel said Skylake server chips would introduce AVX-512 instructions, but Skylake consumer chips don't have those. That could mean the server chips will have a different vector unit with different performance.

That may not be a huge deal if the gather improvements are all you care about and they're present in both consumer and server chips. But worth knowing.

<comment><AUTHOR> Intel coincidentally officially launched the first Skylake Xeon's today: [http://ark.intel.com/products/family/88210/Intel-Xeon- Proces...](http://ark.intel.com/products/family/88210/Intel-Xeon- Processor-E3-v5-Family#@Server)

Interestingly, despite being Skylake server chips, it looks like none of them support AVX-512. Do you happen to know which models actually will have support?

Or for that matter, what are all the differences between the "server" E3v5 Xeons and the "consumer" Skylake chips? Support for ECC RAM is the only one I see at a glance: [http://ark.intel.com/products/family/88392/6th-Generation- In...](http://ark.intel.com/products/family/88392/6th-Generation-Intel- Core-i7-Processors#@Mobile)

<comment><USER7> Haha, I saw that and asked the same thing at Anandtech.

These server chips are slight tweaks to consumer chips. They work with server chipsets [and ECC RAM as you caught!]; don't know what else differs. There aren't yet "large" Xeons (E5 or E7) on Broadwell or Skylake, only Haswell.

The table of Haswell chips from Wikipedia is the best handle I can quickly get on the how the server chip line works:

[https://en.wikipedia.org/wiki/Haswell_(microarchitecture)](https://en.wikipedia.org/wiki/Haswell_\(microarchitecture\))

\- E5 and E7 have more cores and L3 cache

\- They also support more sockets (the model numbers start 2, 4, or 8 according to how many sockets they support)

\- They're released a lot later: the first Haswell chip was in June 2013, but all the E7s in the tables are listed as May 2015.

And Haswell is v3 so Broadwell is v4 and Skylake is v5.

If this roadmap is right, larger Broadwell chips will come next year and large Skylake Xeons might not be until 2017(!):

[http://www.theplatform.net/2015/05/26/intel-lets-slip- broadw...](http://www.theplatform.net/2015/05/26/intel-lets-slip-broadwell- skylake-xeon-chip-specs/)

I was vaguely aware that architectures would mature before working their way up the server line, but not of how long that pipeline was. Anyway, guess we shouldn't hold our breath!

</comment></comment></comment><comment><USER8> If you want to provide a USB-bootable image, I'd be happy to run whatever you'd like on my 6700k system.

<comment><AUTHOR> Thanks for the offer. I'll see what else turns up. I'm looking both for an immediate solution as well as a longer term one, so would prefer to find something inexpensive that can be repeated easily for future tests.

</comment></comment><comment><USER9> Tweet Intel maybe? Stranger things have happened

</comment><comment><USER10> Not by the hour but very inexpensive: [https://www.hetzner.de/en/hosting/produktmatrix/rootserver](https://www.hetzner.de/en/hosting/produktmatrix/rootserver)

<comment><AUTHOR> I currently rent a Haswell server from Hetzner (and love them) but I'm not seeing anything more recent than that. Am I missing them somewhere?

</comment></comment><comment><USER11> Intel server chips are usually about a year behind desktop chips. Broadwell was delayed for desktop and will likely be delayed for server too. Most of the providers advanced enough to offer hourly pricing are running server (xeon) chips for their whole fleet, so expect a wait. Skylake Pentiums are supposed to be in the market now (but aren't), so that might be a lower cost option.

</comment><comment><USER12> Isn't a heavily virtualized environment not going to give you actual performance or access to full cpu features?

</comment><comment><USER13> Just buy a Supermicro Xeon v5 motherboard (when one becomes available!) and of course a Skylake Xeon E3 v5. $300 motherboard and $300 CPU. Minimal whole system should be about $1200.

Not affiliated with Supermicro, I just like their features and pricing.

</comment><comment><USER14> The point of most cloud servers is to abstract away the kind of low level architectural details you are looking at here, so kind of opposing goals.. why not just build a little Skylake home desktop and try it there? It is not expensive, maybe $800 tops and you get a nice development rig in the process.

<comment><AUTHOR> _Why not just build a little Skylake home desktop and try it there?_

Because I've already got a nice laptop, and several underutilized older servers. I'd like to test on Sandy Bridge, Haswell, Broadwell, Skylake, ARM, and Power8. The older Intel processors are easily available, [https://www.runabove.com/](https://www.runabove.com/) gives me access to Power8 (and supposedly ARM, although I haven't tried it yet), but I haven't yet found inexpensive ways to test on Broadwell and Skylake.

For this particular case, I was hoping to just spend a few hours testing some SIMD variants of this: [http://cglab.ca/~morin/misc/arraylayout-v2/](http://cglab.ca/~morin/misc/arraylayout-v2/) The Haswell performance is disappointing, but I think that's because the Haswell AVX2 gather performance is poor but Skylake is supposedly much better. See the link I gave earlier for details.

<comment><USER15> I checked RunAbove with great curiosity, but the site seems to be indicating that the Power8 option is unavailable / "closed".

Does this mean all new projects are rejected, that they're trying to halt new applications, or what?

Also, are you the author of the 2nd link? I tried it, my `free' doesn't have `-h' (Slackware 14.1, procps 3.2.8, manpage says "Cohesive Systems / 20 Mar 1993").

<comment><AUTHOR> _I checked RunAbove with great curiosity, but the site seems to be indicating that the Power8 option is unavailable / "closed"._

I'm not sure. I signed up during a Beta window last year, and don't know where they are going with it overall.

Also, I haven't used it in a few months, and when I tried right now I got errors on creating a new instance. I opened a support ticket.

 _Also, are you the author of the 2nd link? I tried it, my `free ' doesn't have `-h'_

No, I'm not the author. Searching though, it looks like "-h" is a synonym for "human readable" on some distributions, and just does automatic units.

<comment><AUTHOR> I fear that RunAbove is no longer a viable way of testing on Power8. The response to my trouble ticket was so unhelpful that it did not even confirm whether they still expect a Power8 instance to start. Instead, they just referred me to the community support which consists of lots of unanswered questions with the same symptoms. I would suggest avoiding RunAbove altogether -- truly abysmal service.</comment></comment></comment></comment></comment>


Ooc – a small programming language that compiles to C99 - <AUTHOR> https://ooc-lang.org/ <comment><USER2> I'm always slightly confused when languages target C instead of compiling themselves. Nim, for example. Is it really that much easier to deal with all the idiosyncrasies of C for a backend, and have to hope that the compiler will cleanup the mass of basic code blocks you emit, than emit LLVM bytecode or assembly? Not even having to use the LLVM C bindings, you can just emit the bytecode directives to a file and call the toolchain itself.

Is the idea that you can compile you base code once, and then work on the emitted C to extend the project?

<comment><USER3> I've heard portability arguments; C is far more portable than LLVM. But I'm guessing more people know C than LLVM IR or 4 assembly languages, so C is an easier target.

EDIT: oh, also wildly easy interoperability with existing C/C++ code (so long as the C++ code provides a C interface).

<comment><USER4> Compiling down to C also makes wrapping C++ libraries much easier. Because when you compile down to C, it's not that much of a stretch to also allow compilation to C++. You can then make wrapping C++ code much easier in the language.

Nim is one language that I know of which takes advantage of that. Here is one example of a pretty large wrapper around a C++ library [https://github.com/3dicc/Urhonimo](https://github.com/3dicc/Urhonimo), and here is the documentation for this feature [http://nim- lang.org/docs/manual.html#implementation-specific...](http://nim- lang.org/docs/manual.html#implementation-specific-pragmas-importcpp-pragma)

</comment></comment></comment><comment><USER5> This is a really interesting idea. I'm surprised this is the first language I've heard of that targets C. C's major strength is portability, but that means change is slow. When browsers stagnated, coffeescript filled the void, which in turn influenced new versions of javascript.

A certain subset of C++ seems to solve a lot of peoples' problems with C, but it also seems there's no consensus on what that subset is. So people stick with C because at least the rules are defined. Compile-to-C languages like this could have all the benefit of switching to C++ without the downsides

<comment><USER6> Not a new idea at all, many compilers for different languages output C as one option anyway[0].

Among languages I've enjoyed using and achieving high productivity is CHICKEN Scheme[1]. The compiler defaults to emitting C, though usually the C code is immediately compiled into binary object or executable form. CHICKEN also integrates very well with C as embedded in a C application, using C libraries or writing C directly in "foreign-lambda*" expressions.

[0] [http://stackoverflow.com/questions/6498850/programming- langu...](http://stackoverflow.com/questions/6498850/programming-languages- that-compile-into-c-c-source) [1] [http://call-cc.org](http://call-cc.org)

<comment><USER7> Since you mention CHICKEN, the "Lisp in small pieces" book although describe such a procedure.

</comment></comment></comment><comment><USER8> Has anyone noticed this awesome tutorial on the site? Just plain awesome!

<comment><USER9> Thanks for pointing it out. When I reached the homepage late last night, honestly I wasn't going to give it much thought.

The code snippet seemed uninteresting and to lack anything original, the pitch wasn't really selling much, and to top it off there were some text blurbs that seemed unfinished.

Then I saw your comment and read the tutorial. This was actually a pretty interesting read, even without actually following along in a console.

I find it assumes a bit too much so I don't think a total beginner would like it, but for someone used to toying around with new languages it's very well presented I think.

</comment></comment><comment><USER10> [http://nim-lang.org/](http://nim-lang.org/)

</comment><comment><USER11> How good does the produced C code look though? I mean if you were on a project which required C code and you used Ooc would your co-workers immediately barf if they saw the C code you committed to the repository?

I think these sort of tools are interesting because many companies are stuck with some ancient language hurting productivity, but being able to use tools like this one can circumvent some of the problems, if only for new code as existing code will have to be maintained in C.

<comment> loup-vaillant > _if you were on a project which required C code and you used Ooc would your > co-workers immediately barf if they saw the C code you committed to the > repository?_

Commiting generated code, are you crazy? I don't care how pretty it looks, if it's not source code, it doesn't belong to source control.

If you still want to put generated C dode in the repository, you can, but the second you type `push` command is the second your C code becomes _source_ code. Treat it as such.

Or, just put Ooc code into the repository. _That_ is the source code after all.

<comment><USER12> Web developers appear to disagree with you, there is Grunt-generated JS and minified JS committed to repositories all over github.

<comment> loup-vaillant Seriously what's the point? Hopefully their repositories also have the genuine source code? I'm not interested in reverse engineering.

<comment><USER12> I haven't tried to find out why people do that and find it baffling, but I guess they don't trust Grunt or their minifiers and want to compare the output of different versions. The repos I have seen also have the genuine source code.

</comment></comment></comment></comment></comment><comment><USER13> Previously: [https://news.ycombinator.com/item?id=882864](https://news.ycombinator.com/item?id=882864) [https://news.ycombinator.com/item?id=1508943](https://news.ycombinator.com/item?id=1508943)</comment>


Show HN: Noderize – Create Node apps in 30 seconds - <AUTHOR> https://medium.com/@cretezy/noderize-create-node-apps-in-30-seconds-2ac1a79baeff <comment><USER2> It seems like a strange set of tooling and I don't get to configure it how I like.

Why would I want to use Babel to compile server side code rather than just use the latest version of Node? It's actually doing two compilation steps because it's got TypeScript in there too, which is also a compiler. It uses Jest for testing, which is primarily designed for React.

I haven't found my preferred environment scaffolding yet. As I go I find better and better ways to set up my app and usually it's pretty app specific. If I did find a great scaffolding tool I think it would be one I have full control over. Maybe a lot more like Yeoman which has been around for quite a while.

You can do a lot even without scaffolding, just npm init and git init.

<comment><USER3> Jest isn't primarily designed for React. It has a lot of built in feature for making testing React components easier. But it's a generic Javascript test runner and framework

<comment><USER4> Yep - the main thing that Jest gives out of the box is jsdom, so allows for dom based testing without needing phantom (or more modern now, headless browser).

I also find it's faster and has better features than Mocha (for instance, coverage out of the box).

</comment></comment></comment><comment><AUTHOR> Author here! Let me know of any questions or suggestions for the project.

Quick links:

[https://noderize.js.org](https://noderize.js.org)

[https://github.com/Cretezy/Noderize](https://github.com/Cretezy/Noderize)

</comment><comment><USER5> Just noticed the docs have a tutorial on creating a command line interface app[0]. Thanks for this. Would love to read the next steps involved in making the app accessible with with just `fibonacci`, as opposed to `npm start fibonacci`.

[0][https://noderize.js.org/docs/tutorials- cli.html](https://noderize.js.org/docs/tutorials-cli.html)

<comment><USER6> Check out something like pkg by zeit[0] which compiles the node app to a binary. Then put it in a directory in your $PATH and you'll be able to run it as `fibonacci`.

[0][https://github.com/zeit/pkg](https://github.com/zeit/pkg)

<comment><AUTHOR> The easiest way is simply to use npm's bin, which if installed globally (npm i -g my-command) is added to path.

<comment><USER7> I'm interested in making binaries, to hopefully ease distributing in-house utils. Our various projects depend on misc node versions and reinstalling our utils to each new global bin ain't fun. If there's a better way, I'm all ears.

</comment></comment></comment></comment><comment><USER8> I do not recommend using npx. Any typo can result in downloading a malicious package published using a similar name.

<comment><USER9> The same is true of `npm install`. Custom lifecycle scripts can be run during the install process.

<comment><USER10> Adding "ignore-scripts=true" to your ~/.npmrc helps here.

</comment></comment></comment><comment><USER11> Is there something like this that _is_ a template for server-side node apps? My experience with node has been small scripts and build configs but I would love to find a template to start with. Any recommendations are appreciated!

<comment><USER12> I created a mostly unopinionated starter project [1] for creating RESTful APIs using Koa2 and ES2017+ features in a Node.js server environment as well as providing linting and testing support. It provides the setup for compiling, linting and testing your code but doesn't make any further assumptions on how your project should be structured.

[1] [https://github.com/pranavpr/koa2-es2017-api- boilerplate](https://github.com/pranavpr/koa2-es2017-api-boilerplate)

</comment></comment><comment><USER13> From what I understand, it installs a bunch of opinionated packages and then you're on your own. This isn't the same as "create a useful app in 30 seconds".

</comment><comment><USER14> Cool initiative, would be great to see an "eject" command similar to what CRA provides so that the user can expose all of the configs if they wish.

</comment><comment><USER15> While I appreciate the value people get from TypeScript, I do not use it and would prefer if it were optional (along with babel). Looks ok otherwise.

<comment><AUTHOR> It is. You must actually TypeScript support (it's a single option), but it is turned off by default.

You can also disable Babel (and JavaScript) if running only TypeScript.

</comment></comment><comment><USER16> Someone needs to figure out how to do this in 20 seconds and then they would really have something.

<comment><AUTHOR> Most of the time is waiting for npm/yarn to load up! The whole process on a fast connection is closer to 10s :P

</comment></comment><comment><USER17> It's not clear why one would use this instead of yeoman. Perhaps the docs could mention that?

<comment><USER18> Yo is a scaffolder. At the end of the generation you are more or less on your own. This is a full prepackaged config you can easily upgrade. The cost? Hard (if not impossible) customizations of underlying products config. Not a con IMHO.</comment></comment>


Buku v2.6 – Powerful command-line bookmark manager - <AUTHOR> https://github.com/jarun/Buku/releases/tag/v2.6 <comment><AUTHOR> _Features_

\- Add, open, tag, comment on, search, update, remove URLs

\- Portable, merge-able database, to sync between systems

\- Import/export bookmarks in markdown or HTML (FF, Chrome, IE compatible)

\- Fetch page title from web, refresh all titles in a go

\- Open (multiple) search results directly in default browser

\- Manual password protection using AES256 encryption

\- Tab-completion scripts (Bash, Fish, Zsh), man page with examples

\- Several options for power users (see help or man page)

\- Fast and clean interface, distinct symbols for record fields

\- Minimal dependencies

 _What 's new_

\- Support Markdown import/export

\- Support regex search

\- New option `--upstream` to check latest upstream version

\- Fix search and delete behaviour

\- Lot of code reformatting, performance improvements

\- Use delayed commit wherever possible (e.g. bulk deletion cases)

\- When a range is specified, consider 0 as ALL

\- Added option to control verbosity in some APIs

\- In-source documentation update</comment>


Egypt uncovers 'huge cache' of ancient sealed coffins - <AUTHOR> https://www.cnn.com/style/article/luxor-egyptian-coffins-hnk-scli/index.html <comment><USER2> It seems they just crack open a crypt every few years to perpetuate the tourism. I know that's not the case but it feels like it with every new discovery making its rounds in articles as the important to date.

<comment><USER3> Maybe they just delay announcing discoveries until a tourism boost is needed/practical?

</comment></comment><comment><USER4> My first thought was that it's amazing we're still routinely pulling coffins out of the ground in Egypt.

My second thought was that 10,000 years from now some follow-on replacement for humanity will be staggered at the 30 billion dead bodies we put into the ground. They'll frequently be hitting grave sites when they go to dig into the ground.

<comment><USER5> A century ago there were so many mummies in Egypt, they sold then literally as firewood.

Most bodies buried in most places won't be so well preserved though. In Europe the average grave will be dug up and replaced 20-30 years after burial to make space for the next one.

<comment><USER6> > Europe the average grave will be dug up and replaced 20-30 years after > burial to make space for the next one.

How do you mean?

I come from a part of Europe that takes death seriously and I walk past 250 year old graveyards every day. Saw a fresh grave in one recently

I can go visit the graves of the last 5 generations of my family

<comment><USER7> 5 gens, that's awesome. Sorry for off-topic, but did you research your family history to find them or was it already known to your immediate family?

<comment><USER6> Everyone just knows where they were all buried. The church owns almost all these graveyards so they stay around a long time.

Competition is fierce to get into some of the ancestral graves.

</comment></comment></comment></comment></comment><comment><USER8> I wonder if the Copts see this as desecration of their ancestors' graves?

</comment><comment><USER9> This is awesome news. It means the price for mummy brown oil paint should finally go down.

/s

</comment><comment><USER10> The painting on them is quite beautiful.

</comment><comment><USER11> The nation of Egypt did something....

I don't like the way some people assert that nations does things. Living beings takes action, other things just are.

I think it is misleading and unhealthy to attribute human action to inanimate things.

I guess some people might think that this statement is to philosophical. Like people don't mean the things they say in a literal sense. I think that if someone should mean the things they write in a literal sense it is journalists.

<comment><USER12> You're going to be fighting an uphill battle here; this is a completely normal, natural manner of using language called ["synecdoche"][0]. I would wager that you use it yourself from time to time without even noticing (though I could be wrong).

[0]:[https://en.wikipedia.org/wiki/Synecdoche](https://en.wikipedia.org/wiki/Synecdoche)

<comment><USER11> Thanks, interesting that it had a name :)

Yeah I know I do, but when I notice I do try to use different langauge.

Normal does not mean good, it just means normal.</comment></comment></comment>


Why is Idris 2 so much faster than Idris 1? - <AUTHOR> https://www.type-driven.org.uk/edwinb/why-is-idris-2-so-much-faster-than-idris-1.html <comment><USER2> I bought the book "Type Driven Development in Idris" and got several chapters in before getting distracted by whatever else. It was enough that I'm now annoyed relatively often that I can't pass types as parameters to be altered during execution. I really think they're onto something brilliant. I need to pick it back up and finish the book.

<comment><USER3> Hmm. My interest is piqued but this book is from 2017 and I am wondering if it is not horribly out of date at this point. WDYT?

<comment><USER4> There are some minor changes, but they are documented in detail [1]. The Idris2 repository maintains tests to detect any further divergence from the book [2].

I _highly_ recommend the book. Typing in examples and getting experience collaborating with the compiler on edits is worthwhile. Even if you never use Idris(2) again after reading it, the demos on creating state machine DSLs with contextual invariants will leave a lasting impression.

[1] [https://idris2.readthedocs.io/en/latest/typedd/typedd.html](https://idris2.readthedocs.io/en/latest/typedd/typedd.html)

[2] [https://github.com/idris- lang/Idris2/tree/master/tests/typed...](https://github.com/idris- lang/Idris2/tree/master/tests/typedd-book)

<comment><USER5> Well minor including the switch to use of so called "quantitative type theory" where you can include use counts for variables that inform the compiler how long variables will stick around. Also the compiler switch to Chez Scheme yields a pretty big performance boost.

<comment><USER6> The Idris 2 compiler is build with Chez Scheme? That's pretty cool in my opinion, didn't know that.

<comment><USER7> It compiles to Chez Scheme. It's written in Idris 2 (self-hosted).

</comment></comment></comment></comment></comment></comment><comment><USER8> Chez Scheme has an interesting compiler [1] and has also been adopted by Racket [2].

It really cool to see a little used lisp have such a great impact.

[1] [https://news.ycombinator.com/item?id=15156027](https://news.ycombinator.com/item?id=15156027)

[2] [https://blog.racket-lang.org/2020/02/racket-on-chez- status.h...](https://blog.racket-lang.org/2020/02/racket-on-chez-status.html)

<comment><USER9> Andy Keep has given many talks on the nanopass compiler, and searching for him on YouTube will give you lots of interesting talks!

Chez, together with the commercial lisps, is among the best dynamic language systems there are. Apart from the unboxed floats me ruined by another sibling posts, it produces really good code.

In my tests it has been ever so slightly faster than sbcl when the code does not depend excessively on spending time in the standard library. SBCL's standard library has had a lot more optimization work done on the individual function level (I'm looking at you, isqrt). Most of the difference in my case can be erased by the new SBCL block optimization though, which chez does on the module level.

</comment></comment><comment><USER10> How practical is Idris (or Idris 2) for real-world production programming right now? It seems to be a pretty natural evolution of Haskell with dependent types built in from the ground up instead of being sort of achievable with a patchwork of language extensions. Moreover, making laziness optional is a big deal for real-world industrial applications. (Note that even the author of this post indicates at the end significant difficulty with space leaks in the original Haskell compiler for Idris.)

Or, said differently, what's missing in the language or ecosystem to make it more immediately practical? Could Idris be the successor to Haskell with appropriate support?

<comment><USER11> My experience is from 2015 but from a language-perspective the only things I personally saw lacking for prime-time use would be performance and the compiler/type-checker not always giving accurate error messages - but overall, nothing considerable when comparing to Haskell. I don't know how much those areas have been improving since. Overall I was very excited about Idris and found the syntax a lot more approachable than Haskell.

If the meager library of third-party and community packages is an important factor or not depends a lot on the domain.

I really wish some powerful corp would pick up Idris and put contributions and/or funding to it.

<comment><USER12> Precisely my experience as well! I also wish Edwin would get some sort of corporate backing so that Idris could be funded to get into production-ready mode. Idris2 is much faster (both compilation wise as well as execution wise) than Idris1, but the standard library is not done (as are parts of the language itself).

I would love to be able to write production code in Idris rather than patching together a million Haskell extensions.

</comment></comment></comment><comment><USER13> I find this slightly depressing that using global mutable state had such a significant performance given the functional programming (encompassing Idris) is very much in favor of immutable data structures and purity. I know it's best to explicitly switch to mutability iff a bottleneck is found (like how `mut` is explicit and not default in Rust), but I want to _believe_ that Idris can live in a purity. This makes me think my opinions are not far off from religion.

<comment><USER14> Immutability is an implementation detail with no inherent value. What we actually care about is referential transparency, encapsulation & tracking of effects, performance, abstraction, thread/type/memory safety, etc. The State monad in Haskell is implemented without mutation, but presents an API with mutation. The ST monad is implemented with mutation but presents a pure and referentially transparent external API.

It is fair to say that functional programming is primrarily in favor of immutable data structures because it is simpler to implement them efficiently in a setting where referential transparency is the default. Mutation (meaning referential intrasparency) is just more complicated, and we need heavier machinery to structure it nicely. We may use linear/substructural types, uniqueness types, regions, etc for this purpose, but here are a number of choices, and the picture is not as clear-cut as with plain pure lambda calculi. Just remember that mutation is _not_ bad by itself, many functional programmers are often happy to speed up production code with mutation, it's just that it is usually more complicated to structure nicely.

<comment><USER15> > Immutability is an implementation detail with no inherent value. What we > actually care about is referential transparency, encapsulation & tracking of > effects, performance, abstraction, thread/type/memory safety, etc. The State > monad in Haskell is implemented without mutation, but presents an API with > mutation. The ST monad is implemented with mutation but presents a pure and > referentially transparent external API.

Both State- and ST-using code is harder to understand than code that doesn't use them. Immutable semantics are easier to reason about. Of course the implementation of those semantics may involve mutation at some lower level. But ideally we would have a runtime system that could implement immutable semantics with no loss of efficiency compared to implementing those lower- level mutations explicitly in our code.

</comment></comment></comment><comment><USER16> What language features are needed in order to implement dependent types? Can you implement it on top of existing features of say Rust or Swift?

<comment> dan-robertson A first feature is the ability to define "interesting" types. By interesting I mean "generic" types which do things depending on the types of their arguments. In other words, a way to have functions at the type level. In Haskell you can do this with type families. I don't know if you can do something similar in rust (have a type in a trait and then implement that trait in certain cases to get your function from input type to the type in the trait implementation for the input type)

A second feature that I think is needed is a way to go between types and values which I don't think rust or swift can do.

Two fundamental dependent types are the dependent sum and dependent product. The dependent product is the type of a function whose output type depends on its input value. This is a generalisation of the product type: the product type (a,b) is like the dependent product type (x:{1,2}) -> T x where T 1 = a and T 2 = b.

The dependent sum type consists of a tag value of some type and a value whose type depends on the tag. For example a vector of arbitrary length Of floats could be written with a type something like:

      Sum(n:Nat)(Vec n Float)

And a value like

      (2,[1,2])

Sometimes you see online that every pair can be represented as a dependent sum and this is true but completely misses the point because it implies that you should think of it like a generalised product which you should not do.

<comment><USER17> You can, in fact, use traits to do type-level programming in Rust[1], but this is type-level programming; it isn't /dependent/ types. The biggest "blocker" for using dependent types is that programs must be /total/, because that program has to be evaluated for it to typecheck! If a program is not total, the typechecker has the potential of getting stuck. The two dependently-typed languages I've programmed in, Mostly Agda and a tiny bit of Idris, have totality checkers to aid in this. Generally this means that recursion is only allowed if its structural, and there can be no run-forever loops, i.e., no servers.

I think instead, for one of these languages, the ideal would be opt in should you need it. Dependent types are, by their nature, proof carrying[2], and there are times when you want this, but for a general-purpose programming language, also times that you do not. You can't be total over IO (or any effect for that matter), so, yeah, skip it when arg-parsing, but then opt-in when you're processing your financial transactions or actuating your robot.

[1] [https://dpitt.me/talks/tt-for-rust/](https://dpitt.me/talks/tt-for-rust/)

[2] [http://www.cs.nott.ac.uk/~psztxa/publ/ydtm.pdf](http://www.cs.nott.ac.uk/~psztxa/publ/ydtm.pdf)

<comment><USER18> > The biggest "blocker" for using dependent types is that programs must be > /total/, because that program has to be evaluated for it to typecheck!

Totality is orthogonal to dependent types. You can absolutely have non-total programs at the type level: Rust has such programs _today_ in fact!

> Generally this means that recursion is only allowed if its structural, and > there can be no run-forever loops, i.e., no servers.

You can have an infinite loop in a total language like Agda or Idris: coinduction is the mechanism.

> Dependent types are, by their nature, proof carrying[2], and there are times > when you want this, but for a general-purpose programming language, also > times that you do not.

This doesn't make a whole lot of sense to me. Dependent types are "proof carrying" in the sense that any program of the type:

        Int -> Int

Is a proof that there exists a function of type `Int -> Int`, nothing more. I don't know what "opting out" of the "carrying" there would mean.

> You can't be total over IO (or any effect for that matter), so, yeah, skip > it when arg-parsing, but then opt-in when you're processing your financial > transactions or actuating your robot.

You can be total over IO, and effects do not imply non-totality either.

<comment><USER17> > Totality is orthogonal to dependent types. You can absolutely have non-total > programs at the type level: Rust has such programs today in fact!

Absolutely, the talk I linked to gets at this to some extent. In rust, partiality causes type checking to fail. You could use it on purpose!

> You can have an infinite loop in a total language like Agda or Idris: > coinduction is the mechanism.

For sure, but the totality checker is appeased by sized-types, or at least that's how I know to do it in Agda. I've heard it can be done without them, but I'm not familiar with the approach. This is what I intended w/r/t structural recursion.

> This doesn't make a whole lot of sense to me.

This is because, as the authors state, to type check the program is to evaluate it, so before it can run you have proof that it is correct.

By opting out I'm more talking about the converse, to opt in when you need it. Kind of the opposite of Idris's %partial directive.

> You can be total over IO, and effects do not imply non-totality either.

That's fair, you're right. This is poorly stated.

</comment></comment></comment></comment></comment><comment><USER19> The usual answer for such a question about X2 and X1 is that X1 was really slow. It is usually correct, with the proviso that X2 might _still_ be really slow, only less so.

With most computer artifacts, it is hard to tell, _prima facie_ , that they are slow, until somebody makes a faster one. Then the original comes to be recognized as slow (although somebody will still insist it's not _that_ slow). The faster one might still be slow, but that fact remains unknown.

The fact is that almost everything is slow, in the sense that somebody smarter, more experienced, and more diligent could make it faster, often by doing things that the person who wrote the slow version would have found distasteful.

<comment><USER20> Compared to Haskell, it was slow indeed.

</comment></comment><comment><USER21> The author first goes with:

> Idris 1 is implemented in Haskell, but that has little (if anything) to do > with the difference.

But latter they also go on to say:

> Idris 2 benefits from a robust, well-engineered and optimised run time > system, by compiling to Chez Scheme.

I must say I'm slightly confused here. Yes a rewrite might also enable to avoid all the legacy part that might slow down the code, but what is also possible, is that a new language and a new runtime could enable new optimizations that are not possible before. The author did mention Chez's profiling tools help a lot in the rewrite. So I was curious: is it really true, that we cannot attribute some part of the speedup to language differences?

Also I was interested in the rationale behind using Scheme to replace Haskell, but I failed to find some reasoning behind this, anyone can shed some light on this?

<comment><USER22> That's not relevant at all. I think you have misunderstood the situation here. In Idris 1 the compiler and code generator is in Haskell, but the runtime is in C. So Scheme isn't exactly replacing Haskell but replacing C, for the runtime. (What replaced Haskell was Idris itself, by virtue of being self- hosting.)

The author even says that it's difficult to write C that deals well with the functional style of lots of little functions, and this is a problem Scheme also has and has solved. That's enough rationale to switch to Scheme:

> Generating good C code corresponding to a functional program which might > have lots of small (and higher order) definitions is extremely challenging, > so it is better to take advantage of someone else's work here.

</comment></comment><comment><USER23> What is Idris?

Critical info missing.

<comment><USER24> Your question is fair, and it's unfair you're being downvoted. Idris is a dependently typed programming language.

If you imagine a "cube" of _fundamental_ language features, on one corner is "the simply typed lambda calculus" which you can think of as old-school C. Along each of three edges we add a fundamental language feature: parametric polymorphism (values that depend on their type; think 'C# generics'), type constructors (types that depend on types; something akin to C++ template types like `vector` but not like `std::sort`), and dependent types (types that depend on _values_ ; but definitely _not restricted_ like `std::array`; something more like MacroC or `enable_if`).

There's not a lot of good analogies for this stuff in commonly used programming languages because the big languages are _really_ basic (not simple!) compared to the advanced stuff the programming language theorists have gotten up to.

<comment><USER25> > Your question is fair, and it's unfair you're being downvoted.

I agree partly; I didn't downvote but I think in this case the downvotes are not that weird; it's quite well known what Idris is in HN circles, but that's not the point; the article has links that tell you (pointing to idris-lang) and google idris edwin brady (which is on top of the article) will get you more than you want to know most likely but at least enough to know what it is. So it is the absolute bare minimum to open an article and pop in; 'what is this?' if it's not in the first line of an article which I think is not great. A little bit more I do expect from this place; like clicking on the article, _immediately_ recognising it as a language (that's clear within seconds of scrolling the article I would say) and then maybe come back with 'what is dependently typed?' or something. But going from opening the article to hitting wikipedia explaining dependently typed languages is ... well, not _much_ more work than doing nothing and just popping 'huh?' in here imho.

Edit: actually, just google 'idris2' and you have in the first line exactly what, who, why etc.</comment></comment></comment>


Killersheep – Silly game to show off the new features of Vim 8.2 - <AUTHOR> https://github.com/vim/killersheep <comment><USER2> Floating windows is kind of a big deal.

Imagine not having a full screen spell check suggestion window, but instead a little context menu that pops up where you can pick a suggestion while still being able to read the original buffer that you're trying to spell check. Sort of like what Sublime Text had forever.

Or little snippets of helpful text for git specific details or inline documentation for auto-complete.

I've only been using Vim for about 8 months but floating windows is something you severely miss having previously used other editors like VSCode. Now with them in tact, it will unlock all sorts of great features and UI wins. I wonder how long it will take for plugins to start adopting it.

<comment><USER3> I'm a newbie vim user, but my friends and colleagues that have been using it for years have been professing for years that floating windows are a distraction. That part of vim's appeal is the raw and undisturbed viewport. Not now though. These floating windows are like the second coming.

<comment><USER4> It's a preference. These have been available for Emacs in various forms for a while but I much prefer side info (from lsp and the like) to pop up in another buffer and only when I ask for it.

</comment></comment></comment><comment><USER5> Gameplay video:

[https://www.youtube.com/watch?v=A33pDTAFtdY](https://www.youtube.com/watch?v=A33pDTAFtdY)

<comment> as-j If you want to skip the install, and misc setup, and just see the game:

[http://www.youtube.com/watch?v=A33pDTAFtdY&t=1m23s](http://www.youtube.com/watch?v=A33pDTAFtdY&t=1m23s)

</comment></comment><comment><USER6> Vim users were laughing when emacs had games. Who's laughing now?

<comment><USER7> Everyone.

</comment></comment><comment><USER8> What's the deal with Neovim these days? Are people migrating or is Vim still the go to... Vim?

<comment><USER9> I view it as a Perl 5/Perl 6 thing. I don't want to invest in Vim, because supposedly Neovim is the future. I don't want to invest in Neovim, because it's still being developed, and with the way plugins are created using Message Pack, it seems like it has to be slow. My response: do other things with my time.

<comment><USER10> Please note that there is no longer a Perl 5 / Perl 6 thing, as Perl 6 has been renamed to Raku ([https://raku.org](https://raku.org) using the #rakulang tag on social media). How this would apply to the Vim / Neovim situation, I'm not sure. With regards to slowness: over the past years, Raku has gained orders of magnitude in speed in almost all areas of the system.

<comment><USER9> > How this would apply to the Vim / Neovim situation, I'm not sure.

Because year after year, the new version of Perl was supposedly on the way. After they pretty much killed the language by having a new version that wasn't ready and nobody wanting to invest in the old version, they decided to salvage what they could of their userbase. I'm seeing an exact repeat (from the view of outsiders) with Vim.

<comment><USER11> There are a lot of differences between vim/neovim and perl 5/6:

1\. When Neovim came along, vim had stagnated. Many features (notably async) in vim 8 probably would not be there if neovim didn't exist. 2\. Neovim is "ready". The only feature classic vim has that is really missing from neovim is a really solid GUI (or maybe I just haven't found it yet). And at least for me, the TUI features make running it in a terminal fine. 3\. Neovim has a very high level of compatibility with classic vim. Migrating from vim to neovim generally doesn't require changing the config very much if it all. Most plugins work on both. Many patches from vim are carried over to neovim, etc. It's even possible to use the same config for both neovim and classic vim, so you can easily switch between them.

The biggest concern, I think, is that there is some divergence in the APIs for new features, which requires a little bit more work for plugin maintainers to support both. And without any real dependency system for plugins, it's more complicated to distribute a compatibility layer. (and polyfills are impossible since you can't have all-lowercase user-defined function names in vim)

At this point you can mostly think of neovim and classic vim as two implementations of the same thing. Both are innovating, and ideas are shared between them, but sometimes they have slightly different APIs for new or experimental features, but hopefully those apis converge over time.

</comment></comment></comment></comment></comment><comment><USER12> Good new features. I'm waiting for a fix letting 'SpecialKey highlighting overrules syntax highlighting'

[https://vi.stackexchange.com/questions/18768/highlighting- ta...](https://vi.stackexchange.com/questions/18768/highlighting-tabs- trailing-space-and-non-breaking-space-by-colors-not-chars)

</comment><comment><USER13> Wow, vim is now a game engine too;-) Seriously, I'm really happy that Vim is alive and is developed further.

</comment><comment><USER14> I looked up a Twitter demo of how the new floating window feature is going to be used [0] and my only reaction is "I hope this doesn't get used by any core feature of the editor in the future". There's something about an always moving visual element that isn't directly under my control that feels extremely uncomfortable to me and is something I honestly didn't expect in vim. One of my favorite things about it has always been that it took up about two columns and a row of space to display anything that wasn't the file being edited.

[0][https://mobile.twitter.com/neovim/status/1101893773561348096...](https://mobile.twitter.com/neovim/status/1101893773561348096?lang=en)

</comment><comment><USER15> The title here made me think of Jeff Minter...

[https://www.wikipedia.org/wiki/Sheep_in_Space](https://www.wikipedia.org/wiki/Sheep_in_Space)

</comment><comment><USER16> I haven't followed the vim / neovim competition storyline for a couple years.

What's the news on that front?

<comment><USER17> In theory the two editors are closer in features than they have been in the past but in practice neovim feels like a superset with unique plug-ins and a more active community of people working on them.

</comment></comment><comment><USER18> What's the point of having sound in vim?

What are possible use cases?

Can't a plugin developer do this externally?

This also brings the question of why having a GUI?

<comment><USER19> Sound could be useful for accessibility.

</comment></comment><comment><USER20> Curious what Bill Joy would think about this.

</comment><comment><USER21> Just use Emacs with evil mode, much better editing experience and you have all these features already. For ones you don't, just code it up in a few functions.

<comment><USER22> > For ones you don't, just code it up in a few functions.

why waste that time instead of using vim?

<comment><USER21> > why waste that time instead of using vim?

That's a fair point, but this situation rarely occurs because someone else likely has already written those functions before you, and adding it into emacs is as easy as `M-x package-install; PACKAGE`</comment></comment></comment>


ScaleConf SouthAfrica - Conference on scalable websites and services - <AUTHOR> http://scaleconf.org Web Conference in South Africa on scalable websites and services with speakers from Github, Amazon, Yammer and more. <comment><USER2> It's about time we had some decent dev conferences in SA. The only other two worth noting are infosec-related, namely ZACon and ITWeb Security Summit.

<comment><AUTHOR> we thought so too :) - help us spread the word on twitter @scaleconf

</comment></comment><comment><USER3> Speakers include Zach Holman from GitHub, Coda Hale from Yammer, Simone Brunozzi from Amazon, and Chris Brown from OpsCode.</comment>


Mobile Payment Startup Venmo Is Killing Cash - <AUTHOR> http://www.businessweek.com/articles/2014-11-20/mobile-payment-startup-venmo-is-killing-cash#r=most popular <comment><USER2> Is Venmo still considered a startup? It was acquired by Braintree in 2012, which itself was acquired by PayPal, an eBay subsidiary, in 2013.

<comment><USER3> If that's the case, I wouldn't consider them a startup anymore. Especially if the major decisions have to be routed through eBay.</comment></comment>


What's killing the video-game business? - <AUTHOR> http://www.slate.com/id/2210732/pagenum/all <comment><USER2> I'm convinced the budgets aren't necessary. The way major games are developed at the moment is just appallingly inefficient, and I see little indication that anyone is trying to do something about it.

<comment><USER3> There are plenty of indy game companies who are producing fun and innovative games without spending millions. Of the top of my head:

Braid - <http://braid-game.com/>

Toribash - <http://www.toribash.com/>

Everyday shooter - <http://www.everydayshooter.com/>

Cortex command - <http://www.datarealms.com/games.php>

Introversion Games in general - <http://www.introversion.co.uk/>

Velociraptor safari - <http://raptorsafari.com/play.php>

Armadillo run - <http://www.armadillorun.com/>

Love (not released yet but _so_ promising) - <http://www.quelsolaar.com/>

I predict that the combination of poorer customers and more accessible distribution channels (steam, iphone, kongregate) will result in a string of successes for such games - maybe enough to change the way the industry works.</comment></comment>


The Pentagon's Mysterious U.F.O. Program - <AUTHOR> https://www.nytimes.com/2017/12/16/us/politics/pentagon-program-ufo-harry-reid.html?_r=0 <comment><USER2> This is the third UFO related post on the front page. What is going on?

<comment><USER3> It's the Russians?

</comment></comment><comment><USER4> They have physical evidence?!

<comment><USER5> They claim to have « metal alloys and other materials ».</comment></comment>


The Go Workbench - <AUTHOR> https://docs.google.com/presentation/d/1mUIX3btCiGPguqJOE4h9HDoOW3VyhU2-tzXufz9PqQ0/edit#slide=id.p <comment><USER2> I think this is a good idea for beginners, if the golang workflow continues to be un-intuitive.

As an experienced programmer that is relatively new to Golang, I feel that the team have simply missed the mark on some of the tooling and basics, that other languages and workflows have had right for decades.

It shouldn't matter where I want to check out my code to, or where I decide to store it.

GOPATH is great for maintaining dependencies but why should my project code have to go there?

However, if you subscribe to the workflow as it is, it's easy to pick up once you have read the documentation. The Workbench could be useful, but I think it would be more of a tutorial to introduce beginners to something they should learn to do by them selves from there on out.</comment>


NET Core and ASP.NET Core RC2 Released - <AUTHOR> https://www.microsoft.com/net/core <comment><USER2>
        $ docker run -it microsoft/dotnet:latest
        # dotnet new
        # dotnet restore
        # dotnet run

You can run asp.net apps from this container too as they have packaged libuv into a nuget package.

<comment><USER3> zsh: command not found: dotnet

Does not work on OS X following these instructions: [https://www.microsoft.com/net/core#macosx](https://www.microsoft.com/net/core#macosx)

<comment><USER2> I greatly prefer using docker for reasons like this. Otherwise, I'm not sure what's going on. I just ran through those instructions on my Mac. After installing that package and starting a new shell, `dotnet` was working.

There's a slack room which might be able to provider further support: [http://tattoocoder.com/aspnet-slack-sign-up](http://tattoocoder.com/aspnet- slack-sign-up)

<comment><USER3> Dunno, restarted my Mac - still not working. Running latest version - 10.11.5

<comment><USER2> (I and more authoritative individuals can help more in Slack without cluttering up this thread too much.) If the Installer did its job, you should have /usr/local/share/dotnet on your $PATH and it should contain a `dotnet` binary among some other items.

</comment></comment></comment></comment></comment><comment><AUTHOR> Better link: [https://www.microsoft.com/net](https://www.microsoft.com/net) or [http://dot.net](http://dot.net)

<comment><AUTHOR> Announcing .NET Core RC2 and .NET Core SDK Preview 1 [https://blogs.msdn.microsoft.com/dotnet/2016/05/16/announcin...](https://blogs.msdn.microsoft.com/dotnet/2016/05/16/announcing- net-core-rc2/)

Announcing ASP.NET Core RC2 [https://blogs.msdn.microsoft.com/webdev/2016/05/16/announcin...](https://blogs.msdn.microsoft.com/webdev/2016/05/16/announcing- asp-net-core-rc2/)

Announcing Updated Web Development Tools for ASP.NET Core RC2 [https://blogs.msdn.microsoft.com/visualstudio/2016/05/16/ann...](https://blogs.msdn.microsoft.com/visualstudio/2016/05/16/announcing- updated-web-development-tools-for-asp-net-core-rc2/)

\-----

.NET Core RC2 is supported on the following platforms:

Red Hat Enterprise Linux 7.2

Centos 7.1

Debian 8.2 (8.2, 8.3, 8.4)+

Ubuntu 14.04 (16.04 support is coming at RTM)

OS X 10.11

Windows 7+ / Server 2012 R2+

Windows Nano Server TP5

<comment><USER4> I hope it works with Server 2012 non-R2....

</comment></comment></comment><comment><USER5> The branding Active Server Pages (ASP).NET reminds me of the old MS. Why not something simple like Core.NET that suggests it can be used for other things besides server-side MVC pages? Core seems to be a real alternative to Java and Go for API services.

<comment><USER6> So you want them to have .NET Core and Core.NET?

That's just a horrible idea.

<comment><USER5> It was not a real suggestion for the brand name. I don't know what their project codes are anymore. I thought it was ASP.vNext a few months back.

</comment></comment></comment><comment><USER7> Good news. Hopefully it will actually RTM by the end of June.

I'm a little disappointed that [http://dot.net](http://dot.net) is just a redirect to this and they're not hosting from that. :)

</comment><comment><USER8> Is this now an integrated release with the compiler and toolchain?

In the cross-platform section, what is Linus? Do they mean Linux?

[https://www.microsoft.com/net/core/platform](https://www.microsoft.com/net/core/platform)

I can't stand that each of their primary link leads to a completely different website, each with its own navigation and visual design.

</comment><comment><USER3> [https://docs.asp.net/en/latest/](https://docs.asp.net/en/latest/)

Documentation lags severely behind though.

</comment><comment><USER9> Unfortunately they aren't packaging / supporting Ubuntu 16.04 (Xenial), which is the latest LTS.

I understand that supporting 14.04 makes sense for now and that supporting non-LTS releases is maybe an unjustifiable burden, but 16.04 is a LTS release and I tried installing the 14.04 packages and it didn't work as they've got unmet dependencies.

/me sad

<comment><AUTHOR> Says Ubuntu 16.04 support is coming at RTM (June?)

</comment></comment><comment><USER10> Still project.json tho, they said they will remove it in future. Too bad not now.

<comment><USER9> And replace it with what? Source?

<comment><USER11> Going back to .csproj files, but improving those.

From [0]: "Question: project.json is going away? Sadface

What were the things we liked? It was small, contained NuGet information, and could be edited by hand. Damian does not want to lose any of those benefits, and that is why they are working in several steps to complete this migration. Additionally, the team is building tooling at the command line so that you don't have to work with the project file directly. Consider a possible npm- like command like "dotnet install json.net –save" to add a NuGet package to your project. There will be first class commands like this available.

The new MSBuild will not have a complete list of every file, so that should reduce the size of the build file. It will still be XML, but the team is committed to making that experience better for all .NET projects. This will be an enhanced MSBuild that has all of the best parts of project.json"

[0][https://blogs.msdn.microsoft.com/webdev/2016/05/11/notes- fro...](https://blogs.msdn.microsoft.com/webdev/2016/05/11/notes-from-the-asp- net-community-standup-may-10-2016/)

<comment><USER9> Oh man.

It's not like I liked the idea of project.json, because it clearly has problems, like being rigid / not extensible.

But I was hoping for a migration towards something like Maven / Gradle / SBT / Leiningen. And extending MSBuild is not a solution towards that.

And it's really not about MSBuild being XML. No, this is about MSBuild being too freaking manual, in an Ant/Makefile fashion. Maven is declarative, it depends on established conventions with overridable settings and has plugins. And it takes care of _everything_ , from dependency management, building, deployment, testing, continuous integration, metrics, etc, things for which people normally use Visual Studio or TFS or other third-party and usually incomplete, bloated and expensive solutions. And sure, providing command line tools that modify MSBuild is nice. But you know, the fact that you need a tool to modify MSBuild highlights a big problem. And no, it's not because of the XML.

</comment></comment></comment></comment><comment><USER12> I'm curious, for anyone that has experience with .NET on Linux, for new stuff that you're writing, is it better to go with this or with Mono? How about if you wanted to give it a GUI interface?

<comment><USER13> Yes, the team I work on has experience with both, and .NET Core is the way to go.

I work on RavenDB[0], a NoSQL database for .NET. We tried porting our database technology to Linux using Mono, and we encountered many serious bugs.

We have since abandoned that port and moved to .NET Core. It is successful, and we will be releasing that in the next major version of our software, RavenDB 4.0.

[0]: [http://ravendb.net](http://ravendb.net)

</comment></comment><comment><USER14> I don't see downloads for FreeBSD. CoreCLR (.NET Core) mentions FreeBSD at github, but nothing from Microsoft's announement of RC2.

<comment><USER15> IIRC freebsd was a community port [https://github.com/dotnet/coreclr/issues/793](https://github.com/dotnet/coreclr/issues/793).

Or possibly netbsd [https://github.com/dotnet/coreclr/pull/4504/files](https://github.com/dotnet/coreclr/pull/4504/files)

Those version may require self-build or a bit more heavy lifting.

</comment></comment><comment><USER16> I used RC1 on Linux which was fine but now I'm going to wait for the final release (end of the year?), obviously people using PostgreSQL or MySQL with EF won't get a functional driver soon.

<comment><USER2> I'm using the Postgres EntityFrameworkCore provider from here without issue so far: [https://www.myget.org/gallery/npgsql- unstable](https://www.myget.org/gallery/npgsql-unstable)

<comment><USER16> With RC2 on Linux ? or RC1 ?

<comment><USER2> With RC2 on Linux (in Docker). In the myget link I just posted, you can see that those EF-npsql packages depend on 1.0.0-rc2-final packages.

</comment></comment></comment></comment><comment><USER17> does .net core has an FFI for (Linux / Mac)?

<comment><USER18> Assuming you mean "foreign function interface", then yes, P/Invoke is supported on .NET Core just as it is in the .NET Framework (the Windows component). We use it extensively in the core libraries to access platform functionality.

(I work on the core libraries for .NET)

<comment><USER17> oh thanks is there any documentation around that or is it better to look into the source?

<comment><USER18> Most of the documentation/tutorials you find will be perfectly relevant, but they may be Windows-centric based on .NET's history.

At a really basic level, you simply declare a "static extern" method with a "DllImport" attribute attached to it. For example, you could call "printf" from libc like so:

      [DllImport("libc")]
      public static extern void printf(string message);

      static void Main()
      {
          printf("Hello World");
      }

<comment><USER17> What happens if the library isn't in LD_LIBRARY_PATH could I specify a path with DllImport?

<comment><USER18> Yes, you can specify a relative/absolute path in DllImport if you'd like. Generally it is easier to get consistent behavior if you either: 1) rely on the user to install the binary somewhere and place it on the path, or 2) deploy the native binary along with your application. We generally do 1) in .NET Core, or we rely on components of Windows, for example.

<comment><USER17> That won't work with Nuance CSDK. It will install the Linux binary to /usr/local/nuance-csdk/bin, /usr/local/nuance-csdk/lib, etc..</comment></comment></comment></comment></comment></comment></comment>


It's Your Choice, Europe: Rebel Against the Banks or Accept Debt-Serfdom - <AUTHOR> http://www.oftwominds.com/blogdec11/euro-debt-serfdom12-11.html

<comment><USER2> Guys, this article is really wrong. I am European and the problem is much deeper than that. It concerns the welfare system that has grown too big to be sustained by income taxes. Even having a taxation that is now close to 50% of the GDP.

Banks are only a small subset of the problem. Europe has to find a way to either increase welfare productivity or to reduce it in order to reduce public expenses.

What is driving now the crisis are public expenses, don't fool around with other fantasies.

Edit.

People are voting down. Not sure why. I am being harsh, but rationale, that should be fine with HN style.

<comment><USER3> _It concerns the welfare system that has grown too big to be sustained by income taxes._

Or, to put it another way, the income taxes have become too low to support the welfare system.

To be honest, the amount of spurious framing in these debates is annoying me. _Of course_ the welfare system is sustainable. The only question is whether there is a _will_ to sustain it.

One way to look at it (which, admittedly, may be a form of framing as well): Do we want to live in a perhaps demanding but still caring society, where you can focus on achieving great things, or do we want to live in an uncaring society, where the majority is forced to focus on maintaining what little they have.

Fear of losing status or real standards of living is a great productivity killer, because fear generally switches our brains into a narrow-minded tunnel vision mode. That mode may be useful when you're chased by wolves in the forest, but it's not such a great thing for being productive in a complex economic environment.

 _What is driving now the crisis are public expenses, don't fool around with other fantasies._

There are always two sides of the coin. Where you see high expenses, I see low income.

It is also important to note that public welfare systems tend to be more efficient than private ones. In the case of Germany, for example, the overhead of private pension funds is often around or above 4%, where the overhead of the public pension system is below 1%. So for the same amount of pensions provided, the private system is more expensive and less efficient than the public system.

<comment><USER2> All what you want. But Italy has a tax to gdp ratio close to 50%. Germany has it probably higher than 40%.

You want to increase taxes? Fine. Then say you want to nationalize the economy, because that is the end result.

<comment><USER3> I am sorry, but that does not logically follow. If you think it does, then at least you have to explain why you think this is the case. There certainly have been times with higher tax ratios without a nationalized economy.

</comment></comment></comment></comment><comment><USER4> Thank you for framing the choice like this. The article mentions as a case in point Iceland; our Western media has conveniently ignored the miracle that occurred there post-banking crisis. They threw the government and banking chiefs out and started their democracy afresh- actually having ordinary Icelandic people help reformulate their Constitution and their future. It's a beautiful story: <http://wilmaswish.blogspot.com/>

<comment><USER5> A beautiful story which is only partially true, and which would probably never scale. Paris alone has 7 times the population of Iceland; good luck having the whole European population "reformulate their Constitution[s]".

</comment></comment><comment><USER6> Just so I understand the difference between Europe and USA+UK...

The USA has tons of debt too. Per person it's unmanageable. The only reason this is okay (and we keep talking about Europe) is that the USA can print more money and Europe can't. Is this right?

UK: The pound isn't doing so well at all. The UK can also print money. Same argument as the USA?

<comment><USER7> The Pound (GB, rather than Syrian) is doing just fine - almost no-one can borrow as cheaply as the UK can, and inflation is a little too high, but that's factored in to the price. The UK also still maintains an AAA rating, and unlike much of the other European AAAs, isn't on credit watch either. The UK economy isn't growing so well, and we won't have eliminated the structural benefit as soon as they'd have liked, but ain't nothing wrong the Pound.

<comment><USER3> _The UK economy isn't growing so well, and we won't have eliminated the structural benefit as soon as they'd have liked_

This is largely by choice. The UK government is on the forefront of the austerity crowd. They cut spending and fire people. Is it any surprise that GDP (which is basically the sum of all spending) is on a disappointing trajectory?

In a way, the UK government is doing economics a huge favor by acting as a laboratory that implements unneeded austerity.

The proponents of austerity predicted an upswing of activity as a result. I would say their theory has been proven wrong by now.

<comment><USER7> As with all economics, anyone suggesting they know with any certainty at all how something is going to turn out is trying to separate you from your money ;-)

The Economist has a pretty good article this week looking at just this: <http://www.economist.com/node/21541021> \- I'm not sure if the full text is available to non-subscribers. Their opinion seems to be that the austerity plan was basically right, but it could now be loosened a little to encourage growth.

<comment><USER3> A quote from the article:

 _Left untackled, the budget deficit, which at 11.2% of GDP in 2009-10 was larger than those of almost all other rich countries, would soon have undermined confidence in the government's ability to service its public debt._

This is the crucial flaw in the article's argument. The UK government is monetarily sovereign, and therefore always able to service its debt. That pretty much destroys the article's argument in favor of austerity.

Note that, unlike economists, most bond traders seem to actually understand the importance of monetary sovereignty. This is why you now hear talks about Germany's debt possibly being downgraded, but nothing about the UK or Japan, and not any more about the US (where the only thing that was ever in question was the government's _willingness_ to pay, not its _ability_ ).

<comment><USER7> > This is the crucial flaw in the article's argument. The UK government is > monetarily sovereign, and therefore always able to service its debt. That > pretty much destroys the article's argument in favor of austerity.

This is almost true technically, but not true how it matters. In order to service "unserviceable" debt, they need to cause inflation. Expected inflation gets priced in to bond yields, and inflating your way out debt ends up being not very useful if you will then need to go back to the money markets at some point in the future.

But actually, your central point is also not quite true: the UK government is NOT monetarily sovereign - in theory anyway - because it's the BOE who sets the money supply in practice. And it's for this reason that they have an inflationary target. Can the government intervene? Almost certainly. Will this further fuck market confidence and drive up bond yields? Yes. Do you get to a point where no-one will buy government bonds in GBP rather than USD? Absolutely.

</comment></comment></comment></comment></comment></comment><comment><USER8> GDP and government debt comparison:

<http://www.wolframalpha.com/input/?i=gdp%2C+debt>

<comment><USER9> It's not so simple. First, GDP has reflective aspect, so that if you sell me something for $10 and I sell it to Bob for $20, GDP goes up $30. It's a much rougher figure than we expect and if there is a crisis, it may decline rapidly where the debt figure will not.

Secondly and more importantly, not included in that government debt amount are future obligations. For example, in the US, unfunded obligations for government employee retirement and veterans' benefits, Social Security, Medicare and other programs are around $50 trillion. Add that in.

The coming crisis will be a surprise to many. But Thanksgiving is only a black swan to the turkey, not to the butcher.</comment></comment>


Language Fatigue - <AUTHOR>

I went back to college several years ago and am about to finish my B.S. in EE & CS.  I am beginning to prepare for interviews and lately I'm continually updating my resume.  While I was doing a resume update, I noticed that I listed several "languages known" and thought "Hmm, they'll probably ask me some detailed questions about these languages to see that I'm not full of shit."
However, the past 5 years of college has been a blur of languages used in classes, on my own time, and in freelance jobs.  Despite being, 5 years ago, what I would consider very good in several languages, today I probably couldn't demonstrate that very well.  I would probably need to Google things that I knew of the top of my head 5 years ago.  (I'm sure some details of each language have also changed.)  Even for the languages I've used recently, despite buying several books about each and really diving into them at the time, six months or a year later the details get fuzzy.
How should I deal with this sort of thing in an interview and on my resume?  I'm sure given a month or so of dedicated time on one of the languages I've used I'd be able to get back to approximately where I was, and all the instincts and habits are still with me, but that doesn't help me much in a code interview.
Obviously I'll be reviewing at least one language and doing some practice code in it before interviews, but this isn't practical for all the languages I've had exposure to.  At the same time, I don't want to completely leave off languages from my resume that I've developed some good familiarity with, because won't that make me look less well rounded or take something away from my overall experience?
What advice can you give me?  Thanks. <comment><USER2> Why not just communicate all this on your resume? More concisely, of course.

Proficient in: A, B, C.

Also have programming experience in: D, E, F.

Disclaimer: I've never been on either side of a resume-based programmer hiring process. Not speaking from experience.

</comment><comment><USER3> It probably doesn't matter too much unless the company is looking for proficiency in a particular language, and in that case you would know it going in to the interview. When we give a coding problem, we let the candidate choose between C++ and C#, and the problems are such that the language doesn't really make much of a difference; other than minor IO and collections, there aren't any library calls. I prefer not having to explain why a reference to "cout" raises a compiler error (it's in a namespace), but the correctness of the algorithm is way more important.

</comment><comment><USER4> I would suggest spending a bit of time writing code in the languages you got rusty at. It doesnt have to be much, just some euler project problems, a small web interface, whatever. It will probably help you to prepare your interviews, and you could show your pieces of code to the employers, saying something like "I put this couple of lines on my github repository, feel free to check it."</comment>


Alien Earths: why life on other worlds would be far weirder than us  - <AUTHOR> http://www.theverge.com/2014/2/13/5405788/exoplanet-search-for-habitable-planets <comment><USER2> Sure, red dwarf planets are temperate NOW. But how long have they been that way? What was the star before it became a dwarf? How many billions of years does it take for life to percolate?

We're a yellow sun - it took a long time for life to develop here - and our sun has been shining along fairly evenly the whole time. That has to be part of the equation, right?</comment>


RjDj Generates An Awesome, Trippy Soundtrack For Your Life - <AUTHOR> http://www.techcrunch.com/2008/10/13/rjdj-generates-an-awesome-trippy-soundtrack-for-your-life/ <comment><USER2> Is the etymology there R2-D2 -> Rjd2 -> RjDj?</comment>


New in Gmail Labs: Unread message icon - <AUTHOR> http://gmailblog.blogspot.com/2011/01/new-in-labs-unread-message-icon.html <comment><USER2> I had no idea Chrome had that "pin tabs" feature until I read this blog post. My tab bar is suddenly a _lot_ neater without the ever-present Gmail/HN/SO occupying as much space as the stuff I'm actively working on.

<comment><USER3> Me neither. But I have multiple gmail apps open. How do I tell the difference? grah.

<comment><USER4> Have them all forward to one gmail account and manage them from there.

<comment><USER5> There's a "multiple inboxes" labs feature that would probably come in handy for this.

</comment></comment></comment></comment><comment><USER6> I find the 'unread messages count' to be extremely distracting when I'm trying to actually get real work done.

Through the corner of my eye, I'm constantly glancing and thinking: did it just increment?

Just keep your email closed until you get stuck on that hard problem, ha.

<comment><USER7> I use HTML based version (faster and less prone to JS glitches) and there's no gmail number in title.

<comment><USER8> You should give keyboard shortcut a try (require JS). This alone forces me to use JS in gmail.

</comment></comment></comment><comment><USER9> This just in: cloud services discover biff(1). Within a few years we should have an OS.

Sorry to be cynical, it pains me to see the whole state of computing thrown out the window everytime we reinvent new paradigms (none of which add substantial value).

Hint: we'll progress when we start building over old assets, not reinventing them at every "guerre de clocher".

<comment><USER10> It also pains me to see how the web has forced us back a decade in terms of what's an impressive UI feat.

When your hands are tied, undoing a knot becomes notable.

</comment></comment><comment><AUTHOR> Appears to be based on this code: <http://snipplr.com/view/29188/>

EDIT: actually, it might or might not be based on it, but that code shows how to implement dynamic favicons, at least for Google Chrome.

Another edit: MikeCapone observed in another comment that it only goes up to "30+" so they might just be using 30 static images. But if so, why that wouldn't work in browsers other than Chrome 6+ and Firefox 2+ is beyond me.

<comment><USER11> Just guessing, but it's probably because most browsers heavily cache the favicon image.

<comment><AUTHOR> Surely it would be cached based on the image URL though, not based on the page URL, and different images could use different URLs. I still don't see how this would pose a problem.

</comment></comment></comment><comment><USER12> Interesting... I like it, but it's entirely eclipsed by extensions like Google Mail Checker Plus[1], for me.

[1]: [https://chrome.google.com/extensions/detail/gffjhibehnempbke...](https://chrome.google.com/extensions/detail/gffjhibehnempbkeheiccaincokdjbfe)

<comment><USER13> I prefer the favicon over the extra clutter of another icon.

<comment><USER14> depends how many accounts you've got. I'm checking 3 accounts so it saves having to have 3 pinned tabs open.

</comment></comment></comment><comment><USER15> I've been using Better Gmail for Chrome to get this functionality: [https://chrome.google.com/extensions/detail/gmfocnipihcoejdi...](https://chrome.google.com/extensions/detail/gmfocnipihcoejdieiimhiecclokidea)

<comment><USER16> There is also a Better Gmail extension for Firefox.

</comment></comment><comment><USER17> What I really want is something that can cause the icon to change when I get new chat messages. I frequently find myself unable to hear the soft incoming message sound, because I'm listening to something louder, and it would be nice to have a visual indicator.

<comment><USER18> I use this Greasemonkey script to do this. It works in Chrome and Firefox:

<http://userscripts.org/scripts/show/24430>

It does the unread count thing, but it also toggles between it and the chat icon if you have unread chat messages. It's a must if you pin gmail tabs.

<comment><USER17> I've been using this script all day, and it's been great. Thank you so much.

</comment></comment></comment><comment><USER19> What's the point? How many people actually keep fewer than 10k unread messages in their inbox?

<comment><USER20> I have none. I have a complex series of filters which direct mailing lists, automated emails, etc into separate labels which bypass the inbox. If it makes it to my inbox, it's important enough to be read quickly -- this generally means only about 50-100 emails a day.

<comment><USER21> Wow. 50-100? I filter down to less than 10 a day. Either I'm much more aggressive with my filtering or you are far more of an important person than I am.

</comment></comment></comment><comment><USER22> It's great, I actually wanted this thing since I use pin tab all of the time for Gmail, but I dislike that it displays a number even if you have an empty inbox too.

I don't like seing a 0, it should have defaulted to the normal icon. I try to keep my inbox as short as possible and I label a lot so having an empty inbox is expected.

</comment><comment><USER23> That's nice. A couple years ago I suggested that they should do that for the GMail link on the Google homepage:

[http://michaelgr.com/2008/11/17/google-homepage-feature- requ...](http://michaelgr.com/2008/11/17/google-homepage-feature-request- gmail-unread-emails-notifier/)

</comment><comment><USER23> I installed it and it just says 30+

I wish it went up to 99 at least. I get about 150 emails a day...

<comment><USER24> I have 100+. Not sure what the discrepancy is.

<comment><USER23> I tried reloading and I still have 30+. Strange.

Update: After a bit of usage of GMail it's been updated to 70+. Seems to be working now.

</comment></comment></comment><comment><USER25> Huzzah, now I don't need this extension to do this for me. Rather off topic, but I really wish one day that gmail (@gmail.com and custom domains) supported multiple logins from the same window, I have Opera installed _just_ for company email.

<comment><USER26> I hate Google's multiple login behavior, so I just open an incognito window for my less frequently used accounts.

<comment><USER18> What do you hate about it? I like the idea, but I find it to be buggy and incomplete. Not all of the Google services work with it yet, mobile versions of their sites don't seem to support it at all, etc. If/when that's solved, I think it'll be an improvement over having multiple browsers open.

<comment><USER26> For instance, I'm normally logged into my personal account, which uses Mail, Voice, Calendar and more. To use Mail with my work account, my current account in _every_ service is changed, so my Voice Chrome extension no longer shows correct data, as well as other weirdnesses that I've blocked from my memory since I started using incognito windows instead.

</comment></comment></comment></comment><comment><USER27> Number of starred items might be more useful.

Also, seems to be an issue - this number does not increase (from 0 to 1 in the test I did) when you 'mark as unread'. Tried to give feedback about this to gmail labs but couldn't.

</comment><comment><USER28> I wish they would come out with a HTML5 Desktop Notifications lab feature.

<comment><USER29> They don't have a lab feature for HTML5 Desktop Notifications, but you can build extensions utilizing it. Here is one I built to show notifications for gmail chat messages:

[https://chrome.google.com/extensions/detail/phokmbaffndjgejh...](https://chrome.google.com/extensions/detail/phokmbaffndjgejhemchophkkpdmpeln)

:)

</comment></comment><comment><USER30> Nice feature, but they'd better not show 0 when no unread messages.

<comment><USER31> That's exactly what they do. I'm not quite sure why you think it's such a bad idea though?

<comment><USER32> I don't know the grandparent's reasoning, but for me, having a small 0 there means I loose the peripheral vision effect of the icon. That little glowing "0" is hard to distinguish from another number in quick glance. If there were no icon then I could quickly determine the most important piece of information to me - do I have mail or not?

Screenshot of the "0" and "2" from two Gmail tabs I have open side by side:

[http://img109.imageshack.us/img109/6883/20110126084559select...](http://img109.imageshack.us/img109/6883/20110126084559selection.png)

I tend to keep my inbox fully read. It's my staging area - Unread = totally unprocessed, Read = TODO, Starred = Deferred TODO or important later. For me, a quick glance for unread (any amount) is more useful than exactly how many.

</comment></comment></comment><comment><USER33> Very handy feature to have, I had been keeping an eye on the pinned tabs - they flash/pulse when the page updates (new email comes in), now it's a lot easier.

</comment><comment><USER34> It would be cool if we could interact with the app via the tab. Example: I'm in another tab and can right click the pinned Pandora tab to pause the music.

</comment><comment><USER35> Good, the extension I was using in Chrome had a tendency to be a bit buggy.

</comment><comment><USER36> Now only if Campfire would add this feature I could pin both these tabs.

</comment><comment><USER37> I was excited but it seems slower than <title> to update. Ugh.

</comment><comment><USER38> i want the shortcut icon to do this in my bookmark bar.</comment>