HELP: Join as cofounder or first employee? - <AUTHOR> I have the possibility of joining a startup (still working on prototype, no sales or funding yet)
Im being offered to join as first employee, which would mean some equity but probably nothing comparable to the founders.
I feel I can add a lot of value to the startup, but it seems like theyre not open to having another cofounder, as they say that it is their project and have already refused others to join
On one hand, I know I have the skills to be a cofounder and get more equity, and Id feel like im selling myself short if I bring so much value but getting only a fraction of the future returns, also, id feel like im building and working for someone else to profit from, instead of building something that I can also be a real part of
On the other hand, I believe in the project and I dont want to lose out on the opportunity. It could also be a good learning experience for me for the future.
What would you do if you were in my position? <comment><USER2> I'd remind myself the following:

\- ideas are a multiplier to execution and essentially worth nothing without the execution

\- a business-savvy founder who is willing to walk the walk, knock on doors, sell the product, is a multiplier to the viability of the product.

\- 9 out of 10 (or so) startups fail. So most likely, this one will fail. How much (calculated in hours * $100/h) am I willing to pay for one lottery ticket? A ticket which will guarantee a maximum of $?

\- I need to pay my rent, insurance, food, student debts and save, or I'll be in trouble soon.

\- I have a limited number of heartbeats, a limited amount of cognitive resources per day.

\- I am asking a question on a public forum about this situation. This automatically classifies it as a non-"hell yes!" decision.

\- I would prefer a different arrangement but the founders are not open to what I really want. How do I feel about a career of compromise?

<comment><AUTHOR> Good points, thanks for your insight

</comment></comment><comment><USER3> "still working on prototype, no sales or funding yet"

If you want to join as an employee, then they need to pay you a decent salary. Even if a bit lower than market, you could consider if you really like the idea which could totally fail. But do not join as an employee but no salary (it could even be illegal in the United States but I am not sure which country you are in).

If they cannot afford to pay you a salary right now, then you must be a co- founder because they are still in prototyping stage. You need to get a significant chunk of equity (I would argue it should be closer to equal share).

Remember in either case, this product could go nowhere and you could end up with nothing. But if the risk is worth it to you, then make sure you are protecting yourself properly.

</comment><comment><USER4> > first employee

> only equity being offered

> no sales or funding

They want free labor. Don't do it.

<comment><AUTHOR> We know each other, I trust the vision is long term and theyd compensate me with some equity and a good salary whenever they can afford it

<comment><USER5> If you're not getting paid, and you're only getting employee equity, you're getting screwed. They might not be able to afford the salary now, but they can definitely afford the equity - it's just a number on some paper, especially before investors are involved.

Part of the reason that founders get a lot of equity is to offset the cost of not getting paid for the early years of starting the company, and being below market rates afterward. If you're getting paid, then sure, getting less equity makes sense - in two years, if it goes belly up, you have two years of salary, they have nothing.

Whatever you choose, get everything in writing first. Even best friends can become enemies when there's money and verbal agreements involved.

</comment></comment></comment><comment><USER6> Do you actually know how many shares the founders have received? And how does that compare to what you are being offered?

There is no standard definition of "founder" or "co-founder." They could offer you half of what they are getting and refer to you as a "founder." I assume that wouldn't solve your concerns.

I'd put the title aside and think about what you are actually looking for from this experience. It goes without saying that you should be getting a very significant piece of equity if they expect you to work for free. You are taking a huge risk. But I get the impression there is something else about the "founder" designation that is meaningful to you. What is it?

</comment><comment><USER7> Are _you_ "still working on prototype" or _they_ are "still working on prototype"?

Are they paying you now? Are they going to pay you now in hard green cash that you can use in the grocery to buy bananas? (Not IOU, not equity, not an internal ICO, real dollars.)

Also, for YC a founder must have at least a 10% of equity. It's not an official definition, but it is a rule that they use.

<comment><AUTHOR> They. Theyve been working on it for a few months and have put some money into it. I know they want me on the team as they believe in me, and theyd be willing to compensate me financially as soon as they can afford to

For reference, how much equity should I ask for in case of being first employee? Note, the idea is that id be in charge of sales, eventually into a COO position

<comment><USER8> _Theyve been working on it for a few months and have put some money into it. I know they want me on the team as they believe in me, and theyd be willing to compensate me financially as soon as they can afford to_

I would not take this deal. I would tell them "Either, I am a co-founder, and get risks and rewards like a co-founder, or I am an employee and I get paid like one. You can't have it both ways."

They are working for free because they hope to get rich. They want you to work for free in hopes that, someday, you get a salary and they get rich. I would absolutely not be okay with that.

</comment></comment></comment><comment><USER9> How are you going to join as an employee if they can't even pay you?

You remind me of my friends with little to no actual relevant experience.

I'd get a job that has sales and funding. I've done 8 startups as a point of reference, to varying levels of success/failure.

</comment><comment><USER10> Decide whether the hourly rate offered is good enough to make up for not having cofounder level of equity and influence.

If it isn't, work on something else.

<comment><AUTHOR> Thanks, good point

</comment></comment><comment><USER11> Already sounds like a bad situation.</comment>


Russia requesting to review source code of Western companies' security products - <AUTHOR> http://reuters.com/article/idUSKBN19E0XB <comment><USER2> Despite the clear slant in this article to associate this with more _malicious_ goals... This is an ENTIRELY reasonable request.

The US has shown time and time again that it has absolutely ZERO morals with regards to monitoring/spying/breaking security products at whim, when it suits us, and often even when it's a _REALLY_ bad fucking idea and everybody knows it.

<comment><USER3> It may be reasonable, but it's not a good idea. We shouldn't trust Russsians, and they shouldn't trust us. I'd rather the US companies be forced not to sell if those are the terms. It exposes US companies even more than they are. The Russians should find another product if they aren't happy with it.

<comment><USER4> Why with the "Us vs. Them" mentality?

<comment><USER5> Because there's been a very recent and very public hacking scandal that was "them vs us"?

<comment><USER6> I just think it might be more helpful to think about this as "Putin vs The U.S" instead of "them vs us".

You can probably include his network and the oligarchy in there, but the average Russian citizen shouldn't really have a problem with the U.S.

Before Putin started working on actively fear mongering, our relationship was good and trending upward. They have slightly different cultural values than us, but its nothing like it was in the cold war. Our interests are aligned on most significant issues for the average citizen.

If both our countries could get rid of their current leader we could quickly become allies.

<comment><USER7> I think it's not that simple. Russians are "proud" peoples, as they say. He has high approval rating. An affront to Putin is an affront to Russia. The Clinton "diplomatic" tack and tact was not effective and likely very unproductive and has lead to much distrust at the govt level but also among the average Dmitrys and Marinas on the street.

<comment><USER8> > Russians are "proud" peoples, as they say.

I doubt that as a people Russians are any more "proud" than any other nation; such a sentiment reminds me of the age of Romanticism, when such kind of analysis of nations, or of national spirit, was commonplace. It is so very human (and so very superficial, too) to want to feel superior to or at least no worse than others, that states exploit this via propaganda. If people are being systematically told that they belong to a great nation (which defeated the Germans in WWII, or was the first to send a man in space, or has a magnificent cultural legacy in XIXth century writers, or has the second largest nuclear arsenal, or other such stuff intended to boost nationalism), they get "proud". When this propaganda stops, they go back to normal again.

<comment><USER7> What I mean is if you criticize Russia in most aspects, even if true, people will tend not to receive it well and take it as a personal attack against them or the people as a whole. So unlike the US where people frequently criticize the country as well as people whole distancing themselves from those "bad" others.

<comment><USER9> > So unlike the US where people frequently criticize the country as well as > people whole distancing themselves from those "bad" others.

People in Russia, like in the US, frequently criticize the country as well as people. What they don't like, like people in US, is "others" criticizing their country and the people.

<comment><USER7> There are people who do, but go too far and you get into trouble. For historical reasons, people don't separate the state from their own identity as much as people do in other countries. It really is different. Even Putin haters will find "good" things in him, oh but he's defending Russia, etc.

<comment><USER9> > It really is different.

Citation needed.

<comment><USER7> Talk to Russians is all I can say.

<comment><USER9> > Talk to Russians is all I can say.

I do it quite often. Daily in fact.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> > The companies say they only allow Russia to review their source code in > secure facilities that prevent code from being copied or altered.

So how do the Russians know that the code they see is the one generating the binaries sold in Russia? This is where reproducible builds would help, but without source code it's hopeless. They should at least build the product inthe lab, make sha1 of every file and check if they match with the ones on sale. But then there would be an inspection before every release and patch.

<comment><USER11> _So how do the Russians know that the code they see is the one generating the binaries sold in Russia?_

Maybe this is more about training and retaining Russian tech talent, creating friction for foreign vendors, and spreading a proto-fascist FUD and distrust of governments all over the world.

Because yes, I would think inspecting binaries (probably secretly) would be more productive in pursuit of the stated goal.

</comment></comment><comment><USER12> Is this really surprising? Most big/old corporations already require the same level of scrutiny when auditing a new piece of security software, so it really isn't that shocking to hear of a _government_ requesting the same thing.

Hell, most corporations require high scrutiny for _any_ software, let alone security software.

<comment><USER13> It's surprising to the people here. If this were a forum for tech workers for banks and defense contractors it would be a different story.

<comment><USER12> I worked with an international shipping insurance company for a little while as a QA tester (contracted). They required almost this level of scrutiny for just testing software.

</comment></comment></comment><comment><USER14> I find it funny that they are afraid to show the code because it might lead to hacks, as if there were intentional bugs in the code that can be abused.

If your product contains bugs it is up to you to fix them. If some "Russian hackers" can find them by looking at the code in a clean lab but you can't, well, you aren't supposed to be in this business.

</comment><comment><USER15> I wouldn't consider a security product unless it came with full source.

<comment><USER16> I wouldn't consider a security product secure unless it was compiled from the source code by oneself.

