Headphone startup Kanoa shuts down - <AUTHOR> https://getkanoa.com/ <comment><USER2> It's worth mentioning that a reviewer on YouTube recently posted a scathing review of their product[1]. It's a long video so TL;DR: product is junk and they knew it plus they tried to pay him off with a paltry $500. No idea how much of am impact this made on the decision to shutter the company.

1: [https://www.youtube.com/watch?v=36Gw3tErUSM](https://www.youtube.com/watch?v=36Gw3tErUSM)

<comment><USER3> I particularly liked the part where he tells the engineer "you're not understanding me, I don't care _why_ it doesn't work, I'm just telling you that it doesn't work. I'm a consumer and these are $300 earphones and they can't send a signal from my ears to my ass" [1]

Reminds me of so many people I've worked with who think it matters to consumers/users why something doesn't work. Like they can justify it, and it's not that big a deal.

1\. [https://youtu.be/36Gw3tErUSM?t=16m20s](https://youtu.be/36Gw3tErUSM?t=16m20s)

<comment><USER4> > I'm a consumer and these are $300 earphones and they can't send a signal > from my ears to my ass

To be fair, that's not the intended function of earphones.

<comment><USER5> From the video, they're wireless headphones, connected to his phone and his phone was in one of his back pockets and couldn't stay connected for more than '10-12 seconds'.

<comment><USER6> That's actually pretty typical; every Bluetooth earbud I've tried has tended to cut out when I move so that my body's blocking the signal path. Low-power, high-frequency signals like these really don't penetrate human tissue well, so when there's a large cross-section between the transmitter and receiver, not enough signal gets through for the decoder to produce audio. And the earbud form factor imposes a significant additional challenge, in that the antenna is already mostly surrounded by insulation.

I mostly solve this by carrying my phone in a side rather than a back pocket. But it still cuts out if I turn my head far enough to the side, as when checking traffic in a road I'm about to cross. Them's the breaks - if you want to wear a radio receiver in your ear and carry the transmitter in your pocket, there's some physics you pretty much just have to deal with.

Don't get me wrong - I totally get being upset with $150 earbuds that don't work reliably, especially when they're sold startup-style as the best thing since sliced bread and the cure for all the world's mobile-audio-related ills. But if that's your budget and solid signal in all circumstances is your major criterion, you might be better served by something that goes beyond the pure earbud form factor, like Apple's ones that have the antenna in an extension that puts it outside the pinna.

<comment><USER7> I'm not sure if that's truly normal and if it is, it shouldn't be. My first and only pair of Bluetooth headsets are the Beats X. I chose them because, unlike the AirPods, they stay in my ear and the ease of switching between my devices as the source. Never once had it cut out on me when I'm near my source. It only starts occasionally dropping when I'm 25+ feet away and with a wall in between. I'm not trying to say that Apple's are the best but rather am wondering if there's really that many headsets out there that perform so poorly.

<comment><USER6> As with the Anker set mentioned by someone else here, the Beats X doesn't suffer the same limitation of size and antenna placement - the RF hardware is on the cord that goes around your neck, and not in your actual ear. That's a vastly more hospitable environment for an antenna intended to pick up a Bluetooth signal. The AirPods similarly include a design feature that places the antenna mostly in free air. The Kanoa earbuds do not.

For comparison, my Rowkin Mini does fine anywhere in my apartment when my phone's sitting on the shelf by the door - but only if I happen to be oriented such that my head isn't between the earbud and the phone. If I turn to face the opposite direction, it cuts out and stays out unless I'm within about six feet. So the problem doesn't lie with the receiver _per se_ , but with the thick layer of RF insulation that a human body can put between the receiver and the signal it's meant to pick up.

I don't think it's a totally insoluble problem. But it is a very hard one. As I said before, I get the dissatisfaction with $300 earbuds that don't perform up to the claimed spec. But, to the best of my knowledge, there is no fully in-ear Bluetooth earbud available for any price which won't exhibit the same behavior to a greater or lesser degree.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> "Our founder invested the initial capital in KANOA, which went primarily into market research and a feasibility study designed by a large engineering firm hired to develop the product."

Founder immediately outsourced basic research and development - suspect at best. Working with an established engineering firm may be a good choice at some point, but my guess is that costs were 10x what they should have been, especially in the early stages where the product was going through iterations, bug fixes, etc.

</comment><comment><USER9> Hmm. There was an excellent comment here that has vanished. It added that there's been bad reviews of the product in the last week, and more importantly, a claim that the startup offered bribes of $500 for good reviews. Bad reviews are one thing, but I can see if there's even accusations of corruption, that might cause investors to back off at least until it can be cleared up.

The video review link is here - I've updated the timestamp directly to the bribe claim. Worth noting that the video title seems to have been updated in the last 24 hours too:

[https://www.youtube.com/watch?v=36Gw3tErUSM&t=24m40s](https://www.youtube.com/watch?v=36Gw3tErUSM&t=24m40s)

<comment><USER10> They use careful wording: "good review" might be interpreted as "a detailed and objective review", not necessarily one that praises the product.

<comment><USER9> Yep, I noticed that too. All the same, offering to pay for a review, especially for completing it before a specific deadline, seems rather dodgy. At a minimum it would require reviewers to disclose that they had received compensation for the review.

</comment></comment></comment><comment><USER11> So, I work in the Valley, and I read & participate here, but I'm not working at a startup, and most of it is unknown to me.

With that note, I have a question!

>Most significantly and to our unpleasant surprise, our investors recently backed out of our funding round.

I don't understand something about this.

I mean, yes, it is very un-specific, but I am wondering, when is the 'point of no return' for something like this? Is it possible for a VC firm to go through all the motions, and say all the right things, and then back out 10 seconds before wiring payment for whatever reason they want?

Of course, I don't know if that happened here. It just seems to me like stories regularly appear of a VC backing out at the last minute.

<comment><USER12> Point of no return is when the VCs wire money to you.

These people tend to exaggerate their funding prospective, saying things like "they backed out". Ultimately VCs don't owe anybody money and startups are not entitled with funding.

Investing is just like any other purchase, and as a VC if you believe that a company is not worthwhile to invest then you should be ready to say no no matter what stage the conversation is in.

Ironically the fact that the company couldn't raise another round / continue without finding is a sign that VCs did make a right choice.

<comment><USER13> > Point of no return is when the VCs wire money to you.

I'd be surprised if there wasn't some sort of cool off period in the contracts.

<comment><USER14> If that was the case, VCs would wait until they would have wired the money to you before they signed the contracts.

</comment></comment></comment></comment><comment><USER15> Great, now I'll have to settle with a major company's properly developed product that comes with continuous product and customer support. :/

</comment><comment><USER16> Slightly off topic but why would their farewell announcement be routed to /password?

<comment><USER17> Most likely their website was designed to redirect anyone who isn't logged in to their login page, but then they configured the web server to just server the farewell notice no matter what page you are looking at.

If you put any URL in, it redirects to /password.

<comment><USER18> > If you put any URL in, it redirects to /password.

Wow, you are right. [https://getkanoa.com/wescrewedupbigtime](https://getkanoa.com/wescrewedupbigtime)

</comment></comment></comment><comment><USER19> I don't see how Kickstarter or Indiegogo have much a future when many high- profile campaigns fail so spectacularly. The CEO of both those companies must know that "buyer beware" doesn't cut it and their namebrands are being tarnished by letting backers be swindled like this. They need a way to protect backers from complete losses of money, by delivering money in tranches after hitting milestones, or doing a complete demo in real life at the headquarters, once it reaches a certain level of funding.

</comment><comment><USER20> Can anyone recommend good wireless earbuds that isolate outside noise?

<comment><USER21> These seem to be the best on the market (Considering the amount of pre-reviews from the kickstarter).

[https://www.revols.com/](https://www.revols.com/)

But they haven't yet launched to backers so, It's a risk.

<comment><USER22> _These seem to be the best on the market_ [...] _But they haven 't yet launched_

How can they be "the best on the market" without having launched?

<comment><USER21> Seem to be, as per reviews. Since there is only 5 others with ear shaping tips but with bad reviews...

</comment></comment></comment></comment><comment><USER23> This is one of those annoying webpages that dims the whole screen. Windows 10 and Chrome Version 60.0.3112.101.

I don't think it's the webpage's fault, but something on pages like it is triggering it. Anyone know what the fix is?

//edit// Firefox 54.0.1 (32-bit) as well.

<comment><USER24> Some screens have dynamic brightness/contrast adjustment which can cause this effect.

<comment><USER25> Some monitors just have bad backlight. I had old one where maximizing terminal(which is mostly black) window caused taskbar and window handle also to turn almost black.</comment></comment></comment>


Don't reconnect mailing machines, USPS tells plants. Tacoma does it anyway - <AUTHOR> https://www.kuow.org/stories/post-offices-ordered-not-to-reinstall-recently-removed-mail-sorting-machinery <comment><USER2> At what point is the stuff happening with the USPS criminal? I've only been watching from a distance but the post office drama has struck me particularly sharply as a big red flag of corruption, a large threat to our democracy, and something we should be very upset about. Criminally upset about.

Am I off base?

<comment><USER3> One of the most transparently political acts of voter suppression that has ever occurred in the US. This is the sort of thing we should expect to happen in Venezuela, Haiti, Russia, or Afghanistan...and now it is our political reality. My great grandparents left Portugal for the US, then a beacon of freedom, when things like this started happening in the 1920s. I'm reliving all of their stories now, and now I'm thinking I might have to emigrate back to Portugal, which is now a relative beacon of freedom.

<comment><USER4> >One of the most transparently political acts of voter suppression that has ever occurred in the US.

I totally agree! For months media has encouraged large group gatherings in the form of protests and riots and now they tell us to not "gather" to vote but instead mail it in. It's crazy!

<comment><USER5> Since when does voting by mail equal voter suppression?

<comment><USER6> It's not voting by mail in and of itself that is the problem.

It is the willful dismantling of postal processing machinery to slow and reduce the throughput of the postal system, thereby threatening vote-by-mail ballots to be not delivered on time and possibly lost.

The timing and overall effect stink of corruption and voter suppression.

</comment></comment></comment></comment></comment><comment><USER7> I've long had a high opinion of the USPS overall. And this quote from the article sounds like Tacoma is keeping it real, and getting the production job done, at an especially critical time:

> _By Wednesday night, five of the machines in Tacoma had been reconnected. > Parts of two others had been scavenged and incorporated into the plant's > existing machines to boost their mail-sorting capacity._

</comment><comment><USER8> What is the justification, to disconnect this machines, and do by hand what currently is automatic?

<comment><USER3> If you disconnect machines, you can slow down the mail, which means that you can slow down the votes of people who have indicated via polls that they are overwhelmingly going to vote for someone else.

<comment><USER9> The end goal is well understood, but I think the person you are responding to wants to know (as I do) what is the justification given to get there?

Are they just saying "disconnect the machines" without giving any reason to do so?

<comment><USER10> The given reason was "they don't need them anymore because mail volume is down". It was a cost cutting measure.

</comment></comment></comment></comment><comment><USER11> And count on hours and hours of waiting at polling places in blue areas of red states due to intentional reduction of polling places.

[https://m.imgur.com/gallery/fBALblG](https://m.imgur.com/gallery/fBALblG)

<comment><USER12> [https://xkcd.com/1138/](https://xkcd.com/1138/)

</comment></comment><comment><USER13> What's crazy is that the supposed small government politicians who believe that the Post Office is another sign of "big government" doing what private industry should be doing don't realize that the post office is specifically spelled out in the Constitution as one of the responsibilities of the government.

<comment><USER14> It's actually an _authorized power_ , not a responsibility (arguably, the responsibility being a view of the founders can be viewed as an implicit in the power, but only the power is express in the text.)

And they know, they just don't _care_.</comment></comment>


Ask HN: Are you from Japan? - <AUTHOR>

I found something out today that seemed interesting, and wasn't sure if it was representative of all Japan.  In this book I'm reading, it says that at the age of 6, most children in Japan are expected to become independent from their parents (if your parents are taking you to 1st grade, it is considered weird.. as a 6 year old, you should know buses, subways, etc).  This usually doesn't happen until about age 24 in the US.<p>Is this representative of most of Japan?  Anyone from Japan have any comments on this?  Once you reach 21 or 24, what are you typically doing?  (this is not really hacker news, so feel free to flag, but I was mostly curious to know... I'm mostly interested in Japanese culture through the book about Yukichi Fukuzawa, who was fairly entrepreneurial) <comment><USER2> Yes, it is considered normal for a Japanese child in elementary school to get themselves to and from school.

For the first few years they typically travel in gigantic groups with an adult chaperone -- think of it like meeting your schoolbus at the corner, except the bus is a bunch of people walking together. After that, they'll mostly be biking to school alone or in small groups.

Factors which make this more common than the U.S: hyper-secure streets, availability of public transportation (it isn't unusual in my neck of the woods for home and school to be separated by a 30 minute train ride), hyper- secure public transportation, and a good lump of inertia. (How many institutions like that really change, when you think about it. The U.S. still has a summer vacation so that kids _can help Mom and Dad on the farm_ , for Pete's sake.)

</comment><comment><USER3> I think this issue is a great example of something. We defend what we are used to. Desperately.

When we see a 2-4 yr difference in either direction over what we allow our kids to do, we are generally appalled. "He's 15 & can't take a bus!?" "She let an 11 yr old take the train herself!?"

An interesting trend I've seen between myself & my brother (12 yrs Junior) is that he & his friends seem to have slightly less desire for freedom. Sure they are annoyed when they're limited, but it comes up less frequently. I think a lot of it comes down to video games, internet & such. What they do with friends, it's mostly at home. We were never home at 10-15 yrs. Nothing to do at home. So most days we went out with friends. We naturally hit more resistance from parents who had a harder time tracking where we were. It also highlighted who had more or less freedom. Our parents got used to us being 'gone' as 11 year olds. Now it feels like kids are at one house or another, easier to track. Cell Phones help. In my particular world, I think many things have moved 2-3 years older.

When I was a child, I lived in the US. We had no freedom at all. One reason was crime rates, particularly random crime rates which are the thing that really contributes to your feeling of safety. Another major factor was geography. Couldn't walk anywhere in those sprawling US cities. Kids had to be driven to school. Friends lived far away, etc.

</comment><comment><USER4> I grew up in Moscow, Russia, and was taking the bus and subway by myself from quite an early age; I left there at 10, so it must have been several years before then.

(I know it's not Japan, but wanted to point out that this was done even in what some might consider to be a western-yet-scary part of the world.)

</comment><comment><USER5> When I visited Japan, I remember these very young school kids getting on the subway by themselves. They were all wearing school uniforms with bright yellow hats and were holding hands when they went on the subway together. One of them also had this "emergency" alarm she could pull if something went wrong.

</comment><comment><USER6> Age 24?!?

Urban teens in the US often take public transit on their own to school or other destinations. Suburban teens (~16+) often drive themselves wherever they want to go, sometimes in a car they effectively own themselves.

Even younger children sometimes also take unaccompanied public transit trips, especially in smaller, more family-oriented cities and towns, or in groups. Children under 10 in many places walk or ride bicycles on their own to school, stores, and events.

</comment><comment><USER7> Yes, but at what age do they move out of their parents' homes?

</comment><comment><USER8> Japan is a lot safer than almost anywhere else in the world, so you get preteen kids from Yokohama going to hang out in Tokyo. That'd be a bit like some 12 year old American kids going to "hang out in Manhattan" - with no detailed plan, supervision, etc.

But largely socially emancipated at six years old? I don't think so. Maybe somewhere between 8 and 12, which is a few years younger than a lot of places, but nothing crazy.

<comment><USER9> I'd add that 24 feels a bit old to me for the american number. I've been living on my own since I'm 18, and I started taking the city bus by myself to go around when I was 13 or so. This isn't exceptional at all among the people around me (Quebec).

<comment><USER4> I think the sad thing is that there are spoiled teenagers in America who don't truly become independent until well into their twenties. But that's like rumors of America's obesity - yes, there may be a problem there, but we aren't literally drowning in basement-dwelling twenty year olds or other people's flab.</comment></comment></comment>


Asynchronous I/O in Windows for Unix Programmers (2011) - <AUTHOR> http://www.tinyclouds.org/iocp-links.html <comment><USER2> Crazy that IOCPs were in NT 3.5 in 1994[1], but it took FreeBSD until 2000 to add kqueue[2], and Linux until 2002 to add epoll[3][4].

I guess it just must not have mattered that much? Is it only recently machines became primarily IO bound?

      [1]https://en.wikipedia.org/wiki/Windows_NT_3.5
      [2]https://en.wikipedia.org/wiki/History_of_FreeBSD
      [3]https://en.wikipedia.org/wiki/Epoll
      [4]https://lwn.net/Articles/13197/

<comment><USER3> I think being I/O bound is orthogonal to whether you need kqueue or epoll.

You could be I/O bound on a small number of simultaneous sockets, in which case select() would work fine. Or you can be I/O bound on a lot, in which case select() would take too much CPU by scanning the descriptor table repeatedly.

[http://stackoverflow.com/questions/970979/what-are-the- diffe...](http://stackoverflow.com/questions/970979/what-are-the-differences- between-poll-and-select)

<comment><USER2> Oh, that makes sense.

Older servers couldn't handle enough clients for connection related limits to matter.

</comment></comment></comment><comment><USER4> Actually, there is quite a context here. IOCP had been a headache for quite a while for Unix programmers. Two examples:

\- libevent 2.0 was created exactly to support IOCP [https://blog.torproject.org/blog/some-notes-progress-iocp- an...](https://blog.torproject.org/blog/some-notes-progress-iocp-and-libevent)

\- apache 2.0 again, was created to support windows threading model and IOCP

\- this particular article was in the context of libev not supporting IOCP, which was needed for decent node.js performance on windows: [https://nodejs.org/codeconf.pdf](https://nodejs.org/codeconf.pdf)

(correct me if I'm wrong!)

<comment><USER5> Porting unix applications that used select/poll/epoll in a performant way was a common enough problem that they added WSAPoll to make things easier: [http://blogs.msdn.com/b/wndp/archive/2006/10/26/wsapoll.aspx](http://blogs.msdn.com/b/wndp/archive/2006/10/26/wsapoll.aspx)

The biggest abstraction headache is usually nonblocking file IO and DNS lookups, as many OSes don't have any support. You have to have a thread pool fallback.

</comment></comment><comment><USER6> > regular file system files do not support non-blocking operations. > (Disturbingly no man page mentions this rather important fact.)

This is the most disturbing thing I've read about UNIX file I/O in a long time. Think about what the article is claiming:

\- Non-blocking filesystem calls _don 't work on files_!

\- This fact _isn 't documented_!

\- The situation has persisted for a long time (I kind of assume it's been 10+ years since non-blocking I/O was introduced in popular UNIXes)

Can any gurus confirm these allegations the article makes?

<comment><USER7> * Non-blocking filesystem calls do not in fact work on files. If you think about it for a minute this makes sense. Network data is flowing in to you asyncronously, it will show up if you don't do anything (and trigger poll). But you have to request to read a file to make the OS make the disk go get it. This is why the async read model works for disk files where the poll/read model doesn't; a disk file is always readable as the data is already there. In Linux in particular the kernel does not (I think, I may be getting the explanation wrong) have a wait queue for page faults, it can only block the faulting process, so you can't do async (non-blocking) cached file I/O at all.

* It is not well documented in man pages. It's a relatively well-known problem if you google for it.

* The situation for traditional non-blocking reads of disk files has persisted because it is unsolvable in general, poll/read just doesn't work for for reasons described above. You need async read/write, which Linux in particular does not have good support for (see above regarding cached reads). I think the situation on the BSDs may be better, but I'm not sure. There's a number of articles in the kernel section on LWN discussing async I/O that may be enlightening if you want to know more about what's been done here. ([http://lwn.net/Kernel/Index/#Asynchronous_IO](http://lwn.net/Kernel/Index/#Asynchronous_IO))

</comment></comment><comment><USER8> _unlike the modern constant-time multiplexers like epoll_

I'm curious as to how this exactly works - I mean, if you have 10000 file descriptors, and you need to process all of them, there's no way around doing that processing 10000 times. To me it appears O(n) is a lower bound and what epoll does is just move the selection loop from the application into the kernel.

<comment><USER9> The O(1) part is:

* It's O(1) for user mode to know which fd in the set is signaled after returning from the wait syscall.

With select() or poll() the caller needs to traverse the list to know which fd is ready. With epoll(), kqueue(), or IOCP, you are draining a queue consuming events, each event removed from the queue in O(1) without re-scanning the entire table.

* It's O(1) to add an fd to the set of watched fds, or to re-enter the "blocked" state.

Because select() and poll() specify the entire list of watched fds all the time, the kernel side ends up copying and scanning the whole list at every wait step [O(n)], whereas epoll/kqueue/IOCP just leave the list of FDs in kernel memory across calls.

<comment><USER8> I was curious enough about the O(1) claims to look at the source code[1], and I don't think this is true:

 _It 's O(1) to add an fd to the set of watched fds_

It uses a red-black tree to keep track of the set of watched fds associated with each epoll fd, which makes insertion O(log n). However, waiting and notification can be done in O(1).

[1] [http://lxr.free-electrons.com/source/fs/eventpoll.c](http://lxr.free- electrons.com/source/fs/eventpoll.c)

<comment><USER9> OK, so I was being a bit fast and loose with my description of insert. What I was going for is it doesn't copy and scan the entire list every time.

It's also not _too_ hard to imagine a constant time implementation. The api would allow for it. Whereas poll is broken at the api level. It assumes O(n) at every call and there's no good way to get around it.</comment></comment></comment></comment>


Ask HN: Are there any tools to encrypt and store data on Amazon Cloud Drive? - <AUTHOR> I have he $60/yr unlimited storage, but I'd prefer to encrypt my data before sending it to Amazon. Are there any tools to make this less painful? <comment><USER2> Yes, you can use the Storage Made Easy service but you need to be a Personal Cloud user, it is not available in the free option.

See: [http://blog.storagemadeeasy.com/amazon-cloud-drive-is-now- av...](http://blog.storagemadeeasy.com/amazon-cloud-drive-is-now-available-to- sme-personal-cloud-users/)

</comment><comment><USER3> Less painful than what?

<comment><AUTHOR> Then encrypting files individually, uploading them, and unencrypting them when you download them...

<comment><AUTHOR> *than :/</comment></comment></comment>


The Art of Saving in Games (2014) - <AUTHOR> http://www.theoryofgaming.com/art-saving/ <comment><USER2> >games are meant to be an immersive experience that draw players into the world for long stretches

Games aren't supposed to be anything.

I've been a champion for more immersion and narative in games, but there are plenty of great games that have no interest in immersion and they aren't worse off for it.

<comment><USER3> > Games aren't supposed to be anything.

I personally find this to be a very narrow minded take on the issue. While a game may be great without having any pretensions to being "immersive" there is no harm in analyzing and trying to abstract away what we might consider to be an essential element of a "great" game.

Of course you will be taken more seriously if your argument is on firmer footing than the article's writer. I urge you to read Homo Ludens by Johan Huizinga if you haven't. It will change the way you look at video games and any sort of sport physical or otherwise.

</comment></comment><comment><USER4> In my opinion, the topic of game saves is merely a part of a larger and more interesting topic - the nature and handling of failure in games. theoryofgaming has an article [1] about that, too, although it doesn't go all that deep.

[1][http://www.theoryofgaming.com/solving-the-problem-of-fail- st...](http://www.theoryofgaming.com/solving-the-problem-of-fail-states/)

<comment><USER5> If these guys stopped to define "failure state", this article would be golden. It seems that they use "fail state" exclusively to refer to situations where progress is reset, as opposed to any situation where the player has failed (i.e. died). It wasn't entirely clear until they started talking about Dark Souls that they weren't arguing against loss being part of fail states, only against fail states resulting in total, irreversible loss.

</comment></comment><comment><USER6> I looks like the password save wiki link moved to [http://allthetropes.wikia.com/wiki/Password_Save](http://allthetropes.wikia.com/wiki/Password_Save)</comment>


Does your security software qualifies AV Test? - <AUTHOR> http://www.av-test.org/certifications?order=protection_desc&lang=en

<comment><AUTHOR> Ever since its arrival, I 've been happily using Microsoft Security Essentials — and while one poor showing in a comparative test isn 't going to drive me away, I 'll admit I'm a little concerned. AV-Test GmbH has posted results from its first quarter 2011 testing of 22 antivirus applications on Windows 7, and MSE barely managed to squeak out a certification-worthy score. AV-Test requires a minimum of 11 points to certify, and MSE posted 11.5.</comment>


Imba: A new programming language for web apps - <AUTHOR> http://imba.io/? <comment><USER2> I've been following Imba for the past several months since the initial announcement on HN.

I like the clean syntax, tags, and high performance, so I hope you guys attract interest despite all the library/framework fatigue we're experiencing in frontend JS land. It's rather refreshing to be able to write code and view all together, like _< div.marker>.css(appropriate_styling)_

It would be great if you had some walked-through example apps on webpages (like the old site used to have). That kind of thing helps people better understand the benefits of your approach.

<comment><USER3> I think the HTML standard prohibits you from using non-standard tags like <clock> or <star>, unless they have a dash in them.

<comment><USER4> This can't be true. I use non-standard tags without dashes all the time for my custom directives in Angular.

<comment><USER5> Non-standard tags generally work in all browsers modern, but they aren't part of the spec. It's just like custom attributes which don't start with `data-`. They're recognized and work, but not strictly speaking legal. Your code _fill_ fail HTML5 validation tests.

</comment></comment></comment></comment><comment><USER6> All these languages du jour should go out of their way to answer the question: "why bother?".

10x faster than react. OK cool. Except unless it has something like react native it's irrelevant if you might want to write an app in future with any sort of code reuse since you'll be tied to the web (unless you want the inevitable world-of-pain of trying to integrate this preprocessor into your xcode/android builds...).

<comment><USER7> These are devs who would rather build tools to build a web app than to build a web app. Different people have different itches. We don't have to consume what they produce. Just have to read about it on HN.

<comment><USER8> Well and fine, but those tools then need to be maintained _forever_ , and they become _yet another tool in the stack_ for developers who come on board to a company which has adopted them. It's easier and quicker to learn a new library like React, or even a new DSL like JSX, than a new language.

<comment><USER7> I don't disagree with you.

</comment></comment></comment></comment><comment><USER9> I have a backlog of personal projects of various kinds that I have been tinkering with for years now. But since I'm a back end guy, that's what I normally work on when I have free time.

Every time I decide that I'm going to take the plunge and get down and dirty with front end stuff, I get completely paralyzed by choice, and I end up deciding that the most sensible way for me to move forward is to learn the fundamentals and design front ends with html + CSS + vanilla JavaScript.

As you can imagine, my elegant back-end designs have interfaces the 90s would have deemed tacky.

I really like the syntax (Python guy checking in here), but I don't even know where to start integrating this into a Pyramid app or what to do with it.

I don't even know how to get started here. I have a market research app for building questionnaires. Like SurveyMonkey, but different. I want the front end to be trello-like so that you can move the questions around that way.

I "know" JavaScript pretty well at this point. But when I look at the front end code for an open source trello clone, I swear it's just effing magic. Doesn't even relate in my mind to the language I thought I've been learning all this time.

Since these kinds of threads tend to attract a lot of front end people, I thought I'd ask here: is this an appropriate language for a trello-like interface?

There was a certain point in my career when I was learning Python when I went from knowing _how_ to write classes and functions to being able to know _what_ classes and functions to write to achieve my goals.

I know how to do things in JS, but I have no idea what to do to accomplish my goals.

Any tips from anyone?

<comment><USER10> \- Don't worry, there's only a few different paradigms in use by the different libraries and frameworks out there. Just look at the examples and see which one piques your interest.

\- Do some analysis to break down your problem into manageable steps, until you reach steps small enough to action. For example, a task tracking board might have the following components: columns (representing "status"), drag and drop (which changes the position of some DOM elements, plus updates the task status), and a form (to capture the task status). So, look for ways to solve each of those problems. e.g. column might be made easier using a grid layout system, such as provided by Bootstrap. Drag and drop can be handled using HTML5 features. And form handling can be made easier (or fancier) using any number of libraries out there.

I wouldn't jump on a brand new language for the purpose of solving a problem, if you don't have a clear idea of the solution you would like to implement. Writing code is a means to an end, not a goal itself. It'd be easier to write a solution using methods you're familiar with, then rewriting it using different technologies.

</comment></comment><comment><USER11> Doesn't solve any of the big problems with large scale javascript apps:

1) Lack of type checking leading to exploding runtime exceptions

2) Object inheritance/prototype is weird and counter intuitive to other OO languages

3) Lack of proper encapsulation leading to spaghetti code when combined with #1

I suspect we are in for a new era of languages targeting web assembly to be used as webapp frontends and backends but if they don't tackle the big issues above then what is the point?

<comment><USER12> There is no solution to large scale JS apps.

Large systems are inherently problematic. The only way to "fix" them is to break them into smaller modules and subsystems.

Fancy abstractions and features will never solve large system issues. The large system issue is that it's large.

<comment><USER11> This is too clever by half. Some tools/languages are more amenable than others to creating and maintaining large apps. Very large applications have been written and maintained in C/C++ for decades. My contention is that Javascript is _particularly_ ill-suited to the creation and maintenance of large scale apps in the long run for the reasons explained.

Any new language which purports to be an improvement upon Javascript should at least attempt to rectify these issues. That's my thesis.

<comment><USER13> This is actually quite fascinating (and part of my upcoming book...)

Despite the obvious high/low-level language differentials, people have been managing multi-million-line C code-bases since the 80's. Then again, think of how little the build tooling has actually _changed_ \-- instead of fragmenting, you're left with llvm, gcc, make at the core of most compiled software.

JavaScript is the exact opposite with the lowest possible barrier to entry (built-in to every web browser...), and the proliferation of frameworks and libraries may be due to this in combination with the lack of fundamental understanding of design patterns that can scale. Lots of people trying to partially solve symptoms, missing the forest for the trees.

Theoretically there's nothing preventing good patterns in high-level UI development, but I'm not quite sure it's been done right, yet and have no idea when the dust will settle.

<comment><USER11> Javascript and other dynamic language like it are very good prototyping languages and for developing a quick mock-up to explore the pros/cons of a potential solution to a problem. But the lack of type checking and proper encapsulation turn into big headaches when scaled to a large app with even a few more junior developers.

Without a compiler/type checker to help spot obvious problems in code runtime exceptions explode. This happens even for senior developers. And the lack of proper encapsulation other than by convention can/does lead to an explosion of the surface area of source code that a dev needs to know and be familiar with in order to refactor and make changes to large codebases which makes for very brittle large apps.

Hence, I look forward to new languages targeting web assembly that will be more amenable to creating/maintaining large scale and long lived apps.

</comment></comment></comment></comment></comment><comment><USER14> [https://news.ycombinator.com/item?id=10866540](https://news.ycombinator.com/item?id=10866540)

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

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

<comment><USER15> Getting thru at HN takes multiple submission it seems. Even for a big project like this.

<comment><USER16> It 'got through' on the first try: [https://news.ycombinator.com/item?id=10091454](https://news.ycombinator.com/item?id=10091454).

</comment></comment></comment><comment><USER17> I recommend it. Syntax for tags and tags inheritance is awesome. I keep my fingers crossed for Imba.

</comment><comment><USER18> Worlds collide: IMBA has meant International Mountain Bike Association to me for the past 25 years or so.

<comment><USER19> For me it's the short form for imbalanced ;-)

</comment></comment><comment><USER20> Finally, a new programming language for web apps.

</comment><comment><USER21> To all people who reply negatively to this: don't you guys actually like learning new languages?

Why?

<comment><USER22> I _do_ like learning new languages, but there's a certain amount of fatigue in this particular space, given the pace of announcements and limited time. There's a worry that one could spend all one's available time for learning new things and have learned nothing of value in two years.

For this to be of value, it has to provide at least one of four things:

1\. Becoming a widely-adopted system (like node.js)

2\. Strong influence on widely-adopted systems (like Elm)

3\. Insights that influence one personally (like most any lisp)

4\. More fun than alternative things one could be playing with

<comment><USER23> Even Elm is far from widely adopted, though I agree it has really captured people's attention

<comment><USER22> The widely adopted example was node.js; Elm was my example of a system that has had strong influence on widely adopted systems (like React/Redux).

</comment></comment></comment></comment><comment><USER24> Surprising how many comments are of the "why bother" variety as opposed to critiques of Imba itself.

<comment><USER25> "why bother" should be the first question asked and first question answered (by the Imba team).

<comment><USER26> This, as well as the fact that recent years have brought on new language fatigue from having a completely new language with its own syntax and its own pros and cons being shown every 6 months. "Why bother" is important.

</comment></comment></comment><comment><USER27> Reminds me somewhat of Opa, [http://opalang.org](http://opalang.org)

</comment><comment><USER28> I see you guys did a lot of work on improving the docs since last time you submitted. Keep up the good work!

</comment><comment><USER29> I love languages that understand indentation. Actually imba looks like many things I love mixed together.

</comment><comment><USER24> It looks very much worth a try to me. Couldn't find anything about database bindings in the docs.

<comment><USER24> OK, that was handled very quickly on gitter! Just use something like knex.js, duh.

</comment></comment><comment><USER30> Ok, so what is the reason it is more than 10x faster than React (as claimed on their web-page)?

<comment> mako-taco If I had to guess, the use of requestAnimationFrame [https://github.com/somebee/imba/blob/7ab3d380562b8e6cd09ab09...](https://github.com/somebee/imba/blob/7ab3d380562b8e6cd09ab0942cfa8529ad65eedb/lib/imba/scheduler.js#L7)

</comment></comment><comment><USER15> Why not use the more familiar C-syntax of JavaScript?

<comment> nv-vn Because trading familiarity for usability is not beneficial in 90% of cases.

<comment><USER31> But usability is very strongly affected by familiarity.

<comment><USER32> Only for a very short time.

</comment></comment></comment></comment><comment><USER33> I like the syntax from the front end, but the details for back end seem a bit light on. I can't see much in the examples around persistence of data on the server side. Is this covered/planned?

</comment><comment><USER34> Is it actually 10x faster than React? If you're not doing shouldComponentUpdate, then the benchmark is misleading.

<comment><USER35> React and Imba can both optimize using shouldComponenUpdate (in Imba you would add the same logic inside node#commit). Utilising shouldComponentUpdate (in React and Imba) requires additional logic by the developer, not the framework. This is not an optimisation at the framework level - but an endpoint where the developer can write their own custom optimisations. Adding your own manual checks all around your app to check for statechanges is inelegant, cumbersome, and bug prone. In my opinion it defeats much of the purpose of a virtual dom, if you are expected to do your own diffing before sending it through. Also, the relative performance difference is about the same when turning it on.

I fully stand behind the benchmark, and would even go as far as saying that it is more relevant for real world applications than benchmarks like dbmonster where everything in the view updates on every render. This effectively tries to calculate how quickly each contestant can reconcile the whole view (synchronously), but when only parts of the view has actually changed.

Here is some additional discussion about the benchmark: [https://github.com/somebee/imba/issues/9](https://github.com/somebee/imba/issues/9)

</comment></comment><comment><USER36> As this seems to be some kind of javascript derivate using node.js on the backend (?) I'm interested in how this deals with async operations, ie. can you create functions which take a long time to run without blocking other users?

This is especially important as they are targeting server side too.

<comment> vertex-four I'm not reading anything which suggests they're targeting server-side.

<comment><USER37> _This whole website is written in Imba. It uses the same code for server and client. After the initial load, all navigation in the browser is happening with history push /popState, and rendered directly on the client, yet any hard refresh should land you at the same spot when rendered from the server, thanks to using the same logic for routing as well._

[http://imba.io/guides#toc-examples-scrimbla](http://imba.io/guides#toc- examples-scrimbla)

</comment></comment></comment><comment><USER38> How does it compare to the amazingly fast ur/web?

<comment><USER39> It doesn't? It's closer to Coffescript I think.

ur/web might be hard to get into for someone who doesn't have ML or Haskell experience.

</comment></comment><comment><USER40> Non-closing html tags? Looking at the doc it seems it is using the same structure as hiccup or hyperscript except. What was the reasoning?

<comment><USER41> Well the rest of the language is indentation-based and lacks closing delimiters so it would be inconsistent for the embedded markup to have closing delimiters.

</comment></comment><comment><USER42> Isn't it pretty much the same thing as dart. Except dart also manage the backend and is already used and mature ?

</comment><comment><USER43> At first glance, this seems a lot like elm. I wonder if anyone could point to a comparison of sorts?

</comment><comment><USER44> Why are we still compiling to javascript, when we should be compiling down to WebAssembly?

</comment><comment><USER45> in website it is written "Imba brings the best from Ruby ..." exactly what?

</comment><comment><USER46> "You must avenge my death Imba, ... I mean Simba."

</comment><comment><USER47> The syntax of this looks absolutely stunning. It gives the code a real beauty.

</comment><comment><USER48> I built this simple module pattern framework that makes building apps pretty simple. the idea is that everything is a controller (module patter) so you break you app into controllers or modules. [https://github.com/ThinkAcademy/MasterControl](https://github.com/ThinkAcademy/MasterControl) check it out its open sourced by [http://thinkacademy.io/](http://thinkacademy.io/)

</comment><comment><USER49> Actually on their own benchmark page the imba example is the slowest.

[http://somebee.github.io/todomvc-render- benchmark/index.html](http://somebee.github.io/todomvc-render- benchmark/index.html)

<comment><USER50> What's your specs/browser? I get: [http://i.imgur.com/dtKCSxL.png](http://i.imgur.com/dtKCSxL.png) in Waterfox 40.1.0, and [http://i.imgur.com/4bu0Hev.png](http://i.imgur.com/4bu0Hev.png) in Chrome 47.0. 20x and 26x improvement over the slowest.

</comment></comment><comment><USER51> it gets boring... why we need another language?

</comment><comment><USER52> My imba language:

10 GOSUB CREATE_WEB_APP_THAT_I_WANT

20 DEPLOY TO_CLOUD

<comment><USER53> canihaz facebook for 200$

</comment></comment><comment><USER54> Yay! Another new programming language for hipsters! Another pointless technology to learn!

For god sakes, use js &co, clojure, or elm. Nothing else is worth it.

<comment><USER55> You know your examples were/are considered new languages at one point, right?

<comment><USER54> yeah, but I feel they have a reason to exist. Clojure exists because it has interesting ideas about immutability, and is a lisp. Elm exists because FP. This exists because... Why? They thought we needed a new syntax for JSX? They thought we needed another language that was kind of like coffescript, but different in subtle ways? I don't know, and I can't see what this is bringing to the table.

<comment><USER47> Then don't use it? There's no reason to bash on anyone for making something, even if it's absolutely useless:

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

<comment><USER54> Sorry, I didn't mean to bash on them for making. Let me clarify my opinion. What annoys me is that they made a thing, which is of debatable use, and talked it up as the next big thing, which everyone should use, because it's amazing. That bugs me.</comment></comment></comment></comment></comment>


How To Be A Horrible Boss - <AUTHOR> http://diegobasch.com/how-to-be-a-horrible-boss <comment><USER3> Best bosses: Usually self-describe themselves as "meat shields" for their troops. Ask "How can I help you do your job?" instead of "Why isn't that done yet?" Understands the creative process.

Worst bosses: Ditherers, or opaque and random ciphers. Never present. Jerk you from one task to another. Surprise you with bad reviews. Unwilling to pay for good tools ("What's wrong with Notepad?") Sees you as a fungible cog or chess piece to be moved around. Often non-technical, or "used to be technical" in an ossified region of the industry (e.g., large aerospace firm). Uses Scrum as a platform for micromanaging.

[I made a decision 25 years ago never to be a manager. I recently had the opportunity to try it out again for a summer, and it sucked just as hard as I remembered. I am an engineer, and I work with people in a far different way than good managers do.]

<comment><USER4> "Unwilling to pay for (good) tools."

A manager where I once worked demanded that we continue to use (the unpaid for shareware version of) WinZip on one computer that was dedicated to sending data off to clients. After WinZip added the 1 second wait for every file ever processed, he implemented a 'wait and come back rule'.

The count reached over 3000 at one point!

I would just use 7-zip or zip it in Cygwin. But it became so that when I wasn't around clients would have to wait an extra hour to get their files. He sometimes would just sit there and wait for the count to complete. A single license was maybe $25 at the time?

<comment><USER5> How about when the good tools are free (as far as money), but your boss doesn't want to use them because that would require him (as well as co- workers) to learn something new?

My current employer still uses CVS. No one really uses it properly. I see output files committed to repositories and I think I'm the only one who writes commit messages since I haven't seen anyone else's when I look through the history. I haven't seen anyone else create a branch.

I've mentioned Git both in private and in group meetings, but it always falls on deaf ears. So I use Git via Cygwin and always keep it local on my machine. I have Git ignoring the CVS directories and CVS ignoring the .git directory. The master branch is for things that I check-in to/update from CVS. All my real work is done in Git feature branches.

<comment><USER6> To be fair, if they can't use CVS right they're not going to use anything else right, either.

<comment><USER5> No one's born knowing how to properly use a version control system, but that doesn't mean you can't learn.

</comment></comment></comment></comment></comment><comment><USER7> I've been at more than my fair share of establishments. The boss that stands out as the worst, hands down, had two traits that stood out:

1\. An alpha personality that could admit no wrong. 2\. A failure to leverage his senior people for their abilities, everyone was treated as a contractor and told what/how to do it.

This was a startup and the behavior basically resulted in a couple of us leaving. There were other bits of the startup that were chaotic (and could be attributed to a fast/changing environment), but this individuals behavior sealed the deal for a couple of us.

Personally, I've had to manage a bit here and there. When it is a small company/team, I really prefer to understand everyone's strengths and weaknesses. Cater to the strengths, learn where I can, and try and fill in the weaknesses with other's strengths. Even with many years of experience, there is still something I can learn from most people (rockstar, average, etc.)

<comment><USER8> >This was a startup and the behavior basically resulted in a couple of us leaving.

So you were at my last company? ;)

</comment></comment><comment><USER9> I've had a number of horrible bosses over the years (if you are reading this and we still talk, i'm not referring to you!) and for me it falls into two categories: trust and authoritarianism.

Trust is critical. If you hire an engineer you should trust that they can do their job. If you don't think you can ever do that, don't hire them! It is incredibly demoralising, and a sure sign you should plan an exit when your boss tells you that he doesn't trust your code, especially when they write poorly thought out, untested, spaghetti...

Authoritarianism is also a deal breaker, especially when it is applied simply to assert dominance. A new alpha male manager coming in and declaring a new company order without even trying to get to know the strengths and weaknesses of his team is fatal. I've seen teams fall apart because of this.

I would probably suck at both of these things. I probably shouldn't be a manager.

</comment><comment><USER10> _Be patronizing_ I left a high-paying job after upper management installed a smug, platitudinous director over my group. I disagree that people become what you expect of them. I would not become an imbecile because my boss believed that everyone else was an imbecile. There's no reason to lose one's dignity.

<comment><USER11> Worth pointing out that even if you personally did not become what the director expected of you, by leaving you likel brought the remaining team's average closer to the expectation.

<comment><USER10> I'm not certain they could be manipulated that easily. But that was out of my hands. I couldn't stand attending mind-numbing meetings by a self-styled expert on matters of common knowledge. I had to leave.

</comment></comment></comment><comment><USER12> On a tangent, I've noticed an interesting correlation between a high number of bad bosses and a companies policy of frequently moving managers into new positions to give them experience with all parts of the company. I think it has something to do with reducing people to cogs.

</comment><comment><USER13> My most recent problem : think you are like Steve Jobs. Seriously, this disease seems rampant amongst manager recently. Is it anecdotal evidence or has someone else observed that too ?

</comment><comment><USER14> For these articles, it would be good to consider the other side:

Talk a lot, do not listen much - people need to know what's going on. A good boss has to keep everyone informed of the stuff that matters.

Be patronizing - you need to ensure all the right checklists are followed (security, stability, etc).

Be as cryptic as possible, never direct - don't micromanage.

Encourage bureaucracy, and demand visibility into everything - <USER2> and process is really important.

Show them who's boss - you have to make sure everyone is co-operating, and that silos are broken down.

These "problems" can be strengths, or necessary evils. It's more a question of when the behavior is a problem, rather than which behavior is always best.

<comment><USER15> I'm having trouble seeing "don't listen too much, be patronizing and show who's boss" as something positive.

<comment><USER14> It depends on how you frame it.

"Don't listen too much" could be framed as "Keep your team informed".

"Be patronizing" could mean "Make sure the little things get done".

"Show who's boss" could be "Be a leader", "Be responsible", or "Don't be afraid to delegate".

<comment><USER16> What you see as re-framing, I'm seeing as distorting, and they work better as separate examples of good management.

For example:

Ensuring correct procedure is followed doesn't mean you have to be patronising.

Keeping your team informed doesn't mean you don't have to listen, or you have to talk too much.

Being a leader, responsible, or not afraid to delegate doesn't mean you have to "show who's boss".

And I don't say this with any intention to cause offense, nor is it directed at you specifically, but I think if, for each point, you think the inverse is true, then you may have more in common with 'bad manager' than you think.

<comment><USER14> Yes, my problem is that a lot of these "5 things managers should do" lists describe a particular kind of bad manager (the article seems to be talking about an egotist).

If these articles don't give a bit more context, then they are easy to misinterpret.

</comment></comment></comment></comment></comment><comment> johnx123-up According to HN posts, Steve Jobs seems to have posed these characteristics. But I'm sure he is not a horrible Boss.

Edit: So, it is the _results_ that speak for you.

<comment><AUTHOR> Being a horrible boss and being a successful executive are different things. Steve Jobs _was_ a horrible boss by all accounts. The first chapter of Managing Humans addresses exactly this point.

</comment></comment><comment><USER17> He calls out 'weekly status meetings' as one of the things a manager should not do, but depending on how they are handled I think it could be a good thing.

A place I worked at used to do a '5 minute meeting', every day, right after lunch. Of course, it ended up being longer than 15 minutes, but in a varied team where many times other people have no idea what you are working on, it can actually be somewhat 'motivational'.

<comment><USER18> Agreed. My (small) team does a 15-ish minute standup every morning where everyone gives a status on what they're working on. I think it's nice to be able to see the status of how everything is going instead of just sitting down in front of my computer in the morning and leaving, never knowing what several other guys are doing.

</comment></comment><comment><USER19> A little compassion on both sides would go a long way towards making 'horrible' bosses better and employees function better as a team. I find a lot of employees these days, especially younger ones are too entitled and self important to appreciate the more subtle sides of compromise. Especially if you're not constantly telling them how wonderful they are (when they barely understand their own job) and expect the same trophies for participation that they've received all their privileged, sheltered lives. Nor do they understand how a manager, especially a new, perhaps inexperienced manager might not have the bureaucratic pull to obtain the best tools for everyone and must operate within certain budgets. Trust me, your boss, no matter how horrible, wants you to succeed. They might not always take the best approach, but they went from being great at a task to being in charge of seeing to it the task they love gets done better than they could do it by others who don't necessarily know how, or want to put in the time it takes to make it great. This article is typical of the whining and entitled little d-bags around the entire working world who think they could manage better than their current boss, often having no idea what that takes, or simply believing in their heart of naive hearts that if they are simply everyone's buddy their team will succeed beyond all their wildest dreams. Ha. Good luck! I hope they get promoted soon. Then revisit this ridiculous article and see how many of the things 'horrible bosses' do are symptoms of a larger machine at work than just their function and their subordinates role within it. And don't even get me started on micromanaging. Most employees I know can barely organize their own projects, believing it their god given liberal arts education to 'think in piles rather than folders.' but what they fail to understand is that their manager is responsible for picking up all their shitty, entitled little pieces and presenting them cohesively to THEIR superiors. So, yeah, fuckhead...they do need to know what you're doing.

</comment><comment><USER20> My job as a technical manager is to serve the people I am responsible for. Simple as that. Transparency, direct feedback and appreciation are some of the tools. In the end, my job is to make sure everyone on the team has what they need to meet our goals.

<comment><USER21> The interesting thing is determining where, and successfully managing, the point in one's career where the "people you're responsible" for inflects to become closer to shareholders than employees.

</comment></comment><comment><USER22> How to be a "good" boss very much depends on the people and the circumstances. There's really only one constant: clarity.

Even if the boss's style is authoritarian micromanagement, which most people on HN won't feel comfortable with, if said boss provides clarity and consistency certain types of people will be happy to work for them.

Knowing what is expected of you is the most important part of being comfortable in the role of employee. The rest is more a matter of personal preference.

</comment><comment><USER23> He suggests "managing humans" as a good book for managers to read. Just started reading it, and it seems decent. Anybody have other good resources?

<comment><USER24> 'First, Break All the Rules' is a great read. For new managers, I highly reccomend 'The First 90 Days'

Remember not to just accept everything in these books. They should be read with the expectation that you will have to pull out the useful pieces that are relevant to you.

</comment></comment><comment><USER25> I know most people would know a boss was bad but I wonder if most could say why other than the obvious such as yelling.

And how many people have been poisoned in a bad office atmosphere spending their career there thinking that's just the way it is.

</comment><comment><USER26> Nice points.

I do see problem with trust, not many would do that unless you are already proven before you join a work place. Moreover if you are a talented programmer, some see you as a threat.

<comment><USER27> I was once told that trust is not something one earns from you - it's something you chose to invest in others. I think that's quite right.

</comment></comment><comment><USER28> "Don't learn about management."

So how am I going to learn about management? What are good classes? What are good websites to ask these questions?

<comment><USER29> I'm found the manager tools podcast (at manager-tools.com) to be valuable.

</comment></comment><comment><USER30> I really like that 'back to HN' link. I wouldn't vote for the article if you didn't make it easy for me, thanks :)

</comment><comment><USER31> > Have weekly status meetings even if there is nothing new to say,

I wonder what that says about the daily Agile stand-up-s.

</comment><comment><USER32> As someone who's never had one, what is the general role of a manager of programmers?

<comment><USER33> When my wife was at a very large company, her good managers [0] did these things:

\-- make sure the programming team understands the customer's priorities, goals, timelines, etc.

\-- pay attention to the task breakdown, making sure that all of the programmers know what pieces to work on, and making sure that important pieces don't get overlooked

\-- make sure the programming team has the resources they need. Fight with upper management, procurement, HR, or whoever else in order to get the necessary equipment and personnel.

[0] This is not always a single person with the "manager" title. Sometimes it's a "team lead", or multiple people with multiple titles.

</comment></comment><comment><USER34> Although i agree with most points made in this article, I think, having been a manager/teamlead of many programming teams, i think i might write an article on "how to be a horrible employee"...

</comment><comment><USER35> while these horrible boss threads are always enjoyable (hey, scott adams' career is built on it), how about switching perspective for a moment.

the majority of programmers are employees.

what makes a horrible employee?

\- disregard of communication etiquette. you're running late on something, a meeting, a task, anything - say it, write it, text it early, and loud enough for your boss to hear. a manager needs that info to counter-steer.

\- in the same vein, the non-ability of constructive criticism. don't just think 'this won't work' but continue to work on it anyhow. communicate it, in plain language, with reasons. want to be excellent? provide an alternative.

\- play politics. try to brown-nose. etc. hint: your manager likely became one because he/she is good at politics. can see through your attempts and gets easily annoyed by it.

as a manager you need to protect your team from bad apples. the no-assholes rule applies, but as programmers tend to have anti-social behaviors it is harder to apply. is the behavior of the employee destroying the productivity of others? is his/her productivity high enough to compensate? a rockstar programmer might be worth putting up with.

managing people is hard. and you can't learn it like you can with programming. no theoretical studies help, no tutorials, no forums. no stackexchange to quickly solve a problem. that's why a lot of managers suck - cause they are on their own. or as Peter Drucker put it, there are only a few possibilities to _learn_ true management skills out there - the army being the biggest of them, followed by the boy scouts. think about that and what it means for modern organizations.

<comment><USER15> Do you really see the army as a reference in management? Focus on discipline, strict hierarchies and codes doesn't do much good for most software businesses.

And yes, you _can_ learn it. Every profession that involves people has it's dose of "magic" that you must grasp - project management isn't special. Ask a teacher.

<comment><USER36> Not even inn leadership one my think (the army as an example, I mean), but in terms of management of large organisations, yes armed forces (as long as they are used from time to time, so NOT the germen ones) or the roman catholic church are pretty good examples. For leadership, you rather go look somewhere else for examples.

<comment><USER35> particularly in leadership, why would you single that one out?

squad leaders, platoon leaders, up to officers - they all lead people. all they rely on is their people. if you are out there in afghanistan all that can save your life is your people.

the days of WWI style large-scale battles are long over. ever talked to veterans? most i talked to confessed that it is pretty likely that more officers died by 'friendly fire' than enemy contact. if you suck as a leader in war, feedback is pretty direct.

the modern army is the outcome of a lot of field testing. it is a learning organization, they employ their own historians to assess past activities and learn from them.

leaders are actually being trained in leadership. practical training, you get your own team in a controlled environment and then exercise with them. which organization has such a process?

i particularly like the AAR. not even SCRUM has such a feedback loop, nothing is learned.

<comment><USER37> A good sprint retrospective in Scrum should be similar to what I've read about After Action Reviews (AAR).

One the dust settles, spend time to figure out what went well, what can be improved, and what the on-going issues are. They both seem like decent continuous improvement vehicles to me.

<comment><USER35> what's really great about the AAR process in the military is that it is set up as an open forum, where rank does not apply. it is time-limited, to be done right after the exercise. it is highly focused, not a bitching session.

see this pdf for details: [http://www.au.af.mil/au/awc/awcgate/army/tc_25-20/tc25-20.pd...](http://www.au.af.mil/au/awc/awcgate/army/tc_25-20/tc25-20.pdf)

<comment><USER15> That's the description of an ideal sprint review.

</comment></comment></comment></comment></comment></comment></comment><comment><USER38> One thing that I've found extremely demotivating is when a manager tells me what NOT to work on. I'd have a side project that I'd start on my own time, and I'd tell my manager "I've got this prototype of X working, and I'd like to spend more time on it / test it out." He'd say "I don't want you to spend any time on that". Instant loss of motivation. And this wasn't my first month on the job, it was after maybe 3-4 years on the job, already having proved myself, etc.

<comment><USER39> This is really tricky. Often the person telling you not to put more time into something is trying to protect you from later disappointment or waste effort. Sometimes you need time to look at a prototype and figure out how it fits into your broader strategy.

The danger is that you keep working on it, and develop it in a certain direction. Then we often end up in one of two failure modes:

1\. We need something different from what you built. You have to throw your (perfectly good) work away. This is even more demotivational!

2\. We need something different from what you built. But you've already built this thing that sort of does what we need . . . so we keep it anyway. This is bad for the organization.

I'm seeing negatives on all sides. Suggestions on how to deal with these situations?

<comment><USER40> Instead of commanding to stop working on the project say what needs to be changed to make the project useful for the organization.

<comment><USER12> Or maybe figure out why this particular side project by your employee is important. It seems like a lot of these "side project to fix problem" situations come from a manager not knowing / not caring about the true barriers their employees are encountering or what is really costing the company time and money.

</comment></comment></comment></comment><comment><USER38> Every manager should also watch Office Space :)

</comment><comment><USER41> and The Corporation</comment>


Rust's Freedom Flaws - <AUTHOR> https://wiki.hyperbola.info/doku.php?id=en:main:rusts_freedom_flaws <comment><USER2> The restrictions are so reasonable that even the GPL would allow supplementing similar terms (if I understand it correctly):

[https://www.gnu.org/licenses/gpl-3.0.en.html#section7](https://www.gnu.org/licenses/gpl-3.0.en.html#section7)

Quoting the relevant bit:

Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:

…

c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or

…

e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or

…

<comment><USER3> This is not the same as the Rust restrictions:

> Distributing a modified version of the Rust programming language or the > Cargo package manager and calling it Rust or Cargo requires explicit, > written permission from the Rust core team.

So, either you distribute something you can't call Rust; or you need explicit permission. It is not good enough that you mark is as modified.

There is an explicit controlling motivation here:

> The Rust and Cargo names and brands make it possible to say what is > officially part of the Rust community, and what isn't. So we're careful > about where we allow them to appear.

(From the Rust media guide.)

<comment><USER4> The GPL does also say "e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks" as the parent noted. This is basically that, you can't distribute a modified rust and call it rust, just like you can distribute a modified Chrome and call it Chrome. I don't see the issue here.

<comment><USER3> But Chrome is a branding of a basic, branding-less, project - Chromium. With Rust, I'm guessing the nae "Rust" is used all over the place. "Some trade names and marks" is not "basically the entire work".

<comment><USER4> I don't get how you get to the point of seeing the rust trademark as "the entire work". If you modified rustc and called it "FeO, a compiler for rust", you'd be fine. Just don't call what isn't rust "rust" and it's OK.

Nothing in the FOSS ethos gives you a right to misrepresent a product, you get the right to modify software, not to say it's something it isn't.

Let's consider two cases:

1\. I forked rust, made a bunch of changes that are not compatible with upstream and setup rust.engineering (which is free right now) to say my fork is _the_ rust then the rust devs should be able to tell me to not use their name for my product.

2\. I forked rust, made a bunch of changes that are not compatible with upstream and setup feo.engineering (which is free right now) to point to my fork and say "feo is a rust-derived language" then that should be fine.

My reading of the license allows for the second use case, but not the first, which I feel is the right way. What is the problem with not allowing people to misrepresent the source of the code?

</comment></comment></comment></comment></comment><comment><USER5> This is a bit hyperbolic but there is an underlying issue here. The Rust project wants to keep control of the Rust name. They're more than happy for, e.g. Debian to fork it for inclusion into their repositories or for other forks to exist.

However, if a company creates a hard fork of Rust but still insists on calling it Rust, they want the ability to say "don't use our name".

The problem is, what's the best license to express that intent? Reusing the Firefox one makes sense in some ways (it's been well studied) but perhaps Rust would benefit from a custom license?

<comment><USER6> Possibly calling both the compiler implementation and the language Rust is the issue here.

<comment><USER7> The project and language are called Rust. The compiler is rustc. You could make an alternative compiler under a different name than rust or rustc with this trademark restriction.

Cpython and Python are similar here.

<comment><USER8> > You could make an alternative compiler under a different name than rust or > rustc with this trademark restriction

But would you be allowed to call it a Rust compiler, even if it compiled a slightly modified version of the Rust language ?

There are many C/C++ compilers, often they have some compiler-specific extensions, but they still call themselves C/C++ compilers. Would a similar situation be possible for Rust with the current license?

<comment><USER7> IANAL, but precedent says you can use "for Rust" in your description without issue. Though the Rust trademark could still be used to request a removal of association if you were doing something untoward in the eyes of the rust project.

So it's not necessarily an unchecked freedom but it's also not limiting in most cases either.

</comment></comment></comment></comment></comment><comment> c-cube The domain name is quite adequate, this is hyperbola indeed. Since when do the 4 freedoms include the right to fork under the same name? This is a rude thing to do anyway (hostile, even).

<comment><USER9> It is not about having the right to fork under the same name only, but also having the ability to apply small patches to the code without going to the great lengths of rebranding everything---of course we can discuss if changing a single bit from the source code would qualify the result as a fork or not.

<comment> c-cube Ah, thanks for the precision. How do distributions typically handle that? And why does GNU feel the need to patch rustc, is it for things that can't be upstreamed?

<comment><USER9> Somebody with better knowledge of that will hopefully chime in. My impression is that most of the distributions either don't patch upstream besides the build recipes, and upstream maintainers turn a blind eye to that. The ones that do, though (e.g. Debian), take the approach described on the OP and rebrand it (e.g. [https://en.wikipedia.org/wiki/Mozilla_software_rebranded_by_...](https://en.wikipedia.org/wiki/Mozilla_software_rebranded_by_Debian#Iceweasel) ).

<comment><USER10> I'm not aware of any distro that rebrands Rust.

You can see Debian's patches to rustc here: [https://sources.debian.org/patches/rustc/1.34.2+dfsg1-1/](https://sources.debian.org/patches/rustc/1.34.2+dfsg1-1/)

</comment></comment></comment></comment></comment><comment><USER10> Hey folks!

So, yes, the intention of this policy is basically to prevent people from confusion around forking the language itself. It would be very bad if, for example, a distro would strip out the borrow checker and still called the language "Rust."

Distributions do make some patches to Rust, and still call it Rust. The team is fine with this. Nobody has explicitly asked to do so either. The only trademark inquiries we get are around things like "can I sell this tshirt", honestly.

Now, there is _one_ thing of interest here. Mozilla does own these trademarks. I often comment here about how Mozilla does not run Rust governance, and that's true, but this is the one single way in which they do have some leverage. However, I can't imagine a world in which they do something against the will of the team. When discussing the idea for a foundation, a place for these trademarks is often one of the largest pros of doing such a thing.

I will note that a lot of people have brought up Iceweasel; this issue resolved itself long ago and distros like Debian ship Firefox now.

<comment><USER11> Is it very bad that [https://github.com/thepowersgang/mrustc](https://github.com/thepowersgang/mrustc) calls itself a Rust compiler?

<comment><USER12> From the Rust Media guide, under "Uses that do not require explicit approval":

* Stating accurately that software is written in the Rust programming language, that it is compatible with the Rust programming language, or that it contains the Rust programming language, is allowed. In those cases, you may use the Rust trademarks to indicate this, without prior approval. This is true both for non-commercial and commercial uses.

I would call a compiler that compiles Rust, but does not name itself "rustc" falling under that explicit approval.

(Full disclosure: I'm part of the Rust community and core team and often handle trademark decisions)

</comment></comment></comment><comment><USER13> Having total freedom like the author appears to want would be a big negative in my book. Why would we want a bunch of different variations of Rust that have different capabilities and may not compile the same "Rust" source code? If you want to make changes to the underlying language you can either work through the accepted Mozilla path to language acceptance or create your own language based off of it with different name. I'm not quite sure what the author is hoping to gain.

<comment><USER14> One use case would be for example a patch set to provide compatibility for architectures not supported by upstream. It can take years of heavy usage to get changes like that merged. For example Xtensa LLVM is still out of tree and Rust support would be for a long time as well.

<comment><USER10> Rust provides the ability to use your own LLVM already in-tree, no need to patch.

<comment><USER14> I do not think Rust will "just work" on a completely new architecture without any changes. Xtensa is not a hypothetical example - there is a fork of Rust to support it: [https://github.com/MabezDev/rust- xtensa](https://github.com/MabezDev/rust-xtensa)

<comment><USER10> Yes, this is a good point, sometimes you need frontend changes too.

</comment></comment></comment></comment></comment><comment><USER15> I'm not sure why python is called out as being better here. The PSF came calling for a rename pretty quickly when tauthon ([https://github.com/naftaliharris/tauthon](https://github.com/naftaliharris/tauthon)) was launched as it was initially describing itself as python 2.8

<comment><USER16> From the article:

> They do prohibit abuse of their trademarks, e.g. you cannot create a company > called "Python", but this does not effect your ability to modify their free > software and/or apply patches.

<comment><USER17> I'm not seeing the difference to Mozilla here.

<comment><USER16> Python's license allows patched redistribution without explicit permition. Rust's doesn't.

<comment><USER17> And yet when one tried to do it the PSF did not grant the right to the trademark and the operiert had to change the name.

</comment></comment></comment></comment></comment><comment><USER18> Many other open source projects have registered their trademarks. Even unregistered trademarks are protected in the US and elsewhere, and one of the specific things trademark law lets you do is prevent people from misrepresenting the origin of a product bearing that name. So unless the license or the trademark owner (like the Linux Mark Institute) explicitly grants you the right to use the trademark you have no guaranteed right to use it. So rust is really no different from the vast majority of open source projects.

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

</comment><comment><USER19> Exactly this issue of "you're free to make changes but please don't use the same name" keeps cropping up again and again -- take a look at the case of TeX/LaTeX: [https://www.latex-project.org/publications/2011-FMi-TUB- tb10...](https://www.latex-project.org/publications/2011-FMi-TUB- tb100mittbach-lppl-history.pdf) ("Reflections on the history of the LaTeX Project Public License (LPPL)", by Frank Mittelbach, leading the LaTeX project since 1989.)

I think it is reasonable for certain kinds of software to have an expectation that users get the same results anywhere they use software by that name, and (therefore) that incompatible changes will not be distributed under the same name. Whether (1) that applies to Rust, and (2) that makes it non-free software, is the question here.

</comment><comment><USER20> This... seems reasonable? If you want to modify and distribute Rust/Cargo then you have to call your distribution something else. Call it Oxide/Freight and you're set.

<comment><USER21> I agree, but still think it _might_ be considered reasonable _not to_ want to rebrand in some cases—like patching Cargo to try and check with the package manager first when installing packages. It obviously won't (and shouldn't) get accepted mainstream, but it doesn't also seem confusing enough to warrant a necessarily different name.

<comment><USER22> So you would make a thing called "Cargo" that was almost the same as Cargo except for some custom patches? That sounds pretty confusing to me.

<comment><USER23> Is it very different than the Linux kernel? There are thousands of custom versions, old versions, and strange architectures and they're all called "Linux" and it's worked fine so far. Some organizations even backport security fixes without changing the version number. As long as you're clear about what you're doing, why is this any more confusing?

<comment><USER20> For some definition of fine =P

The word "Linux" no longer has a singular meaning. And distributions have their own branding.

If someone wants to release DebianRust and DebianCargo that would be perfectly fine and non-confusing. A distribution could also make an agreement to use the Rust/Cargo trademark under some mutually agreeable terms. Likely having to do with no major changes and staying updated.

</comment></comment></comment></comment></comment><comment><USER24> Is there an existing project that does allow for forks with the same trademark? (that is not in the public domain and similar licenses)

</comment><comment><USER25> This is a follow-up to yesterday's thread: [https://news.ycombinator.com/item?id=21867202](https://news.ycombinator.com/item?id=21867202)

</comment><comment><USER26> IMNAL. How about GNU asks Mozilla for a permission to call any modifications it makes "GNU Rust"?

<comment><USER4> That would just kick the can down the road, no? What should modified versions of "GNU Rust" call themselves?

IMO it's better that alternative distributions just don't call themselves rust unless they actually are the upstream rust.

</comment></comment><comment><AUTHOR> Make your branch & call it Tsur Ekil.</comment>


Creating an embeddable Python distribution on OS X - <AUTHOR> http://joaoventura.net/blog/2016/embeddable-python-osx/ <comment><USER2> Picking files out of homebrew for distribution is generally a bad idea. You've fixed the linking issues, but not -mmacosx-version-min.

If you run $ otool -l libpython3.5.dylib and look for LC_VERSION_MIN_MACOSX – you'll see it's compiled only for your current OS.

So, if you do this on OS X 10.11, your users will have to have OS X 10.11. It may appear to work on older versions of OS X, until you hit something that doesn't. For example, when I tried using a homebrew library, it was compiled using newer SSE instructions that weren't supported on older processors still supported by older OS X versions. So when testing on an old Mac, it crashed with bad instruction at a somewhat random point in execution.

<comment><AUTHOR> Hum, nice catch! Maybe there is a way to change that LC_VERSION_MIN_MACOSX variable, although the compilation generated instructions may be a dead end.

I see two possible solutions, either try to work out from the Python provided binaries (which support OS X 10.6) or try to compile it from source in a way that is backwards compatible, Maybe cpython's makefile has some support for that?!..

<comment><AUTHOR> I can confirm that the Python dynamic library installed from python.org do not have any reference to LC_VERSION_MIN_MACOSX. So in theory, it would work on any OS X version..

The only catch is that the official binaries are 32/64 bits which means that the shared library is 6MB instead of 2MB for the homebrew version, and the standard library zip is 23MB instead of 10MB for the homebrew's version..

I've updated the blog post with those remarks in the end.

<comment><USER3> If it's an autoconf project you should be able to (as far as I recall) pass appropriate min version and architecture flags to ./configure

Python bundles a bunch of modules one may not need for embedding in either case, and they can be turned into byte code before distribution.

<comment><AUTHOR> I've managed to compile Python 3.5 from source setting MACOSX_DEPLOYMENT_TARGET=10.8 on the Makefile (after doing ./configure). But by default it compiles Python to a static library, which is quite ok, but I am having trouble compiling to a "Framework", which I think would give me the dynamic library.

Although Python is widely used, everything related to these kind of things seems to be poorly documented..

Edit: just need to do "./configure --enable-shared" and it will compile Python as shared library (libpython3.5m.dylib)..

<comment><USER3> I think I have set CFLAGS to something like "-arch x86_64 -mmacosx-version- min=10.8″ when running ./configure to autoconf projects.

It's not really specific to Python, so "poorly documented" isn't a surprise.

<comment><AUTHOR> For Python you just need to do "./configure MACOSX_DEPLOYMENT_TARGET=10.8"..

I'm creating another blog post with all the info I got from this thread, regarding compiling Python from sources. I'm going to put the link here when ready..

Edit: [http://joaoventura.net/blog/2016/embeddable-python-osx- from-...](http://joaoventura.net/blog/2016/embeddable-python-osx-from-src/)

</comment></comment></comment></comment></comment></comment></comment><comment><USER3> Interesting read. I had embedded Python in one of my apps and I wish I had known about being able to zip the distribution. To save space, I compiled all the .py files into .pyc bytecode files, and tediously removed a bunch of modules my app didn't need (tkinter, antigravity, ...), along with setting PYTHONDONTWRITEBYTECODE. You can probably still do this, of course, in addition to zipping it all up.

I had compiled python myself and used static linking instead of dealing with install_name_tool, although I do wonder if I should have built a dynamic library instead. Anyway, compiling from source (or adjusting the homebrew formula?) gives you control and being mindful of eg: LC_VERSION_MIN_MACOSX as already mentioned here.

For my specific use case, I also wanted to use Apple's GCD and have Python do all of its work on a secondary thread. I had to make sure the interpreter would only stay on a single thread (whereas GCD normally doesn't make such a guarantee).

</comment><comment><USER4> It is extremely likely that that the author did not have option to look at alternatives to Python, but some other scripting languages, for example, Lua, Tcl and Guile are easier to embed because they were designed with that use in mind from the beginning.

Among other things, Tcl, Lua (not sure of latest Guile) encapsulate their interpreter thread well, so one can run independent interpreters in multiple threads that can communicate with each other by message passing but without the need for any serialization/deserialization.

<comment><USER5> If nothing else, I would imagine using Lua or Tcl instead of Python would make the binary size significantly smaller yeah? I seem to have gotten the impression that embedding the CPython runtime, even stripped down, could potentially grow binaries significantly, especially if statically linked.

<comment><USER6> My rule of thumb is the Lua core is about 100kb, and the Lua standard library is about 100kb. Tcl is about 2MB. (All built as dynamic libraries.)

Lua's source is pretty malleable. There are things you can rip out from Lua if you don't need them to make it smaller. I once read a claim that a micro- controller use got it under 20kb.</comment></comment></comment>


"Look, you may hate me": 90 minutes with John Steele, porn troll - <AUTHOR> http://arstechnica.com/tech-policy/2013/05/look-you-may-hate-me-90-minutes-with-john-steele-prenda-porn-troll/

<comment><USER2> Well, he's right about /one/ thing...</comment>


Ask HN: Snow Leopard - Lion dilemma  - <AUTHOR>

I haven't been a mac user for very long. Recently got tired of no office on Linux so I bought a mac book pro and have been very happy with it.<p>I have been reading a lot about Lion and it seems to get mixed reviews. Are you all as devs happy with the upgrade? If yes/no why? <comment><USER2> I'm fairly happy. But I've also been using the betas for several months now.

For my day to day (Rails and iOS programming) there isn't a huge difference in the two.

Obviously Lion has more UI changes than SL. There are some nice little things - lots more polish. I don't really use the Mission Control stuff on Lion nor the LaunchPad (gives it iOS app groups/paradigm).

One nice thing about Lion is restarting the machine. You can have it pin the apps on different desktops on startup and 'resume' where you left off. This also happens with Terminal - open a new tab and you're in the same dir as the previous tab.

Some disk access/app launching seems faster in Lion. Other than that, there's not a lot of stuff that feels different. I suppose you'll have to upgrade at some point just to not be 'left behind'.

But overall, imo, very similar experience.

</comment><comment><USER3> I had to roll back because of some minor issues with my setup but other than that there's not a big difference. I recommend upgrading.</comment>


Jessica Livingston Talks Female Founders and Her Favorite Event of the Year - <AUTHOR> http://techcrunch.com/2016/02/08/jessica-livingston-talks-female-founders-business-cycles-and-her-favorite-event-of-the-year/ <comment> tea-flow It'd be great if they could get [https://en.wikipedia.org/wiki/Judith_Faulkner](https://en.wikipedia.org/wiki/Judith_Faulkner) to participate in some way.

<comment><USER2> Sigh, Epic. Incredible businesswoman, horrible company and product.

</comment></comment><comment><USER3> The favourite event is the Female Founders Conference.

</comment><comment><USER4> Does anyone know when the attendees are notified? I applied to attend and I'm wondering when we will hear back. Thanks!

</comment><comment><USER5> Poor Founders Conference

If your parents bought you a certificate from one of the upper class private universities, you're not invited.

</comment><comment><USER6> I wonder how often a story about a woman in the industry shows up on the front page of HN.</comment>


Ask HN: What's a good software/interface to consume mailing lists? - <AUTHOR> <comment><USER2> I find that using the "archive to tag" \+ "skip inbox" filter features in Gmail is very convenient. The threaded interface and search is great. Once upon a time I used a dedicated Gmail account to store LKML (100K's messages) and it worked wonderfully.

<comment><AUTHOR> Interesting. But right now i am browsing mailing list i am not subscribed to. And looking for something with threaded discussion and a search function

<comment><USER2> If you want to browse mailing lists that you aren't subscribed to then your options are limited to interfaces that are either 1) supported by the mailing list provider or 2) an interface to the list that is "subscribed". For instance, LMKL provides its own interface at lkml.org. Many mailing lists can be found at groups.google.com. The gmane and marc.info services also provide interfaces to many mailing lists. A popular mailing list services called Mailman often provides a public interface to archives, an example of which is the ceph-users mailing list [http://lists.ceph.com/listinfo.cgi/ceph-users- ceph.com/](http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com/).</comment></comment></comment>