Minimalism – An undervalued development skill - <AUTHOR> https://volument.com/blog/minimalism-the-most-undervalued-development-skill <comment><USER2> I have super mixed feelings on this.

Minimalism makes for a clean, easy to understand codebase, that avoids some of the performance pitfalls associated with bigness.

But sometimes it's easy to build 80% of what you need, and then massively difficult to get to 100%, and the ease of getting to 80% can lead you astray.

For instance, I can write a pretty fast matrix multiplication algorithm in maybe a few dozen lines of code. But then you look at OpenBLAS, Eigen, MKL, FBGEMM, etc. and you see thousands of lines of code. And it's not because I'm 100x better at programming than the developers of these libraries, it's that they've really put in effort to getting the best performance, in all corner cases, on all platforms.

You could argue that matrix multiplication is an extreme case, and it is, but I think it's still valuable to critically think about what you give up by opting for minimalism before you write off other people's software as aimless bloatware.

<comment><USER3> The message I took from this article was minimalism in _features_ and not necessarily code. And certainly not about library usage. If you're building a product, focus on building a few key features extremely well.

I suspect that part of the reason for feature bloat is that a when product is assigned dedicated, long-running teams, it tends not to reach an 'end state'. The team would rarely say "okay, now the product is mature, let's place it on maintenance and go on to build something else". Instead, they may (unconsciously) continue to justify their existence by continuing to 'improve' the product.

<comment><USER4> Microsoft applications released as store apps were an attempt at minimalism in features. Their music, skype, mail, even the control panel replacement "settings." Windows 10 has been cutting features left and right.

To Microsoft, minimalism means:

Rebuild a popular piece of software from scratch

Release the NEW improved shiny app that follows a new design fad. Gloss over the fact that it's unreliable, slower, more crash prone & lacks over 50% of the old apps features by promising fix the 'issues' and missing features with future updates.

Retire the old but fully featured (still working) app while the new stuff still lacks basic functionality.

Retire this NEW stuff when it's still lacking promised features. And replace it something that lacks even more features.

Windows 10's attempts at minimalism means that a feature you rely on today might be gone forever with the next update or hidden - requiring a treasure hunt.

There's just one app that MS didn't screw up by going minimal -- OneNote. I still can't figure out the Win32 version. The store version just clicks for me. They once included an excellent RADIAL Menu for OneNote but removed it inexplicably.