<comment><USER17> This is security Inception. There have been many PoCs for compilers and linkers being modified to then insert backdoors into compiled/linked output.

At _some_ point you have to trust your toolchain.

<comment><USER18> You're referring to the Thompson hack:

[https://dl.acm.org/citation.cfm?id=358210](https://dl.acm.org/citation.cfm?id=358210)

The system needs to be bootstrapped in such a way that the compiler can be trusted. This may include compiling e.g. gcc through a multi-stage process starting from a simple, easily-audited compiler with a small set of features and working your way up to a full-featured C compiler. It might mean double- compilation---comparing output from multiple compilers.

Combining that with reproducible builds, you can (one day) trust your toolchain and your system. Hardware is another story.

[https://reproducible- builds.org/events/athens2015/bootstrapp...](https://reproducible- builds.org/events/athens2015/bootstrapping/)

Hopefully this will be all sorted out and standard practice in the near future.

</comment></comment></comment></comment><comment><USER18> With regards to opinions on whether or not specific entities like Russia should be permitted to examine source code: we can also consider the Apple v. FBI case.

For those who don't recall, one of the concerns was the government trying to compel Apple to make changes to iOS to permit brute forcing the San Bernardino attacker's PIN. This is a violation of First Amendment rights (compelled speech), so this drew a lot of opposition, including from people that are part of free software and open source communities. The alternative was to have the FBI make changes to the software instead of compelling Apple to do so.

For those who agree with the free software philosophy, it's important to remove consideration of _who_ is trying to exercise the four freedoms. In the case of the FBI, from a free software perspective, of course they should be able to modify the software---we believe that all software should be free. (But that doesn't mean they should be able to install it on _someone else's_ device.)

In this case, Russia doesn't have to ask to examine free software. And if they did, it shouldn't be a concern. Restricting who can use and examine software is a slippery slope:

[https://www.gnu.org/philosophy/programs-must-not-limit- freed...](https://www.gnu.org/philosophy/programs-must-not-limit-freedom-to- run.en.html)

But not all software is free/libre. But by extending that philosophy---there would be no _ethical_ concerns with a foreign power wanting to inspect proprietary source code. But proprietary software might have something of concern to hide: it might be something malicious like a backdoor, or it might be something like a lack of security or poor development practices.

</comment><comment><USER19> I find it rather revealing how much weight is given to the concerns of the tech firms, while entirely ignoring the concerns of consumers that run closed code, and are at the mercy of Intel and AMD's management engines, and the reported cases of backdoored routers, smart TV's sending your filenames back to HQ, cars and appliances with regulatory defeat devices, etc.

The negative spin put on asking to know how our devices work, and what they do, is frankly disgusting.

Edit: Is posting identical comments in identical submissions, where one submission is upvoted and the other buried, not allowed? What should one do instead, if one's opinion on the story hasn't changed?

</comment><comment><USER20> Does that also happen with, say, German or French governments? Or US government? What about the Chinese?

Do they not ask to review source code of the tools they buy and use?

<comment><USER21> A counter example is the F35 -- it is a fighter that is hugely contingent upon its software, but the US has denied partners (the people who also cofunded development) access to it. Given that software controls everything, that should invalidate it as an option for any other military at the outset.

<comment><USER22> Not everyone else can build something equivalent. That leaves them two options: Trust the hidden software, or fly inferior planes. It's not clear which one is the correct answer.

</comment></comment></comment><comment><USER23> It's a natural consequence of the US trying to bug / backdoor hardware. A plain 2nd order effect.

<comment><USER24> Seems more like a natural evolution of the digital landscape. The US certainly doesn't have a monopoly on covertly compromising hardware/software. Considering China, Israel, and Russia's posture, the US would be laggards at this point if they weren't doing it.

</comment></comment><comment><USER25> It would be good if anyone could review the source code of any program they are using.

<comment><USER26> I am curious what it would take to make a law prohibiting the sale of software without source code and build scripts.

Some would fight it tooth and nail, but it would be better for society. It would be end the idea of selling prepackaged software, but it would end whole categories of viruses and malware.

</comment></comment><comment><USER27> I wonder how much the author was involved with actual tests. My guess is that it was exactly zero.

I was heading the team overseeing these tests for a large western European company.

The reviews are done on the customer's company computers, with no access to network. After that the Russians only get a hash of the binary compiled with the reviewed code, that's all. They then compare this hash to the sw they get (on firmware for instance) to make sure that it comes from the code they reviewed.

I am paranoid but this is a very reasonable requirement we do not, unfortunately, normally have in Europe for "friendly" software coming from "friend" US companies (and probably vice versa but I do not care that way). Snowden proved that the BFF approach does not work.

</comment><comment><USER28> > But those inspections also provide the Russians an opportunity to find > vulnerabilities in the products' source code -

this is the biggest part of the article. If the Russians are trying to hack US govt/corps/people its really helpful to have the US security companies show how they check.

</comment><comment><USER29> Some specialists, if you have time, please explain me in few words, why they can't just disassemble products they need to check?

<comment><USER30> After code is written it goes through a compilation step that makes it easier for machines to read and harder for humans to understand.

Think of the index of a reference book. Where every pertinent word is listed along with a page number. Imagine you wanted to read a complicated and meaniful book like Tolstoy or Kafka and really understand it. Walk away with a sense of exactly what it meant. To gain that understanding you only have an index and you had to reconstruct the book's meaning from there. Technically you can, but it is massively more difficult.

Edit: A more accurate analogy would be that you aren't even given an index of words, but an index of phonetic sounds that you have to piece together to create words.

</comment></comment><comment><USER31> The more slow-moving government will get involved, the more industry will be pulled towards open source where there is no need to get government approval.

Sure - it won't be easy and will come with other pitfalls, but in some circumstances these may be easier hurdle than waiting months/years for some government to approve your product sale.

</comment><comment><USER32> How many people here use Kaspersky privately or at work?</comment>


Ask HN: What are some email pitfalls in big companies? - <AUTHOR> Hi HN,
I recently left college to work at the head office of a large conglomerate. I expected email correspondence to be trivial, but it turns out that it's an entirely new communications medium with its own set of norms and subtleties.  What are some practical situations and solutions that I may run into?
For example, last week Linda emailed reminding me to complete a task that was never assigned to me. Noticing that the probable owner was CC'd, I decided to wait to see if they'd take responsibility instead of responding immediately. Sure enough, 4 hours later Jenny replied taking ownership. In this case, not responding to the email seemed to be the solution, but that's weirdly counter-intuitive. What else might be like this?
Thanks in advance,
Ada. <comment><USER2> No need to overthink it. Just reply "I don't think this was assigned to me" and move on</comment>


I just released my first mobile app and it's a tool to help language learners - <AUTHOR> I'm excited to announce that I just released my first Android App to the Google Play Store.
The App is called Word of The Hour: https://play.google.com/store/apps/details?id=org.wordofthehour.wordofthehour
It shares one vocabulary word every hour in English, Spanish, German, French, Italian, and Hindi to help language learners expand their vocabulary. You can choose to receive a notification for each word or you can disable notifications.
The vocabulary component of language learning is something that I've always struggled with and I hope this tool offers a little bit of help!  :)
#Android #App #Free #languagelearning #Spanish #French #Italian #English #German #Vocabulary #wordoftheday <comment><USER2> your title should be something like:

Show HN: Word of the Hour - a language learning app

<comment><USER3> With the inline hashtags I suspect the poster is not a regular part of the community, and will not return.</comment></comment>


Show HN: Hrnw.io – An anonymous, location-based chat room - <AUTHOR> https://hrnw.io <comment><AUTHOR> Maker here...

I built hrnw to connect people who are in the same location at the same time. Think of it as an anonymous chatroom with everyone else who is also on the app at the same time, within a few hundred feet or so of you. I think it would be fun for bars, concerts, conferences, or really any other social gatherings.

Please let me know what you think, if you'd like to know about the stack, and if you see any big issues.

<comment><USER2> Any ideas on how to solve the problems that befell previous attempts at things like this?

<comment><AUTHOR> I like the idea of social regulation (voting, reporting, block lists, etc.) to govern the content. Also a healthy use of computer vision and ML to weed out offensive images will probably be necessary.

I think the previous incarnations of this were a bit too creepy and focussed way too much on the location-based aspects of it rather than the experience of augmenting "what's going on around you right now". They were also way too early... Users weren't ready to allow an application to use their location a few years ago.</comment></comment></comment>


12 Fractured Apps - <AUTHOR> https://medium.com/@kelseyhightower/12-fractured-apps-1080c73d481c <comment><USER2> The article starts off by talking about trying to run legacy applications and then just casually tells you to modify the source code to solve all your problems. Not everything you want to run in a container is something which you want to modify.

Also, I really don't see the problem with the volume mounting approach. It may look ugly on the command-line, but when you're using an orchestration tool, it is actually quite painless and solves a lot of the issues mentioned in the article.

I do completely agree that one should completely avoid running a custom entrypoint. They are often written and then forgotten and can lead to really nasty bugs.

Lastly (this is more a Docker criticism, not the article) writing to stdout is all well and good, but Docker does a terrible job handling it. There is no way to truncate logs to stdout coming from a Docker container so Docker just holds onto the entirety of the log contents until the container is removed. For long running applications, this makes logging to stdout a deal-breaker. In a move absolutely contrary to my last point, I commonly use a custom entrypoint purely to handle logging. It passes all arguments to the application and then redirects stdout and stderr to cronolog which writes to a volume in my log pulling container.

<comment><USER3> I created this logrotate rule to rotate the docker json log files:

      /var/lib/docker/containers/*/*-json.log {
          copytruncate
          rotate 2
          size 40M
          missingok
          nocreate
          nocompress
      }

But for most services I still mount a log dir and redirect stdout and stderr to a file manually, since neither the json log format nor that directory structure are particularly convenient for my purposes.

More recent docker releases have added other logging drivers, and added options to the "json-file" logging driver for "max-size" and "max-file", which sounds appropriate, but that came after I worked around the problem and I haven't upgraded yet.

</comment></comment><comment><USER4> Two things which I never understood about using environment variables are how do you version control the changes and how do you manage these variables when you have more than just a handful of them?

In this example, it's only six simple values but what happens when you have 10 or 20? Or you have 10 applications with six values each that need to be deployed to four different environments?

Or what about if there are multiple teams making concurrent changes at the same time? What if some application starts failing due to to a recent variable change and you want to revert back or track down who made the change?

I feel like once your application grows to more than just a few simple values, you end up creating a big file to populate these values and you end up back to using configuration files.

<comment><USER5> Using environment variables for everything is wrong too. API keys and other sensitive information should be in environment vars. Non-private information should definitely be in config files.

If you need the flexibility of environment variables for a semi-configurable non-secure variable, use them to overwrite a sensible default.

<comment><USER6> Can someone explain to me why env vars > filesystem for secrets? They seem equivalent in most ways that actually matter.

In general 12-factor gets my hackles up as it comes across as dictatorial with explaining why. Even when I'm wrong I like to be gently convinced rather than hit over the head with rule book. Can someone point me to an extensive source that clearly justifies each factor? Ideally with an actual debate about each point (as this often surfaces the strongest parts of the case for something)

<comment><USER7> I have a tremendous amount of experience with the 12 Factor book having worked with at Heroku for 6 years. I am also working on an open source 12 Factor platform called Convox.

One reason the factors are presented as prescriptive because apps that don't do this won't work on Heroku.

Is there a specific factor you'd like to deep dive into?

I'll pick one to start: Environment.

There are many ways you can set and read configuration for an app: env, config files, config tools like chef or puppet, config database like zookeeper or etc. if we are talking about config like a database URL you could also use a service discovery system.

Env represents the simplest contract between your app and whatever platform is running it (the OS, Docker, Heroku, ECS).

If the platform can update env and restart the processes to get the new settings, no other config management is necessary.

It's UNIX, it's simple, and it helps you bootstrap any more specialized config management if you need it (set ZOOKEEPER_URL or CHEF_SERVER_URL).

So ENV feels like a factor to become very prescriptive about.

The biggest debate I can see is if ENV is sufficient to build our micro services on, or if service discovery "magic" is necessary too. I.e Zookeeper, Airbnb SmartStack or Docker Ambassador containers.

For the vast majority of apps, ENV is sufficient.

I personally still build my more complex apps around ENV and at all costs avoid needing to use a service discovery system. The added complexity and operations isn't worth it to me.

I have a strong hunch that service discovery won't become an app development pattern that everyone uses until a managed platform (like Heroku) offers it. Perhaps this is where Docker, Swarm and Tutum is headed.

</comment></comment></comment></comment><comment><USER7> Thank you for this guide Kelsey.

I worked with countless apps and developers at Heroku on getting their apps running well on the platform. There was always one great mystery: why not build our apps a bit differently (dare I say better) to work in the cloud?

The database connection pattern is spot on. For any network resource, try to connect and if there is a problem retry with back off.

Also log the connection error events that a monitoring tool can notify off of.

I've seen apps that have the absolute worst behavior around this error that will happen. The worst is crashing the app in a way that triggers thrashing around restarts.

We had to build tons of complex restart back off logic into the Heroku platform to handle this.

I often wish app frameworks made this easier. I think most devs don't do these things because it is a chore for s problem that only happens occasionally.

But what if Rails baked this into ActiveRecord?

At one point Rails only logged to files on disk. We came together to add stdout logging to the framework.

<comment><AUTHOR> You're welcome.

You have managed to capture the spirit of the post. The goal was to highlight areas where developers can take action, and how improving even the little things can go a long way to improving the entire system -- even the one you can't see.

In the early parts of my career I would often take pride in building complex systems to accommodate for misbehaving applications. Throw in some fancy Nagios alerts and a sleep depriving on-call rotation; I looked like a hero.

Then I learned how to write code.

This was the turning point in my career (2006). I was now brave enough to modify "legacy" production applications to take advantage of "new" infrastructure features like service discovery (use DNS records instead of IPs), and logging directly to syslog (asynchronously with proper ring buffers).

I was willing to learn any language too: Python, PHP, or Java, it did not matter because it allowed me to take action and contribute at the heart of the application.

I'm not saying platforms that also handle "misbehaving" applications or complex failure scenarios are unnecessary. I just consider those platforms as extra layers of protection, not a free pass to ignore building applications that take responsibility for reliability from startup to shutdown.

</comment></comment><comment><USER8> Everything written in this article is easily done without docker. Just with groups / systemd. Docker makes these things way harder to do. Especially since packaging isn't so hard anymore. Mostly Dynamic Language's are harder to package, but when I think about Java, Go or other compiled language's you mostly could just create a single file which you could version.

</comment><comment><USER9> This is an aside, but somewhat related.

Where are you suppose to store secretive environment variables like database password or apikey/secret pair etc (say in Ubuntu server)? Is storing in something like ~/.profile or ~/.bashrc and doing `export SECRET_KEY='plaintext_secret'` on the server enough, or should they be treated in an even more secretive manner?

<comment><USER10> This is a problem that several new tools are being built to address, e.g. Vault from HashiCorp and Keywhiz from Square. Storing the secrets unencrypted on disk on the host system is not a huge improvement over having them in the application by default. Ideally you want a system to store them securely that allows them to be extracted and decrypted only using credentials and policies you control. They should only ever exist in memory (which is why Keywhiz uses FUSE, for example.) Some container orchestration tools like Kubernetes also include their own mechanism for securely storing and retrieving secrets and making them available to applications.

</comment></comment><comment><USER11> How do you manage things like database schema (except by switching to schema- less database :) ), is it your software which is suppose to create it if non existing ?

In case the database is pristine, ok I see, I do a "create table if not exist"

But if the database is at version N and I want to go version N+1 , what do I do? I mean I do know about database migration tools, but how does it integrates in your "pure 12factor" deployement, as it means when you deploy you need to have at least this order:

1\. bring up the database 2\. run the migration script 3\. bring up the application

and the article was advocating to make things in a way that you don't need to have a "you MUST first run this, then that"

<comment><USER12> One way to think about this that maybe overlaps with the theme of this article, but also stands on its own with specific regard to database modifications is that you often need to have the ability to have multiple versions of everything alive at one point in time.

So maybe that's a schema A and a schema B, or maybe you have applied schema B which only app version 1.1 is optimized for , but version 1.0 is what is in production immediately following your database migration. So you can't make changes in schema B that would immediately render app 1.0 broken, which means you need to not box yourself into a corner with future assumptions as much as possible.

Ultimately if downtime is not an option you end up writing these capabilities in at every layer. Whether it's an api endpoint or code talking to a database you often have to make carefully thought out changes incrementally to ensure that things can all operate simultaneously, and often this ends up having metadata about the versions of everything as an option for taking different code paths.

This article touches on this in the way that if suggests making your app deal with an available database and one that is not available. Same with a field in a schema or a payload. To make your code less brittle instruct it what to do in both cases.

</comment></comment><comment><USER13> At no point does the author elaborate on why failing to start if the environment isn't sane is a bad thing. All my software checks for the things it expects to be in place, then bails hard and fast if they aren't.

It's then up to the init daemon to attempt to restart that process, and up to the monitoring and orchestration tools to ensure that the environment returns to sanity over time.

<comment><USER14> I think that author just does not have experience outside of what he does. Maybe his systems can fall back to sane defaults. But what is sane default if you have to communicate with 3rd party server and your system is worthless when connection is not there? You have to have ip/domain name configured.

For cars if something is wrong then in some cases you can start and even drive but users get warning. If there is something really wrong car will not start.

So I think what author suggests is at least asking for trouble.

Almost everywhere as quoted:

"Everything in this post is about improving the deployment process for your applications, specifically those running in a Docker container, but these ideas should apply almost anywhere."

<comment><USER15> The author is a she.

<comment><USER16> Kelsey isn't a she :)

<comment><USER15> Oh, welp. That's what I get for gendering names. My apologies, to both you and Kelsey.

</comment></comment></comment></comment></comment><comment><USER17> There is one thing that really confuses me about 12 factor...

It suggests that you provide the locations of backing services in the config. This seems insane, since it means that you cannot move any backing services. Do they expect you to restart when you switch backing services? Do they expect you to run all your internal traffic through load balancers?

We provide each container with the address of the local service discovery server (Consul) and it finds what it needs itself, when it needs it. I assume everyone using this kind of setup in production is doing something similar?

<comment><USER18> "Providing the location of the backing services" doesn't mean the physical address, but the logical address, managed by an e.g. load balancer, capable of abstracting over physical changes as necessary. Consul is one way to do it; DNS is another, and there are many more.

</comment></comment><comment><USER19> > _As you can see there's nothing special here, but if you look closely you > can see this application will only startup under specific conditions, which > we'll call the happy path. If the configuration file or working directory is > missing, or the database is not available during startup, the above > application will fail to start._

Why not let a PaaS do this for you? Heroku, Cloud Foundry, OpenShift or the others I've yet to learn about?

Disclaimer: I work for Pivotal who donate the majority of engineering effort to Cloud Foundry.

<comment><USER20> I agree with the general idea, let an already existing product handle problems that everyone has. The last part is still important though, if we are going to build "distributed" apps, then we _need_ to handle those dependencies failing or being briefly unavailable.

And the reality is that every app becomes distributed as soon as it has a database or client. A ton of legacy applications make the implicit assumption that the network is reliable, and fall over hard when it isn't true anymore.

<comment><USER19> I agree that legacy apps break 12 factor rules. That's why the 12 factor app is "a thing" in the first place. An app which follows them can survive being killed and restarted.

I've worked on some legacy migrations and it's usually a process of incrementally chiselling out services and cleaning up hard-coded assumptions. Tedious but usually doable.

</comment></comment></comment><comment><USER21> Whaleware was created to address some of these issues with Docker. Default configuration, a definite application init phase, plus internal monitoring and lifecycle reporting. [https://github.com/l3nz/whaleware](https://github.com/l3nz/whaleware)

</comment><comment><USER22> If you haven't seen Kelsey give a talk, well worth watching - really funny guy and intelligent. He gave one on Nomad and Kubernetes that's good.</comment>


Color spaces and ICC profiles: Guide to XYZ, RGB, ICC, xyY, and TRCs  - <AUTHOR> http://ninedegreesbelow.com/temp/xyz-rgb.html

<comment><USER2> I wish I found this site when I took Color Science in college. I was able to pick a free elective and that one sounded fun. The first day I went the professor rattled off 3 prerequisite classes "we all should have taken by now", I hadn't taken any of them. In fact, I was the only CS major in the class.

I explained the situation to the professor and he understood but he said it would be a hard class. Fortunately, we worked in groups for every assignment, so I could get some help from people that actually knew what they were doing.

The book we had for the class was dense and I never really found a perfect overview of everything we were learning. This website really sums up a lot of it. We went into more detail about the 1931 XYZ color space, and learned about color spaces that were made after that and how they affected the field.

I ended up learning a lot in that class. One of the big assignments we had was to take a photo of a portrait under different light conditions in a light booth (daylight, sunset, incandescent, etc.) and use MATLAB programs to make all of the photos look exactly the same.

Here's a Wikipedia article that covers a lot of what we did: [https://en.wikipedia.org/wiki/Color_balance](https://en.wikipedia.org/wiki/Color_balance)

</comment><comment><USER3> It should be noted that the axis of of the XYZ color space does not perfectly corresponded to the cone sensitivity of the human eye. The X and Y are close but there is significant error in the Z (blueish). If you need to isolate colors to a single cone in the human eye you need to use the LMS color space. I which stands for the long, medium, and short wavelength cones.</comment>


Y Combinator Ends China Accelerator - <AUTHOR> https://www.wsj.com/articles/y-combinator-ends-china-accelerator-11574363965?mod=rsswn <comment><USER2> Also: Discussion of original source (YC's blog post): [https://news.ycombinator.com/item?id=21597763](https://news.ycombinator.com/item?id=21597763)

<comment><USER3> We've merged the comments thither.

I've marked this submission a dupe since it's based entirely on the blog post.

</comment></comment><comment><AUTHOR> Ugh, paywall. Here's a non-paywall article: [https://www.usnews.com/news/technology/articles/2019-11-21/s...](https://www.usnews.com/news/technology/articles/2019-11-21/silicon- valley-startup-incubator-y-combinator-closing-china-unit)</comment>


Easy Amazon EC2 Instance Comparison - <AUTHOR> http://www.ec2instances.info/ <comment><USER2> Use this all the time -- I kinda wish it could remember what columns I select or turn off. I don't often care about windows pricing, and tend to think about monthly cost vs hourly.

<comment><USER3> Up vote my issue.

[https://github.com/powdahound/ec2instances.info/issues/201](https://github.com/powdahound/ec2instances.info/issues/201)

</comment></comment><comment><USER4> that's why I love Google's custom machine types, fully customizable. [https://cloud.google.com/compute/docs/instances/creating- ins...](https://cloud.google.com/compute/docs/instances/creating-instance- with-custom-machine-type) and all with fast networks.

<comment><USER5> Yep, as much as I love to hate on google, I recently trialed their vms, aws and azure and google offered the best experience by far.

I have no idea why people like aws so much. To spin up a simple vm, I had to go to the correct web interface for the specific location, go through a wizard full of weird nicknames for all services while browsing multiple pages of documentation to figure out that I need "ec2" and "t1.micro" or "m2.macro", how much they cost, what the hell an "ebs" is, then download the key they generated (which was only valid for that one location as it turned out later...)

At google, I just selected "vm", specified the location, cpu, ram, storage, entered my own key into a text field, it immediately quoted a price and I was done. 2 clicks and 5 input fields, no documentation needed, all made sense.

<comment><USER6> How much does the experience of your first 15 minutes really matter when you're picking a platform for the next several years?

<comment><USER7> A lot. We're running a small <10 team on a tight budget, we don't have time [or money] to waste.

Looking towards the next several years:

* [https://cloud.google.com/container-engine](https://cloud.google.com/container-engine) [docker in the cloud]

* [https://cloud.google.com/bigquery](https://cloud.google.com/bigquery) [sql for analytics]

* [https://cloud.google.com/ml](https://cloud.google.com/ml) [tensor flow]

* [https://cloud.google.com/dataflow](https://cloud.google.com/dataflow) [2nd gen map-reduce]

* [https://cloud.google.com/bigtable](https://cloud.google.com/bigtable) [large scale semi-structured storage]

* [https://cloud.google.com/preemptible-vms](https://cloud.google.com/preemptible-vms) [cheap VMs]

* [https://cloud.google.com/compute/docs/networks-and-firewalls](https://cloud.google.com/compute/docs/networks-and-firewalls) [fast networks]

Quite a lot of Google's infrastructure crown jewels have become part of their Cloud offering. Not sure where to start looking for competing AWS services, forget about looking closer at design / docs / scale / reliability.

[xGoogler here, used to work on GCP]

</comment></comment></comment></comment><comment><USER8> This is pretty amazing. Navigating the EC2 pricing documentation is such a hassle.

I tend to think of costs in terms of monthly, as well, and this is valuable when working out cost-proposal estimates for projects I'm pitching to potential clients.

<comment><USER9> It is missing is storage and bandwidth costs, which can be a nontrivial chunk of an EC2 bill.

And yes, it is hair pullingly frustrating experience trying to figure out how much an EC2 instance is going to cost you using Amazon's tools.

<comment><USER10> Can you elaborate a bit? Is it the cost calculator? ([https://calculator.s3.amazonaws.com/index.html](https://calculator.s3.amazonaws.com/index.html))

What do you find frustrating? What can we improve? Let us know!

(Disclaimer: I work for AWS.)

<comment><USER11> Not OP. But Amazon's pricing is very complex compared to Google's and also more expensive when it comes to VMs.

</comment></comment></comment></comment><comment><USER12> Huh. Apparently, running Postgres on RDS is tad bit more expensive than MySQL. Why is that?

<comment><USER13> The RDS FAQ reveals this:

 _Q: Why is the pricing for each RDS database engine different?

The pricing for each database engine of RDS varies because our costs are different for each. These costs include many operational components in addition to software licensing. We will continue to work hard to reduce costs and pass on those savings to our customers. _

My guess is that Postgresql required them to write much more internal tooling to "get right", and the costs reflect that.

See also: [https://aws.amazon.com/rds/faqs/](https://aws.amazon.com/rds/faqs/)

</comment></comment><comment><USER14> Always see Amazon price reductions being promoted on HN, I didn't relise it's still so expensive, compared to my hetzner dedi.

<comment><USER15> Yes, it's not apples to apples at all, but AWS runs about 5x the cost without considering bandwidth. If you use a lot of transfer, even between AZs (same price as between regions!), it will dwarf the hardware costs. Compare e.g. the Skylake EX51-SSD at $63 USD / month amortized for one year vs R3 High-Memory Double Extra Large at $300/month 1-year no-upfront. Both have 8 hyperthreads, AWS has ECC memory (good) and hypervisor overhead (bad), Hetzner has a newer processor and higher clock speeds.

Depending on your needs, dedicated hardware can run a lot cheaper. You can over-provision by 4x and you're still saving money. There are a lot of other benefits to AWS though, it's a huge ecosystem, and it's much more flexible.

<comment><USER16> I'm all for dedicated servers but please don't compare against non-ecc ram.

</comment></comment></comment><comment><USER17> I've been using this site for the past few weeks whilst migrating, is an invaluable resource given the ec2 pricing isn't particularly easy to work out in the docs.

</comment><comment><USER18> So funny, I just left that page to come here. Thank you, unsung hero/creator!

<comment><USER19> Fun fact-- it was started by one the founders of HipChat.

</comment></comment><comment><USER20> Some Postgres RDS reserved instances (1yr no upfront) are more expensive than on demand. Is this correct? m4.large, m3.large

</comment><comment><USER3> Would be awesome if it stored your columns, cost, and preference settings in local storage/cookie.

<comment><USER18> I think it does, I just opened the page up in a new tab and my previous search was still there.

</comment></comment><comment><USER21> Why doesn't amazon make it this easy to compare? Right now looking at the comments a lot of people in charge of server decisions are referencing a random internet person instead of their docs.

</comment><comment><USER22> It's worth noting that the performance of a given EC2 instance type can vary depending on what hardware you end up with, and that this is not consistent with the 'instance type'. One 'instance type' can be associated with multiple underlying CPUs that have different performance:

[http://blog.robertelder.org/a-weird-old-tip-about- ec2-instan...](http://blog.robertelder.org/a-weird-old-tip-about- ec2-instances/)

<comment><USER10> It can vary, though it should be predictable. M3s, for instance, can launch as either Ivy Bridge or Sandy Bridge, depending. Same with the older M1s. But unless listed, you should get the processor expected.

[https://aws.amazon.com/ec2/instance- types/](https://aws.amazon.com/ec2/instance-types/)

</comment></comment><comment><USER23> Been using this site for years.

</comment><comment><USER24> Really nice, is it a shiny app? They are ridiculously easy to set up.</comment>


29 Social Media Tools Recommended by the Pros - <AUTHOR> http://www.socialmediaexaminer.com/29-social-media-tools/

<comment><USER2> I am a big fan of Social Media Examiner. They know how to make people keep coming back with content that's relevant and from a lot of quality guest bloggers. I especially appreciate their aggregation articles where they either provide a summary of helpful online tools or best practices. Efficient use of my time.</comment>


The Origin of HyperCard in the Breakdown of the Bicycle for the Mind - <AUTHOR> https://medium.com/@modernserf/the-origin-of-hypercard-in-the-breakdown-of-the-bicycle-for-the-mind-8d0f3287e561 <comment><USER2> This was a nice read, but I felt cheated when I realised that it wasn't a real transcript from 1990 with funny pictures from 2020. I'm more interested in the history of what people were actually saying in 1990 than fiction about what they could have said.</comment>


PadKite, the first multitouch mobile mouse. - <AUTHOR> http://padkite.com/

<comment><AUTHOR> Hi guys,

I am Jose Vigil, CEO at RoamTouch and we are introducing PadKite, the first multitouch mouse running on top of a web browser. Currently the application is in beta and can be downloaded from <http://padkite.com/download>.

We are very interested in hearing your opinion guys. Ideally it would be amazing that you can subscribe to our beta program or else any comment on the below questions is also welcome.

You like the new mouse?. You like the gestures?. Would you like to run it on top of another application or OS?.

We are building the future, you can be part of it. I would really like to exchange ideas with you.

Kind regards,

\-- Jose Vigil RoamTouch® CEO +1 (415) 655-1720 @JoseVigil Skype. jose.vigil</comment>


Prey Project: Recovery stories (OSS really works) - <AUTHOR> http://preyproject.com/blog/cat/recoveries

<comment><USER2> The thing about Prey is that it only works based on the assumption that the thief has no knowledge of its presence or that the concept of 'software that phones home' is even possible. As Prey becomes more popular eventually thieves will catch on and will just then it will become less and less effective. Sad, really, because it's a great idea and superbly executed.</comment>


Welcome to my GUI gallery - <AUTHOR> http://toastytech.com/guis/index.html <comment><USER2> I've spent too much time on that website I think I've developed an appreciation of GUIs before the mid-nineties:

Buttons for everything, no hidden corners and such, no excessive skeuomorphism, respect of preferences in colors and fonts, low feature creep, no excessive social media integration and network services 'integration' (AOL, MSN).

What happened since? The open-source world hasn't offered anything of that caliber, so I guess there was a shift in thinking at some point.

<comment><USER3> On the open source side, feature creep and lack of design direction. On the commercial side, the internet + desire to squeeze in as much advertising/profits as possible.

It is definitely still possible to have a desktop that looks and behaves like this on Linux, if you use a minimalistic window manager and apps (dwm, xmonad, open box, the suckless apps, etc). I've been doing this for a while, it makes the computing experience much nicer IMO.

</comment></comment><comment><USER4> This is one of those amazing free resources that makes the Internet amazing. I wish Wikipedia's sections on each of these OS's had such comprehensive screenshots and writeup.

also: I had forgotten how many Windows 3.x shells there were.

[http://toastytech.com/guis/indexshells.html](http://toastytech.com/guis/indexshells.html)

<comment><USER5> Haha yes I remember running Calmira II on a Windows 3.1 486 SX25 with very little RAM (or was it a 386 monoscreen laptop?) in the desire to get the functionality of Windows 95. How little I knew!

Happy days.

</comment></comment><comment><USER6> QuantumLink == Flat Design

[http://toastytech.com/guis/c64gquantumlink.gif](http://toastytech.com/guis/c64gquantumlink.gif)

Look at that typesetting! (So cool.)

</comment><comment><USER7> The Xerox Alto had a start button back twenty years before Windows 95!

[http://toastytech.com/guis/altoboot1.gif](http://toastytech.com/guis/altoboot1.gif)

</comment><comment><USER8> Does anyone know why pretty much all of the PARC's successors choose to orient their monitors in "landscape" mode as opposed to "portrait" as was done on the PARC? Reading and working is so much easier in portrait mode. You get to see a lot more without having to scroll all the time.

</comment><comment><USER9> I recall spending silly amounts of time years ago trying to locate some of the more exotic stuff on that site (particularly GlobalView & NewWave). Nice to see that direct access to these important historical resources is much improved since then.

Looks like CommonPoint is still the one that got away; oddly it's probably the most interesting one ([http://root.cern.ch/TaligentDocs/TaligentOnline/DocumentRoot...](http://root.cern.ch/TaligentDocs/TaligentOnline/DocumentRoot/1.0/Docs/books/HI/HI_10.html#HEADING21)).

</comment><comment><USER10> Looking at BeOS screenshots make me relive the disappointment I felt as a Mac owner in the 90s when Apple decided not to use BeOS as its next generation OS. It was quite a bit ahead of its time.

<comment><USER11> NeXTSTEP was way ahead of its time too.

<comment><USER12> As was AmigaOS in its own way. Is it really accurate to call all these ahead of their time, or rather that what was in common use at the time was behind the times?

</comment></comment></comment><comment><USER13> I laughed obnoxiously loud in the office when I saw the IE evil page with the Bill Gates satin face. [http://toastytech.com/evil/index.html](http://toastytech.com/evil/index.html)

Thanks for publishing this little gem. It's fun to look at most of the old interfaces that I never saw (pre-Win'98).

</comment><comment><USER14> Thanks for the link. I can't remember the last time I liked a "new" website this much.

</comment><comment><USER15> I get the feeling they don't really like Windows 8.

<comment><USER16> Yeah but his criticism is objective and thoughtful. I have read about 5 different reviews he made and I can totally understand now why he dislikes Windows 8.

</comment></comment><comment><USER17> Those Xerox Alto screenshots are amazing; I cannot imagine how exciting it must have been developing the seeds of the GUI way back in the mid 70s. Something about that font makes it more pleasing than anything we have around today.

<comment><USER18> look, whitespace flat [http://toastytech.com/guis/altodraw.jpg](http://toastytech.com/guis/altodraw.jpg)

my favorite user interface is still STAR though [http://toastytech.com/guis/star.html](http://toastytech.com/guis/star.html). B&W never looked better, the icons, their borders. Some screenshots look like they came from Tufte [http://toastytech.com/guis/starapp3.jpg](http://toastytech.com/guis/starapp3.jpg)

They had generic operations that were supported by many parts of the OS, like a move command used for files or data inside an editor. Like Algol, successors peaked below, they mostly provided superficial similarities.

edit: [http://www.youtube.com/watch?v=Fap- mXY80ls](http://www.youtube.com/watch?v=Fap-mXY80ls) intran information system. Used to be hosted on google videos but the link in this page [http://www.digibarn.com/collections/movies/digibarn- tv/gui-m...](http://www.digibarn.com/collections/movies/digibarn-tv/gui- movies/intran/index.html) is dead, so here's a new one.

</comment></comment><comment><USER19> Oh, wow, this Amiga OS 1.x takes me back:

[http://toastytech.com/guis/amiga1default.png](http://toastytech.com/guis/amiga1default.png)

I rember, even then, thinking -- well this might be ugly, but they sure got the contrast right -- and everything is really visible/obvious. But I mean seriously: orange on blue -- that takes some serious "usability trumps looks"-focus...

[edit: And also, even back then, I thought; wow, these black/orange scrollbars are really confusing - what signifies where I am, and how much I can "scroll to"...]

</comment><comment><USER20> Wow, I had a flashback to 1998!

Seriously, though, great collection of GUIs. It's cool to see some aspects of those window managers that are still in our modern operating systems.

</comment><comment><USER21> Reminds me of the Interface Hall of Shame [1].

[1] [http://interfacehallofshame.eu/www.iarchitect.com/lotus.htm](http://interfacehallofshame.eu/www.iarchitect.com/lotus.htm)

</comment><comment><USER22> Man. I really miss IRIX.

</comment><comment><USER23> Wow.. I was trying to remember the name of the software that came with a PC I used to have in 1991... It's GeoWorks! What a nive flashback! :-)

</comment><comment><USER24> Wow, I used this website for my school-assignment on GUIs a couple of years ago. It's funny to see it again.

</comment><comment><USER25> Good memories!

My first experience with a graphical OS was with GEM on an Amstrad 1640. My Amstrad 1512 only had DOS :/

</comment><comment><USER26> Was the Atari ST GUI a derivative of AmigaOS? I don't see any images for it, but it looks similar.

<comment><USER27> No, they licensed the existing GEM graphical environment. You could also get GEM for PC;I saw a DOS program shipped with an embedded GEM runtime.

</comment></comment><comment><USER28> Sad to see no mention of clippy :(.

<comment><USER29> They don't mention Clippy by name, but he gets a reference in the MS Bob section.

[http://toastytech.com/guis/bob4.html](http://toastytech.com/guis/bob4.html)

</comment></comment><comment><USER30> This is great, thanks, enjoyed the timeline.

</comment><comment><USER31> hahaaaahaa

[http://www.youtube.com/watch?v=zLcPbsfF3qI](http://www.youtube.com/watch?v=zLcPbsfF3qI)

very cute.</comment>


Terminals Are Sexy - <AUTHOR> https://terminalsare.sexy/ <comment> black-tea A pet peeve of mine is confusing the terms "terminal", "shell", "CLI" etc. They are not interchangeable and the distinction is important to understand.

\- shell: the "top level" user interface for the operating system. Can be text-based or graphical, command-line based or point and click etc. It's how you do things once you've loaded an OS. Examples: sh, bash, zsh, fish, eshell (emacs).

\- terminal: A hardware device for input/output of text. Originally teletype machines (ttys) but later used CRT monitors instead of a printer. Example: DEC VT100,

\- terminal emulator: a piece of software that emulates a terminal. Examples: xterm, GNOME Terminal

\- CLI: command-line interface. A user interface based on typing commands one line at a time. Does _not_ include text-based UIs like htop etc. Examples: git, curl.

\- TUI: text-based UI. Essentially a GUI but works on more advanced terminals (ie. not actual ttys). Examples: htop, emacs, vim.

</comment><comment><USER2> This is a lot to take in. Not sure if you're the author, OP, but in case the author is reading: Where would you suggest someone starts? (Note: Don't answer here! Use your answer to shape the organization of information on the site!)

For example, I use ZSH. Should I switch to fish? The list suggests I'd be sacrificing power and the ability to write scripts but gaining, uh, intelligence and user-friendliness? Is that true?

Then there's a ton of stuff about customizing ZSH. I know that oh-my-zsh is the most popular but I did not find it especially performant so I never really looked in to using modular components of it. Now I know there are 50 other guides I could read? Maybe I want a plugin manager. antigen is a plugin manager, maybe it'll be more performant than oh-my-zsh? But what about antibody, which is "faster" and "simpler"? But zgen is "lightweight". Are weight and speed connected? What about weight and simplicity? Maybe I should switch to pure, which is "pretty, minimal, and fast".

Then I moved on to my terminal. Currently I use iTerm 2, which "does amazing things". But maybe I should switch to Terminator, which is the "future of terminals". Or MacTerm, which is "powerful". Or Alacritty, which is GPU accelerated? (Isn't iTerm 2? I don't know?)

I went to macOS package managers. I use homebrew because it's what every webpage for everything I want to install says. Should I get fink instead? Macport, I think is old, but it "simplifies the installation of software". I thought homebrew was pretty simple, but I guess it could be simpler?

Then for text editors, I've never been good at emacs-fu, so I often use nano. Maybe I should replace with micro, which is "modern and intuitive"? Or jed, which is "freely available". I don't think I paid for nano, maybe I did.

How does a curated list of Terminal frameworks, plugins, and resources differ from an uncurated one? Can the author give some example of a framework, plugin, or resource that was considered but not included because of the curation? I suspect the things that I know aren't included simply weren't considered to begin with. Maybe I'm wrong.

Most of this criticism applies to every awesome list that gets linked, of course.

<comment><USER3> There are only so many adjectives in circulation.

More seriously: it's hard to put together a list like this because so many things are subjective. Maybe you prefer fish because it gets rid of some of the dumb things required for a POSIX-compatible shell, but I prefer zsh because it has every feature and the kitchen sink. I don't know, and neither does the person putting together the list.

<comment><USER2> I don't know how someone reading the list would understand that "fish ... gets rid of some of the dumb things [what things?] required for a POSIX-compatible [?] shell, but [others] prefer zsh because it has every feature [what features?] and the kitchen sink."

For example, I didn't realize "smart" in the list's vernacular means "deprecates dumb legacy behaviour". Your post is the first time that became obvious to me. Now to figure out what that behaviour is and why I should care and if it impacts performance and and and...

My post wasn't asking the curator to make decisions for me, it was asking them to help me make decisions.

</comment></comment></comment><comment><USER4> Human sexuality may be famously plastic, but this could be going a bit far.

<comment><USER5> You'd be surprised

<comment><USER4> Perhaps I should consider myself fortunate to have maintained a decent foothold in the non-tech world.

</comment></comment></comment><comment><USER6> [http://linuxbrew.sh/](http://linuxbrew.sh/) but… why?

We have distributions that are providing perfectly packaged things like Debian/Arch/RedHat.

I find already Homebrew hacky on macOS so why porting it on Linux distributions :D Is there anyone on HN using it, I'd be curious to know what are the advantages.

<comment><USER7> It's for people who don't have root access to a remote terminal (super computer users, generally) but want more up to date packages.

<comment><USER8> It's also useful for people who do have root access to a terminal, remote or otherwise, but want more up-to-date packages.

Some packages (my favorite example is youtube-dl) are useless if they're not up-to-date. And sometimes the new version has a feature that's really important to you.

I'm using it for ripgrep and node, for instance. ripgrep isn't available in apt, and the node version in apt is incredibly outdated.

There's a reason most software these days tells you to curl an installer and pipe it to bash, and that's because distro package managers never have the latest version.

Here's ripgrep's apt installation instructions:

        curl -LO https://github.com/BurntSushi/ripgrep/releases/download/0.10.0/ripgrep_0.10.0_amd64.deb
        sudo dpkg -i ripgrep_0.10.0_amd64.deb

There's no way I'm memorizing that. I'll have to google 'ripgrep' copy/paste it from the readme each time.

Linuxbrew is just so much easier:

        brew install ripgrep

<comment><USER9> _and that 's because distro package managers never have the latest version._

I am using Arch - seems pretty up to date:

      [gerdesj@jglaptop ~]$ aurman -Ss ripgrep
      community/ripgrep 0.10.0-2
          A search tool that combines the usability of ag with the raw speed of grep

Thanks for the heads up wrt search tools.

<comment><USER8> Oh, yeah, I don't personally use Arch, but from what I hear, it isn't an Arch problem at all. I was mostly talking about apt (Debian, Ubuntu, Mint, etc) and yum (Fedora, CentOS, etc).

</comment></comment></comment></comment></comment><comment><USER10> "neovim - Literally the future of vim."

I'd rather say Vim 8.2 is the future of Vim.

<comment><USER11> Yeah, I find the list needlessly opinionated and not sure how it adds to e.g. [https://www.google.com/search?q=awesome+cli](https://www.google.com/search?q=awesome+cli)

<comment><USER12> that's not editorializing, that is neovim's tagline: [https://neovim.io/](https://neovim.io/)

</comment></comment></comment><comment><USER13> I _hate_ non-discoverable UI's. The first thing I do with any software, is click through all possible menu's, windows, ribbons, whatever. After some time, I usually get quite a grasp on what the software is capable of. The two notable exceptions are textbased UI's (terminals, dsls, ...) and softwar requiring domain specific knowledge (e.g. geomodeling software, specific 3D modeling software, ...).

I never understood the appeal for terminals. Often (Microsoft's Powershell is a notable exception) the syntax is full of incomprehensible abbreviations, the syntax is wildly inconsistent, the syntax contains hard to remember acronyms...

No, for me, terminals and most textbased interfaces will never be as usable as GUIs.

<comment> black-tea A command line interface lets you communicate to the computer using language. Learning a language is something you can practise and get better at until you find that you're able to communicate very complicated tasks that the original authors of the programs had never even imagined.

Graphical user interfaces are a caveman interface. You go to the market, see what's on offer, point to it and grunt. That's fine as long as you see what you want. But you'll never do anything that you can't already see.

It's not easy, though. Nobody pretends that it is. But learning to read and write wasn't easy either and you managed that. What if our education systems didn't enforce that? How would you ever know the power you're missing out on?

<comment><USER13> But most commandline languages are inconsistent, have inconsistent abbreviations, have inconsistent command parameter naming/defaults, contain acronyms of incomprehensible words, have plain weird names, contain inconsistent or outright incorrect documentation...

A language to do stuff is actually a great thiing, especially if it can produce readable and reproducable objects (programs). However, I get really scared looking to most commandline scripts. It's an incomprehensible mess people only can start to grok after years of experience with the particualr commandline tool.

<comment><USER14> > But most commandline languages are inconsistent, have inconsistent > abbreviations, have inconsistent command parameter naming/defaults, contain > acronyms of incomprehensible words, have plain weird names, contain > inconsistent or outright incorrect documentation...

And how is this different for GUIs? Location / icons / description / ... depends entirely on the application. Some will have hotkey handles, some won't. Same app on a different system will look differently. (Possibly with different layout) Creating a discoverable GUI takes as much will and attention as a good set of CLI options.

<comment><USER13> With a language, it is far more important. In a gui I can just click around and see. With tuis, I need to enter a command and hope it is the right syntax.

<comment><USER15> IDK about you, but I find it writing a command and seeing the result is far, far faster than clicking around.

I would spend far less time at my computer (would only use it for work) if it only had a CLI, but I would never, never use a GUI (beyond text editors, of course) for most of the grunt work, the CLI is simply faster and, and this is the most important issue, almost everything you do with it can be automated.

I couldn't even begin to imagine having to navigate the endless dialogues in IDEs to configure every little thing I would do in the command line, I'd give up programming altogether.

</comment></comment></comment></comment></comment></comment><comment><USER16> Every time I encounter a tmux recommendation it has me pondering whether it's worth learning minicom.

When I first read the author's rationale for tmux it rubbed me the wrong way, because the main feature they dismiss as cruft- the ability to use it as a terminal emulator for a serial port - is something I still find myself using from time to time.

Is tmux really so much nicer than screen it's worth learning minicom?

<comment><USER17> You could also learn screen instead of minicom. screen supports communication over serial.

<comment><USER16> Perhaps I was unclear: screen is what I use now (and have used for quite a long time) and I haven't moved away from it because I actually use and value the support of serial consoles.

</comment></comment></comment><comment><USER18> I love this. Just reading the list make me happy.

I would contribute:

      xmlstarlet   Manipulate xml documents         http://xmlstar.sourceforge.net/
      jq           Manipulate json documents        https://stedolan.github.io/jq/
      screen       Terminal multiplexer (like tmux) https://www.gnu.org/software/screen/
      imagemagick  Manipulate images                https://www.imagemagick.org/
      ffmpeg       Manipulate video                 https://www.ffmpeg.org/
      gifski       Create high-quality gifs         https://gif.ski/

Oh I see I can make a pull request!

</comment><comment><USER19> I guess I'm the last of the tcsh troglodytes. C-shell derivatives don't even get mentioned in these things to say "don't use it" anymore.

<comment><USER20> tcsh was the thing to use back in the days of multiuser systems and ytalk. Knowing when your friends were logged, and command correction were killer.

I'm still happy that macs shipped with tcsh as default for a while.

But I switched to bash when I stopped carrying enough to switch the default shell.

Maybe I'll switch to fish. I do love its snarky tagline.

</comment></comment><comment><USER8> It mentions TotalTerminal, which hasn't been properly supported since OS X 10.10, and outright doesn't work on versions of macOS newer than 10.12.

I really miss TotalTerminal. I've been forced to switch to iTerm, the only other way I can find to get a hotkey terminal, but it's an extremely noticeable difference to switch from the overall fastest terminal to the overall slowest:

[https://danluu.com/term-latency/](https://danluu.com/term-latency/)

<comment><USER21> Interesting read, never considered iTerm to be slow and I'm so grateful it exists but maybe I'm not as hardcore a terminal user as I thought I was :).

<comment><USER22> I'm not sure this is still the case or has been for some time. The maintainer of iTerm2 commented on it here [https://gitlab.com/gnachman/iterm2/issues/5922](https://gitlab.com/gnachman/iterm2/issues/5922) and here [https://news.ycombinator.com/item?id=14800195](https://news.ycombinator.com/item?id=14800195).

Also recent versions include a metal renderer[3] (not sure if it's enabled by default) which might be even faster, I have been running it for some time but have not noticed much difference.

Another reason why it might be hard to notice is also because when one is using ssh you anyways have the network latency so might be one is simply trained not to react to latency in terminals as much.

[3] [https://gitlab.com/gnachman/iterm2/wikis/Metal- Renderer](https://gitlab.com/gnachman/iterm2/wikis/Metal-Renderer)

<comment><USER8> For me, the most noticeable delay is in opening the hotkey window. I have animation disabled, and there's still a few hundred milliseconds between when I press the hotkey, and when iTerm appears.

</comment></comment></comment></comment><comment><USER23> Command-line interface can indeed be very convenient for many tasks, nevertheless a properly designed GUI can always be made a way better than a TUI so I can see no reason to stick with terminal-based editors given a choice. And I wish people would stop dichotomizing command-line and GUI and start integrating their capabilities to build something synergic. I.e. I'd love to have a terminal featuring powerful inteligent pop-up autocompletion and correction, visual shell command construction assistance, file choice dialogue (so I could choose a file the GUI way and get its name pasted into the command) etc.

</comment><comment><USER24> I had a product idea (maybe it is even a business idea) a while back to do shell autocompletion based on an autocompletion engine which was trained across multiple users. Kind of like a cloud-connected fzf.

The problem this solves is that the ecosystem of unix tools is so massive it's impossible to wrap your head around it. Most of us just pick our tools and end up at a local optimum. But with that sort of thing seeing the way other people have solved a problem is very useful.

I still think this would be so useful but the privacy situation is very sketchy. If I could come up with a solution to that I might try to build it.

</comment><comment><USER25> came for some actual, physical (preferably sexy) terminals.

was disappoint.

<comment><USER26> I was ready for an article on the latest in airport and train station architecture. Was also disappoint.

</comment></comment><comment><USER27> "lexis" is the same as

        # unix
        wc -w

        # powershell
        Measure-Object -Word

<comment><USER28> Yea but it's written in JavaScript.

<comment><USER29> And has _51_ dependencies.

Some of this JavaScript stuff is amazingly ridiculous.

<comment><USER27> npm itself has more dependencies.

[https://github.com/npm/cli/blob/latest/package.json](https://github.com/npm/cli/blob/latest/package.json)

</comment></comment></comment></comment><comment><USER30> eshell is a terminal emulator inside Emacs that is written in Elisp. It also have support for ssh/ftp/sftp and more via tramp, highly recommend. You can multiplex it and have powerline without much effort

<comment><USER31> Yes but can you run Emacs inside it?

<comment><USER30> Not inside eshell but inside term and ansi-term that are more complete terminal emulators inside Emacs. Though they lack tramp-support

</comment></comment></comment><comment><USER32> Still no good terminal calendar program that can sync with o365.

</comment><comment><USER27> spacemacs and spacevim = slow

Can be slower than an IDE</comment>


More High School Grads Decide College Isn't Worth It - <AUTHOR> http://fivethirtyeight.com/features/more-high-school-grads-decide-college-isnt-worth-it/ <comment><USER2> The cost of university is "(tuition) + (missed income while in university) - (amount university helps your career prospects vs. 4 extra years of work experience)".

Tuition is skyrocketing, which is the biggest incentive to skip university.

Also, the information is out there. You can learn with books and from the Internet, which wasn't available as much 20 years ago.

It might be a rational choice to skip University and instead use the tuition money to bootstrap a business. However, the TOP universities are probably still worth it, because people will hire and invest in you based solely on where you went to school. Lazy people use the university admissions process as a way to avoid having to think about evaluating you themselves.

</comment><comment><USER3> Could spell opportunities for more QUALITY coding bootcamps.</comment>


Build an Android app from a to Z without opening AndroidStudio even once - <AUTHOR> https://stackoverflow.com/a/49959609/1422096 <comment><USER2> That's cool, too much reliance on an IDE magic sometimes backfires. I will still use AS for 99% of the time, but will copy this instructions as a dev.backup if you will.

<comment><AUTHOR> How do people generally do "2\. Can you make a build in one step?" ([https://www.joelonsoftware.com/2000/08/09/the-joel- test-12-s...](https://www.joelonsoftware.com/2000/08/09/the-joel- test-12-steps-to-better-code/)) with Android Studio? Is there something I missed in AS to automate builds? (I never enjoyed gradle, etc.)

<comment><USER3> Android Studio delegates all the actual building to Gradle, so you can always just run `gradle assemble` from the terminal to do the same thing.

<comment><AUTHOR> The major thing I don't like with this current system is that each time you want to modify an option, the docs always say "Go in Menu XYZ, Submenu ABC, etc. and uncheck this checkbox".

=> At the end, you always have to open the IDE again and again...

Everything is hidden by this IDE, and you end up never knowing where (in which config files) the changes are done.</comment></comment></comment></comment>


ThoughtRain – write whatever is on your mind, it will disappear after 10 posts - <AUTHOR> https://thought-ra.in/ <comment><USER2> Have you considered adding comments to the thoughts? That way the list of thoughts will not turn in to replies.

<comment><AUTHOR> Yes, that's a good point. Our idea with this is that you should be able to post something that disappears fairly quickly. We created topics if users want to posts something about a specific subject, but it's very much a work in progress and we wanted to post it to see how people reacted to it.</comment></comment>


The First Cosmonaut - April 12, 1961 - <AUTHOR> https://www.zapread.com/Post/Detail/6281/yuri-gagarin-cosmonaut-1/ <comment><AUTHOR> > Today we celebrate Yuri's Night on the day that Yuri Gagarin orbited Earth > as the first human back on April 12, 1961.</comment>


Ask HN: What are the sites you keep coming back to? - <AUTHOR> <comment><USER2> Hacker News, Techmeme, The Register</comment>


TogetherJS as a Postmodern Programming Tool - <AUTHOR> http://www.ianbicking.org/blog/2013/10/togetherjs-a-postmodern-tool.html <comment><USER2> I've heard of the term postmodern being used in literature and media, but I am not sure how it's related to technology. Can someone explain how postmodern tools are different from just tools in general? And how postmodern programming is different from programming in general?

<comment><USER3> I can't really speak to the programming part of it (but it almost certainly has a lot to do with Perl), but this article has a pretty, um, interesting conception of what makes something postmodern.

The basic idea is that modernism is the idea that there exists a state that is somehow better, more advanced, more organized, for a given system, and the goal of human endeavor is to move towards that. Postmodernism is basically a skepticism towards that viewpoint, trying to pull the teleological aspects out of it, saying that there's no intrinsic metric by which a given system can be measured to determine its relative state of progress towards more advanced forms.

The idea the article is getting at is that there's an analogous approach to programming which says that there's no intrinsic measurement by which a program can be measured which will tell us its quality.

It's kind of flawed as an analogy really, for a variety of fairly subtle reasons. I should write a "Pomo for Programmers" and post it here some time.

<comment><USER4> This is the clearest concise explanation I've seen on Modernism and Postmodernism, thanks for that. Can you explain Post-postmodernism?

</comment></comment></comment><comment><USER5> I misread postmortem and thought it was already dead

</comment><comment><USER6> Does anyone know how to make TogetherJS work on IE (just the chat/presence/co- browsing stuff) ???

<comment><USER7> This was mentioned in the article, but if you're looking for a TogetherJS-like tool that takes a different approach to collaboration you should look at what we've put together at Firefly: [http://usefirefly.com](http://usefirefly.com).

It works all the way back to IE 8 :)</comment></comment>


Ask HN: Would you buy Pricemoji, my side project? Why? Why not? - <AUTHOR> https://flippa.com/9019327-pricemoji-com <comment><USER2> Hi Wilhem!

I'm no VC, but I have made a few investments in companies, independently. I'll give you my immediate impressions.

It's a very cute project! Nice animations.

How does it work? My understanding is that you have a pricing table somewhere you say a banana is worth $1, a taco is worth $10, etc. When you press the button, it converts a dollar amount into some number of those goods.

Comparing costs to real-world things is a commonly-used strategy, e.g. "For less than the cost of a coffee a day, you could ____!", so that's interesting.

It seems like overkill for an API; seems like you could just build it into your marketing copy (and not rely on just emoji, which render inconsistently).

'My assumption is that conversion will definitely be higher by using visual representation of price tags. Especially against "spatial learners".'

Sure, but that's easy for anybody to test, in-house.

It doesn't seem like enough value-add to use as a stand-alone business; if somebody else were to want to use it, they'd have to not just pay the service, but also the cost of maintaining a sales relationship, contract, etc.

<comment><AUTHOR> Hey, hi! Thanks a tons for your feedbacks. Makes a lot of sense... Yes, your understanding is correct, that's exactly how it works :) I agree with your last comment; I do believe that it needs to be taken one step further to reach the MSP stage. If I had the time, I think I would add crypto to the sauce.

I expect bidders to see the same kind of opportunity. Wait & See!

</comment></comment><comment><AUTHOR> Hi guys,

I sell it to focus on my startup. Pricemoji is an API for pricing products in emoji. I had this idea one night to build an emoji-driven transaction marketing platform, and [https://pricemoji.com](https://pricemoji.com) is the beginning of just that.

It's been feature on Product Hunt last November [https://www.producthunt.com/posts/pricemoji](https://www.producthunt.com/posts/pricemoji) and even commented by a Financial Times correspondent at some point ([https://twitter.com/hannahkuchler/status/803348128174899200](https://twitter.com/hannahkuchler/status/803348128174899200))

Would you buy it? How much would you price it? Any advice on how to properly pass the torch to someone willing to make it successful?

Thanks all, Cheers</comment>


My visit to the Apple Store - <AUTHOR> http://antoniocangiano.com/2008/11/28/my-visit-to-the-apple-store/ <comment><USER2> How Dell visited me

This was two years ago. Unfortunately since then I did not have any troubles with my Notebook, so I had no opportunity to call in the Dell support. Actually back then I did not have a problem either, but I was not sure about that. My notebook's hard drive would emit a faint clicking sound occasionally - only noticeable because being fanless, this was the only noise the notebook would create at all.

Apparently it is normal, but when I called Dell about it, they insisted on exchanging the drive just in case. Because I was contracting at the time, they offered to come around to the office at the company where I worked. When the Dell technician arrived the next day, I went into an empty room with him and he exchanged the hard drive within minutes. Then he left.

My notebook has worked without any problems ever since.

I didn't tell my girl-friend about it, because she doesn't care, but whenever I see a chance to recommend a Dell product, I wholeheartedly do so.

Hm, this would have made a great blog post, but now I wasted the story on HN already. Ah well...

<comment><USER3> +1. My Dell fan was full of dust, so the notebook started overheating. I asked Dell (over their online chat) if it can be replaced and two days later a technician knocked on my door and took care of it. Total time wasted: 10 minutes.

PS I didn't even have to pay for the warranty, as you can usually get a 3-year at-home warranty from Dell for free.

</comment></comment><comment><USER4> Good for him. I own three Macs (iBook, MacBook Pro, MacBook Air) and two of them broke a few times. I live in Russia and Apple's service is _terrible_ here.

I have waited more than 50 days for a replacement part (battery) for my Air to arrive, and -- since it didn't arrive -- thanks to the local law, got a replacement Air. It broke two months later (sound card) -- it's been in service for three weeks now.

My MacBook Pro's hard drive failed -- it took two weeks to replace it, and I paid for it even though I had a warranty (they said it was my fault that the HDD failed). The next week after warranty expired the battery broke, and I had to buy a new one. Even though they had a recall program for batteries that broke with the same symptoms, my battery was not eligible for recall because of a different serial number.

My girlfriend waited 5 (!) months for a replacement battery for her MacBook to arrive. (Local laws that require no more than 45 days for repair didn't work in that case, because she bought her MacBook in Scotland.)

Ask me why I still love Apple products. I don't know.

Ask me why I have three Macs. It's because one of them is always being repaired.

</comment><comment><USER5> What is also important about the recently numerous gaga stories about how great apple treated them at their service centers is - "Why is that there are so many complaints?", first place.

I own a Mac and I am definitely pleased by their support. My hard disk crashed, top case chipped away due to a bad design in this version, Apple happily replaced this all in a day, in India. And as I write this my RAM is beeping indicating some hardware problem yet again and it has been just around a year. Now am I happy, definitely "No". You can't be making 10 trips to the apple store and still feel good just about how they treat you.

For the same money I could have bought a Dell or a HP, threw it away when i was not happy and bought another one. I would have still saved some money.

</comment><comment><USER3> I don't mean to be rude, but every day thousands of people around the world visit their local Genius bar. And as much as you want to think that your Genius was just awfully nice, they ARE following strict guidelines about what they can and can't do. Not exactly news.

<comment><USER6> I think the point here is how they stack up with the competition. I had a unique experience a while back as my roommate had to fix his Dell at the same time I had to fix my Apple.

He spent... well, almost a full work day (!) on the phone, arguing with one rep or another, convincing them that something had broken, before they sent a tech out (to their credit, it was fixed then).

I spent... 10 minutes. I called, told them about the problems I was having, asked for a repair-via-mail, was promptly granted it, gave them my address, and was on my way. Yeah, it took 4 days longer than his method, but I saved myself some pretty major aggravation.

<comment><USER7> "May I please speak to a supervisor" - magic words!

From my experience you can also ask to speak with the Gold tech support guys who are local to your country (that's the case in Australia anyway).

This is regarding Dell support, btw.

</comment></comment></comment><comment><USER8> You're happy that you got a new battery for a laptop you can't use? I don't get it.

I have gotten good service at Apple stores, and (as in life) it pays to be nice to the person you're dealing with. Overall, however, I find them fairly confusing; hard to find stuff, don't know where to pay, etc.

</comment><comment><USER9> The store near where I live in New Jersey extended its hours to help me when my computer melted. I had a pretty severe problem and I was panicking - didn't have time to make an appointment - and they stayed open an extra half hour to make sure everything went okay. It was incredibly kind of them.

An undercover retail article said that Apple Store employees are given an incredible amount of freedom in the store: they're allowed to roam around and talk to customers however they see fit. The idea is that if you hire a Mac fan, train him only minimally, and free him from any sort of store restraint, then he'll be much more responsive to customers. It's a really smart idea and in my experience, it works.

</comment><comment><USER10> Two things make me think Apple are not giving such great service -

1) A simple firmware update rendered your screen unusuable 2) They only replaced your battery because they had sold you a faulty battery in the first place.

They are not being nice they are fixing mistakes that should never have been made in the first place.

<comment><USER11> Those are quality assurance issues, not customer service. Both factor into your satisfaction with a product, but they are not the same thing. Even though the ideal is both, it's entirely possible to have great QA but shitty CS, or shitty QA and great CS, and still have happy and loyal customers. It's impossible (or at least extremely impractical) to have perfection in either.

This story is about a positive customer service experience, where 1) the service person lacked a prescribed solution to the original (firmware/screen) problem, but the customer left satisfied and 2) the service person was attentive enough to solve a second problem (out of warranty, at company expense) that the customer hadn't even expressed as a complaint.

If you can't see why that's uncommonly good service, you're not paying attention.

Of course it's not that way all the time, at every location, for every customer, but it indicates Apple's atypical strategy of having their own retail stores with that kind of one-on-one support is one that can have atypically big pay off in customer satisfaction.

For comparison, Best Buy's GeekSquad would have charged the customer a minimum of $50 to even look at the problem, and on the off chance they even knew about the recalled battery, would not have been able to replace the it on the spot for free. Local shops are mostly the same story. In short, the author could not have had had the same loyalty-generating positive experience with any other brand of computer.

<comment><USER10> As a counterpoint though I have found Apple to be less than helpful when it comes to hardware issues. My Macbook Pro developed a hardware fault after I upgraded my Hard Drive.

The design of the MBP is surely aimed at discouraging you from upgrading the HD, you practically have to dismantle most of the laptop. I took it to an Apple Store in London who would not help as it was out of warranty. The store employee advised me I would be better buying a new one than repairing the laptop. So I went to an Apple Authorised Repair Shop where they quoted £120 just to look at the laptop, then parts and labour (again this would likely be £600+). I then went to an Unauthorized Apple repair shop where they took 6 weeks to repair the issues and charged £250 to replace the superdrive. The only faults found were a broken clip jamming the superdrive and a reinstall of Leopard. It is not easy to get Apple parts to repair it yourself.

So a design flaw cost me 2 months without my Laptop, the Apple Store were not interested without serious £££'s, and the Apple dealer was the same.

<comment><USER11> What design flaw? You said yourself that you dismantled it. That's a pretty solid indicator that you yourself broke it. Why on earth would you expect Apple to repair that for free? Would you expect anybody else to? Would you work for free?

Your experience with other shops is irrelevant when regarding Apple's customer service, as those shops _aren't Apple_. An authorized shop can charge whatever it wants for out-of-warranty repairs, and an unauthorized one, well, you're really grasping at straws if you think Apple has anything to do with that.

I don't see how anything you've written here is a counterpoint. It's just an anecdote about how much money you chose to spend to have someone fix your mistake.

<comment><USER10> I consider not having a user replaceable hard drive a design flaw. Most laptops have a hard drive bay so you can easily swap your hard drive, even the macbook has this now. What do you do when your hard drive fails? (which it will eventually) Apples answer is to pay them to fit a new hard drive or buy a new laptop.

My point with the Apple Store is they were unhelpful and unprepared to take the time to diagnose the problem. Their attitude is if your laptop that is more than a 2-3 years old you should buy a new one.

I mentioned the other Apple Dealers to point out that spare parts for Apple Macs are normally ridiculously overpriced and hard to come by. PC Laptop repair shops are happy to repair other laptops for a fraction of the price but will not touch apple products (why?).

<comment><USER11> That supposed "design flaw" did not render your computer inoperable. You did. By your own admission it was operating normally until you "upgraded" it, breaking it in the process. Don't complain about anybody else until you can take responsibility for your own mistakes.

I don't see how the store was unhelpful, given what you've already described. What nerve they have--when you walk in with a broken out-of-warranty laptop-- to suggest replacing it with a new, functioning, under-warranty one. How rude and unhelpful it is to suggest a solution with a 100% chance of enabling you to have a functioning machine again! Instead, you wanted free out-of-warranty repair, which is not a service they offer. Their "attitude" has nothing to do with it: they can't give you what you want, and you didn't want what they offered.

And again with the non-Apple shops, you're being completely obtuse. Apple does not own those shops or set their rates. Being "authorized" only means that they can do repairs under warranty and receive service manuals and parts directly from Apple. Every other laptop vendor has a similar program. If a shop ripped you off, you can take it up with them. The OEM has nothing to do with it.

Finally, as I said before, you're not speaking at all to the original subject. Instead, you're bitching about how much money you spent fixing your mistake.

</comment></comment></comment></comment></comment></comment><comment><USER12> "My laptop stopped displaying anything on its LCD."

I had a Gateway (acquired by MPC), same thing happened three months ago. I sent it in after an on-site repairman couldn't fix it.

Two months later, MPC doesn't answer their phone and doesn't reply to emails. In fact, MPC filed bankruptcy earlier this month, so it looks like my laptop is in limbo.

</comment><comment><USER13> Hey, I've been casually following your blog but didn't know you lived here in Toronto. Good stuff!</comment>