A product is not just about features. It's about experience. - <AUTHOR> http://sachin.posterous.com/you-cant-measure-a-product-in-features-you-ca <comment><USER2> Making users happy should be core to any business. Netflix and Zappos rose to incredible success on the strength of giving people more than just features – they gave care. In doing that they crushed other companies who gave the bare minimum. Apple's brand has grown in the same way.

Anywhere you find companies indifferent to the user experience, you'll find a huge pot of opportunity. When you earn love and loyalty through truly virtuous exchanges, people will help you with your cause. It's true with business, it's true with your personal life.

Being good to people, through your features, through your behavior, through your values, has to, has to, has to come first, no matter what you're working on or how big you are.

<comment><USER3> _Making users happy should be core to any business._

Maybe it should be but plenty businesses make plenty of money without doing that. Look at cable companies or large health insurance companies.

Yes, in markets where you have many competitors, making customers happy is important. When you have fewer competitors or when you are selling a commodity, cutting costs and increasing your output is the key. When you have a pure monopoly, continued payments to the senator of your choice are in order.

<comment><USER2> Yeah, but the cable companies are screwed. At the very moment I can drop cable, I will. As soon as I find decent bandwidth provided by someone who isn't Comcast, they don't get my money anymore and _I will piss on their graves._ They're the next Blockbuster. I already won't pay for cable television.

I want to give Netflix my money. As much of it as they're willing to trade for great value. I like doing business with them. You can make money by not making people happy, sure. But you can also make dinner without caring how it tastes. It'll satisfy some baseline nutritional needs, but what is the point?

edit: And don't get me started on health insurance companies. They exist in a nauseating little ecological niche carved out through a perversion of the tax code. The moment health insurance stops being equated with compensation, they dry up like weeds, replaced by companies who must be genuinely accountable to the market.

I get what you're saying, but I'd rather rob people at gunpoint than make money like these guys. At least the robber has the courtesy to screw you in person, you know?

<comment><USER3> _At the very moment I can drop cable, I will._

Ah, but you can't... Having a monopoly position put these fellows in the position where they make money from customer who leave them for anyone ... _if they could_. In fact, they make the most money that way ... and the fiduciary duty they have ... to share holders, says they have to do that, doesn't it?

<comment><USER2> For the moment. But the wheel turns. It _always_ does. And that's the important thing.

For a very long time, media distribution revolved around warehousing cumbersome black boxes of plastic and charging absurd fees for access. The barriers for entry were extraordinary, requiring geographic reach and licensing agreements. Nationwide media rental was a defacto monopoly for Blockbuster.

Then the medium of information shifted. Because Blockbuster didn't care that much about whether or not people were happy with the service they provided, they didn't notice the new opportunities to make their business better.

Someone else did. Someone always will.

Netflix, because they are customer focused, is busy making itself obsolete. They know one day that the wheel will turn. Physical media will disappear entirely.

The same will happen for bandwidth. Disruption is only a matter of time. As always, there are challenges. But the demand is universal. The market is enormous.

 _And everyone fucking hates the incumbents._

</comment></comment></comment></comment></comment><comment><USER3> Some products are about features and some are about experience.

Experience seems like it wins if your audience is a large number of casual users. Having the right Features seem more important if you're after a smaller number of professionals who have specific things that they need to do (why Adobe prevails in certain field despite their horrific UIs).

<comment><USER2> Adobe managed to get lock-in, nothing more. There's no loyalty there. I loved PS3, I loved PS7. I loathe CS1-5. I'm trapped there, and I know I'm not alone in that sentiment.

As soon as someone comes along able to do most of what I need to to design UI in Photoshop, I'm gone. An app called Opacity is really close – in many ways it's better than Photoshop, chiefly because they care about how I'll use it. Once they iron out some performance issues with vector objects, I'm there.

<comment><USER4> I don't know. I love Photoshop. My personal opinion here, but I think it is an incredibly well designed piece of software. Maybe not the Mac version, but the PC version is just well thought out. I just don't see anything that could possibly make me want to switch.

<comment><USER2> It's little things.

Workflow: Opacity lets me define factories to quickly generate images as I iterate a design. They're like a combo of slices and save for web in PS. Using factories is infinitely faster than cumbersome layer comps, slice selections and export scripts.

Making things polished: Opacity lets me easily snap to whole pixels, instead of sub-pixel horseshit that makes everything look blurry. Using the pen tool in Opacity gives me smart, dynamic guides to help me align my anchor points.

"Layer styles:" Instead of confining me to one of every kind of layer style and forcing me into a specific compositing order for each, Opacity lets me do whatever I need to, in whatever order, as often as I want. It's liberating and time saving, especially when you're making UI elements.

The fact that it doesn't take a long time to launch is also nice.

Photoshop is bloaty and cluttered. There's no focus there and I'm pretty sure no one at Adobe is really giving any thought to how _I_ will use their software. They're working up feature lists, and not much more than that.