(Radial Menu of OneNOte [https://www.youtube.com/watch?v=Job4Rg- sbDo](https://www.youtube.com/watch?v=Job4Rg-sbDo))

 __*

Developers pursing minimalism tend to release software that:

Require too many steps to accomplish simple tasks because controls are HIDDEN away behind hamburger menus and/or frustrating gestures. Example - windows 8's charm bar that required moving the mouse off screen to the top right corner to reveal the settings menu.

Have too much white space - and have tiny text (self explanatory)

Replace intuitive, native, user friendly controls with a Minimal but frustrating version - example removing the Underline of hyperlinks in webpages, even changing the mouse icon on hover. Sometimes, links and normal texts are indistinguishable. Another example super tiny (or hidden) scroll bars

Going mobile only - even when the site / service doesn't use any mobile only features.

Mobile first - Mobile first and minimalism are often mentioned together and is an excuse to release featureless but bloated websites or apps.

<comment><USER5> MacOS has been going in a similar direction. But Microsoft really has user- hostile faux-minimalism down to an artform, consistently removing and hiding features for minimum user benefit and maximum irritation.

Small case in point - the search bar in Excel 365. Until recently it was a text box next to a magnifying glass, and you could type into it.

Now it's just a magnifying glass. You have to click on it to reveal the text box. Only then can you type your search term.

This change produces absolutely no user benefit. There is no rational reason to add an extra click. Long-term users now have to go through "Wait, what...?", where previously muscle memory would just work.

Another example: the AutoSave switch in Office 365. Users quite understandably assume that "AutoSave" means the file is saved automatically.

In fact this is a OneDrive-only form of AutoSave. _AutoRecover_ \- a different and much older local drive auto-save feature - is unrelated, and has a separate setting in Preferences.

Providing a minimal switch in the UI which doesn't mention the distinction is guaranteed to confuse anyone who doesn't already understand the difference - especially when clicking the switch tells you AutoSave isn't available because of your privacy settings, and doesn't mention OneDrive at all.

</comment></comment></comment></comment><comment><USER6> This applies at all levels of the stack, even hardware. I realize the author is talking about javascript, but I can think of several hardware projects where minimalism is clearly superior.

At a previous employer (whom I cannot talk about), we were working on an ASIC. The ASIC team was new, brought in for the job, and was eager to include every possible feature that stakeholders wanted. The stakeholders seem to view this as a "its my birthday" kind of scenario, and so asked for lots of features (it wasn't going to cost them anything, after all). We had one senior hardware engineer, who was not on this ASIC team that was asked to sit in on meetings, and he was the "no" man. Somebody would request a feature, and he'd sketch out on the whiteboard what it would cost in chip area, power, and verification time. The ASIC was delivered more or less on time, and was wildly successful (I think, I'd left the company by this time). If it wasn't for this "no" man, I think they'd still be trying to verify all the features other teams had asked for.

I never worked at Intel, and I don't know the inside story, but I'm guessing the same thing happened with their server NICs. The original 10G and its respin (82598, 82599) were simply brilliant in their simplicity, and they were one of the first full speed 10G NICs in terms of packet rate. Flash forward to the 40g / 10g xl7xxx series, where you have a kitchen sink worth of features, and the host has to do crazy things to deal with limitations in a basic core feature of an ethernet NIC (no more than 8 DMA s/g segs per emitted TSO packet). Flash forward again to the 100g columbiaville, which seems to be more of the same -- with the _same_ TSO bug!

<comment><USER7> I'm glad to hear other people talking about how great the Intel 82599/Niantic was and how they have come off the rails since then.

I'm so fed up that my new year's resolution is to make a new NIC that's like the 82599 but more so.

<comment><USER6> I worked for another NIC vendor at the time, and we were totally in awe of the 8259x. We had a 10G NIC that could do line rate with full packets, but we did a lot of PCIe in firmware, so we could only handle ~1.5Mpps (about 10% of line rate in terms of pps).

</comment></comment></comment><comment><USER8> I agree with the article. There is too much crap today in software. Much of it external crap.

When I was young, I used to scoff when old programmers told me not to include external/3rd-party libraries. What did they know, these libs are so convenient! Today, I clearly see the downside of doing that and the slippery slope that it introduces.

Rather than do the hard work myself upfront and pay that cost, I let someone else do it for me and simply included their work. Great, right? Not really. Now, I'm at their mercy. They break things all the time, don't address security issues, abandon the code I rely on, don't support OpenBSD armv7 (or whatever you run on), etc.

Now, I'm much older and only include when there is absolutely no other way (very rarely).

<comment><USER9> I shudder everytime I run npm install on my lab main software project, which downloads hundreds if not thousands of external dependencies and lists more than 400 vulnerabilities.

On the reverse when I own a project, dependencies are kept to the minimum, often code I own too.

<comment><USER10> We have a new React front-end for our application. It's fairly simple but the amount of crap installed by npm is incredible. Then trying to fix bugs is a nightmare depending on what needs done.

This stuff was supposed to make our lives easier...

</comment></comment></comment><comment><USER11> .. This would make sense if it worked. There's a fine line between "not- developed-here syndrome" and minimalism-as-you-mention-it.

If you can account for all the problems with the basic functionality the original big library tried to solve, this might work. But, if you're rediscovering all the problems again, and trying to solve them again, it's probably not the best use of your time.

Further, if something is big enough to become a norm (like Disqus for comments) - creating yet another sign-up form for comments has enough friction to discourage at least me from commenting. (And the one on this blog is broken).

I'm not saying your approach is wrong, but there's pros and cons to both, which don't seem to be captured here.

<comment><AUTHOR> There is indeed a fine line between NIH and minimalism. They have a strong correlation. You have to compromise between unnecessary features/bloat/crap or simply do it yourself. It's often surprising how easy it is to make something from the scratch. Hence NIH.

<comment><USER12> It's not that fine a line. There's tons of space in the middle and I find a steady supply of coworkers who love to write code and hate to use libraries who never bother to understand half of what the libraries they do use are capable of. I may be slightly unusual in my habit of trying to find new uses for the tools we already have, but I'm not abnormal. This is something mature people should be doing as a matter of course.

This "everything sucks (from my myopic viewpont)" thing is like a bizarre form of learned helplessness. And I say that as someone who complains _a lot_ about the quality of tools and libraries. Only about 10% of the time do I think that means we should write our own. 40% we should pick a different tool, and half the time we should try to convince the author to fix the worst aspects (when the problem is deeper than a PR can address).

Code you wrote is easier to understand _for you_. Of course you're going to be more productive with _your code_ but what about everybody else? Are you making any compromises for the comprehension of others? Do you remember nothing about middle- and high-school coaches complaining about 'ball hogs'?

The optimists think all of their code is amazing and bug free and hence cheap. But it costs everyone else time, respect (either for you, or themselves), but perhaps most importantly, resume material and independent support options. You are hijacking the project to fluff your own ego.

For me, the worst quartile of my jobs have been NIH that turned into codependent bullshit drama, and it causes a pretty intense histamine reaction (as is evidenced in my phrasing in this comment) for me with people who are not self-aware enough to allow at least the possibility that maybe 50 people who have been thinking hard about a problem for five years are better equipped to solve it than you can in a week of bravado, followed by months or years of dodging responsibility for the problems you created by substituting your judgement for the rest of the team and the entire Internet. Just get over yourself and be a team player for once in your miserable narcissistic life.

<comment><USER13> This can truly cut in either direction, and one of the benefits of long experience is learning to judge the over and unders on what is often a crucial educated guess.

Certainly, though, it's disastrous to assume that some existing library/product/whatever is going to be superior to home-grown, just because a lot of people use it, there's a big company behind it, or etc. That piece of software was written to cover a certain area of design and business space, and that may not intersect very well with the design and business space you need covered.

For myself, I do start with the hope that I'll be able to avoid writing some big chunk of code (by using some existing piece of software). But I'm _very_ wary, as external software comes with costs, even if it's "free".

</comment></comment></comment></comment><comment><USER14> At a recent job, people were advocating for ginkgo, a non-standard "reinvents the wheel" type of testing framework in golang. If you don't know golang, it has near perfect tooling out of the box, including a standard test framework.

I joined on the brink of this decision i.e. moving to ginkgo. I was the first and only person to ask what does ginkgo do that "go test" does not _for us_? Nobody could really answer that.

Turns out, much like myself, and most engineers who weren't Googlers at the time, didn't really know golang and its environment. They all kinda assumed that like any other popular language, esp. for system programming (like C++) golang in its infancy requires a test framework supplement.

Well, no it doesn't. "go test" is standard which if we're lucky, means we never have to re-write tests 10-20 years down the line because it's the standard.

<comment><USER15> I had to go look up Ginkgo... and I'm not sure it's an Apples to Apples comparison. The built-in Go framework for unit testing is great but I don't think I would want to try to write clean BDD tests with it.

Part of the value-prop for Ginkgo is that it gives you a standard BDD DSL which if you're doing BDD is half the battle... describing and testing the behavior with a human-friendly programmatic interface.

On the other hand if none of the team could articulate why they needed Ginkgo that probably means they don't actually know what BDD and your point still stands.

<comment><USER16> Which, IMHO, would behoove the team to learn BDD conceptually, in order to assess its appropriateness as a tool in any situation.

<comment><USER17> I'm yet to see BDD used even though I've seen BDD frameworks used a lot. BDD frameworks happen to be excellent for unit testing too! They force you to write the testing code to be better because you need to describe each action. I find in normal unit tests developers use shenanigans to shortcut testing something.

</comment></comment></comment></comment><comment><USER18> I see the point but I don't agree with the author. If I'm not mistaken that it took more than two years just to build their product and they're still pivoting in a way that they can monetize their users. I'm not actually sure if this delay is caused by your minimalism approach but startups usually need to focus on their core business in order to be able to find the product-market fit.

In an ideal world, we should be focusing only on our core business, not the tooling around the product. OK, you just set up a hook for your error events in your front-end code that lets you collect the errors as events but Sentry is doing much more than that. If it is the only feature that you need, that's OK but the reality is that as your application code grows, you will need many more features for your error tracking.

Eventually, you will need the UIs that lets you understand the context of the user, aggregate multiple events as one exception, send the errors to the relevant people, etc. and you will spend much more time building out these features and the switching cost to a real error tracking tool will be much higher.

The tools such as Sentry and Google Analytics provide an opinionated way to accomplish specific set of tasks for typical use-cases. The advantage is that they have seen many customers, use-cases and edge cases so adopted their product in order to cover them all. You don't need to the same unless it's your core business.

<comment><USER19> Yeah, I came in here to call out the error tracking use case...a good error tracker needs to do a _lot_ more than that.

<comment><USER20> I suppose your requirements are different. We want to deal with errors like we deal with inbox, fix issues until we have "inbox zero". On our case that is all the client we need. There's obviously more logic on the backend, but not much.

<comment><USER19> Yeah it needs to do that, but that likely means that deploying a particularly egregious bug will fill your inbox with repetitive and useless data. It should also give you information on the current user, the browser, locale, etc. None of that extra stuff is really extra, it's critical for quick debugging. It's also hard to get right, and doesn't preclude inbox zero in any way.

<comment><USER20> Internally we use Redis sorted sets to merge the errors into one entry on the inbox. We get the browser info from server HTTP headers. It's a cute list of errors that we regularly run trough.

<comment><USER18> Well, your error tracking solution is not simple as a javascript snippet then.

</comment></comment></comment></comment></comment></comment><comment><USER21> This reminded me of the Twain quote: "I didn't have time to write a short letter, so I wrote a long one instead."

Sometimes I don't know how to solve my problems with tiny amounts of code. It often takes skill and effort to come up with an elegant solution. But I agree it is something we should try to do when we can.

<comment><USER22> > _the Twain quote: "I didn't have time to write a short letter, so I wrote a > long one instead."_

Friendly amendment: This has been attributed as being originally from Blaise Pascal in 1656 [0]

[0] [https://en.wikiquote.org/wiki/Blaise_Pascal](https://en.wikiquote.org/wiki/Blaise_Pascal)

<comment><USER21> Or maybe even earlier by Cicero. Seems like a common sentiment through history. Thanks for the link!

</comment></comment></comment><comment><AUTHOR> Author here: over the years this has been my prime strategy on building new stuff. First jQuery Tools, then Head JS, later Riot JS. Happy to talk about minimalism on this weird announcement day.

Happy holidays!

<comment><USER23> The link for the Disqus bullet (to try your alternative commenting system at the bottom of the page) is broken. It points to:

[https://volument.com/blog/minimalism-the-most-undervalued- de...](https://volument.com/blog/minimalism-the-most-undervalued-development- skill#comments)

... but what you want is:

[https://volument.com/blog/minimalism-the-most-undervalued- de...](https://volument.com/blog/minimalism-the-most-undervalued-development- skill#minimalist-commenting)

Two things suggest you've still got some work to do cutting out the crap:

1\. The commenting widget manages to foil my ability to select text and keep it selected.

2\. If I disable JS (see #1) and reload the page, I just see one big blob of gray-green-blue.

<comment><AUTHOR> The link is now fixed. I'll look the other two issues after the Christmas chores. The JavaScript-disabled issue is probably non-trivial, but obviously doable. Thanks!

</comment></comment></comment><comment><USER24> We embraced minimalism on my team a long time ago—no tests, no docs or comments, variable names are usually 1 or 2 characters, no indentation, no code reviews or QA, no meetings, etc.

<comment><USER25> ...even no code. /s

</comment></comment><comment><USER26> The most important kind of minimalism in my mind is YAGNI. Every single time I coded something I didn't need yet; I never did, at least not the solution I came up with. And once the complexity is in there, it's very difficult to scale back.

This applies to everything I've worked on, from personal projects up to 10KLOC to 3MLOC commercial systems. It's just never a good idea from my experience.

The code [0] I write these days tends to be pretty raw, but every single line fills a fundamental purpose.

[0] [https://github.com/codr7/libceque](https://github.com/codr7/libceque)

<comment><USER27> YAGNI conspires against me.

When I spend a lot of time building potential future features or creating a bunch of abstractions, I pretty much always never end up using any of them and it ends up as a (potentially huge) waste of time.

When I'm building something and thinking about whether or not to make it more abstract / support potential future features, and decide "nah, ain't gonna need it", inevitably within a week or month I get some feature requests for those exact things, often requiring me to do a lot of rewriting from the ground up which I wouldn't have otherwise needed to do if I had started off with a more abstract model or added those features when I was initially considering them.

(Obviously this isn't literally always true, and I'm getting better at it over time, but those are the ones that stick out.)

<comment><USER17> This is the pain with "agile". The problem with building the skateboard first and morphing that into a car (as per the cartoon strip meme/trope) is that a car is nothing like a skateboard. It's a rewrite. If you can know you need a car upfront then you save a YAGNI/OFINI cycle. I'll let you guess what OFINI means :)

<comment><USER26> It's certainly no Silver Bullet, and can be taken too far; but it was born as a reaction to the industry going way down the opposite drain. At least at that point, you know what kind of car you need. I still find it easier to refactor a simple solution into a more elaborate one than going the other way, easier to motivate as well as ripping out features is pretty much impossible in a corporate setting. Truth is always somewhere in between the extremes.

</comment></comment></comment></comment><comment><USER28> I'm all for minimalism, but the very first code example is a bad example. It's saying "look at how small your error handling can be" without mentioning that now you have to build something to inspect said errors.

There is minimalism and there is punting the issue down the line, and this is an example of the latter.

<comment><AUTHOR> The core purpose of an error reporting client is to send the errors to the server. Anything more is some extra features (that we haven't had the need so far). Most of the logic resides on the backend, and it is not much to get the job done.

</comment></comment><comment><USER29> "Be minimalist and don't use third party libraries and services. Except for ours. Use ours, because _we don 't have two decades of cruft under our belt_ excuse me, we're /minimal/.

The article kinda uses a language of a sentiment I share to an extent (I think most devs are far too eager to pull dependencies — avoiding NIH doesn't mean you have to pull the entire 3rd party dependency, not if you can read a paper and implement it in a dozen lines), but while a completely in-house analytics package could be smaller, there's a reason why commercial packages are big.

<comment><USER30> > while a completely in-house analytics package could be smaller, there's a > reason why commercial packages are big

But are those reasons your reasons, and do some of them warrant questioning in the first place?

</comment></comment><comment><USER31> There seems to be a bug in the comment form on their site. It gives me the option to edit/delete the last comment and when it asks me to create an account, it shows me someone else's email address. I feel like this is the major reason for not rolling your own.

<comment><USER20> The email address issue is now fixed. We'll fix the edit option visibility issue a little later (Christmas time happened)

Bugs should not be a reason to give up rolling your own stuff, but I'm sure you didn't mean it that way.

Thank you for reporting this issue!

</comment></comment><comment><USER32> > _Minimalism_

Ah, but what's really discussed in the article is _speed_

How fast a page loads. How quickly a tool can be understood. How quickly a tool can be used.

How quickly the user can understand the product. How quickly they can figure out what they're doing wrong.

Speed is the one true killer app.

It's one of the few things that, when it's better than user expectations, will illicit stunned vocalizations of "bullshit, do it again. Oh shit, it's really that fast" from nearly everyone.

<comment><USER32> Minimalism certainly makes speed easier. But you can also have a minimal, one call API that takes forever and a day to resolve because it joins 20 tables

<comment><USER33> Here's new blog post about a powerful way to make your website faster.

[https://volument.com/blog/spa-the-biggest-website- performanc...](https://volument.com/blog/spa-the-biggest-website-performance- booster)

</comment></comment></comment><comment><USER34> _Feature_ minimalism is a good thing to strive for _usually_.

Wrote my own dirt simple lazy loader & slider libraries, because I didn't need many of the features other libs had.

On the flip side, if I need a reasonably complex component that would take quite a while for me to implement, like say. A date picker. I just grab the lightest weight, good looking one that I can find. (That also doesn't appear to be abandoned)

Minimalism in everything, even minimalism.

</comment><comment><USER35> If you value minimalism, then why doesn't the page load any text when Javascript is disabled?

<comment><USER36> "chickenshit minimalism"

[https://idlewords.com/talks/website_obesity.htm#minimalism](https://idlewords.com/talks/website_obesity.htm#minimalism)

<comment><AUTHOR> That's a good reference article indeed. I remember that. Seems Chickenshit Minimalism is defined as "the illusion of simplicity backed by megabytes of cruft" — which is not in play on the article. But yeah... need to make that page work on non-JS browsers. Thanks!

</comment></comment></comment><comment><USER37> Unfortunately I can't agree.

There's an old quote I can't remember the exact source of, that "Microsoft Word users only use 5% of its features... but each user uses a different 5%."

It's not bloated. It's just that other users have different needs from yours, and you're ignoring other users, assuming they're the same as you. But they're not.

It's easy to write a minimal version that works on your dev machine in your browser. But now get it to work on all browsers on all devices on all OS's. And now build in all the little feature that big clients require for legitimate reasons. And now ensure it works with several legacy versions of API's, etc. Is it "bloated"? No. It does what it needs to do.

</comment><comment><USER38> A minimal core with just enough functionality to be useful, then a plugin framework with hooks for all the other features that everyone else needs to build in.

A minimal phone with just enough functionality to be useful, then an app store to get all of other functionality you need via downloadable apps.

Its a model that works well, providing an ecosystem to anyone who wishes to extend.

Code is kind of the same now.. Get the basic thing going, then people fork it, improve it, submit patches, sometimes over decades.

The worst software imho, is a closed architecture that has the kitchen sink included that nobody can extend.

Modularism and a pluggable architecture is much better than just minimalism on its own.

</comment><comment><USER39> This touches on the topic of doing something yourself vs getting someone else to do it for you, and I would recommend anyone interested check out Wardley Mapping. [https://en.wikipedia.org/wiki/Wardley_map](https://en.wikipedia.org/wiki/Wardley_map) It's a way to generate discussion in your company/project/whatever about when it's appropriate to custom-roll, and when you should use commodity.

</comment><comment><USER40> This page is completely empty on iOS.

I guess the author should have made a minimalist static HTML page instead.

<comment><USER41> Is it HN's hug of death? I see the same on my PC.

<comment><USER20> It was a JavaScript error on the commenting component due to a comment from a user that removed their account. Now fixed. Thanks!

<comment><USER12> Do you appreciate the irony that your article that brags about writing your own comment system was taken down by a bad comment?

<comment><AUTHOR> Haha. I little — have to say. I'm actually quite happy how well it works. This is only the second time the commenting widget is in active production use.

</comment></comment></comment></comment></comment><comment><USER42> This also applies to features. Easy example: if you're implementing commenting on a social media app, you could use a textarea instead of embedding a rich text editor. The simpler option usually decreases your overhead and helps keep your product easier to use, easier to explain to potential customers, easier to develop...

It's easy to keep adding stuff (especially if your customers are requesting it) but you should evaluate if it's truly necessary.

</comment><comment><USER43> It's very hard to write perfect minimal code from scratch. It takes a lot of foresight and consideration that mortals like myself simply don't possess.

I think finding the optimal solution to any problem usually requires delving through a lot of crap, trial and error etc. Maybe this is why I find the trend towards minimalism a little bit condescending, if that's the right word.

<comment><USER44> Or time to re-evaluate, refactor and rewrite.

Once you've done that, you might gain that foresight. It's also known as experience.

Too bad there are so many places where you're just constantly rushing to add new features on top of old stuff without ever having time to take another look at the design, fix it, and learn from it.

</comment></comment><comment><USER45> This echos a sentiment I've been feeling on a few recent posts of mine.

The argument against Entity Framework, and for micro-ORMs. - [https://pknopf.com/post/2019-09-22-the-argument-against- enti...](https://pknopf.com/post/2019-09-22-the-argument-against-entity- framework-and-for-micro-orms/)

You don't need Cake anymore; the way to build .NET projects going forward. - [https://pknopf.com/post/2019-03-10-you-dont-need-cake- anymor...](https://pknopf.com/post/2019-03-10-you-dont-need-cake-anymore-the- way-to-build-dotnet-projects-going-forward/)

My blog is also written from scratch, using a stupid tool.

[https://github.com/pauldotknopf/pauldotknopf.github.io/tree/...](https://github.com/pauldotknopf/pauldotknopf.github.io/tree/staging/generator)

</comment><comment><USER46> > We have a single developer taking care of the codebase. Does Optimizely need > ten people to handle theirs? Or twenty? We don't know, but one thing is for > certain: 20 people make more redundancy, technical debt, and bugs than one.

I get the point that having too many developers writing too much code can make it too much to handle. But I've seen what one person operating alone in a vacuum can do as well, and it is not pretty. It seems like really you want maybe 3 people to really understand some code. That gives you a good bus factor, but not so many people injecting ideas and patterns that the code becomes unwieldy. More important, it gives you extra code reviewers who can push back against bad code smell and hopefully find bugs, or at least try to test it. 1 might be better than 20, but 3 is better than 1.

</comment><comment><USER47> First and foremost: beautiful and performant website.

I don't understand how exactly the Volument product actually performs A/B testing (or distinguishes between different variants). The only code docs [0] I've found are very, very light on details and doesn't mention how the active variant is detected. To be fair, the product hasn't launched yet so perhaps the docs are currently internal-only.

That being said, very interesting idea of linking engagement to eventual conversion to get "results" faster. It certainly seems reasonable that there is a causation relationship (increased engagement, e.g. more scrolling and longer visit duration, eventually leading to increased conversion), but I don't know how statistically valid that is.

[0]: [https://volument.com/learn/client- api](https://volument.com/learn/client-api)

<comment><USER20> Here's how Volument works: [https://volument.com/learn/volument-data- model](https://volument.com/learn/volument-data-model)

A/B testing in Volument is quite different from, say Optimizely. You can compare a lot of things in apples-to-apples fashion: landing pages, inner pages, market segments, campaigns, site versions, etc. And you can compare both how much traction something generates, or how engaging a page is.

The causation thing is just something we measure. We measure how people behave on their first visit, how intensively they return, and how much they convert. It's not about the statistical validity, it's about choosing metrics that are essential for conversion optimization.

</comment></comment><comment><USER48> Usually product owners and business are the biggest enemies of engineering minimalism

\- [PO] A/B testing says button must be outside table

\- [DEV] But that makes the code unreliable and overcomplicates things the framework is not designed to do that, maybe if we include a regular link...

\- [PO] BUT AB TESTING, ACQUISITIONS, CRITICAL MISSION, bla bla bla

</comment><comment><USER49> Minimalist design looks good but in practise when software were designed it was good at early stage but when complexity grows because of growing and expanding customer needs to meet different type of customer taste, software tend to get heavier and we end up writing lot of crap. Unfortunately.

</comment><comment><USER50> Reductionist garbage. Their "minimalist" sentry clone literally does nothing as presented on the page. There must be a back end that stores errors and an interface to view them, etc.

There's a reason most apps are complex: because the world is complex. Making software that does nothing and pretending it's as useful as real software in the name of fashion, "minimalism" is frankly unimpressive and uninteresting. There are no shortcuts in real life. No matter how good their sentry backend is, I guarantee it's not nearly as useful because they almost certainly left out the ui that makes sentry the useful tool it is.

So tired of articles about fashion.

<comment><AUTHOR> Yes. There is a backend that stores errors and an interface to view them. This article simply compares the size/complexity/feature-richness of the frontend code. Sentry UI is good and we are familiar with it. So is ours. It's just more minimalistic.

</comment></comment><comment><USER51> I want to agree, but the story is incomplete. A lot of those products also started as MVPs, but accreted functionality in response either to customer demand or opportunities to monetize.

The classic example of this is Word which started out as a small clone of Bravo but kept adding features that some subset of customers found indispensable until the whole codebase and UI became a mudball.

I don't really like MS software but a big part of the reason is a consequence of something I admire: their strong attempts at backward compatibility and preserving features that are actually used even if by a small minority. In other words: you can't win.

<comment><USER30> But as a user of a SaaS, how many of those customers are your customers?

<comment><USER51> Well, take disqus: starts as a simple blog comment tool, saving you writing one. Then they add a nice feature where logged-in users can follow responses on other pages, which is nice for the blog owner as it increases engagement. But the payload got bigger and then starts to spy on you or your users. Then, as the product is free perhaps they add an ad or start to sell the spy data. And....

Or there's an address widget you used, but it kept being updated because even though you only serve the USA, _other_ sites need support for various foreign countries...

I don't want to write everything, but sometimes indeed these 3P packages are a moment of convenience leading to a lifetime of regret.

</comment></comment></comment><comment><USER52> Web site does not call external domains. Good.

Still in the 15th percentile on [https://www.websitecarbon.com/website/volument-com-blog- mini...](https://www.websitecarbon.com/website/volument-com-blog-minimalism- the-most-undervalued-development-skill/) . Can it be improved?

Something in the html/CSS prevents displaying the page until it's complete (observed on Firefox on Android). You should investigate, this will provide better impact to visitors.

Is the whole web page some kind of advertisement?

Overall, I agree. Perhaps you should make clearer that you compare bytes client side, not server-side handling (e.g. for error collection).

Keep up the good work!

<comment><AUTHOR> Wow. Thanks for pointing out Websitecarbon. We will definitely use it to opitimize our site further. Currently our bottleneck is actually fonts. We tend to emphasize the importance of typography and make it perfect for our own taste at least. I suppose we can tweak the woff2 files and perhaps use a little less of different font-weights.

</comment></comment><comment><USER53> Kinda anecdotal, but I've been working on OSS libraries for the last few years and what I've learned is very similar: 80% of the features aren't used by anyone, and if someone really wants something they just open an issue.

<comment><USER54> Yeah, same experience here.

I tend to be very stubborn about adding features to libraries, though. A handful of times I got pull requests that almost duplicated the size of small libraries just to cover some weird corner cases. One was support for an ORM discontinued since 2012. Another was someone who wanted a build tool to inline their assets during development phase. After asking, most people admitted that they don't really __need __the feature, but were simply trying to make the app complete.

</comment></comment><comment><USER55> I like using minimalism as an starting place, but I think it's idealistic in most cases.

We use senrty and we rely on many of the features you miss out on by just posting minimal exception information.

<comment><AUTHOR> I see your point. Sentry is clearly the least bloated service from the three examples mentioned.

</comment></comment><comment><USER56> _We can finally pursue our minimalistic religion, iterate quickly, and collect maximum wins._

Religion implies dogma, and I don't like dogma in my field.

Side note: the biggest takeaway for me here is: be careful when writing such self-confident articles. The general public doesn't take kindly to such displays.

</comment><comment><USER57> > If you want a cheap trick to make a difference — here's one: minimalism. > Focus on the bare essentials and get rid of the rest. It's an easy way to > differentiate, because most others are doing the opposite: tons of crap.

For a moment I thought this was about real life minimalism.

</comment><comment><USER58> Perfection comes not when you have nothing more to add but when you have nothing left to take away.

</comment><comment><USER59> What do those pie charts show (e.g. Disqus vs Custom)? No idea how to read those.

<comment><AUTHOR> It's comparing the size of the code.

<comment><USER59> Weird though, no? Am I wrong to expect a pie chart to represent the "total" or "100%" and the slices a portion of the whole? I could be wrong, but this seems like the wrong usage of the pie chart.

<comment><USER20> On those pies, the example SAAS product is the whole 100% and the tiny white slice is the custom alternative.

</comment></comment></comment></comment><comment><USER60> One adage I like is "the best code is the code you don't write", meaning that we should write as little as possible because every new line is a potential new error(s).

<comment><USER10> I agree. I wish more people had this attitude.

</comment></comment><comment><USER61> "Make it as simple as possible, but no simpler." ~Einstein

<comment><AUTHOR> Absolutely. This is highly correlated. Seems many minimalist geniuses are from Germany.

<comment><USER61> And the Italians and the Renaissance, all those geniuses in one relatively tiny area. What's up with that?

</comment></comment></comment><comment><USER62> Basecamp has a saying "underdo the competition"

</comment><comment><USER63> Great article. I wish more people would understand minimalism and accept it as company/product culture. Web bloat is ridiculous and worth fighting.

</comment><comment><USER30> Love it. I've been thinking [0] about this a lot lately. My rule of thumb these days when tempted to introduce a new dependency is try to build it from scratch first. I might spend 1 hour or 1 day, depending on my estimates of the costs/savings in the long term. I often find I just don't need the dependency. Sometimes I do, but after trying to build it myself I can fully justify _why_ (to myself and others), and also understand how to use the dependency better.

A few months ago I wanted to add an issue reporter to the help page of our open source genetics data visualization tool [https://bam.iobio.io](https://bam.iobio.io). I threw something together in less than 100 lines of code [1]. It doesn't even include any rate limiting or security measures. A couple weeks back I ran into a slight wrinkle that brought into question whether to keep using the tracker. I quickly analyzed the number of issues that had been submitted (including a recent influx of layman users), and simply removed it. Email support works fine for us based on our usage data. The decision was made easier because I didn't invest a bunch of time up front integrating with some external service, or building a 100% solution the first time around.

> It certainly didn't help, that our former A/B testing tool emphasized short- > term wins. When we added a huge sales overlay, it appeared to bring more > conversions — since the return visitors were ready to take action. The new > visitors probably hit the back button as soon as they arrived.

This is great. All of your analytics insights are completely dependent on a) measuring the right thing and b) interpreting it correctly over the long term.

EDIT:

I do want to mention that these articles always point out downloaded code size as a primary factor in the decision, but I rarely see any data showing how the reduction in code size translates into an improved user experience, based on the principles of human perception. In my experience, the really big gains come from techniques like background fetching.

Not that code size isn't important, but I think the main point should be the reduction in complexity that comes with it. That pays dividends in developer time and avoiding bugs, which translates directly to an improved user experience.

[0] [https://anderspitman.net/11/dependencies/](https://anderspitman.net/11/dependencies/)

[1] [https://github.com/anderspitman/issued](https://github.com/anderspitman/issued)

<comment><USER54> > I do want to mention that these articles always point out downloaded code > size as a primary factor in the decision, but I rarely see any data showing > how the reduction in code size translates into an improved user experience, > based on the principles of human perception. In my experience, the really > big gains come from techniques like background fetching.

Size is a huge factor when you're on a limited data plan. Maybe one website won't make a difference, but it adds up.

<comment><USER30> Not saying you're wrong, but again I never see these claims backed by data. My guess is most people eat their data plan with video and Spotify, not overweight JS.

</comment></comment></comment><comment><USER59> I just see a blank grayish blue page.

<comment><USER20> This was due to a comment from a removed user. Now fixed. Thanks!

<comment><USER64> I still see a blank greenish-gray page.

It appears to be because the BODY element has a CSS rule setting "opacity: 0", which appears to be for the purpose of enabling a CSS transition to fade in the page on load. Not exactly minimalism in terms of complexity, but it does appear minimalist in terms of content when the page is blank. :P

Presumably the transition is triggered by some JavaScript. However, that JavaScript fails to execute because cookies are disabled, which causes an error:

        Uncaught DOMException: Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
        at new u (https://volument.com/v1/volument.js:17:858)
        at window.volument (https://volument.com/v1/volument.js:17:133)
        at https://volument.com/global/index.js?b:1:14673
        at https://volument.com/global/index.js?b:1:60085

As a result, when cookies are _disabled_ and JavaScript is _enabled_ , the page appears blank.

If I had a dollar for every time nowadays that I see a blank Web page because of invisible-by-default content that's made visible by JavaScript that fails to execute because it can't handle blocked cookies...

<comment><USER20> This is now fixed and you can see the content when JavaScript is disabled. It's not as pretty yet but does the job for the Christmas day. Will check the localStorage thing next. Thanks!

</comment></comment></comment></comment><comment><USER65> If disquss is hailed as an example of good design we've fallen so hard...

</comment><comment><USER66> YAGNI ?

</comment><comment><USER67> KISS - Keep It Simple Stupid is my mantra

</comment><comment><USER20> The title now matches the HN staff edit.

</comment><comment><USER68> True.</comment>


Hydra.app taken down and renamed to Mjolnir.app - <AUTHOR> https://github.com/mjolnir-io/mjolnir

<comment><USER2> Questionable whether this is particularly interesting yet, but Mjolnir is going to be awesome. Much wider scope in terms of what you'll be able to automate :)</comment>


Show HN: Work on toy projects with someone - <AUTHOR> http://tinykernel.com

<comment><USER2> Like the idea but I don't want to have to sign up before seeing what all the site has to offer. I'd also like to see a bit less generic design.

<comment><AUTHOR> Hey, I am thinking the website should offer project hosting (like github?) plus network connection for programmers. Most likely I am going to have to cut some corners with regard to which feature I should release first. Which features would you like to see released first?

<comment><USER3> In my opinion, project hosting is not the most important. But, a network connection for developers, around keywords or ideas are the best. Maybe, a platform to brainstorm, discuss ideas, implementation would be awesome.

Project hosting is maybe reinventing the wheel: GitLab, GitHub, BitBucket, there are too many providers which do this job perfectly.

Let developers do their stuff on those ones. And let them come back to find new contributors / friends.

<comment><AUTHOR> that sounds like the right direction for this project. I have already started coding hopefully will have a beta version soon. Have you signed up yet?

<comment><USER3> Yeah, sent you a mail also about your mail confirmation process !</comment></comment></comment></comment></comment>


Show HN: Firewards – Tool to build a friend referral program for your newsletter - <AUTHOR> https://www.firewards.com <comment><AUTHOR> Hey HN,

Excited to share Firewards with you! Firewards overcomes the technical hurdle to implement a referral program for your newsletter. It synchronizes with your newsletter provider (e.g. Mailchimp) so you can send out individual referral links and the current referral count to your subscribers. Each link directs them to a customizable page where they can check their current status and how many referrals they need in order to get rewarded.

My experience running referral systems shows that referrals from your own subscribers is one of the most powerful ways to grow your audience. Especially at Token Daily we saw huge growth after implementing a referral system. I've always wanted to create a product out of the custom systems I built over the past 4 years. Now I am finally making it available for everybody!

If you are familiar with the referral systems from Morning Brew or The Hustle - This is what Firewards does!

Let me know what you think!

</comment><comment><USER2> WOAH, this solves a huge problem. I'm in the early stages of building my newsletter, and the biggest problem is getting subscribers. Having a way to actively get current subscribers to be invested in getting me new subscribers is awesome :)

</comment><comment><USER3> This is decent -- any idea if & when you'll start supporting Mailerlite?

<comment><AUTHOR> Yes! MailerLite is going to be available within the next 3-4 weeks! Will keep you posted :)

<comment><USER3> Thank you! Look forward to testing this out. Please email me once you have it ready, if possible. firstname.lastname@example.com

<comment><AUTHOR> We just launched our MailerLite integration :)

</comment></comment></comment></comment><comment> Marketing-Ninja Great idea! Love the Morning Brew rewards. Will check Firewards out

<comment><AUTHOR> Awesome, Thank you :)</comment></comment>


Drizzle7, a Rackspace backed MySQL fork - The icing on the cake - <AUTHOR> http://www.linuxjedi.co.uk/?p=144

<comment><USER2> Remember there is also MariaDB, quote from they webpage:

 _MariaDB is a database server that offers drop-in replacement functionality for MySQL. MariaDB is built by some of the original authors of MySQL, with assistance from the broader community of Free and open source software developers. In addition to the core functionality of MySQL, MariaDB offers a rich set of feature enhancements including alternate storage engines, server optimizations, and patches._

<http://mariadb.org/>

<comment><AUTHOR> I have a lot of respect for MariaDB, but they are aiming to be a drop-in replacement for MySQL. Drizzle is not a drop-in replacement and intentionally broke some compatibility to reach it's goals.

<comment><USER2> Not denying it, both projects have slightly different goals. But since some people reading this discussion might consider switching from MySQL to Drizzle it doesn't hurt to present them other options, which in some cases might suit them better (depending on what are your exact needs).

</comment></comment></comment><comment><USER3> The second part is already online although not linked form the first one: <http://www.linuxjedi.co.uk/?p=152>

Edit: Actually it is linked ("Next post") but I was looking for it on the text itself, sorry! Also, my link was from a Google search, edited to the correct link.

<comment><AUTHOR> Thanks for pointing that out :) The final part will be up tomorrow outlining the future plans for Drizzle.

</comment></comment><comment><USER4> One of the best features in drizzle for me is its flexible replication, i built rabbitreplication about a year ago which replicates from drizzle to basically anything over rabbitmq.

Read more here: <http://www.rabbitreplication.org/> [http://developian.blogspot.com/search/label/rabbitreplicatio...](http://developian.blogspot.com/search/label/rabbitreplication)

* note that rabbitreplication needs a bit of love to actually work since the GBP messages have changed since i last had time to update it.

<comment><AUTHOR> We do plan to work on things like Rabbit and Tungsten replicators soon. In the mean time we recommend the native solution which is similar to MySQL's master/slave but uses the GBP messages stored in an InnoDB table.

</comment></comment><comment><USER5> What is the advantage of dropping the smaller integer types? Does it reduce the per-record overhead for example? I have worked with a table that had about 200 million rows and 4 1-byte tinyint values. If those had to be full 4-byte ints it would require another 2GB to store and reduce the number of records that could fit in memory. Unless there is savings elsewhere?

<comment><USER6> I think the point was to trim down the beast. For that you need tradeoff some features I guess. So small int were cut off. As were triggers, views and stored proc. Most of which is hardly used by target audience, webdev that is.

<comment><AUTHOR> There are plans to bring back at least stored procs very soon. But to do them properly and as a plugin type (so if you don't need them they aren't there)

</comment></comment></comment><comment><USER7> It seems like the draft of NoSQL database solutions has made people think about databases, and thus also bumped up innovation in the SQL domain. Many interesting projects around MySQL these days.

</comment><comment><USER8> Is there something similar to phpmyadmin that will work with drizzle? It seems phpmyadmin is not 100%. [http://blog.cihar.com/archives/2010/10/21/drizzle- phpmyadmin...](http://blog.cihar.com/archives/2010/10/21/drizzle-phpmyadmin- demo-server/)

<comment><AUTHOR> The link you supplied is the current effort to port phpMyAdmin. I'm not aware of any other similar projects right now. It would be really good to have such a thing though.

</comment></comment><comment><USER9> Can someone point me to some good benchmarks showing the performance of Drizzle7 vs. MySQL 5.5?

<comment><AUTHOR> Unfortunately we don't have any yet, although there are libdrizzle vs. libmysqlclient benchmarks floating around.

We don't benchmark against MySQL ourselves because we can very easily bias it in our favour. We would love to see other people benchmarking.

We do, however, benchmark every build against ourselves using several different suites as can be seen at:

<https://launchpad.net/~drizzle-benchmark>

<comment><USER10> Isn't there any standardized SQL benchmarks? I remember one open-source.

edit: <http://sourceforge.net/projects/osdb/>

<comment><AUTHOR> We use SQLBench, Sysbench (I believe both are pretty standardized) and drizzleslap. I'll ask others in the team about the one you linked to, looks interesting.

<comment><AUTHOR> Oh, I forgot we run DBT2 too

</comment></comment></comment></comment></comment><comment><USER11> Has anyone tried this in a production environment ? Stable enough ? Any gotchas ?

<comment><USER12> We don't use Drizzle directly, but have been using lib-drizzle to give us c library access to MySQL. In almost a year, we haven't seen any negatives.

<comment><AUTHOR> A good point, quite a few people are using the libdrizzle client library bundled with Drizzle. It is a high-performance BSD licensed library that can speak the MySQL protocol.

</comment></comment></comment><comment><USER13> Very interesting to find this article today. I have been looking at MySQL replacements and drop-ins recently, having looked at Percona and MariaDB. I'm definitely going to keep my eye on this.

</comment><comment><USER14> Is this faster than postgresql?

<comment><USER15> If you defenestrate it, it accelerates at about 10 m/s^2.

<comment><USER16> This is also true for postgres, apples and feathers.</comment></comment></comment>


Bias against older people? - <AUTHOR>

<comment><USER2> Gee, hope not. It's 4:13 am and I'm just finishing up for the day. I'm 45 and my team is applying. I've worked for a ton of startups and have started a couple of my own. Both my parents had great capacity to outlast their age- peers and function without sleep, so I think there's a genetic aspect to this ability. I don't believe that the ability to stay up late should be the main criterion for choosing worthy startup material. It's a marathon, not a sprint.

<comment><USER3> I recall reading something (weak I know) about cell regeneration in young people being so much higher that they actually _require_ more sleep.

I'm curious: Do you even require the massive doses of caffeine?

<comment><USER4> Point about cell regeneration is interesting. Do you recall the age group in question?

<comment><USER3> I said it was weak :-) I'll admit I have nothing to cite and recall little beyond the basic concept. Could be total bull, but certainly makes sense to someone who doesn't know much about the science behind the idea.

My totally useless guess is that as a baby you'd need the most sleep, and around early 20's things would start reversing the other direction. That seems like a pattern in other body functions.

Anyone less ignorant have some real information?

<comment><USER4> While I'm not really less ignorant, it certainly doesn't look like bull :) But I think the age group is important, because I want to know how I compare with "young people." If "cell regeneration" refers to brain cells, then I'm old. If it refers to organ tissue cells or something, maybe I can call myself "young." Slim chance though, haha. My problem is that I get bad food comas unless I sleep something 9 hours a day; this is a long-term observation over many years. I don't know anybody at my age who sleeps 9 hours though.

</comment></comment></comment></comment></comment><comment><AUTHOR> I think all my life I've been trying to figure out what I love to do and even though I liked technology, I was never convinced that I loved it. Now I'm 32, but my resume is w/o any startup experience/personal ventures. At the same time, I strongly feel like I want to start a start-up (yes, I'm aware that many fail and that I have to support my wife).

Assuming I come up with a convincing idea/prototype and a co-founder, what are my chances of getting funding from Y Combinator? Will there be a bias against me because:

(negatives) 1\. I'm 32 2\. My experience is no start-up experience 3\. My experience has mostly been in enterprise s/w, which according to PG is not software :)

(positives) 1\. Determined 2\. Reasonably smart :) 3\. Willing to risk my career/lifestyle

I would love to get Y Combinator funding because, it will give me the connections and credibility I need for VC funding.

I know that eventually it depends all on my idea/prototype/team, but I'd love to hear your thoughts. Startup school did nothing but deepened my fear that 30s are not so welcome. At least not the ones who haven't done anything significant in their lives before.

Is it too late guys?

<comment><USER3> _"Is it too late guys?"_

That's not a very "founder-y" type question. If you're relying on external approval and motivation you're going to have a hard time shouldering a startup. Fierce determination means not letting anything (including age or "rules") stop you. Joe Kraus is fond of saying: "The beginning of the discussion is when someone says 'no' -- that's where the fun begins."

Why don't you save up, build your startup prototype, get users loving it, and THEN give YC or a VC a call. There's nothing like hard evidence you have a clue to get someone's attention.

I'll be a bit harsh and suggest you might just be searching for an excuse why you can't do it.

By the way: PG and co. were around 30 when they did Viaweb.</comment></comment>


Recreating the Reeder Two-tone Horizontal Rule in Pure CSS - <AUTHOR> http://www.daveperrett.com/articles/2014/04/07/recreating-the-reeder-two-tone-horizontal-rule-in-pure-css/

<comment><USER2> Another way to achieve this effect:

      hr {
        background-image:
          linear-gradient(left,rgba(195,195,195,0),rgba(195,195,195,1),rgba(195,195,195,0)),
          linear-gradient(left,rgba(255,255,255,0),rgba(255,255,255,1),rgba(255,255,255,0));
        background-position:0 0,0 1px;
        background-repeat:no-repeat;
        background-size:100% 1px,100% 3px;
        border:0;
        height:4px;
      }

Fallback is non-existent for browsers that don't support linear gradients, but it has the advantage of automatically working with any background color.

Not a criticism of the original solution - just offering an alternative approach to the problem.

</comment><comment><USER3> Your font is particularly difficult to read. Chrome 26 on Win 7.

<http://i.imgur.com/kkGtESR.png>

<comment><USER4> I get this too. It happens to a lot of @fontfaces when viewed in chrome and I've never seen a solution on how to fix it, although I've heard it been called a 'solved' problem. I'd love to figure this out.

<comment><USER5> I've seen this problem when using @font-face generators that remove font hinting to save space. Last time I used FontSquirrel's generator, I had to specifically unset the option to remove hinting in order to get the fonts to look right on Chrome on Windows.

<comment><USER6> Aha thanks for the insight, I'll know what to suggest now when reporting this to site owners.

</comment></comment></comment></comment><comment><USER7> heh, [http://www.daveperrett.com/articles/2014/04/07/recreating- th...](http://www.daveperrett.com/articles/2014/04/07/recreating-the-reeder- two-tone-horizontal-rule-in-pure-css/) massage from the future?

<comment><AUTHOR> hah good catch, now to figure out how to do redirects in S3.</comment></comment>


Bring on the Real Computer Revolution [pdf] - <AUTHOR> http://ojs.stanford.edu/ojs/index.php/intersect/article/viewFile/703/617 <comment><USER2> It's kind of ironic that this article is presented as a PDF version of a journal paper.

<comment><USER3> The dilemma of old proven tech.

\-- sent over smtp

<comment> david-given HN has an SMTP interface?!

</comment></comment></comment><comment><USER4> Url changed from [http://ojs.stanford.edu/ojs/index.php/intersect/article/down...](http://ojs.stanford.edu/ojs/index.php/intersect/article/download/703/617), which initiates a file download.

<comment><USER5> The server won't send the Content-Disposition:"attachment[...]" header if you use this URL: [http://ojs.stanford.edu/ojs/index.php/intersect/article/view...](http://ojs.stanford.edu/ojs/index.php/intersect/article/viewFile/703/617). (For me, the abstract page was confusing, because you have to see the tiny "PDF" link and then click it to get to the actual article.)

<comment><USER4> Ok thanks! Changed to that.

</comment></comment></comment><comment><USER6> research for this paper clearly wasn't very thorough.

this quote, which is key to the title is 10 years wide of the mark: ``"As the computer scientist and graphical interface pioneer Alan Kay likes to say, "the real computer revolution hasn't happened yet" ("The Computer Revolution," 2007)" '' This title, as far as I can tell, first appeared in the 1997 OOPSLA talk of the same name [https://www.youtube.com/watch?v=oKg1hTOQXoY](https://www.youtube.com/watch?v=oKg1hTOQXoY)

<comment><USER7> _Besides Case and Hart 's piece, we have a few other concrete examples of how computing could be a medium for understanding systems._

Only a few? There are a lot of them, actually. Games are starting to become these, particularly ones which encourage exploration and making, like Minecraft. I think we're only at the beginning of our exploration of the craft of emergent sandbox worlds. We're probably at an analogous stage in emergent sandbox worlds as the cartoon doodles found on Japanese temple beams from around 1200 years ago. One day, we'll get to the sandbox world equivalent of "The Watchmen."</comment></comment>


Workers In Windowless Offices Lose Sleep - <AUTHOR> http://www.fastcodesign.com/3033998/evidence/workers-in-windowless-offices-lose-46-minutes-of-sleep-a-night <comment><USER2> I wonder if the study controlled for quality of life at work; its plausible that offices without windows are generally more miserable than those with windows (but not because of it).

</comment><comment><USER3> I agree with the commenters on the article, this sounds a lot like correlation: not so much like causation.

<comment><USER4> There is a complex cause here, and the actual contribution of natural sunlight to the observed effect can't be easily separated from any other possible contributing factors.

Not the least of which being that windowless workspaces are usually given to lower status workers, and lower status workers are more stressed in the workplace. Given what we know of circadian cycles from the study of people living in sealed apartments with all timekeeping cues removed, even the very short exposure to natural light one might get during a commute is sufficient to synchronize the internal clock. I'd be more inclined to blame the cortisol than blame the tube lights.

But if it means more natural sunlight in the workplace, I'm prepared to pretend the article is groundbreaking, ironclad science.

<comment><USER5> >>lower status workers are more stressed in the workplace

Not sure if that can be generalized. In my experience the opposite can easily be true.

</comment></comment></comment><comment><USER6> It could be that the sunlight exposure during the day generates more melatonin at night, resulting in better sleep. However as other commenters have pointed out, it's unclear how well controlled this study was. I would prefer to see a study where they moved workers around the office and compared the amount of sleep to sunlight exposure for each worker.

</comment><comment><USER7> I feel that workers would be more productive as well if they receive natural light during the day. It would simply make them happier.

</comment><comment><USER8> I've never noticed a correlation in my personal life between sleep time and proximity to windows during the workday.

That said, I can definitely say that, for me at least, sitting next to a window is a huge perk. I'd probably turn down a job if I couldn't at least sit near a window, unless there was something else about the job that was absolutely killer.

</comment><comment><USER9> Shouldn't spending more time sleeping indicate that you are sleeping worse, not better?

I want to sleep efficiently and minimize my sleeping time. I surely don't want to extend it.

</comment><comment><USER10> Does anyone on HN work in a windowless office? Curious what this is like.

</comment><comment><USER11> This is anecdotal, but I've always found the contrast in average uptime between Unix and windows machines to be quite soothing. When the office is windowsless, that is.</comment>


Ask HN: How do I learn to think? - <AUTHOR> <comment><USER3> CMU has a free logic course [http://oli.cmu.edu/courses/all-oli-courses/logic- proofs-cour...](http://oli.cmu.edu/courses/all-oli-courses/logic-proofs- course-details/)

This collection of lecture notes used for an intro pure math course also covers communications in math like how to write and structure a proof [https://infinitedescent.xyz/](https://infinitedescent.xyz/)

There is also classic material, like Descartes 'Discourse on the Method'. As for being able to argue well, any books on thesis defense will help like what a committee looks for when tearing apart your hypothesis and results/logic.

</comment><comment><USER4> I can recommend the following:

Coursera's course "Learning How to Learn"

Thinking Fast and Slow, Kahneman

How to Read a Book, Adler[0]

The Trivium, Sister Miriam Joseph

How to Solve It, Polya

I'd also recommend others that have already been recommended, such as the Discourse On the Method, the logic course (which I haven't personally taken, but a logic course certainly helps enter the right frame of mind for evaluating arguements with others or yourself, ime) and of course, learning more mathematics.

[0]: There's also an excellent summary here: [https://pastebin.com/wGFMM1pZ](https://pastebin.com/wGFMM1pZ)

<comment><AUTHOR> Thanks for the list of books!

<comment><USER4> Of course! I understand that a list of books isn't initially helpful as it only presents a time sink and nothing of immediate utility, but I believe I gained noticable cognitive improvements from reading those. You might also be interested in: [https://fs.blog/mental-models/](https://fs.blog/mental- models/), which I read recently and have mixed feelings about.

Unfortunately I don't have any clear cut answers, and sadly I don't think reality does either - by nature, it's a question that is subject to personal opinion and biased answers. But if you find a satisfactory answer, please let me know. And as a final note, I think I've learned the most from debate - <USER2> it online or in person. Engaging in challenging discussion whenever possible (figuratively). It may sound lame, but forcing myself into such discussions, or at least reading them carefully and analytically, has helped me tremendously.

</comment></comment></comment><comment><USER5> You are already on the right path. Keep asking yourself but also observe you are already better thinker by promoting feedback and being vulnerable by asking.

</comment><comment><USER6> From ancient greece to medieval times much further education was focused on the trivium. These were considered the thinking skills;

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

These are good areas to pursue IMO.

I've always enjoyed conversation with people that look at the world from a different perspective. Its interesting to gain some of their perspective and it also helps me look at the world from different angles.

</comment><comment><USER7> Just think. About what affects you. Go for 1h walk and leave everything at home, except the keys.

I usually I commute 1h10m a day, by bus, and many times I just think about everything. Sometimes I have to shutdown my phone, or make sure I have no music, 4G, videos, ebooks, so I don't get distracted.

You can think about your life, future, past, work "puzzles", economics, politics, friends, family, something you forgot, make comparison between them, etc...

</comment><comment><USER8> Pick a skill you want to master, set yourself challenging but attainable goals, and solve problems/challenges on your path. That's the best way.

Also check out LessWrong and "Rationality: From AI to Zombies" \- the best book on "thinking" I have ever encountered.

</comment><comment><USER9> What do you mean? There are different ways of thinking: logically, intuitively, empathicaly, and probably others.

So my question to you is, why do you want to think? To have better relationships? To be better in your career? To be a better musician? To some extent you'll need logic, empathy, and intuition to succeed in life but you'll need a lot more logic as a software engineer, and a lot more empathy to be a social worker.

<comment><AUTHOR> Hmm, I want to be a clearer thinker if that makes sense. I have trouble articulating a lot of my thoughts, I don't write very much and so I have a lot of trouble putting my thoughts into words. I'm not very good at arguing (I argue more emotionally than rationally). I would like to be able to think more logically, take a hypothesis and see it to it's logical conclusion.

<comment><USER10> Study logic and mathematics, additionally philosophy. You may not get fast at debate/argumentation (I'm not). But the quality of your arguments will improve. You'll be able to examine the nature of the discussion better and identify the key elements and how they're connected to each other.

Learn to identify the assumptions of a position. I have a colleague who is a diehard Young Earth Creationist. He pointed me to some videos by Ken Ham (I believe). I watched them, because I wanted to understand the position. It's been a few years so I can't recall the precise flaws in the arguments, but here was the structural problem: Everything he said, ignoring how he opened an argument, was entirely logical given the initial assumptions. The entire problem was the initial assumptions (a flawed understanding of genetics, physics, and chemistry). If you took his assumptions as givens, then everything he said was quite persuasive. If you, however, actually have studied those fields or have the ability to study them, you can quickly identify why his conclusions are false.

Nearly every debate you have with someone, you will find that the disagreements start with the premises and you have to identify _these_. From there it's an application of logic to see how they get to their actual stated views. With this understanding, you can determine whether you can even change their view. Their assumptions may be so ingrained they cannot change (like my colleague), or you might find your own conclusions changed (develop a better understanding of the history of some country and why that places them in some position today, for instance). But you'll achieve change via logic and not emotion.

Sometimes, though, it does come down to emotion. I had some moderate success in getting a colleague to care about prison conditions by appealing to his religious views and pointing out the conflicts between claiming Christianity and also thinking it's ok for men to get raped by other men in prison ("ok", he felt no sympathy for them and thought they were getting what they deserved). I still used logic in that discussion, but one of the premises was his faith and the value he placed in it.

<comment><AUTHOR> That's my current plan! The math is taking a lot longer than expected.

<comment><USER10> Within math: geometry, discrete math, and set theory are _very_ proof heavy and pair well with trying to understand logical reasoning.

Other math (algebra, calculus, stats) _can_ be proof heavy, but may require a higher level of math/logic sophistication to get into (you'd be looking at textbooks targeting university juniors and seniors, maybe even grad students). Whereas introductory geometry often includes proofs _immediately_ , as do set theory and discrete math.

Good luck in your efforts.

<comment><AUTHOR> I'm currently working through problem solving books for elementary/juniour high school. I'm trying to mainly learn to love math and problem solving as it causes me a lot of anxiety and frustration but every now and then I solve a problem and get a little bit of a rush.

</comment></comment></comment></comment></comment></comment><comment><USER11> Follow below steps -

1\. Learn to remain silent.

2\. Try to Observe thing.

3\. Go to Bathroom, Sit and talk to your self [Improve talking by stopping to speak]

4\. Repeat and Rise.

</comment><comment><USER12> Participate and engage in discussions with others. HN is a good place to start :) Try to be as precise as possible when making your argument. Repeat. It's a life-long exercise.

</comment><comment><USER13> Maybe you need to become more mindful first.

<comment><AUTHOR> Maybe. I just started meditating again.</comment></comment>


End of Operation of Wow Air - <AUTHOR> https://wowair.com/travel-alert/ <comment><USER2> This seems like it will be a shutdown for the history books. It seems crazy to me airlines can just shut down like this overnight, stranding thousands of travelers. Wow!</comment>


JavaScript InfoVis Toolkit - <AUTHOR> http://thejit.org/ <comment><AUTHOR> This is a relatively new JS toolkit I just found on flowingdata. It is similar to Protovis, but seems to have more advanced graphs built in and better compatibility with IE. The code's on github - <http://github.com/philogb/jit>.</comment>


Mozilla Location Service: Geolocation lookups from public cell tower, WiFi data - <AUTHOR> http://thenextweb.com/insider/2013/10/28/mozillas-location-service-pilot-project-provides-geolocation-lookups-based-public-cell-tower-wifi-data/ <comment><USER2> I work on this Mozilla project. If you have any questions, please ask!

Mozilla's network "stumbler" client is installable from GitHub: [https://github.com/dougt/MozStumbler/releases](https://github.com/dougt/MozStumbler/releases). The client code is at [https://github.com/dougt/MozStumbler/](https://github.com/dougt/MozStumbler/) and the server code is at [https://github.com/mozilla/ichnaea/](https://github.com/mozilla/ichnaea/).

<comment><USER3> So, this is not _exactly_ related, but I see that you also work on Firefox OS, and I assume part of the reason for this project is to improve location services on FxOS.

I got a ZTE Open to play around with, and was disappointed to find that it can't figure out where I am. Of course, I know it's a cheap phone and the OS is only in version 1.0. So if the location were a little inaccurate, or took a long time to come up, I would understand. But it literally never gets my location at all. (I live in NYC.)

Why do you think that would happen? And tying it back into this project, how soon do you think FxOS end-users will start seeing improvements from what you're doing?

<comment><USER2> Yeah, the geolocation on some early Firefox OS models is a known problem. Unfortunately, Mozilla does not control the final bits that ship on devices. This Mozilla wiki page specifically addresses these GPS problem:

[https://wiki.mozilla.org/B2G/Geolocation](https://wiki.mozilla.org/B2G/Geolocation)

</comment></comment></comment><comment><USER4> Would be cool if you could download the data for your city to your Android phone and use the location service without sending your cell towers and BSSIDs to anyone, not even Mozilla.

<comment><USER5> When Andreas Gal talked about this at the recent mozsummit, he specifically mentioned this use case.

<comment><USER2> Yes. Downloading offline data sets also means you can geolocate without network connectivity, so it's faster and saves power too.

<comment><USER6> You really should emphasize this more prominently. It's a huge selling point, both for practicality and privacy.

</comment></comment></comment></comment><comment><USER7> I think the code behind this is ichnaea[1]. I've been reading the code in past few days and learning some stuff. (OK I learn a lot of things reading other's code on github.)

Off topic: I found ichnaea while looking for circusd[2] configuration for celery. Mozilla circus is a nice process (& socket) management tool.

[1] [https://github.com/mozilla/ichnaea](https://github.com/mozilla/ichnaea)

[2] [http://circus.readthedocs.org/en/0.9.2/](http://circus.readthedocs.org/en/0.9.2/)

</comment><comment><USER8> Anybody gotten this to work at all? I'm trying to locate based on wifi info alone, but all I ever get back is "not_found". A working example would be nice, too, since the example data and the API doc seem to disagree on what goes in the "key" field (example request shows "3680873e9b83738eb72946d19e971e023e51fd01" but the docs say it should be a BSSID and "look similar to 01:23:45:67:89:ab").

edit: I'll save anyone who wants to try a lot of trouble and give you the one piece of information that their API docs and announcements all inexplicably avoid telling you, and which I found by digging through their client code: The API endpoint URL is [https://location.services.mozilla.com/v1/](https://location.services.mozilla.com/v1/) :)

<comment><USER9> Thx for the feedback, I've fixed the example to have the right format and provided full URL's in the API docs.

The docs where written under the assumption of being reusable for anyone installed a ichnaea server and not just the specific instance we currently run. But that apparently isn't all too helpful right now :)

<comment><USER8> Thanks for the fix. It was clear that the ichnaea docs were intended to be generic, but there's also this bit: "More information about the specific instance hosted by Mozilla can be found at [https://wiki.mozilla.org/Services/Location"](https://wiki.mozilla.org/Services/Location") which leads to a page that _also_ doesn't list the endpoint API.

</comment></comment></comment><comment><USER10> Sounds similar to [http://www.openwlanmap.org](http://www.openwlanmap.org). While OWM only collects WiFi APs, Mozilla also collects cell towers. Still, I couldn't find anything about whether Mozilla collaborated with these guys or not.

<comment><USER2> We've reached out to some other wifi mapping projects like OpenWLANMap, OpenCellID, and WiGLE. None of them collected all the data we were looking for and their databases are published with different data licenses that may not be compatible.

<comment><USER11> Interesting, I see these and a few others listed at [https://wiki.mozilla.org/Services/Location/Bootstrap](https://wiki.mozilla.org/Services/Location/Bootstrap) (all one of copyleft, (non)commercial, or unknown).

While [https://wiki.mozilla.org/Services/Location#Goals](https://wiki.mozilla.org/Services/Location#Goals) says "Make as much of the data as possible available under permissive open licenses."

Assuming permissive means what it usually does, the above clearly aren't compatible. Curious what permissive licenses will be used, when data will be available.

<comment><USER2> One of our original project goals was to publish an open, downloadable database. Some smaller geolocation projects have downloadable databases, but Mozilla's legal and privacy teams were not ready to take that step yet. Geolocation is a very sensitive privacy issue for "stumbler" users, WiFi access point owners, and end users. Once you publish data, it's hard to take it back. <:) For now, we're just hosting a public API.

You can read some early ideas for obscuring access point identities (using hashes of one or more MAC addresses) on the mozilla.dev.security newsgroup:

[https://groups.google.com/forum/#!topic/mozilla.dev.security...](https://groups.google.com/forum/#!topic/mozilla.dev.security/0qT0grS_PIY)

You can read some of the Mozilla discussion about data licenses on Bugzilla:

[https://bugzil.la/911306](https://bugzil.la/911306)

</comment></comment></comment></comment><comment><USER12> Some one should get all the Ingress players to install the app and contribute data. Larger city would be mapped in no time.

<comment><USER2> The client UI a little geeky now, but we have some gamification ideas akin to Google's Ingress or Nintendo's Treasure World games:

[https://en.wikipedia.org/wiki/Ingress_%28game%29](https://en.wikipedia.org/wiki/Ingress_%28game%29)

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

<comment><USER13> Turn your API users into data suppliers by adding an optional GPS lat/long and accuracy radius to the API request. You could potentially enhance the position they already have with wifi data (like Google Maps claims to do), and collect the GPS to wifi correlations to help other users. This is potentially a much larger data source than people running dedicated stumblers.

<comment><USER9> Yes, we are aware of this approach, thx for reminding us. It wasn't a priority so far, as we don't have anyone using the search API's just yet.

</comment></comment></comment></comment><comment><USER14> It is pretty cool that I could see a difference in coverage between when I read the article and when I got home from work. A bunch of people must have installed the app after reading about it here.

</comment><comment><USER15> Hmm, do you get extra points if you ship back a few captured unencrypted packets? I realize its a bit snarky but the amazing flap over Google Streetview cars collecting WiFi access point data was, to me, a bit over the top.</comment>


David Moadel's Interview: The Rules of Successful Trading - <AUTHOR> https://utopia.fans/privacy/david-moadels-interview-the-rules-of-successful-trading/ <comment><AUTHOR> Another interview for your interest</comment>


Google has released a giant database of deepfakes to help fight deepfakes - <AUTHOR> https://www.technologyreview.com/f/614426/google-has-released-a-giant-database-of-deepfakes-to-help-fight-deepfakes/ <comment><USER2> This seems a touch counter intuitive, no? Can't these be easily be used to make existing fakes that much better, or are we far past that mattering?

<comment><USER3> This is an attempt to get ahead of the prosecutions coming down of the people who were videotaped with minors by Jeffrey Epstein. The DS is hoping that they can deflect the video evidence by calling it deepfake.</comment></comment>


Ask HN: What do you use for remote configuration on your mobile app? - <AUTHOR> We've been using remote configuration or a few years in our mobile app. At first we ran a very simple custom implementation, and we later switched to a Saas that seemed to offer a more comprehensive solution. We've had many issues with it: the UI is terrible for large projects, there is no versioning of the configuration, no gestion of merge conflicts (when several devs are editing at the same time). Worse, the behaviour is not deterministic: if some segments overlap (our fault), it will serve either value at random (should not happen).<p>I was wondering if any of you had found a good solution? What are their pros and cons before we jump into it? <comment><USER2> Try Firebase remote configuration.</comment>


StoryWrangler: Twitter Ngram Viewer - <AUTHOR> https://storywrangling.org/ <comment><AUTHOR> Paper on ArXiv here: [https://arxiv.org/abs/2007.12988](https://arxiv.org/abs/2007.12988)

</comment><comment><USER2> This is cool! The visualizations could be a little finer, but it's neat to see these trends.</comment>


Spacepath: a demonstration of A* pathfinding applied to Newtonian physics - matthew-piziak https://github.com/matthew-piziak/spacepath

<comment> matthew-piziak Direct link to 31 random prerendered demos: [http://imgur.com/a/K8XfM](http://imgur.com/a/K8XfM)</comment>


Show HN: Understandly – easy-to-use translation tool for short texts - <AUTHOR> http://www.understandly.com/ <comment><USER2> Co-founder here. We made Understandly because I had difficulties managing translations of short texts. I'm doing digital marketing in multiple languages (mainly Google AdWords and Facebook), and keeping track of the translations in a spreadsheet proved cumbersome.

Understandly has features that makes it easier to manage large amounts of translations as well as features that helps you collaborate with your translators and team members.

We'd really appreciate feedback, especially on what features we should add. You can reach us on firstname.lastname@example.com or right here in the comments.

<comment><AUTHOR> Any roadblocks preventing you from using the service would also be helpful to hear about.</comment></comment>


The Infuriating Innocence of Mark Zuckerberg - <AUTHOR> https://www.newyorker.com/culture/cultural-comment/the-infuriating-innocence-of-mark-zuckerberg <comment><USER2> The real problem is advertising. "You're not the customer, you're the product".

We've been here before. Back in the 1950s, when TV commercials appeared, the ad industry was portrayed as a villain. "Selling out to Madison Avenue" was considered a despicable act for a writer. There were books on the evils of ads - "The Hidden Persuaders" (Packard, 1957). The US Congress held hearings on the evils of television. TV did change the world. For the first time ever, ordinary people had more free entertainment coming in than they could consume. That had never happened before in all of history.

Facebook is a new technology for delivering ads. The problems come from being ad-supported, not the nature of a social network. If Facebook were a paid service without ads, most of the intrusiveness would go away.

What we need to regulate is advertising, not networking.

<comment><USER3> In the 1950s, and much more recently, the ad industry had to make guesses, based on very limited data, about who was seeing what ads on broadcast media. Sure, the ads for auto batteries and tires ran with football games, not with soap operas. But compared to what you can do with on-line media, they were working in the dark.

</comment></comment><comment><USER4> How are people still obsessed about facebook. Where was all this rage for the equifax hack? It boggles my mind.

<comment><USER5> Because Equifax was hacked while Facebook knowingly provided or sold people's personal data. I fully agree Equifax was criminally negligent and should have been nailed to the wall for it, but what FB did/still does is premeditated.

<comment><USER6> FB had two levels of opt-out - first one for the users not consenting to provide their data to the app (a "cancel" button on the app permissions dialogue) and the second one a global Facebook Platform opt-out when you wanted to prevent your friends from passing on same data.

Equifax had none.

</comment></comment></comment><comment><USER7> The way to fix Facebook is to build a better platform and allow Facebook to go the way of myspace.

<comment><USER8> It's not a platform issue, it's a monetization issue. Somehow social networks have to make money, and that either involves charging users which pisses people off, or relying on the fact that people don't properly value their time and / or information and selling them ads. Selling ads incentivizes aggressive data mining, and then you're right back to the situation we have now.

<comment><USER5> I think the best solution would be to create an open, non-profit, publicly funded platform similar to Wikipedia. Besides I believe it's possible to have advertising on commercial sites and still be ethical.

<comment><USER9> ActivityPub [1] is a W3 recommendation for protocol for social networks communicating a federated p2p manner. It is used by open source social networks like Mastedon and PeerTube to interact with eachother.

[https://www.w3.org/TR/activitypub](https://www.w3.org/TR/activitypub)

<comment><USER10> Practically speaking, all of us that care about these sorts of things already know about Mastodon, if not ActivityPub and GnuSocial, etc. We have lots of potential FB competitors to root for right now.

<comment><USER5> There's a few other good ones too:

[https://www.opensource-socialnetwork.org](https://www.opensource- socialnetwork.org)

[https://www.humhub.org/en](https://www.humhub.org/en)

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

[https://elgg.org](https://elgg.org) \- site seems to be having issues right now

[https://friendi.ca](https://friendi.ca)

</comment></comment></comment></comment></comment></comment><comment><USER11> The article paints a picture of how hard Mark has it - just remember for all the suffering he is going through he has billions of dollars. It's tough being at the top :-)

<comment><USER12> So what, billionaires don't have problems?

<comment><USER13> He could step down, dissolve the company, or tell the truth and all of these "problems" would just go away.

<comment><USER12> Dude get real, please. He couldn't dissolve the company even if he wanted to.

</comment></comment></comment></comment><comment><USER14> Also these were Zuckerberg's talking points, which he had prepared for all the potential questions. I think it does show that his answers are mostly "scripted" and not necessarily genuine or coming from a place of honesty.

[https://twitter.com/becket/status/983846618263891968](https://twitter.com/becket/status/983846618263891968)

Direct image link:

[https://pbs.twimg.com/media/DadTMxlW4AAUz_h.jpg:large](https://pbs.twimg.com/media/DadTMxlW4AAUz_h.jpg:large)

<comment><USER15> That's not what it shows, it simply shows he has prepared for a number of questions. If he was the one to come up with those answers (potentially running them by lawyers and PR just like you have to do for any public communication when you are a CEO of a publicly traded company) then it's still coming from a place of "honesty", it would be his genuine opinions. In order to say that he wasn't being honest you have to prove that those answers were prepared by someone else.</comment></comment>


A Colombo Show HN Meetup - <AUTHOR> http://blog.thameera.com/colombo-show-hn-meetup/

<comment><USER2> Creating something new and discussing it with similar type of people (people who create stuff) is a great way to improve in aspects like technology, strategy, etc. But need to make sure initial ideas are not carried away too much. Specially if the participants are not a subset of actual endusers of what you are doing.

</comment><comment><USER3> Why this meetup was different [http://vpj.svbtle.com/colombo-show-hn- meetup](http://vpj.svbtle.com/colombo-show-hn-meetup)</comment>