(For those interested, here's Opacity, too: <http://likethought.com/opacity/>)

</comment></comment></comment></comment><comment><USER5> Sachin makes an important point about what makes people love a product and stay with it.

An important counterpoint, though, is that feature lists sell: <http://www.jnd.org/dn.mss/simplicity_is_highly.html>

My experience validated Don Norman's. After I read his essay, I removed the carefully crafted sentences on <http://ourdoings.com/> describing the experience, and replaced them with ugly sentence fragments cramming as many features as would fit the layout. My KPI for new users spiked. YMMV.

</comment><comment><USER6> "User experience is everything. It always has been, but it's still undervalued and under-invested in. If you don't know user-centered design, study it. Hire people who know it. Obsess over it. Live and breathe it. Get your whole company on board." - Evan Williams CEO of Twitter

<http://evhead.com/2005/11/ten-rules-for-web-startups.asp>

</comment><comment><USER7> Sachin is right. A product is more than a feature list. He may come across as arrogant for pointing to Apple et al. as example of great product but his point really is about experiencing a great product and to duplicate this feeling/experience to his product. For example, the unwrapping experience of an iPod does not show up on a feature list but damm, it feels good to open that box because Apple took the effort to make it seem like you're open a present. He should've point to Google Search as another example of great experience. I remembered my virgin search with Google. Relative to other search engine at the time, Google was insanely fast and relevant. Do you remember? if not Google, there must be some products that you fell in love with, now ask yourself if it was the feature list or the experience that you love. btw, having the right feature set at the right moment is part of experience.

Sachin got nothing to apologize for, Posterous is one of the great product out there. It just works! Go, Posterous!

</comment><comment><USER8> Definitely user experience is the new IP. Some startups are getting some advantage over competitors just based on user experience. But do you think user experience is really defensible? How hard it is for competitors to imitate your user experience? (Apple just didn't have user experience. They had multi-touch technology as well, which was defensible.)

I remember reading one post from Union Square Venture blog about defensibility is not about features, or technology layer you use - but now a days its about the network effect (Craigslist, eBay), and accumulation of data asset (Google, Facebook).

So how startups can win over competitors in long run just based on User Experience? Sure, it can give great head start, but I think to sustain that leadership in the long run, you need to also innovate defensible technology or above mentioned network effect or data asset.

<comment><USER9> Dropbox has many competitors but none seem to be able to or even want to copy the very smooth experience of using Dropbox. I tried many competitors and found none that comes close.

I don't know why that is but it seems to me that really copying an experience is not at all easy.

(I also think that multi-touch is a neat feature of the iPhone but in no way essential to the experience. Pinching makes for a nice tech demo but on the small screen the ordinary and somewhat clever double-tap works much better. You can theoretically build a great iPhone clone without any multi-touch.)

<comment><USER10> There's a lot of user experience that takes a lot of coding to get right. Sites, apps and devices with good user experience didn't just get it magically, they worked at it. Copying it would also take work.

It's similar to startups. Ideas are cheap and easy, but executing them well (profitably) is hard.

</comment></comment></comment><comment><USER11> To put this in more actionable vocabulary: don't count features you've built, count _user stories_ you've satisfied. Frequently the same small subset of your features make up the key steps in almost all your stories, while the rest of your features can't really find a business use-case at all (because the user will be more likely to chain together other, more familiar features, or chain your feature with features from other products, to accomplish the task instead.)

</comment><comment><USER12> >There you go. You don't get it. Until you use an iPhone, a Mac, drive a BMW or Audi, you don't even realize how great the experience can be.

Perhaps beside the point, but...I can't be the only one who things that Windows 7 is a vastly better experience than OS X.

<comment><USER13> Maybe Windows 7 is better than OS X. But to get there, I'm sure the Windows team used OS X extensively to see what it does well, what it does poorly.

Someone who hasn't even tried the best has no way to build something better.

</comment></comment><comment><USER14> Only problem is, when it comes to blogging, I thought Tumblr was the one focused totally on experience and ease of use. Posterous still feels more like it's trying to give you every feature available and then some...

</comment><comment><USER15> I love people who believe themselves arbiters of taste. You use Windows, therefore you don't know what style is. You don't drive a BMW, therefore your opinion about software is uninformed.

And German cars suck. What they don't understand, and why Lexus vastly outsells them, is that the car breaking down every 20k miles is a significant blemish on their user experience. The inattention to detail could be overlooked, even the little GPS knob, which is the worst user interface ever designed, if they could just make it onto an IQS list once.

<comment><USER13> The exact quote was, "Until you use an iPhone, a Mac, drive a BMW or Audi, you don't even realize how great the experience can be"

I never said that you _can't_ use Windows, an Android, or drive another car. But at some point you need to use the top end product to really appreciate what's out there. If you spend your whole life on Windows/BlackBerry/Toyota, you might not understand what a great product is.

Before the iPhone came out, no one knew how great a phone could be. Even I didn't. The iPhone made me understand how you can take an existing feature set, and dramatically change a product through the experience.

You're going with a blanket, "German cars suck"? Really? I'd bet German cars have more fanatics than Japanese cars do. German cars delight people.

Lexus may outsell BMW, but that doesn't make it a better car. To me, a Lexus is just a high end Honda. It gets me from point A to point B, with a bit more luxury. One of Lexus's problems is that they don't have a vision, a passion. They just pump out what people will buy:

[http://sachin.posterous.com/the-problem-with-lexus-is- while-...](http://sachin.posterous.com/the-problem-with-lexus-is-while-they- created)

And yes, BMW sucks at interface design. Where they excel is in building the ultimate driving machine. I'm all for BMW outsourcing their tech:

[http://sachin.posterous.com/stick-to-what-youre-good-at- for-...](http://sachin.posterous.com/stick-to-what-youre-good-at-for-bmw- thats-bui)

<comment><USER16> _Lexus may outsell BMW, but that doesn't make it a better car_

While the definition of "better" varies from person to person,

 _They just pump out what people will buy_

the definition of a successful business is rather less subjective. Pumping out what people will buy is pretty much what makes a business successful. I'm not sure what point you're trying to make about the success of a product? Isn't a successful product the one with the most users?

<comment><USER17> >> They just pump out what people will buy

> the definition of a successful business is rather less subjective. Pumping > out what people will buy is pretty much what makes a business successful. > I'm not sure what point you're trying to make about the success of a > product? Isn't a successful product the one with the most users?

We are talking about better products, not successful businesses. For example, Britney Spears outsells Tchaikovsky, but no one would argue that she makes better music.

<comment><USER15> I would, because better is an absolute. It's better in some respects, less good in some, and therefore overall it depends on how you weight the attributes.

I find it pretty awful myself, but a lot of people prefer it, therefore in a sense it is better.

</comment></comment></comment></comment></comment><comment><USER18> Does anyone know who said "It's about experience" first? I keep hearing this great principle rehashed over and over.</comment>


Ask HN: Finding Founders in High school? - <AUTHOR>

	I'm in high school and looking for a startup founder. Although I have a few friends who are into startups/programming they are doing their own thing and I am helping them out, but I'd prefer to start my own thing.
What is the best way to find programmers/founders in high school? It seems like there are zero people interested in programming/computers at my school.
For any high school age programmers in Ottawa, my email is in my HN profile. <comment><USER2> I'd honestly suggest trying to learn programming on your own. You're going to fail, your startup won't amount to shit, your friends will change and leave you, and things will change following school. Expect this, and don't be disappointed.

So, at the least, you can maybe learn some programming out of it.

Disclaimer: Some friends and I tried to make a game company in high-school to make an MMO (remember those?). Said company finally made some J2ME games in college, failed. Learned a whole lot about technology, networking, and programming in the process--which has what's actually been useful.

<comment><AUTHOR> I'm really looking for people interested in technology that I can build something interesting with.

I'll take your advice into account though.

<comment><USER2> So, that doesn't have to be a startup, right?

Why not ask around for other kids interested in games (for various reasons, that's like the best place to learn programming)? Why limit yourself only to fellow students--get online and ask around on indie development forums?

<comment><AUTHOR> I'm not that into games specifically, but I'll give it a try.

I prefer programming and learning programming to relate to a certain project (website, app, etc) because I can apply what I have learned in something I enjoy.</comment></comment></comment></comment>


You don't bury survivors - transcript of an interview (2007) - <AUTHOR> http://www.codeslate.com/2007/01/you-dont-bury-survivors.html <comment><USER2> I interviewed for a QA position at (Deleted to protect the guilty) where I had to answer a bunch of brain teasers like this. I always prepare thoroughly and even enjoy solving these sorts of puzzles, so I knew most of the standard ones by heart and did fine. I would say that about half of the people who interviewed me did not appear to have the mental acuity to answer such questions themselves. I did learn some new and interesting puzzles though!

Two months later I was hired for what turned out to be an excellent software development position at a completely different organization.

When I interview technical candidates, I ask a pair of related questions that encompass data structures, sorting, and time complexity. It is a very simple- sounding problem. The good candidates get the questions almost before I finish asking, and the mediocre candidates struggle.

</comment><comment><USER3> Ah, but the double trick answer to burying survivors is that you ultimately do, but mabye after 10 or 40 years.

<comment><USER4> The triple trick answer is that you don't - they're cremated.

<comment><USER5> You bury the ashes

<comment><USER4> Or you keep them on the mantelpiece, but that could be the quadruple trick answer...

</comment></comment></comment></comment><comment><USER6> The idea behind the questions aren't bad. The point of the questions is to see how someone works through a problem. Even if they can't figure out the answer, the way they try to work it out is what is important.

However, a few of these questions have been used so much they have become cliche. Rather than test how someone works through a problem, they merely tell the employer if the candidate has heard it already. Any employer who asks any of these questions is lazy, plain and simple.

That being said, here are the questions (from a later post): <http://www.codeslate.com/2007/02/survivor-answers.html>

<comment><USER7> The problem is that most of the type of questions are "tricks", they require you to come up with a specific insight (or maybe do a little algebra in your head).

Asking someone to do this on demand in an interview is iffy; in some jobs I'm sure that sort of puzzle solving is needed, but for most I find it a lot more apropos to ask them to do something related to the job. E.g. to attack a design problem, where I will indeed be looking at how they work through it.

<comment><USER8> Especially so, I think, for the title question- where do you bury the survivors? I can't say for all the questions, but that one deliberately misleads and misdirects the listener. That's why it works as a joke.

Could be useful to see if they can be distracted or misled, but it sure doesn't check for intelligence/insight.

</comment></comment></comment><comment><USER9> The only "answer" that is hard to match to a standard brainteaser question was "they are seven and a half degrees apart."

I believe the question is, "what's the angle formed by the hour-hand and the minute-hand of a clock when it is 3:15?"

</comment><comment><USER10> Am I understanding correctly that this is satire to Microsoft style interview questions? Pointing out they this style of question is less important that the ones he gave examples of?

</comment><comment><USER11> I feel like there's beauty to this post that goes beyond parody.

These answer seem strain to go beyond the realm of brain teasers towards a statement about the human condition...

... perhaps something _why_ would have written...

<comment><USER12> I agree. I think it would have been even better had comments not be allowed, so the piece could stand on its own as a whole. It sort of reminds me of the tech industry's version of Dadaist poetry.

</comment></comment><comment><USER13> Reminds me of this:

<http://www.thesurrealist.co.uk/lateral>

</comment><comment><USER14> Ironically, it quotes incorrect answer to the "why manholes are round?"

<comment><USER15> Really? What is the correct answer?

<comment><USER14> (The reason why manhole covers are round is obvious - because manholes are round (which also happens to have additional benefit of not allowing cover to fall into manhole). So the question is why manholes are round?)

Manholes are round because of the same reason most wells with brick walls are round - less material is required to support pressure trying to collapse the shaft. I.e. given that manhole needs to reach the same depth, it will be cheaper to have round shaft than, lets say, square, because round shaft walls can be thinner, but still support required pressure.

<comment><USER16> aha, see I was wondering why it wouldn't be triangular, not only would the covers not fall in they also couldn't roll away.

Joke is that in the UK some manhole covers (bt?) are more or less triangular.

<comment><USER17> Are you assuming having covers that can't roll is a good thing? Being able to roll them might be an advantage in mobility.</comment></comment></comment></comment></comment>


Pros and Cons of Using XCTest for iOS Testing - <AUTHOR> http://bitbar.com/pros-and-cons-of-using-xctest-for-ios-testing/ <comment><USER2> What about xcuitest? Any pros and cons using it? Xctest is really flaky especially after the latest xcode update.</comment>


A Mechanised Cryptographic Proof of the WireGuard VPN Protocol - <AUTHOR> https://hal.inria.fr/hal-02100345 <comment><USER2> WireGuard is awesome once you have it set up, but I find user management a little fiddly due to the need to generate a key pair and assign an IP address for each client.

The last time I set up a WireGuard server, I used this script (with minor modifications) to create the users:

[https://github.com/adrianmihalko/wg_config](https://github.com/adrianmihalko/wg_config)

But, the _next_ time I set up a WireGuard server, I'll use this web-based admin UI, which displays a QR code to easily configure a mobile client:

[https://github.com/subspacecloud/subspace](https://github.com/subspacecloud/subspace)

<comment><USER3> Algo can be used to configure WireGuard also: [https://github.com/trailofbits/algo](https://github.com/trailofbits/algo)

It automatically handles server provisioning, creating users, and can also generate QR codes.

</comment></comment><comment><USER4> From the INRIA team ([https://prosecco.gforge.inria.fr](https://prosecco.gforge.inria.fr)) that did a lot of work on formal proofs of TLS implementation, leading to a host of CVE, and whose input was very influential on TLS 1.3.

</comment><comment><USER5> I setup Wireguard and was pleased with the setup. Unfortunately I tried to use it over the next week only to quickly realize I should have kept my OpenVPN install instead.

Outbound port filtering is incredibly common on public and guest wifi networks and I found three use cases in my first week where OpenVPN on 443/tcp would have worked fine. The inability to use Wireguard over TCP and bypass most outbound port filtering by using tcp 443/etal makes it unusable in my daily life. I can understand why TCP isn't performant but my choice isn't performance vs non-performant. It's works somewhat vs GFY.

And yes I've seen the udp over tcp forwarding hacks. They don't work on iOS and some look outright dangerous (hello open proxy).

Hopefully this can be addressed before Wireguard hits 1.0.

<comment><USER6> Have you tried setting up Wireguard to use a different port?

I use port 4500, which is typically used for ipsec nat traversal, and have found it available/worked on most networks where the default wireguard port was filtered.

<comment><USER5> I'll give 4500 a whirl to see if it increases the success rate. It's a good idea. However it's not inconceivable to have sites like cafes that only allow 80/tcp and 443/tcp because that was an option in the UI on their wifi router for guest networks.

At this point if I was designing a VPN for client devices I'd have a mode that looked at as close to HTTPS as possible. There is one tool to tunnel over websocket but this was already sucking up too much of my play time. :)

Cisco AnyConnect, while expensive and bloated, works great as it initially connects on 443/tcp and then tries to setup UDP. If UDP fails it just sticks with the TCP connection and "just works".

</comment></comment></comment><comment><USER7> I am one of the authors of the paper. Feel free to ask questions about our work, I'll try to monitor this thread and come back to answer.

<comment><USER8> Props to your team's great work doing useful analysis on an important protocol. I appreciate it. :)

I do have some questions about the assurance CryptoVerif provides. I'm a non- mathematician that does research in high-assurance security that tracks formal verification results. What I've read indicates problems can kick in at places like this:

1\. The logic or modelling used isn't proven sound. There's been tons of analysis into things like set theory or HOL Light. Is CryptoVerif using a proven logic?

2\. Recent designs favor kernelized models where about every step or transition can be proven consistent or just not mess up to begin with. Does CryptoVerif do this or is there a lot of complexity in it?

3\. The solvers might themselves make mistakes. One mitigation was them simply driving the steps in 2 that were easy to check and/or providing a log of work for a trusted checker. Any risks on automated part to worry about?

4\. Small, verifiable TCB. HOL Light and Milawa were explicitly designed for this. Does CryptoVerif have a trusted checker? Are the design and implementation of above done in a tiny, easy-to-verify fashion? The EasyCrypt paper's comparisons to CryptoVerif and CertiCrypt made me think it doesn't.

5\. Verification activities on the code itself, source and/or binary, from static analysis to property-based testing. Empirical evidence suggests these catch problems proofs sometimes miss, esp due to specification errors. Even CompCert had a few. Any of this on CryptoVerif's building blocks?

The answers to these questions might be helpful to people interested in boosting the assurance of this or other tools in the future. After all, the proofs can only be as strong as the foundations they're built on.

<comment><USER7> \- CryptoVerif uses a probabilistic process calculus adapted to its use case, detailed in [1];

\- There is no verified kernel. All algorithms, including an equational prover for simplification of games, are implemented in ~30k to 40k LOC of OCaml. The correctness of CryptoVerif's game transformations has been proved manually [1]. A formal link between these proofs and the OCaml code is not established;

\- During a proof, after each game transformation, CryptoVerif checks a list of invariants. This already allowed to find implementation errors in the past.

\- There are regression tests using proofs that have been done before with CryptoVerif, with both proofs that are supposed to succeed and proofs that are supposed to fail.

To conclude, CryptoVerif has no high-assurance guarantees on its code like Coq and others, but is the only tool that is capable to treat complex real-world protocols.

[1] [https://prosecco.gforge.inria.fr/personal/bblanche/publicati...](https://prosecco.gforge.inria.fr/personal/bblanche/publications/BlanchetTDSC07.html)

<comment><USER8> Ok, thanks! Sounds more like the assurance level of running model checkers on protocol code with user-supplied specs. It can catch lots of problems but no guarantees on all inputs/paths.

</comment></comment></comment></comment><comment><USER9> Note: just append "/en" to the URL to get the English version. Or you can manually click on the small "fr en" switch on the upper left side of the text description.

</comment><comment><USER10> What's the current status of WireGuard?

Is it usable?

I remember reading that Cloudfare is implementing it on their VPN product.

<comment><USER11> Windows client (pre-alpha) has just been released too. [https://lists.zx2c4.com/pipermail/wireguard/2019-May/004126....](https://lists.zx2c4.com/pipermail/wireguard/2019-May/004126.html)

<comment><USER12> I've been waiting for the Windows client to get finished off before switching to WireGuard.

I've been using SoftEther in the mean time, and man is it flexible. Punches through NATs with wild abandon, doesn't get blocked since it communicates through 443 (if you should so config it), is super portable, and offers solid security and performance as far as I can tell.</comment></comment></comment>


Ask HN: Christmas ideas for Startups and Hackers - <AUTHOR>

This could easily be re-titled, great products that every Startup or Hacker needs but seeing as how it's the 16th of December, and when my parents and friends ask me what I'd like for Christmas, and I give them the typical "I don't know" which infuriates them...I figured it would be an interesting and fun way to find out about new services, or products (feel free to plug your own) that could help entrepreneurs become more successful/productive, and more importantly since it is the holiday season, something they might not already have that would make a great and thoughtful gift.<p>It can be a cool new app that's great for logistics, or a service to help with subscribers, stickers for cheap marketing, a drawing tablet for design--whatever. So please share. <comment><USER2> <http://hackerthings.com> has a pretty good list for tinkerers.

<comment><USER2> Shameless plug: I've been putting together book lists at <http://bookbased.com> (links are affiliate)

</comment></comment><comment><USER3> I am trying to work on solving that 'I don't know what I want' / 'I don't know what to get them' by building a gift site that works on describing the giftee.

It launched last week: <http://www.GiftLizard.com></comment>


Unity: a lightweight netbook interface for Ubuntu - <AUTHOR> http://www.markshuttleworth.com/archives/383

<comment><USER3> <http://www.canonical.com/products/unity>

If it's all about speed and lightness they might want to drop firefox for chrome. The difference is very noticeable on an Atom 1.6gighz, and in the upcoming ARM powered devices it will be too.

<comment><USER4> The screenshot ( [http://www.markshuttleworth.com/wp- content/uploads/2010/05/L...](http://www.markshuttleworth.com/wp- content/uploads/2010/05/LightScreenshot.png) ) does use Chromium. What I find remarkable about this "light" version of Ubuntu, though, is that it seems to use up more screen real estate for panels than normal Ubuntu! What the hell?

<comment><USER5> The left panel has "this should auto-hide" written all over it.

As a Ubuntu Netbook Remix user, though, I'm looking at the window titlebar and wondering, what happened to the titlebar-integrates-into-top-panel stuff from UNR? Shouldn't that remain a part of the "conserving precious vertical display space" approach?

<comment><USER6> The integrated panel+toolbar doesn't really fit with the "windicators" idea, so I wouldn't be surprised to see that integration go away.

</comment></comment></comment></comment><comment><USER7> I love it - it's about damned time that the open source community started giving a real shit about UI.

<comment><USER8> I think they always have done at a certain level, but of course good developers do not make good "joe average" users, and the open source movement has really always been about programmers, not graphic designers/UX/IA people. That's always where companies have added the real value when they build off open source imo. While I admire what people like KDE and Gnome do in terms of effort, the results they return have always been questionable.

<comment><USER9> UI development is not a democratic process.

<comment><USER10> Why not? I think it is and should be.

When 90% of your end users are old people who rarely use a computer you have to ask them about there needs. You will collect the 'votes' and may discover you have to drop some functionalities. And maybe a slider UI will be better than a number ticker/spinner control.

<comment><USER11> > Why not?

Because users are dumb.

I watch them make bad decisions _all the time_ ; they want to put a box of 60 categories _here_ in the left nav of the page; they want to have a drop-down menu for every department in the hospital. "Asking" ten users how a user- interface should work, and you'll get ten incompatible and stupid answers.

The trick to using users to get good UI is to have a programmer _watch them_ try a prototype (or using paper prototypes). Of course, the programmer has to be tied to a chair and have his mouth duct-tape'd closed so he doesn't try and help, but the fact is when he sees the "inputs", he'll optimize the layout correctly to suit them. Programmers make fine user-interface designers when they're properly motivated.

<comment><USER10> You shouldn't ask users how the UI should be. You have to listen to there needs. Then you have to translate this 'democratic' information into a UI design.

When a user wants a drop-down for every department in the hospital you could translate this into "I want to select a department as easy and quickly as possible".

<comment><USER12> Listening to someones needs and then deciding what is best for them is not democratic at all. I think that you are really stretching here.

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> It's instructive to compare this with Windows 7 (often comes installed on modern netbooks). Recipe: 1. move default taskbar to the left and 2. use Chrome. The result is pretty good, I think:

<http://drop.io/dyhgfkv/asset/windows7-png>

</comment><comment><AUTHOR> deb <http://ppa.launchpad.net/canonical-dx-team/une/ubuntu> lucid main

deb-src <http://ppa.launchpad.net/canonical-dx-team/une/ubuntu> lucid main

apt-get install unity

unity --show

<comment><USER14> `add-apt-repository ppa:canonical-dx-team/une` will add both the apt sources and the signing key in a single command.

</comment></comment><comment><USER15> It's funny that they are talking about maximizing the vertical pixels while letting title bar, menu bar, url bar, bookmark bar, tab bar, horizontal scroll bar, and status bar eating up 1/3 of vertical pixels of the primary web browser window on the home page photo at <[http://www.canonical.com/products/unity>](http://www.canonical.com/products/unity>).

Seriously, Open Source marketing should be improved in this level of detail. Yes netbooks have shallow screens, then why wasting 145 precious vertical pixels to show non-content controls on a web browser window only 428 pixels high?

Some naive ways to improve the impression:

* Make the browser window taller, preferably taking all available vertical space. Present more web content when you really want to improve the web experience. (Right now I can only see the big heading of NYT, not really interesting.)

* Bundle one of those Hide Menu plugin to kill menu bar. How often do you really need it? And when you do need it, just click one button on the url bar to summon it.

* Choose a page that is slightly narrower or widen the window a little bit (you have the horizontal pixels to waste!) so horizontal scroll does not show up.

* Hide the status bar. Most users don't look at it anyway.

* If there is only one tab, don't show the tab bar.

Or better yet, replacing Firefox with Chrome solves it once and for all.

<comment><USER16> On my netbook with Ubuntu I wanted to move the top gnome panel to the right side so I'd have more vertical space; apparently this is impossible to do cleanly.

We have wide screens now, and a lack of vertical space. The solution seems obvious to me; don't take up vertical space with desktop UI and move it to the side instead.

I love the gnome-shell, but I'd love it more if I could get those top pixels back. On a netbook, every little bit counts.

<comment><USER17> >On my netbook with Ubuntu I wanted to move the top gnome panel to the right side so I'd have more vertical space; apparently this is impossible to do cleanly.

I tried this with the past four versions of Ubuntu (8.10, 9.04, 9.10 and 10.04) on my Aspire One. In the first three cases I went back to a top or bottom panel because the side panel was ugly and unusable. With 10.04, a right-side panel is actually decent for the first time. It's not _great_ \- e.g. the shutdown applet is still too wide and doesn't flip vertically - <USER2> it's decent.

</comment></comment></comment><comment><USER18> "It's about how fast you have a running system that is responsive to the needs of the user." - This is the key.

Make it look nice with excellent fonts and i am sold. I know this is not designed for a workstation - but for standard browsing, checking emails and general usage , this could be it.

</comment><comment><USER19> Dock on the left, title bar and sys tray at the top, window controls on the left side... this vaguely reminds me of some other OS, and I don't think that's at all a bad thing. People like OS X's UI. It makes sense to go with what works.

If they wanted to save more vertical screen real estate, Ubuntu could take another hint from Apple and enable Global Menu Bar by default ( <http://code.google.com/p/gnome2-globalmenu/> )

<comment><USER20> They are doing this. "Third, we will make the top panel smarter. We've already talked about adopting a single global menu, which would be rendered by the panel in this case."

See also <http://www.markshuttleworth.com/archives/359>

</comment></comment><comment><USER21> Does anybody that has used both have an idea of how this compares to the Ubuntu Notebook Remix default UI?

I've been using it on a small acer netbook with a 3G card in it and it has worked pretty well in that configuration for me, I'm curious how they compare but I'm loathe to install stuff on it without some idea of what I'm getting in to because it is a machine I rely on in emergencies (on the road, server down).

</comment><comment><USER22> Looking at that Ubuntu Light example image, they could still move the window title and buttons to bar at the top, next to the search field, to save more vertical space. In the other hand, if they want to make it more usable for touch users, they'll need to enlarge the main toolbar and all those tiny indicators (battery, volume etc.) at the lost of some vertical space.

<comment><USER23> Yes, the top of that screenshot looks messy. If they are moving in this direction, they could also get rid of the top panel. Or at least redesign it.

I have been working in a similar desktop on my wide-screen laptop for nearly a year now. I feel much more productive. It took me some time and skills to configure it, but the tools are already available. I use Openbox+Tint2+Conky and some other lightweight utilities. Also Tree Style Tab extension for Firefox: <https://addons.mozilla.org/en-US/firefox/addon/5890> Since they are talking about getting users to the browser faster, they may as well tweak the browser to work better in this environment.

It is more natural when window/tab hierarchy flows from left to right, than from left and then from top.

</comment></comment><comment><USER24> I love it, however there are still a few things off.

1) The gradient on the window titlebar is too pronounced and isn't consistent with the left sidebar.

2) Fonts don't look awesome - they are okay though. Please just license or create a truly great font!

3) Icons on the sidebar don't look right. I'd rather no background personally.

<comment><AUTHOR> fonts get insanely better for my systems the moment i turn on full hinting.

<comment><USER25> To get the fonts I like (Mac OS X style) I turn hinting off completely. Ubuntu seems to be moving closer to this as the default as time goes by, probably a smart move as there will be less and less people used to old-skool Windows font rendering.

<comment><USER26> "Old-skool"? Does Mac OS X do sub-pixel positioning yet?

<comment><USER25> Yes, the released it in Mac OS X 10.2, one year after Windows XP had cleartype, but they didn't hide the feature away so that only experts could find it and so it was widely used.

But, sub-pixel rendering is just a diversion from the real differences between the two systems, one fits to the grid via hints, the other anti-aliases. I believe both iPhone and Windows Phone are now using this system, and without bothering with sub-pixel rendering.

<comment><USER26> I didn't say sub-pixel _rendering_. I said sub-pixel _positioning_. Can characters be placed at sub-pixel boundaries instead of whole-pixel ones?

<comment><USER25> Sorry I misread that. But I'm fairly certain that Apple's method positioned text to less than a pixel anyway, just as a side effect of their general method. It's the Microsoft school of type rendering that tries to grid fit and therefore is excited about having a finer grid of (sub-)pixels to fit to.

I can't Google up a definitive answer but this document comparing Adobe type rendering against Cleartype seems to suggest that what I say above is true.

 _Microsoft and Adobe: Sub-pixel Positioning and Kerning_ :

<http://antigrain.com/research/font_rasterization/#toc0003>

<comment><USER26> Yes, but where does it say Apple does sub-pixel positioning? From what I remember last time I checked, I'm 99% sure it doesn't.

My overall point is that calling ClearType "old-skool" is an injustice when it's more technically advanced than Apple's rendering.

<comment><USER25> It's fairly obvious that Apple use the same basic system as Adobe. This renders text on a grid that is far higher resolution than the screen then resamples it down. Anything that doesn't round to a pixel is pretty much by definition sub-pixel, and the colour fringes you see when zoomed in clearly show that they're using the individual sub-pixels independantly. I'm not really sure how you could achieve this without what Microsoft call "sub-pixel positioning". It only appears to be a _feature_ with a distinct name because they left it out in their first few versions of cleartype.

Old-skool referred to a) the fact that it's subjectively more pleasing to those who are used to aliased, bitmap fonts hence the big demand for "terminal" or programmer fonts in that style, even today and b) the fact the rising DPIs have been on the cards for a long time and are now arriving, making cleartype technology, and the aesthetic philosophy behind it, basically redundant.

I don't really believe it's more technically advanced, just a different style of rendering that worked with a different set of technological and user- defined constraints.

(For what it's worth, when I looked up what sub-pixel positioning was, it was listed next to Y-axis anti-aliasing with equal billing. Again this is just built into the Adobe and Apple approach from the start: [http://msdn.microsoft.com/en- us/library/ms749295.aspx#y-dire...](http://msdn.microsoft.com/en- us/library/ms749295.aspx#y-direction_antialiasing))

<comment><USER26> > and the colour fringes you see when zoomed in clearly show that they're > using the individual sub-pixels independantly

Seems like you're still missing the point. You'll see the colour fringes with ClearType too. Here's a test:

iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii

Do all of those render identically on Mac OS X, or are the colour fringes different for different i's? They render differently on Windows with DirectWrite. If they render differently then you know you support sub-pixel positioning. (I can't claim the inverse, of course.)

> b) the fact the rising DPIs have been on the cards for a long time and are > now arriving, making cleartype technology, and the aesthetic philosophy > behind it, basically redundant.

How is this so? As DPI goes to infinity, both ClearType and Quartz will look exactly like they would look in print.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER27> Now that I've acclimated to Chrome on Windows, I don't think I could give up having the tabs on the very top of the screen. Me and my man Fitts love having the browser tabs at the top and the open applications at the bottom. It's really fast to switch tabs using the mouse that way.

</comment><comment><USER5> "Unity is available now for testing on Ubuntu 10.04 LTS" (<http://www.canonical.com/products/unity>)

Oh hell. Now I have to run out to my pickup and grab my netbook. There goes a productive morning.

</comment><comment><USER28> curious to hear thoughts on this vs chromeos</comment>


Introduction to .htaccess - <AUTHOR> http://codular.com/htaccess-introduction

<comment><USER2> "Apache configuration" is the bit that makes your website work better. ".htaccess" is the thing that slows down your web server. People choose odd titles. :-)

</comment><comment><USER3> now HN posts target a crowd that doesn't know what htaccess is?

<comment><USER4> I think it's been over 2 years since I last used .htaccess or Apache, having moved on to Nginx and separate application servers like Node, Gunicorn and php-fpm.

<comment><USER5> Good idea, I'll code a .htacces reader for Node.</comment></comment></comment>


The Mastermind: The Next Big Deal - <AUTHOR> https://mastermind.atavist.com/the-next-big-deal <comment><USER2> It has been a phenomenal few weeks. This series truly was great journalism, in the truest sense of the word.

Well done Atavast.

This run stands out as amongst the best long form journalism I've ever read, and I've read _a lot_ of long form. I'm eagerly looking forward to more from this team.

<comment><USER3> Wait, was this series actually Atavast's work proper, or the work of someone using Atavast's platform? I'd assumed the latter, as Atavast seemed to only be a platform, not a journalistic endeavor itself.

<comment><USER4> The author is one of the founders of Atavist.

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

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

</comment><comment><USER6> [https://en.wikipedia.org/wiki/The_Blacklist_(TV_series)](https://en.wikipedia.org/wiki/The_Blacklist_\(TV_series\))

It's almost as if this TV series was written with Le Roux in mind.</comment>


UK students switch to US universities - <AUTHOR> http://www.bbc.co.uk/news/business-15963688 <comment><USER2> With the latest hike in British tuition fees (to around £9000/year from around £3000), studying in the US probably costs around the same as studying in the UK, so I'm not surprised that many more kids are suddenly considering going abroad.

Previously, studying in the UK was far cheaper, so it was ridiculous for a British citizen to voluntarily pay much more to study abroad for a similar quality of education.

<comment><USER3> But why go to the US? A British citizen can study everywhere in the EU. Personally, I would recommend going to Germany (disclaimer: yes, I'm German), especially for an education in engineering. In many Univerities here, you pay less than 500€ a year (and might even get free public transportation with that). Granted, there is the language barrier, but on the other hand, it's rather cheap to spend a weekend "back home" when you feel like it.

<comment><USER4> Language barrier probably has a lot to do with it, but top US universities are forever in the media via US TV Shows, Films and news coverage.

I could probably name quite a few Ivy League institutions but nothing for Germany. Of course, anyone seriously considering this would do a lot of research but the US gets a fair head start.

<comment><USER3> Ok, this makes a lot of sense. So, if anybody is interested, here is a small overview for prospective future student-migrants to Germany:

1\. The good universities in Germany are public universities (TU München, TU Erlangen). Private universities exist for a few years now, but so far they haven't proven that they can reliably deliver the same quality. (There certainly are exceptions).

2\. For technology fields, southern Germany is better than northern Germany.

3\. Computer science ("Informatik"): Bigger universities are better, check out what research is being done at the university before applying. If you do your standard degrees (in Germany this is a bachelor and a master), you will, from your bachelor thesis on, be involved in actual research activities.

4\. For electrical/mechanical engineering, good criteria for university selection are: Is there a major technology center nearby (München, Stuttgart, Rhein-Main)? Is it a TU (Technische Universität)? Does it have more than 10000 Students?

5\. Forget about Berlin (at least for a moment). Berlin is _the_ place for the "young and hip" startup scene in Germany, but for historical reasons, it is not traditionally a technology center. The biggest German IT technology center is in the Rhein-Main-Neckar area. There are a bunch of universities (TU Darmstadt, TU Heidelberg...) and many "traditional" companies (SAP, Banking services...). You are also close to Frankfurt, which is a very central travel hub (Frankfurt airport obviously, but also the train station.) There might even appear a direct train connection to London in the near future. At the moment, you have to change trains once, in Brusseles.

I hope this helps someone. There are certainly also great technology/IT universities in the Netherlands and some northern and eastern european countries, so further research is advised.

</comment></comment></comment></comment><comment><USER5> Interesting, my 14 year old son (who is at a private school) is keen on going to a foreign University (probably in the US) and it's not because of the tuition fees - we don't have them here in Scotland.

</comment><comment><USER6> This sort of hype article pops up every few years in the British press. Perhaps there is an increasing trend in students attending US universities, but it is always going to be a small number, and almost all of them will be private school pupils with rich parents.

</comment><comment><USER7> And vice versa.</comment>


Ask HN: Has anyone used web-scraping-as-a-service that didn't suck? - <AUTHOR> I'm trying to be a little more commercially minded, and avoid writing my own scraping infrastructure and maintaining a bunch of scraping integrations for specific sites I want data from.<p>There seems to be a large number of web-scraping-as-a-service products out there, and very little to recommend between them. Has anyone used one which didn't suck, or am I likely to need to write my own scraping tools? <comment><USER2> I heard good things about [https://import.io/](https://import.io/)

<comment><USER3> Everyone I spoke with about Import.io said it was pretty inconsistent.

</comment></comment><comment><USER4> Give Feedity - [https://feedity.com](https://feedity.com) a try. Drop us a message [https://feedity.com/contact.aspx](https://feedity.com/contact.aspx) if you have any questions or concerns.

</comment><comment><USER5> I got great experiences with [http://scrapinghub.com/](http://scrapinghub.com/), you can hire them as consultants also and short time contract is enough to get in the right direction. really smart people

</comment><comment><USER6> Seconding this question... I've wanted a way to get HN top posts each hour, aggregated (and deduped) by day/week, so that I dont have to feel the need to check as often. Thanks for this links, hopefully one of these will get me there!

<comment><USER7> You don't have to scrape HN, it has an API. It's linked to at the bottom of each page.

</comment></comment><comment><USER8> I've used [http://www.mozenda.com](http://www.mozenda.com) in the past. Worked on some fairly complex Web directories with multiple levels.

</comment><comment><USER9> My colleagues at [https://www.archive-it.org](https://www.archive-it.org) do a pretty darn good job

</comment><comment><USER10> work with a group that use Mozenda - I haven't worked much with it directly. They made it through a couple years of scraping with Mozenda. They recently decided to spend more and installed Kapow. More mature platform - lots of features but also a lot more expensive if I understand correctly.

</comment><comment><USER11> it depends, tools like Kimono can gather data on a topical layer, but cant really interact with the page(via js). I wanted to scrape some data on a site I was interested in, but I need to interact with the site to get the data, so I ended up writing my own crawler</comment>


A browser trained snake neural network that I created during the weekend - <AUTHOR> https://snaike.dries.io/ <comment><AUTHOR> Source van be found here: [https://github.com/driescroons/snaike](https://github.com/driescroons/snaike)</comment>


Masdar City, January 2012 (6 minutes) - <AUTHOR> http://www.youtube.com/watch?v=Kjg55tGGbjo

<comment><AUTHOR> I just discovered through the Arte TV the Masdar City project. After looking on Wikipedia (<http://en.wikipedia.org/wiki/Masdar_City>), I found this video to give a quick status where it is going. Despite the crisis it is still continuing well.</comment>


Ask HN: How to commit? - <AUTHOR> I've got a bit of a fear of commitment when it comes to moving forward with a new startup idea.
I've tried a couple of startups over the past several years, one consumer and one a b2b SaaS company. The first one had no clear business model and was more of a side project to learn to code. I hoped to turn it into a startup but in hindsight it really never had a chance. The second had a clear business model but didn't target a specific niche and ultimately had no differentiators or compelling value proposition.
I'm at a point where I don't know what to do next. Nothing jumps out at me as a clear problem that needs solving, or a "scratch your own itch" type situation. My entire motivation to learn to code was to start a startup, and I can't figure out what to do next.
Where do I go from here? How do I find an idea and convince myself that it's good enough to move forward with? <comment><USER2> > Where do I go from here? How do I find an idea and convince myself that it's > good enough to move forward with?

Perhaps you don't. Perhaps you just need to wait. Keep working on side projects and keep learning. Also ask yourself this - "Why do I want to start a startup?" and be really honest with yourself about the answer.</comment>


Samba 4.0 released  - <AUTHOR> https://www.samba.org/samba/news/releases/4.0.0.html

<comment><USER2> As probably one of the more AD-focused participants on HN, I have to approach this with a good dose of skepticism w.r.t. large companies adopting Samba for complex AD environments. AD + DFSN + (DFSR|NTFRS) + LDAP + SSL + RPC + NTP + GPO + CIFS + NTFS + SDDL + WMI + ADWS + etc., is an extremely complex set of stuff to implement, and the cost of supporting a third-party version could, IMHO, easily dwarf the cost of a few Windows licenses to run the domain controllers.

So many examples come to mind that it is hard to pick just one or two... consider an organization that configures access to Windows event logs (audit trails) and SMB signing requirements via GPO; will Samba 4 Domain Controllers honor that? What does it even mean to have access to modify the security auditing policy on a Samba DC without totally reimplementing the eventing system (syslog is not even close)?

In other words, AD sits on top of a _ton_ of mature but sophisticated Windows services, the failure of any of which could be a critical problem, and make for a tough sell unless one has a pathological hatred of Microsoft yet still wishes to use AD anyway.

<comment><USER3> It's not the cost of a few domain controllers...it's the $50-60/user cost of client access license (CALS). I have 2500 users...that's quite a pricey (approx. $62K) system for directory services.

I personally am going to give Samba 4 a look.

<comment><USER2> If getting AD Domain Services off of Windows will actually avoid the need to buy any Windows Server CALs, then it certainly makes the proposition more interesting. But, this presumes that nearly all the other services (file sharing, http, etc.) are also not Windows.

<comment><USER3> We use Windows Server for three things:

1\. Directory services/DC

2\. Windows file shares

3\. Exchange

I have to buy user CALs for #1 and #2. One CAL gives me the right to connect that user to any of our file shares and to AD. IIRC, that cost when we last purchased was around $50/user.

We also have to buy a separate CAL for Exchange.

I would _love_ to replace AD and our Windows file shares with Samba 4, _provided_ that it was a stable, viable replacement which didn't add a lot of overhead for our admins. Exchange is a separate issue, and one we're currently exploring Zimbra as a possibility. It's early days yet there.

Almost everything else in our environment is Linux.

<comment><USER4> For 3. you should take a look at OpenChange. It implements Exchange using Samba 4.0 libraries.

<comment><USER3> Do you know of any success stories with OpenChange? Thanks for the info.

</comment></comment></comment></comment></comment></comment><comment><USER5> Any news on if Samba 4.0 is still single-threaded? (the page isn't loading for me) I recently wanted to use Samba, but was limited by performance on a low- end dual core processor: it'd max out one core, and be unable to use the other. I'm sure they have (or have had) good reasons for not doing this, but with so many low-power multicore processors out there now it seems a shame...

<comment><USER4> Samba has a flexible process model so you can choose what you want: forking, preforking, threading (bad) or a single (for debuging) process model.

</comment></comment><comment><USER6> Duke Nukem forever... Samba 4.0... what's the next? A GNU/Hurd competitor to Ubuntu? Space travels to Pluto? Time machines?

<comment><USER7> > A GNU/Hurd competitor to Ubuntu?

Well, there is this: <http://www.debian.org/ports/hurd/>

<comment><USER8> HURD can largely be regarded as a cruel joke. It's been under development for over twenty years (since 1990!) without yet producing a usable product. Pretty much every operating system kernel that's in use today (Linux, the BSD family, Windows NT, and XNU) is _younger_ than HURD, and yet far more mature.

<comment><USER9> If you are measuring the current hurd kernel's age as starting from 1990, then the BSD kernels are far older, not younger. The initial release was in 1977, and obviously development started before that.

That said, hurd is essentially abandoned at this point. Even RMS has accepted that it will never be completed, and has said that it really doesn't matter since there's already a free kernel available (linux).

</comment></comment></comment></comment><comment><USER10> One more stake in Microsoft's coffin? With their Win8 tablet/mobile strategy not doing too great and rapidly improving office alternatives... Is the MS legendary lock-in cracking apart?

<comment><USER11> You can the deterioration of DirectX domination in the gaming market.

<comment><USER12> What has overtaken it? Open GL? Got any citations on that because that wasn't my impression at all.

<comment><USER11> The rise of mobile gaming and more interest in MacOSX and Linux brought more attention to OpenGL, SDL and etc. It definitely threatened the dominance of DirectX.

Practical example: [http://en.thewitcher.com/forum/index.php?/topic/33183-red- en...](http://en.thewitcher.com/forum/index.php?/topic/33183-red-engine-and- opengl-support/page__p__897129)

</comment></comment></comment></comment><comment><USER13> I'm not much a Windows guy, but is this really a full drop in replacement for all AD features?

</comment><comment><USER14> This is fantastic. Microsoft Active Directory is truly awesome, but a replacement that is both free and runs on Linux? Yes please.

</comment><comment><USER15> Link is down; here is an alternative:

<http://www.samba.org/samba/history/samba-4.0.0.html>

<comment><USER16> Thanks for that. The error I get when attempting to go to the original URL ( <https://www.samba.org/samba/news/releases/4.0.0.html> ) is

        Cannot communicate securely with peer: no common encryption algorithm(s).

        (Error code: ssl_error_no_cypher_overlap)

I went to about:config and turned on all the default-disabled ssl ciphers (per <https://support.mozilla.org/es/questions/818578> ) but it didn't resolve the trouble.

UPDATE: I tried restarting my browser, and then it worked BUT after trying to do a binary search on which cipher setting was the "fix", I got to where everything was back to default, and the site _still_ works. Probably there was a site problem that was fixed in the interim.

</comment></comment><comment><USER17> There are few people running Windows AD who are going to view this as their next step, largely because they've already become used to running those Windows boxes.

For groups who aren't fully invested in AD, or need compatibility with those who are, this is a major win.

<comment><USER18> Never underestimate the power of "free, as in cheap." :)

<comment><USER19> How are the GUIs for Samba 4.0 AD features? I usually prefer nice configuration files, but the Windows Server features were very easy to learn. Another nice thing about Windows Server, updates are "free" after a high up- front cost.

<comment><USER20> The windows ones apparently work with this version of Samba.

<comment><USER21> I bet the next patch Tuesday will solve that.

</comment></comment></comment></comment></comment><comment><USER22> When people start mentioning price for these sorts of things I get a little confused, volume licensing for a bunch of hyper-v servers running 20-30 windows guests is actually quite cheap (you only have to pay for each licensed host server) I also have seen mention of a per user cost for ad? not sure where you got that from... I think exchange goes for about 6 bucks a user or so.. the next office setup ill be looking at will be three beefy hyper-v servers and running most applications on windows core... windows is now getting to the point where the only time I need to do any work is for weekly windows updates.

<comment><USER23> A 5-user CAL pack for Exchange is ~$400, about $75 per user.

[http://www.amazon.com/Exchange-Standard-2010-English- User/dp...](http://www.amazon.com/Exchange-Standard-2010-English- User/dp/B002NWWR5Y)

A Windows server CAL is about $20 per device.

[http://www.newegg.com/Product/Product.aspx?Item=N82E16832416...](http://www.newegg.com/Product/Product.aspx?Item=N82E16832416558)

Windows licensing is somewhat a mess, between user CALs, device CALs, processor CALs, or combinations thereof. You can see why Google's $50/user/year price is attractive - no hardware to buy, no CALs to buy, no client software to buy.

</comment></comment><comment><USER24> Well, if the current version is any indication...

Fortuitously for this article, I've spent the entire day today trying to get samba sharing with AD. Oh, NT_USER_NOT_PERMITTED? Bbbut, the user is there; I even have it working on another server!

I'm sure it's my fault, but still, as of this moment, I hate samba more than almost everything.

At any rate, congrats.

</comment><comment><USER25> Last time I tried to use Samba 4, earlier this year, most of the config directives I was trying to use weren't supported. Has that changed?

<comment><USER26> Yes. Except the one you had on line 42.

Seriously, how do you expect someone to give you a useful reply?

<comment><USER27> I, for one,am extremely glad that i'm not the only one with the line 42 problem!

<comment><USER28> To fix the issue on line 42 just reboot Deep Thought.</comment></comment></comment></comment>


This Is How Steve Bannon Sees the Entire World - <AUTHOR> https://www.buzzfeed.com/lesterfeder/this-is-how-steve-bannon-sees-the-entire-world?utm_term=.ik1j1Z4qR#.eaE4qvQKy <comment><USER2> Very interesting. I can't claim to be very well read on the alt-right and its various personalities but this interview presents him as less one dimensional than MSM portrayals.

Irrespective of what he's saying though, I find that I'm now so jaded and cynical that I just assume everyone is speaking _purely_ to advance an unstated agenda. I have almost no faith in any institution, to the extent that I view any alignment with my own values and priorities as purely coincidental, and not to be relied on as a predictor of future behaviour.

<comment><USER3> After reading claims of Bannon's rabid anti-semitism, I was surprised to read this personal testimonial for him by a Jewish former employee: [http://www.breitbart.com/big- government/2016/11/14/stephen-k...](http://www.breitbart.com/big- government/2016/11/14/stephen-k-bannon-friend-jewish-people-defender-israel/)

 _I have worked with Stephen K. Bannon, President-elect Donald Trump's new chief strategist and senior counselor, for nearly six years at Breitbart News. I can say, without hesitation, that Steve is a friend of the Jewish people and a defender of Israel, as well as being a passionate American patriot and a great leader._

 _A word or two about my credentials: I am an Orthodox Jew, and I hold a Master of Arts degree in Jewish Studies. My thesis at the Isaac and Jesse Kaplan Centre at the University of Cape Town dealt with the troubled status of Jews in an increasingly anti-Israel, and antisemitic, post-apartheid South Africa. I believe myself to be a qualified judge of what is, and is not, antisemitic._

 _It defies logic that a man who was a close friend, confidant, and adviser to the late Andrew Breitbart — a proud Jew — could have any negative feelings towards Jews. As I can testify from years of work together with Steve in close quarters, the opposite is the case: Steve is outraged by antisemitism. If anything, he is overly sensitive about it, and often takes offense on Jews' behalf._

A single testimonial doesn't convince me that Bannon is a great guy, but it certainly reminded me that the mainstream media may not always be aiming for an honest portrayal.

Edit: Having said that, I was impressed that this New York Times article (while starting off quite critical) offers a much fuller picture than I've seen elsewhere: [http://www.nytimes.com/2016/11/27/us/politics/steve- bannon-w...](http://www.nytimes.com/2016/11/27/us/politics/steve-bannon-white- house.html)</comment></comment>


Show HN: Klipse (pluggable client side evaluator) just hit 400 stars on GitHub - <AUTHOR> https://github.com/viebel/klipse <comment><USER2> How?

<comment><AUTHOR> what do you mean by "how?"?

<comment><USER2> How do you run all these languages in a browser?

<comment><AUTHOR> Take a look at [https://github.com/viebel/klipse](https://github.com/viebel/klipse) \- everything is explained there</comment></comment></comment></comment>


Mobile NixOS: The Present and the Future - <AUTHOR> https://samuel.dionne-riel.com/blog/2019/08/21/mobile-nixos-the-present-and-future.html <comment><USER3> Nice!

I think Nix and NixOS is the best thing that happened to the Linux ecosystem in the last ten years. Good that it spreads to mobile.

<comment> lame-robot-hoax I'd like to try it but to be honest I'm a bit too lazy to go through with the current install process. If they were to adopt the calamares installer though, or develop their own graphical install, I'd love to give it a try. Same with Void.

<comment><USER4> In my opinion that would only be useful to help with creating partitions and file systems. The rest of the install process is basically creating your system configuration (and there's a helper tool for that), and a single command to perform the install.

What do you think a graphical installer should do for the user?

<comment><USER3> I think maybe a wizard would help?

Like, you choose the type of the PC and then it takes you through some steps to get the right config and packages going.

</comment></comment></comment></comment><comment><USER5> > Any device not allowing that is, simply put, not respecting the intelligence > of the user.

This is kind of a silly absolutist opinion. Sure, you should have an option to have a completely open mobile OS... but to say that any OS with other priorities than complete "openness" is disrespectful is to throw literally every other consideration to the wind. I mean... really, what about security?

Ideologues tend to forget about reality, sometimes, it seems. Verified app stores, for example, are about providing security to the end user, not about disrespecting the end user.

I can't help but feel like ideologically driven projects like often almost immediately discredit themselves with crap like this. Their software comes off as about making some statement, not providing something great, novel, and beneficial to people.

<comment><USER6> Um.... he's not saying OSes with other priorities are disrespectful. He's saying that devices that are designed to make it difficult for their _owners_ to install their own software on it (sometimes going so far as to attempt to make it illegal) are being disrespectful to their purchasers.

<comment><USER7> How do you reconcile that when it's very likely allowing even a small population of "owners" to install unverified software ends up directly harming the majority of the other "owners".

<comment><USER8> I'm not sure why you put scare quotes around the word "owner". Personally, I'd like to know what "harm" you think is inflicted by, say, the presence of a hardware jumper.

Also, in case you didn't know, there's been a lot of thought and effort expended over the decades about the philosophy, morals and implementation of ownership with regards to hardware and software. I recommend starting with a resource like [http://www.gnu.org/philosophy](http://www.gnu.org/philosophy)

<comment><USER9> Let's put it this way then: what's the harm in the Raspberry Pi to allow SSH right out of the box? That's up to the owner right? I shouldn't have to configure it, it should just work. Except people who aren't Linux or security experts leave it with the default config and the system quickly gets absorbed into a botnet that negatively impacts everyone else on the Internet.

You can't think of anything connected to the Internet as completely "owned" by any one person. The Internet is a hivemind of machines and humans, and every single person has the ability to impact many other people. Even unintentionally, even unknowingly.

If we want complete personal ownership of every device in our possession, I'm all for it. But that would require every person who owns a device connected to the Internet to take full personal responsibility for anything that happens on/from their device that negatively impacts others. Would you be okay with me suing you personally because one of your devices got infected with malware and slowed down my home Internet connection? Would you be okay with me suing your grandmother?

There is hardware and software out there for people who can handle that responsibility. The majority of Internet users can't handle it, though. That's why the majority of Internet-connected devices don't allow people to meddle with things they can't understand.

The GNU philosophy is a great ideal to strive for, but like with most ideals it doesn't handle reality very gracefully. With complete ownership comes complete responsibility, and very few people are ready to take complete responsibility for what their Internet-connected device does.

<comment><USER10> You are very extremist in your possition, you can have extreme safe configs by default, then give an escape from jail to power users like Crheombooks have done or other devices that give you the option to install a different OS , Is your grandma formatting her PC and installing Linux ? IF yes great but probably she is not and she will also not flash her iOS device with a different firmwere either.

<comment><USER9> Richard Stallman is very extreme in his position. I'm just stating the reason why the status quo is a good thing. Agreeing with the way things currently exist is not an extreme position.

<comment><USER11> >Would you be okay with me suing you personally because one of your devices got infected with malware and slowed down my home Internet connection? Would you be okay with me suing your grandmother?

That's definitely not the status quo, it's also a pretty extreme position.

<comment><USER9> Of course not, that's the bleak alternate reality. The status quo is "you don't actually _own_ your device". Apple or Google finds malware in an app and they remove it from your device automatically. That's the status quo. The status quo is if you get malware on your PC and it negatively impacts other people on the Internet, nothing happens and you're not punished for it so others suffer from your lack of ownership. That's the status quo.

The statement you quoted is what would happen if everyone were to actually completely own their own Internet-connected devices and took full responsibility for them. It's not a comforting idea. People like to throw around words like "ownership" but shy away when related words like "responsibility" show up.

I'm personally liable for the damage my car causes, because I own my car. I'm not personally liable for the damage my computer causes. Do people actually want to be? That's what ownership means.

<comment><USER11> Cars are required to implement safety standards. You're not taking full responsibility for your car, the company you bought it from is responsible for selling a product that's safe.

If you modify your car to be unsafe, then you're responsible.

People can own their phones/computers, they can be allowed to disable safety features, while still holding companies responsible for implementing a safe product.

It should be entirely possible to completely own your car/phone/whatever while still largely holding the company responsible for the users safety.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment> c-smile Interesting.

I am thinking of making Sciter Engine as a chrome for mobile devices. So mobile UI can be defined in terms of HTML/CSS with code-behind-UI written in C/C++ or script.

Conceptually that would be close to FirefoxOS but more inclined into native side. Or at least will have more flexibility in this respect.

Is it interesting at all?

<comment><USER12> Definitely of interest. Also of interest would be using Sciter for embedded (but not mobile) apps. Its a natural fit for certain markets.

Are you still considering open sourcing Sciter? I personally hope so - <USER2> also know how much is involved in going down that path.

<comment> c-smile "would be using Sciter for embedded apps" that is not a problem already. E.g. it runs on ARMs like Raspberry Pi. SDK contains binaries that use GTK but it is possible to run it without any window manager. Access to FB or video memory is enough.

As of OpenSource, yes I have plans for that. The only problem is that OS is a great responsibility, at least for me. It is going to be a significant effort to document source code, etc. I am actively looking for sponsors for the effort.

<comment><USER12> re: embedded - I thought as much - I think it likely just needs some use cases and marketing to drive adoptions.

Regarding Open source / sponsorship / support: - Andrew I will follow up directly via email over weekend.

</comment></comment></comment></comment><comment><USER13> I would love to have deduplication on OS on mobile; it is a horror to go back to previous state.

Do you plan on allowing other projects such as AOSP forks, UT, Sailfish, postmarketOS to work on top if Mobile NixOS? So a project like Mer was?

[Edit: To answer my own question: GitHub page says its heavily based on postmarketOS]

</comment><comment><USER14> I'm just waiting for them to solve the problem of the package manager taking multiple gigabytes of memory to run. My last experience with it involved a lot of "unable to fork: Cannot allocate memory". It's insane that a package manager would even exceed even 100mb of memory usage, let alone run into multiple gigabytes. No way there's that much information to manage.

<comment><USER15> That's actually just a command line infelicity; the advice to use `nix-env -i foobar` is really misguided, and you can avoid excessive memory usage by doing `nix-env -iA nixos.foobar` (or `nixpkgs.foobar` if you are using it on a non- NixOS machine). The difference is that in the former case, `foobar` is a regular expression that is being matched against the `name` field of every package in nixpkgs, whereas in the latter case, `foobar` is an attribute path that is used to traverse the nested Nix objects that make up nixpkgs. Since Nix is lazy, the former results in evaluating a LOT of stuff, whereas the latter does not.

<comment><USER14> Even if it were evaluating the entire library of Congress, there's no valid reason for it to consume gigabytes of memory. I really can't understand why this is so...

</comment></comment></comment><comment><USER16> Are you thinking regular NixOS with kde or more like notOS + sway?

<comment><USER17> What's 'notOS'?

<comment><USER18> [https://github.com/cleverca22/not-os](https://github.com/cleverca22/not-os)

</comment></comment></comment><comment><USER19> It would be nice if I could use NixOS through Termux on Android.

<comment><USER20> There is [https://github.com/t184256/nix-in- termux](https://github.com/t184256/nix-in-termux)

</comment></comment><comment><USER18> Very excited to use this and buy a librem 5 for it.</comment>


The gig economy may strengthen the 'invisible advantage' men have at work - <AUTHOR> http://theconversation.com/the-gig-economy-may-strengthen-the-invisible-advantage-men-have-at-work-86444 <comment><USER2> I've worked with a lot of men and women in a lot of different kinds of work from scientific fieldwork, to technical consulting, manual labour. I've been hired as a private consultant by both men and women, I've worked alongside men and women on equal footing, I've had to train and supervise both and I've worked under both.

When it comes to consulting type stuff I didn't really notice any difference between their willingness to pay me what I asked or bargain with me. Most of the women I know who do consulting don't have the problems described in this article and, at least in the field of biology, tend to win more contracts than men. Most of the people I worked with in Biology were women. The few men around were usually old gummers who'd been doing it for 100 years. I don't know much about how it is for computer related consulting and women. I did most of that work alone.

When it comes to heavy manual work the few women I've worked with that chose to do that kind of work outworked the men every time. When I was landscaping I seen a tiny 5 foot nothing girl rake, dig and haul faster and more than the 6 foot beefcake dude, every day while they were there. Most restoration sites I worked on were mixed crews, there was definitely a higher percentage of hard working women to men on those crews.

At my current job as a CNC programmer/operator for a granite shop, I've trained probably 4 or 5 different people to work with me now. The 4 men I trained lasted from a week to a month and a half. My current coworker, a girl, had been here for over a year now. She's learned how to program and run the machines, operate the bridge saw, move and unload slabs and lift more than any of the men I've trained could. She also wants to learn. The sad thing is I had to convince my boss, an old asian man, to hire her he wasn't going to because she was a woman. I explained to him my experiences over the years and he was willing to give her a chance. His attitude towards her over the year she's been here's changed drastically. I don't know if it's changed his view on women in general, but since then he's stopped immediately turning down women day labourers that come in to help the installers so maybe.

The biggest problem I found trying to train men was they refused to do basic boring tasks that needed to be done or complained the whole time they did them while at the same time were unwilling or unable to learn anything else.

These are just my experiences throughout my varied working life. I don't know how universally applicable they are but from what I've seen it really comes down to each individual and how suited they are for a particular job. The reality is there are some things some people will just never be able to do and it really has nothing to do with what gender a person is.</comment>


Why is the Burning Man ticket system so slow? (~10k transactions/hour)  - <AUTHOR> http://tickets.burningman.com/

<comment><USER2> HippieWare™</comment>


5 thousand mosquito bites on a single arm - <AUTHOR> https://twitter.com/MosWhisperer/status/1258227471624757248 <comment><AUTHOR> For context [https://blogs.unimelb.edu.au/pearg/2019/11/07/lab-reared- mos...](https://blogs.unimelb.edu.au/pearg/2019/11/07/lab-reared-mosquitoes- maintain-their-lust-for-blood/)</comment>


IT workers pushed to the limit - <AUTHOR> http://www.infoworld.com/article/08/08/18/34FE-it-under-pressure_1.html

<comment><USER2> [http://weblog.infoworld.com/archives/emailPrint.jsp?R=printT...](http://weblog.infoworld.com/archives/emailPrint.jsp?R=printThis&A=/article/08/08/18/34FE- it-under-pressure_1.html)

Article on one page.</comment>


DEDA – Tracking Dots Extraction, Decoding and Anonymisation Toolkit - <AUTHOR> https://github.com/dfd-tud/deda <comment><USER2> I wouldn't be surprised if there are inkjet printers printing spy dots as well. I have an Epson Artisan 725 and I've noticed that it uses far more yellow ink than it ought to, given that the vast majority of my printing is black-and-white.

I'll have to do some testing to see for sure, though.

</comment><comment><USER3> Earlier discussion of this and more sophisticated printer tracking codes:

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

</comment><comment><USER4> Is it possible to avoid printing these dots in the first place?

<comment><USER5> That is covered in the README.

[0] [https://github.com/dfd-tud/deda#5-anonymise-a-document- for-p...](https://github.com/dfd-tud/deda#5-anonymise-a-document-for-printing)

<comment><USER4> In this case, the dots are still getting printed. The process described by the README involves masking out the printed metadata. This probably involves printing over or around it in a way that either destroys, corrupts or anonymises the information. This depends on the printer allowing you to print similar data on the same physical location as its dots, so it's possible that future printers will not have this vulnerability.

I was hoping there'd be some kind of custom firmware for printers that let me turn off this dot printing "feature" altogether.

<comment><USER3> > some kind of custom firmware for printers

Unfortunately, to the extend of my knowledge and google-fu, such a thing does not (currently) exist.

<comment><USER6> Funny thing is, non-free printer firmware was what first got Richard Stallman thinking about free software. Then came Symbolics and the rest is history. I wonder what it'd take to reverse engineer a printer?</comment></comment></comment></comment></comment>


My Comments to the FCC on the No Code NPRM (1983) - <AUTHOR> https://groups.google.com/forum/?fromgroups=#!topic/net.ham-radio/9wZJQkUoty8

<comment><AUTHOR> I read this as part of my research designing my RSS reader. Somebody in this[0] thread mentioned trn being an awesome news reader, the only problem was that Usenet was dead. I remembered olduse.net[1] from another HN post and figured that was the only way I could get a decent reading experience with trn.

[0]: <https://news.ycombinator.com/item?id=5481980>

[1]: <https://news.ycombinator.com/item?id=2622250></comment>


Kaizen and Software Engineering - <AUTHOR> http://blog.eweibel.net/?p=489

<comment><USER2> The more and more I learn about Kanban and Kaizen, the more right on it feels.</comment>


Ask: Single Launchpage for changing passwords - <AUTHOR>

Does anyone know of a site like mypermissions.org or notificationcontrol.com but for changing passwords ?<p>A single page with direct links to places where I can change my passwords, basically. <comment><USER2> <http://blisscontrol.com/>

It allows you to change your password and other settings for popular websites.</comment>


A Tesla Solar Roof quote with a shocking total price - <AUTHOR> https://electrek.co/2019/06/14/tesla-solar-roof-quote-price/ <comment><USER2> I think it's strange that they added a price for "roof" in the quote. That's the only way they are making this make sense. However the price of "roof" is not really separable from the cost of a house from a home builders perspective. The price a home builder (who is just paying people to nailgun shingles and lay the tar papers down) isn't even paying $10k for the roof, more like 2k of labor and 3k materials. If a home builder wanted to make solar a standard option they would similarly be looking at alibaba listing of 10 300W panels for $850 and probably another $15k for 40 lead acids, grid tie, inverter, charger, and possibly $3k labor. So a home builder is going to save $60k (but probably add $30k to the home price).

I think home builders ought to just directly compete with this and cut tesla out from the get go.</comment>


A late-night rant about OOP and parametric dispatch - <AUTHOR> http://devblog.avdi.org/2016/03/31/a-late-night-rant-about-oop-and-parametric-dispatch/ <comment><USER2> I don't really see a pervasive point to this rant. It is true that OOP can be reduced to message passing, and that there's a specific style of OOP a lot of people see as "OOP", but that doesn't mean that this style is "just obfuscated procedural code, or uglified functional code". That OOP can be implemented on top of functional style code, or procedural style code says nothing about it being "true OOP" or not. For example, the great Common Lisp Object System is built with functional primitives. And that makes it more elegant, not less. Building an object system on top of a functional/procedural language is syntactic sugar, and there's nothing inherently bad about it. After all we write code for people to read.

<comment><USER3> I'd like the code complete approach. A method has 4 channels: api, status, input, output.

Reducing how many channels interact semplify code a lot. Oop went for input, status and statu, output pairs. Functional uses input, output and api, output pairs.

Good programmers understand that and apply the one which is proper to model their problem, to reach performance/memory goals and most importantly to reduce te cognitive load of large codebases.

</comment></comment><comment><USER4> This seems weird to post here. It's clear he's working out some ideas, but hasn't gotten them clear enough in his head to take out of context and discuss in a place like HN.

<comment><USER5> It does not seem to have been posted by the author.

</comment></comment><comment><USER6> Consider this tree:

        dog
          bark
            softly
            loudly
          run
            fast
            slow
        cat
          meow
          purr
          run

Let's call this the coordinate-system of your API (I've extended it a little hopefully to make it clearer). It's a small coordinate-system because it doesn't take any strings, but whatever. 'loudly' only makes sense in the context of 'bark', and 'bark' only makes sense on the context of 'dog'. That list of nodes is a coordinate that identifies a unique position in the API. (Note that in this API, actually just "loudly" should be enough to call the right code, but that won't be true in general.)

To be formal you can pick out the code by saying `(do dog bark loudly)`, where `do` is a reduction that concatenates and executes the code at each node. (With a little constraining you could say `(do-special loudly)`)

OOP just calls these API coordinates by special impressive-sounding names. The top level "objects" and the second level "methods" and the third level "method arguments", and imposes all kinds of finicky constraints (some of which are even useful). Languages differ wildly with these constraints: Java doesn't let you have a unique instance method (well, not without either reflection or bytecode manipulation, anyway), but Ruby does (lovingly called "monkey- patching"). And it's quite rigid in it's current form, with a fixed noun/verb/adverb structure.

At the end of the day all that detail obscures the simple truth that your code defines a coordinate system and an invocation is a single coordinate. There's a lot more to be said about this, of course! But I hope it helps/inspires.

<comment><USER7> According to Alan Kay true OO is message based. First you'd identify what the objects are -- it seems dog and cat. Then you have a choice. Can either send them messages which look like {bark, softly}, {bark, loudly}, {run, fast}, {run, slow}. Similar for cat.

Or can think of dog having an internal state machine and can be in two states -- barking or running. When it is barking he can get two messages {softly} or {loudly}. If it is running, can get fast or slow messages. There is a way to switch from one state to another say getting a {bark} or {run}. Other messages might lead to an error/exception.

This way the first way of doing things is just sending a message which both switches state and regulates intensity of activity.

Heck pretty much a similar example is presented in Learn You Some Erlang For Great Good book in the "Rage Against the Finite State Machine":

[http://learnyousomeerlang.com/finite-state- machines](http://learnyousomeerlang.com/finite-state-machines)

(My favorite state machine is a that of a cat though in that text)

<comment><USER6> Yes indeed. But what I'm saying is that there is actually just one nameless state machine whose coordinate system is organized as a tree who's leaves represent the machine's degrees-of-freedom. It's kind of an odd thing: the leaf both partitions state, and it also co-locates the DoF for changing the state (or at least it's apparent state, if you're immutable).

Neat link, I'll have to check it out. I've not done erlang but I'm quite intrigued by gen_server in particular.

Sorry for talking about coordinate-systems: I can't help it, I have a physics degree.

</comment></comment></comment><comment><USER8> The author has no idea what "parametric polymorphism" means. It's not "dispatching on all the arguments to a function".

</comment><comment><USER9> What was so urgent about getting out this half-baked thought out that the dude couldn't have waited to write something coherent?

If all you're doing is calling methods on objects with no supertypes or private members, then yeah, you could accomplish the same thing by convention. But once you start layering on more functionality in your object system, the number of way you code encode this functionality starts to explode. Everybody ends up doing things their own way, and there's no consistency or compatibility. Sound familiar? It should because it's C.

<comment><USER10> Sincere question for you: Why does it bother you so much that someone wrote something about something on the web (as hinted by your opening sentence)? Why should we care that the thought is half-baked? Does it rob you of precious space on the internets?

Sometimes, we just want to use the medium to share thoughts with people, there's no cause to be annoyed or even condescending like that, it makes for a horrible atmosphere where no one will want to engage in public discourse.

<comment><USER9> Fair point. Maybe I was too harsh. I do believe that people should be able to work out their ideas publicly. And perhaps it's not the author's fault that it ended up on HN.

But the again, if you visit the blog now, the piece reads:

> Update: this post was the product of an exhausted mind, and as such it > misused terms, wasn't well backed-up, and was generally incoherent. I'm > withdrawing it until such time as I can articulate these ideas a little more > competently.

I look forward to the outcome of this.

<comment><USER10> And I agree with that. Avdi can be a great layman-oriented writer, he has a knack for vulgarizing the cryptic, that article was not an example of that. It was rushed, obviously. My point was about something else though, which we seem to agree on.

Thanks for your response.

</comment></comment></comment></comment><comment><USER7> From Alan Kay's quote:

\---

OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things.

\---

What is really described here is a dynamicly typed, actor-based language. I can see a bit of truth in Joe Armstrong's joke that Erlang is the original and true OO language.

</comment><comment> white-flame In a purely linguistic sense, the phrase "Object Oriented" does have some affinity to single dispatch, because the dispatch is oriented around a single special Object.

"Message Oriented" flows well into multiple dispatch, as the entire message can be taken into account for determining the final method combination.

This of course is related back to the notion of a language focusing on the nouns (Objects), or verbs (Methods, Messages): [http://steve- yegge.blogspot.com/2006/03/execution-in-kingdom...](http://steve- yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html)

<comment><USER8> > "Message Oriented" flows well into multiple dispatch, as the entire message > can be taken into account for determining the final method combination.

I'm not sure about this. The metaphor is that you send a message to a specific recipient, and the recipient figures out, independently, how to behave in response to that message. So it still seems like single dispatch to me.

<comment> white-flame In Lisp/CLOS-style multiple dispatch, the method you call is not associated with any particular object. It's simply a dispatcher, and the objects are the parameters/message contents.

So you don't send a message to a recipient object, but dispatch it using a toplevel method name. I know that's a deviation from Kay's descriptions, but it meshes well with the examples of multiple dispatch that I've seen.

Conceptually, "dispatch" can be understood as finding the recipient, not an after-receipt task.

<comment><USER8> Yes, I know how CLOS works. It's certainly a powerful approach, but it doesn't strike me as terribly... umm... object-oriented.

(0) In CLOS, as you say, methods are requests to the global _environment_ to find the right behavior to perform on a list of arguments. In an object- oriented system, each object has its own behavior, and the rest of the program (that is, the environment) has no business knowing how it internally works.

(1) In CLOS, anyone can tamper with any object's slots, and this isn't even discouraged. In an object-oriented system, the internal representation of an object can't be directly manipulated from the rest of the program. The behavior of an object is defined entirely in terms of how it responds to messages.

That being said, you _can_ do object-oriented programming with CLOS. It's just not the only, or even the main style that it supports.

For more information, see: [http://wcook.blogspot.com/2012/07/proposal-for- simplified-mo...](http://wcook.blogspot.com/2012/07/proposal-for-simplified- modern.html)

<comment> white-flame > In an object-oriented system, each object has its own behavior, and the rest > of the program (that is, the environment) has no business knowing how it > internally works.

I would say that describes Erlang-style message passing, or maybe JavaScript- style prototype OO. But in most "common OO" languages, I would say it's more correct that each _class_ has its own behavior, not object. Of course, the hidden state of an object can parameterize the class's behavior.

But still, there are many behaviors which differ based on the type or identity of their arguments, but aren't well suited to be encapsulated into said objects as they're equal peer parameters to the message, hence CLOS etc.

</comment></comment></comment></comment></comment><comment> dale-cooper I find clojure's multimethods ([http://clojure.org/reference/multimethods](http://clojure.org/reference/multimethods)) really awesome in the context of dispatching.

</comment><comment><USER11> Maybe we need some sort of hn robots.txt file to stop things from getting posted before someone's ready for them to be :)

<comment><USER12> Or an HTTP code. WIP : 218

<comment><USER13> X-Hacker-News-Please-Stop

</comment></comment></comment><comment><USER14> The issue to me is one of name spacing. Where is the XML#to_s defined? Certainly not in one very large to_s function that takes in large swaths of various types. Of course it should be namespaced around XML, the only issue is whether it's module based or object based.

I think object based is better. Why? Because I can take the object and introspect the methods. Any number of functions can take in an XML object, but there are very few methods that the XML object needs to have. In my repl if I do:

        my_xml.methods - Object.new.methods

I get a list of what I'm expected to do with this object. If I do something along the lines of:

        functions.collect { |f| f.first_argument_can_be? XML }

Then I'm pulling in not just the normal functions, but also anything that consumes _any_ instance of the XML instance, including domain specific ones.

Now, you could argue that all method-like functions should be namespaced to their own module, but now humans have to be trusted to not define these functions outside of that module and they have to be trusted to not define anything else in the module. For what purpose?

<comment><USER15> Elixir is a functional language, and has the option of modules and protocols so you can define XML#to_string in two ways.

Either as a protocol so you could do to_string(this_xml)

Or as a function within the module so you could do XML.to_string(this_xml)

If you use the module function defintion you can import it into your scope via import XML

then you can write to_string(this_xml) as if it were a protocol.</comment></comment>