The logging framework isn't a bottleneck, and other lies your laptop tells you - <AUTHOR> https://tech.davis-hansson.com/p/tower/ <comment><USER3> Many years I worked with a team that couldn't figure out why the code ran so fast on Bob's laptop but was slow as shit on production server hardware. The production hardware was state of the art at the time and they were kind of in a pinch deadline-wise. They ended up literally deploying Bob's laptop to the ISP data center.

<comment><USER4> >They ended up literally deploying Bob's laptop to the ISP data center.

I guess in a pinch but that is a solution that I just don't think I would like.... I would feel like we're going to figure this out, not surrender to the absurd...

<comment><USER5> Sometimes that requires expertise in a very low-level topics. For example I've read a similar story, but developer digged the truth. Production was running on vmware cluster with live migration or something like that. Servers used slightly different CPUs (frequency differed a bit), so VMware emulated some important instruction (something related to get current timestamp). MSSQL used that instruction a lot in one specific scenario, so it was running much slower on virtualized production server.

They were able to figure it out and rewrote one stored procedure so it ran fast again. But I'm sure that I, for example, don't possess the necessary expertise to figure this out. I wouldn't be surprised that in many small-to- medium companies there are no experts of that level either.

<comment><USER6> Time Stamp Counter (TSC) has been trapped to make sure it returns the same value across all cores. Intel fixed that part, though.

<comment><USER7> In a live migration scenario the TSC in the source and destination machines will be necessarily different so that emulation is required to make it not warp.

That said, due to previous TSC instability all operating systems deal with a TSC warp pretty well. Whether applications deal well with it is probably the reason why emulation is the default, but it could be that this can be disabled.

(Everything AFAIRC)

</comment></comment></comment></comment></comment><comment><USER8> The article talks about the difference between laptop vs server, but no other comments here so far have really touched on that topic. I think this post isn't about how good or bad cloud/VPS servers are, but really about difference between running on laptop vs servers.

It seems starting around maybe 2012~13, devs in the tech industry started moving from Windows laptops to Macbooks in large scale, and this was when it became much more common to run your server stack locally on the laptop. This was really strange to me at first; since prior to this, I was very used to having "dev servers". I came from LAMP world where we'd write code on Windows, upload code to a dev server, run the app on it and test. This seems very amateur in retrospect, but I also worked in a relatively large unicorn at the time (from 2008 to 2013) and I don't think we were even the only company doing that -- from what I knew, this was pretty much standard practice, especially if you run LAMP stack. Which is to say, it was way more common back in the days to dev on a dev server than on their own laptop. (Maybe that's a point against Windows at the time; about how difficult it was to have a reasonable local dev environment on Windows.)

So when I joined a startup later, and found out how everyone on the team had Macbooks (with no option of going Windows), and everyone ran the entire server app on their laptops (and this was the nodejs world, no longer LAMP), I was almost in disbelief -- are we not to worry about any difference between developing, testing and running this server code on a Mac laptop, vs when deploying it and have it actually run on a Linux server later? After a short while it seemed like it was not really a concern; it seems perhaps either macOS linux is close enough to servers, or node is compatible/high-level enough between mac and linux.

Reading this article is kind of a wake-up call -- no, it's really not exactly the same.

<comment><USER9> Thing is that the dev servers of the past was never equal in setup of the prod servers, difference in software versions, failovers, proxies, crons, backups etc, that was just a lie that was told.

In my opinion is is much better to develop a cross platform/environment product that can work everywhere and the key to that is to avoid assumptions about where the product is executing. In the long run, this makes your software much more flexible.

<comment><USER10> There is a significant difference between "works everywhere" and "works everywhere efficiently". For the former you can get away with just writing portable code. For the latter you basically have to benchmark everywhere. Performance is a hell of a leaky abstraction.

<comment><USER9> Yes, that is why it is futile to try to have an exact copy of the production server because the smallest difference will ruin your performance profiling, to be absolutely sure you have to do the profiling on the production server itself.

Usually every developer has their own login user on the development machine, but that is enough to skew performance profiling, because usernames populates environment variables & that will change memory layout of any program that the shell executes.

<comment><USER10> If memory layout changes due to environment variables significantly changes performance characteristics then it looks like an opportunity to optimize this aspect of loading a binary. I assume cache alignment is in play here.

<comment><USER9> Good video on the topic

[https://youtu.be/r-TLSBdHe1A](https://youtu.be/r-TLSBdHe1A)

<comment><USER10> Thank you, this is a fantastic talk.

It's great that they can average out the random effect of layout, but what I meant by optimization opportunity is to deliberately aim for the "good" memory layouts. Something like fixing the alignment of the stack on program entry point or marking specific functions as "stack aligned".

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> Worried that your laptop is too fast?

Run your code in Docker for Mac, that'll fix the problem.

<comment><USER12> I actually experienced the opposite. A native Mac compiled application was running slower than the same application running in a ubuntu docker image.

<comment><USER13> Wherever I worked, getting a bigger server or sharding the users better was always the easiest solution.

</comment></comment></comment><comment><USER14> m.2 (NVMe) is so fast and cheap it's absurd. I blinked(a few years) on hardware and when I went shopping for a new disk was blown away by the price to performance.

I was equally as shocked to discover the crap-show that is the m.2 controller space. I felt for sure supermicro would have chassis you could load up with those suckers and they'd be hot-swappable and changing the face of storage. Instead I found proprietary(Intel/AMD) RAID drivers coupled to specific CPU models and expansion cards that could take a measly 4 drives(no hot-swapp).

<comment><USER15> The hotswap is unfortunate, and likely a resukt of server/consumer space differentiation among all kinds of vendors (os, cpu, motherboar, and even the nvme manufacturers all have to play along). But the limit of 4 is at least a real technical limitation, each one of those addin cards usess a pcie 16x slot (either real or "dimm.2" ) and each card needs A 4x from it. You could use a mux to add more but they're already getting to the point of being able to saturate the links. Pcie 4.0 and 5.0 will give a lot of headroom for more drives on a system.

<comment><USER16> Sounds like we might need to go back to the kind of mainframe architecture that has IO offload. Split the PCIe bus into NUMA-like zones; give each zone its own (probably ARM) CPU, running its own kernel; then use "application processors" (probably x86) to command-and-control the IO zones, allocating e.g. IOMMU-subvirtualized ethernet channels to them. Control plane/data plane separation.

<comment> pg-gadfly A bunch of less powerful servers with expansion cards over a network should be much easier to manage and horizontally scalable

<comment><USER15> sort of, the network part of that ends up being a huge bottleneck then too, with 16 drives at 5GB/s (max i've seen so far) each you've got 80GB/s you need for the network to each server. You start getting into the really expensive side of things speed wise.

</comment></comment></comment></comment></comment><comment><USER17> This is grossly under appreciated. And this is why server machines and sustained performance remain one of Intel's strengths, and despite the number of ARM developers out there, ARM hasn't managed more than a toehold in the server market. Nobody has designed an ARM CPU for that kind of workload.

Intel hardly has an impregnable lead in this regard, but I expect AMD to get noticeable server market share before any ARM part does.

</comment><comment><USER18> There's also the similar problem where a developer usually has a much better laptop, phone, internet or lte connection, etc, than the average end user.

<comment><USER19> I remember the Youtube dev story posted here. They optimized Youtube page at some point, deployed and saw much worse average load time for users. As it turned out the whole new batch of users saw load time decrease from unusable tens of seconds or minutes on slow connections to tolerable less than 10-20 seconds or so and they started using the site which dropped average time by a lot :) All these modern developers usually ignore how their websites overloaded with usually unneeded scripts and trackers load on slow networks and PCs.

<comment><USER20> > All these modern developers usually ignore how their websites overloaded > with usually unneeded scripts and trackers load on slow networks and PCs.

Both Firefox and Chrome developer tools even have settings for throttling network speed. I wonder how many developers use them.

</comment></comment></comment><comment><USER21> _For server workloads, it often makes sense to give up clock frequency to "fit" more cores in the same heat / power space._

In other words, server hardware is usually designed for parallelism/maximum throughput, while client hardware is designed for single-threaded performance and decreasing latency.

<comment><USER22> To rehash the old and tired metaphor: one's a sprinter carrying a baton and the other's a herd of marathon runners dragging a sled.

<comment><USER23> This is brilliant and I love it.

</comment></comment></comment><comment><USER24> I come from a field where it would be unthinkable to draw conclusions about application performance by running it on a developer's laptop instead of the target platform.

Judging by the comments here this is not as obvious as I previously thought.

<comment><USER25> Most businesses will never allow you to actually develop and test, for a full day (or weeks on end), on a dedicated server machine.

It's about costs.

</comment></comment><comment><USER26> We've had software perform wildly different on our dev servers from prod servers (which are owned by customers). One time it was VM overprovisioning, another time we were just getting completely different performance depending on what hypervisor was being used.

</comment><comment><USER27> A bit off-topic, but can someone tell me why server _firmware_ takes so long to _initialize_ compared to laptop firmware? And why even laptop firmware takes longer to initialize now compared to laptops from some say 7 years ago? Why is firmware initialization getting so darn slow when computers are getting faster?

<comment><USER28> Servers never reboot, so no one cares.

<comment> yjftsjthsd-h I have no idea why you're getting downvoted; this is very much my experience. An actual physical server is usually either a database server that can literally manage years of up time (no I didn't like it, but they were on an isolated network and the Oracle DBAs were very particular about updates), or else VM hosts that support live migration so nobody cares if we happen to have one host offline for an hour or two while it's patched and rebooted.

</comment></comment></comment><comment><USER29> The main error here is to let people loadtest on their own machine, you should always to do that on the same platform that will run in production.

I think the article is missing many key elements, for example you should always trottle your CPU when doing benchmark.

</comment><comment><USER4> I remember when I was building my first PC with some friends doing the same.

One managed to get a hold of a 'server' and we just assumed it had to be fast right? Very much learned the opposite....and the lack of a sound card was a big turn off...

</comment><comment><USER30> LOL "the mechanical sympathy community"

Good article though. I'm sick of seeing comparative benchmarks on a MacBook. If you don't have real servers you should always benchmark your code in the cloud (bare metal instances if you can afford them).

<comment><USER31> Well, you should benchmark on similar setups to what you will deploy on: benchmarking on "real servers" or "bare metal instances" is also going to be highly misinformative if you expect most of your deployments to be on virtualized hardware under KVM or Xen.

</comment></comment><comment><USER32> Interesting, but I'd think that just running your profiling in a server environment would have the same effect as doing _everything_ in one, no? And for much less hassle

<comment><USER33> You'd be amazed how few developers even know about profiling, or think it's a method of last resort when other attempts to track down performance issues have failed. One of my standard interview questions is, "A customer comes to you and says that [app] 'is slow', with no additional information". You look at the code and there are no glaring inefficiencies, no O(n!) algorithms, etc. What's your next step?", and less than a quarter of candidates ever mention profiling. "Sympathy for the hardware" is, IMO, sort of a hack to be an imperfect solution to this problem.

<comment><USER34> The reality is that a lot of profilers cause a sort of Heisenberg effect when running in production where it can slow down your code so much that it's not as meaningful anymore. This is now the time your ops engineers like me will be wagging their finger saying the application should have had instrumentation or APM support built-in like via OpenTracing or that ebpf and friends could be useful if your production machines were reasonably up to date. In most occasions I've seen, the majority of engineering teams outside massive scale companies with gobs of resources even today wind up debugging performance problems like it's 1999 with application-external hypotheses and checking for smoking guns like high page fault rates, dropped packets, etc. (eg. USE methodology).

<comment><USER35> Sampling cycle count or LBR with linux perf events is almost invisible to performance, maybe a 1% hit to throughput as a general rule. The problems come from languages where the PC is irrelevant, like Python, but nobody uses Python because it's fast, so using a python profiler like pyflame should be fine, even in production.

<comment><USER34> Profiling in production with the JVM using something like YourKit or JProfiler is the typical case for myself. Ironically, I've found profiling with Python in production easier for the reasons you've mentioned. If something is down or running slowly already, adding another 3%+ latency is hardly going to be an issue. Architecturally, with big monolithic programs that do too many things attaching a profiler to try to analyze 1% of the program's responsibilities or surface area becomes a risk to other production operations unfortunately. In most cases slowdowns happen because of resource saturation, things timing out, blocking on shared resources. In the first scenario, trying to run a profiler can exacerbate the problem or even fail to start, so the only way forensics can be done there is by emitting observability data prior to the failure point.

Other approaches taken have been the more Erlang style "let it fail" methodology which is fine for newer projects but represents a rewrite for most systems in practice and is thus far, far beyond profiling discussions.

</comment></comment></comment></comment></comment><comment><USER36> I have two computers at work: A Xeon workstation that was low-mid range when new, 7 years ago, and still has an HDD. And I have new mid-range i5 laptop with an SSD. The old Xeon performs much better for everything except boot time. Even program load times.

</comment><comment><USER37> It's a bit obvious that some major cloud providers are very expensive when consumer hardware provided so much better performances compared to price for years.

But they can have such a pricing model. What they offer is good and valuable anyway. And you need to pay Jeff Bezos.

</comment><comment><USER38> Seems a bit naive.

"Hanging out in the old data center, rendering web pages for a thousand people simultaneously? A different story. For server workloads, it often makes sense to give up clock frequency to "fit" more cores in the same heat / power space."

Servers have larger caches, I'd expect better IPC than a laptop CPU from better micorarchitecture, at least double the memory channels etc. I guess that was his point though.

<comment><USER39> > Servers have larger caches, I'd expect better IPC than a laptop CPU from > better micorarchitecture, at least double the memory channels etc.

In aggregate yes the server cpu numbers are great. But looking at them per core makes them much worse. I checked some random Xeon Platinum CPU vs a mobile i7, both being Skylake (so essentially same microarch). The Xeon had 28 cores, 38.5M cache (=1.4M/core) and 6 memory channels(=0.2/core). In comparison the i7 had 4 cores, 8M cache (=2M/core) and 2 memory channels (0.5/core). The Xeon uses 25% faster memory, but that doesn't really make up the difference.

<comment><USER38> My understanding is kind of matches yours, but I assume it will depend. If you have a memory-bound problem then yes I'd expect a laptop _perhaps_ to be competitive, but if it substantially hits cache for the server then the laptop with smaller cache, may be waiting longer.

> But looking at [the server cpu numbers] per core makes them much worse

but for what benchmark? (sorry if you said and I missed it)

<comment><USER40> If you have a memory-bound problem running on a Xeon with a couple dozen cores... you either have a couple dozen memory-bound problems (which brings into scope the cache per core concept) or you're using the CPU wrong.

</comment></comment></comment></comment><comment><USER41> Conclusion, which you should already know: cloud providers offer obsolete hardware for a premium price

<comment><USER42> Wrong conclusion, it's actually that people who build web applications and people who know how computers work are often not the same people.

<comment><USER41> Then why should you even allow them to access any server - vps or bare - <USER2> all? Also, please remove all ops-code from the two of someone who doesn't understand ops is calling himself devops

</comment></comment></comment><comment><USER43> I synced an Ethereum fullnode on one of Linode's most powerful instances, it was fast but seemed like it should be faster. I was posting issues on github about how this wasn't working fast enough

a lot of tutorials online is about people trying to get their raspberri pi to sync blockchains, so I was prepared for the worst

but then I put together an 8 year old desktop and it synced in 2 days

kind of underwhelmed at "cloud" options. but they work

</comment><comment><USER22> Good article, but one thing that annoys me deeply is the author's intimation that a server 'renders' a web-page. A server does not 'render' a web-page, that's a client-side (browser) task (unless he's referring to running a browser in a Remote Desktop environment, which seems to be definitely not the case).

<comment><USER44> render verb

1\. provide or give (a service, help, etc.). "money serves as a reward for services rendered"

2\. cause to be or become; make. "the rains rendered his escape impossible"

3\. represent or depict artistically. "the eyes and the cheeks are exceptionally well rendered"

You seem to be stuck on the 3rd definition (there are more, but 1, 2 and 3 cover everything we need here to see how it's appropriate based on both the server and client side actions.

The other way of looking to it is that the server renders [something] to HTML, and the client renders HTML to pixels.

It's quite common to refer to things being rendered to another forms, the term is not owned by processes with a visual output.

<comment><USER22> > _You seem to be stuck on the 3rd definition_

Quite possibly. I concede the point.

> _It 's quite common to refer to things being rendered to another forms_

I think it's my mathematical background. I tend to think of these kinds of processes as ' _transformations_ '.

<comment><USER44> Heh, sorry to beat you over the head with it. You're certainly right that they are transformations. That feels like a more general term (within this context, obvs not in the context of render as "to give"), but I can't tease out what the difference is in my understanding of them.

</comment></comment></comment></comment><comment><USER45> "It works on my machine" remains a problem to this day.

While you can make various workarounds to rectify this, it still seems like "so make your machine the machine it runs on" is a very effective solution. Unlike the alternatives, once you commit to it, you can't forget or revert back to bad old patterns.

I've had this thought before: What if Amazon, one day, just decreed that all employees' laptops had to run Amazon Linux?

Maybe it's a good thing I'm not Jeff Bezos, but I think it would have a lot of positive effects.

<comment><USER46> Why the focus on Amazon here? Why assume developers at Amazon don't use Amazon Linux for development?

<comment><USER47> A lot of them do. In fact, laptop + cloud desktop that runs Amazon Linux is the standard set up now.</comment></comment></comment>


Using Git with Dropbox - <AUTHOR> http://solarianprogrammer.com/2012/03/15/git-repo-dropbox/ <comment><USER2> If you are already trusting a cloud service with your data why not go one step further and use bitbucket for free private repos?

You don't have the possibility of corrupting your repo with an unsynced commit from a differennt machine.

<comment><USER3> AFAIK thanks to the hashing used with git there is very little chance of corruption. The filenames are 32bit hashes so the probability of collision between the hashes of two given files is 1 / 2^32. The probability of collisions between any of N given files is (N - 1) / 2^32.

<comment><USER4> Just to correct you: the probability is _much_ bigger than (N-1)/2^32.

See the birthday problem: <http://en.wikipedia.org/wiki/Birthday_problem>

<comment><USER2> The search space of the object name is a sha1 and is 40 characters long and not 32 bits so it's quite a bit larger than the op was talking about(it's actually 160bits).

see: <http://book.git-scm.com/1_the_git_object_model.html>

</comment></comment></comment></comment><comment><USER5> Am I wrong, or does pushing to the dropboxed git repo at the same time from two different computers will corrupt the repo ?

<comment><USER6> I managed to screw up a git repo in Dropbox. I believe it was by making a commit on a non-connected computer than making another commit before the first one had synced to dropbox.

It was not the end of the world, but I would not recommend storing git repo in dropbox. If it's really something so small and insignificant that it doesn't need a git repo, then just put it in dropbox. If you want to use git, take the time to set up a proper repository.

<comment><USER7> Even if you do screw it up, the commit should all be there and valid. The only thing that happens is HEAD won't point to the right commit on other boxes, and then when you do sync you'll clobber the file containing the commit for HEAD, thus losing the other commits. Fortunately, they'll still exist until a gc occurs, so you can go find them in reflog.

<comment><USER6> Correct, I still had my HEAD files, but everything else seemed pretty broken. I'm not a Git expert by a long shot, but I would imagine that Dropbox renamed some files like "Foo.bar (Eli's Conflicted Copy)" and that really confused the history.

Anyway, not something I would recommend.

</comment></comment></comment></comment><comment><USER8> Why bother with dropox? Install jgit and push it on your S3 account for $0.01 per month. Or use Bitbucket's free private git repos.

<comment><USER9> What does jgit have to do with S3? From the description on the project page it's just a Java implementation of git.

<comment> Tuna-Fish Amazon allows you to run code on their servers with strict usage-based billing. Usage-based bill for a git server is essentially zero. Also works for irc bouncers and other such services with low computational cost that you want to run somewhere on the cloud.

<comment><USER10> Not sure that is right. There is not remote code executing to support it. jgit has a feature where you can push and fetch from an s3 bucket as if it were just an http repo. The assumption is that the s3 storage space and bandwidth would be low enough to be negligible.

</comment></comment></comment></comment><comment><USER11> Honestly, I just keep my checked out copy in Dropbox. If it's something I feel like keeping private, I just don't push it anywhere. Even less effort involved.

<comment><USER12> If you have a working directory checked out in ~/Dropbox, beware of multi- machine madness. I've run into issues with a git repo in ~/Dropbox + IntelliJ + multiple computers -- if you leave IJ running on a machine you're not using, it'll notice file changes and re-index things in git. This can, in turn, cause Dropbox to create conflicts, effectively corrupting your git repo. As a result, I tend to keep only non-Java (i.e., non-IJ) projects in ~/Dropbox.

Run "find .git -name ' _conflict_ '" in your working directory to see if this has happened to you.

<comment><USER12> Oops; formatting fail. Should be '<asterisk>-conflict', not just 'conflict'.

</comment></comment></comment><comment><USER13> Wasting your talent and time, just use bitbucket.

Life is short.

</comment><comment><USER14> Warning: If you use git+Dropbox on a Mac (or have one joined anywhere), keep in mind that most Macs have case-insensitive filesystems.

What this means is checking out a git repo like the Linux kernel will not work. This drove me a little nuts until I figured out what happened (I'm an old school Unix guy so did not realize that HFS+ is case insensitive).

<comment><USER15> IIRC you can reformat as case-sensitive.

<comment><USER16> In the past, I've seen a few mentions of bugs / non-running programs when run on a case-sensitive HFS+. Not sure if that's true any more, but changing a default-case-insensitive system to a case-sensitive one isn't usually a problem-free operation.

<comment><USER17> Last time I formatted my drive as case sensitive I ran into issues with Adobe's CS5 apps and Steam.

There could be more, but I reformatted it again shortly afterwards.

</comment></comment></comment></comment><comment><USER18> Old news, been doing this for years. (I hadn't heard of bitbucket back then.)

Also, my use case is extremely simple. I'm just sharing my own personal projects between my desktop and my laptop. I only ever use one of the two at a time, and am not using any tool that automatically checks or updates git repos.

</comment><comment><USER19> I really just do all my work in Dropbox folders anyway. Instant code everywhere. Life's good.

<comment><USER20> Until you compile your code, end up with 300 MB of object files and have no way to exclude them by file extension.

<comment><USER19> Haha, true. Although not a problem I've got at the moment. Couldn't you just compile into a directory, and exclude that directory?

You bring up an interesting point though, I wonder if there's any kind of hack you could do to the dropbox config files to alter that?

<comment><USER20> Even if you hacked up the makefile to move the object files, there's still a hell of a lot of junk generated when compiling a typical large C project. Dropbox needs something like git ignore files:

<http://help.github.com/ignore-files/>

<comment><USER21> Or you could do an out-of-source build, which is cleaner anyway. CMake and autoconfiscated projects support this by default.

</comment></comment></comment></comment></comment><comment><USER22> I wrote a script awhile back to simplify this workflow: <https://github.com/rpetrich/git-dropbox>

</comment><comment><USER23> It is not managable to have too many binaries changed in each commit that are under control git synced with Dropbox. (I know Git is not the best suitable vcs for binaries!) I'd always prefer Bitbucket for that reason. It's an Atlassian product and it is reliable, has no difference than github for private repos. Your files will be on the cloud, is your Dropbox more secure and permanent than Bitbucket? Hell no.

</comment><comment><USER24> Would storing a git bundle on dropbox be better to avoid concurrent modifications to your refs? (A git bundle is just a git pack file of commits along with new ref pointers in a single file).

Could you push to one bundle per computer and then git fetch all the bundles from your peers? Once all your peers have your changes, you can start making bundles from a later revision so that the incremental bundles aren't too big.

</comment><comment><USER25> I'm sure I'm not the target audience, but I'm surprised that in this day and age there isn't always a shared resource lying around (a linode, a slice, an ec2 instance). Or just allow ssh between developers with accounts limited to git access. The dropbox part seems unnecessary.

</comment><comment><USER26> Except you don't own the stuff in your dropbox any more than you own you pictures on Facebook.

<comment><USER27> From <https://www.dropbox.com/terms>:

"You retain full ownership to your stuff. We don't claim any ownership to any of it."

Or am I missing something?

<comment><USER28> I believe they added that somewhat recently after their privacy issue fiasco.

There is also this snippet that was added, which assumes that your key isn't really private as opposed to services like SpiderOak which have no knowledge of your key:

> We may disclose to parties outside Dropbox files stored in your Dropbox and > information about you that we collect when we have a good-faith belief that > disclosure is reasonably necessary to (a) comply with a law, regulation or > compulsory legal request; (b) protect the safety of any person from death or > serious bodily injury; (c) prevent fraud or abuse of Dropbox or its users; > or (d) protect Dropbox's property rights.

</comment></comment></comment><comment><USER29> If you want to keep it private what the heck would you push it to Dropbox ?!

<comment><USER30> Also of note, if you're going to push your private repo to the cloud anyway, Bitbucket has free private Git repos. It's not as featureful as Github, but it has more than just the simple file storage you'd get through Dropbox.

</comment></comment><comment><USER31> funny :)

</comment><comment><USER32> So how do I do this in the GUI?</comment>


Sometimes having nothing to lose can be a real advantage for a startup - <AUTHOR> http://redeye.firstround.com/2009/03/nothing-to-lose-or-risk-tolerance-is-a-competitive-weapon.html <comment><USER3> I'd go further and say that having nothing to lose is one of the biggest advantages for a start-up.

I remembering hearing a founder of an IPO biotech company say how he only started his company because he could not find a job. There was no other option. Doing something of his own was his last ditch effort to make a living.

<comment><USER4> Who was the founder? Maybe I just don't understand the industry, but I always figured starting a biotech company was only really an option for the well- connected and well-funded. It seems really expensive.

<comment><USER5> It is certainly not impossible; I did it. It requires very specific circumstances to be able to bootstrap a biotech company. What's more common is probably what I call an East Coast style business: you write a business plan, then you go raise money to execute it.

</comment></comment></comment><comment><USER6> Very good article, to add the list of advantages a small startup has against an established vendor.

Anyone who worked for a large company knows how long it takes for any significant decision to happen, and how much hedging and precaution is built in each. Large corporations move slower.

The counterpoint to this is that if a large company ever decides to really go after you, it will be really tough because they have resources that you cannot possibly match.

Think an army of thousands of sales people badmouthing you to your potential customers, for instance. Or offering a free product to kill your only source of revenue.

It can play both ways.

<comment><USER4> I often think a startup should act like it's waging a guerrilla war - <USER2> faster than your opponent, do things your opponent is unwilling or unable to do, be hard to kill, win the grass-roots support of the people.

</comment></comment><comment><USER7> So what are the entrenched companies or products that people think are right to go after? Funny that the article is about Paypal, because that's one I wish was still innovating.

<comment><USER8> Then go after paypal. I would absolutely love if you did.

</comment></comment><comment><USER9> interesting point, and something most people probably don't think about

</comment><comment><USER10> Govt must regulate market capitalization of all listed companies to TWICE their quarterly revenue. This will

        1. Prevent Ponzi scams in Corporate Management and Stock Markets
        2. Will create more opportunities for start-ups resulting in millions of jobs creation.

<comment><USER11> You know what market capitalization is?

<comment><USER10> If it moves, tax it. If it keeps moving, REGULATE it. And if it stops moving, subsidize it. --Reagon</comment></comment></comment>


Shamir's Secret Sharing - thomas-st http://en.wikipedia.org/wiki/Shamirs_Secret_Sharing

<comment><AUTHOR> Mods, please fix link: <http://en.wikipedia.org/wiki/Shamir%27s_Secret_Sharing>

<comment> thomas-st Thanks for noticing. Looks like a HN bug. I copy pasted the URL with the apostrophe.</comment></comment>


Technology is transforming what happens when a child goes to school (2017) - <AUTHOR> https://www.economist.com/briefing/2017/07/22/technology-is-transforming-what-happens-when-a-child-goes-to-school <comment><USER2> I always hate reading about things like these because it reminds me of how shitty school is. But AI or other technology is not the solution. The child can just learn by itself naturally. I mean, we stick children for so many years in a cage so they can learn to write down stuff they don't care about and will never remember. How insane.</comment>


Ask HN: How to remember programming language API details? - <AUTHOR> I should rather ask, does even need to remember? For example; all string functions in Python standard library or the path manipulation API in Objective C. Do you just look up as and when you need it or spend some time remembering/internalizing the API?
FWIW, I am a polyglot developer and proficient in multiple languages. I just do a lookup as and when it is needed. Sometimes I think that if I knew these API calls without having to look up, it would be even better to not break my flow?
What is your experience in this context? Any tips, tricks to remember details which helps you to stay in the zone? I looked at Anki, but won't there be review fatigue, as some Googling mentions?
Thanks in advance. <comment><USER2> I go once over the language reference in order to learn what it is capable of but don't bother remembering details. That's what search engines are for.

<comment><USER3> This. Read through whatever it is once to get an idea of what exists; then look details up as you need them. You'll naturally end up remembering the patterns you use most often.

</comment></comment><comment><USER4> I have a custom implementation of the popular "cheat sheets" idea, optimized for not leaving the zone.

My sheets are short snippets of reStructuredText. When I press Win+H, my tool pops up in a small window, asks me for a keyword, and then displays, one by one, every sheet that contains the keyword. I can press Alt+N to show the next sheet. I can press Alt+C to copy the current sheet's _last paragraph_ into the clipboard (this lets me mix explanatory text and code in one sheet). The text is also navigable with a caret, so I can select and copy arbitrary pieces. When I'm done, I press Win+F12 to close the window.

</comment><comment><USER5> Check out Derek Sivers' write-up on spaced repetition: [https://sivers.org/srs](https://sivers.org/srs)

</comment><comment><USER6> Personally I love intellisense and autocomplete functions of modern IDEs, I guess we have it so easy these days. The biggest drag on my coding velocity is more often thinking through the logic of what I actually want to program, recalling more APIs and function calls from heart would only make me slightly quicker, but then I'm also a contemplative deep thinker which may have an affect.

<comment><AUTHOR> >> thinking through the logic of what I actually want to program

Yes, that is very important and I do ensure that I have the design and the details fleshed out. Still, I get tripped up and sometimes the IDE (Xcode) also fails me, though that is a failure of the IDE feature.

For example, I was recently working on making a class which would have some animation settings and there is a fill mode. I did not know the exact one and I had to look up. I tried ` _fill_ ` for autocomplete to help, but did not work. Then I go do a look up and I hate these breaks.

>> would only make me slightly quicker,

I am not sure of the ROI to memorize these details, but looking at the other comment which links to Derek Siver's usage of spaced repetition for the same, seems to be effective, but then that is not a large sample set. I guess I will give the spaced repetition a try for a month or two and see.

Thanks.

</comment></comment><comment><USER7> The trick is practice. The more you use the language and APIs the more you'll remember. If you don't remember then a search engine is your friend. Libraries are so big these days that you can't be blamed for not remembering something. When I'm coding in C# I'll just google the API I'm using, which typically leads me to MSDN. When I'm coding Elixir I just head to Hexdocs.pm because the documentation is just fantastic.

</comment><comment><USER8> In C/C++, I use the man pages (I already have a pretty good idea of what the APIs are, I just need to get some details).

For the C++ STL, I use www.cplusplus.com/reference

For Java, I pretty much use the IDE, assuming I can figure out what class I want to use. If I can't, I browse the Javadoc.

For Perl, I use perldoc.perl.org (or install the perldoc locally).

</comment><comment><USER9> I'm in a similar boat where most of my work is in c# and java and I have some work in javascript. I work on multiple projects at the same time and try to make c# calls in java and vice versa. I often have to double check the API for simple calls but feel other programmers look down on me for making those rudimentary mistakes.</comment>


Localingual: Listen to voices from around the world - <AUTHOR> http://localingual.com <comment><USER2> I love this project. I was disappointed that you don't see Saami in Finland or Norway, there are no aboriginal languages in Australia, no Ainu in Japan, and no Navajo, Seneca, Comanche, and so forth in the United States. It's weird to find Sardinian in Australia but no Yindjibarndi.

</comment><comment><USER3> ... and it's already being packed full of jokes: [https://imgur.com/a/psbMDKj](https://imgur.com/a/psbMDKj)

Under "Russian Voices", one of the most popular entries is "COMMUNISM", "USSR" \- and the recording is that of the soviet anthem. Directly above it is, "It's time to give vodka to my bear."

The top one, of course, is some video-game based joke profanity. (Right under it is a profanity-free video game joke - taken directly from Overwatch.)

</comment><comment><USER4> United Stated of America > California > (Play) Mountain View is Awesome.

Censorship might be a bit loose.

</comment><comment><USER5> Most of these English ones just sound like Americans saying the name of the place. Is that the case or am I misunderstanding the project or is it really just that similar and American accented when people speak English in other countries?

</comment><comment><USER6> Very cool idea. Especially as homogenization really takes hold with the current generation being born into ubiquitous and homogeneous online media, this will act as a way to preserve.

</comment><comment><USER7> awesome database. It seems to need two "quick browse" modes for an easy discovery: (1) clicking on a country just plays the most popular sound clip. (2) clicking on a country, then on a region, plays the most popular clip.

</comment><comment><USER8> The site doesn't seem to work on iOS.

And I can't scroll down to see the cat gif.

I'm so bummed. ;)</comment>


Compass.js - A JavaScript Library To Get Compass Heading On Mobile Phones - <AUTHOR> http://ai.github.com/compass.js/ <comment><AUTHOR> via: [http://functionn.blogspot.com/2012/12/compassjs- javascript-l...](http://functionn.blogspot.com/2012/12/compassjs-javascript- library-to-get.html)

Info: Compass.js allows you to get compass heading in JavaScript. Today we haven't any standard way to get compass data, but there are two proprietary APIs and one hack:

\- PhoneGap has navigator.compass API.

\- iOS Safari adds webkitCompassHeading property to deviceorientation event.

\- We can enable GPS and ask user to go forward. GPS will send current heading, so we can calculate difference between real North and zero in deviceorientation event. Next we use this difference to get compass heading only by device orientation.

This library hides all this magic and APIs from you, auto-detects available way and provides clean and simple API for your geolocation web app.</comment>


Show HN: Manage your machine configuration in a simple bash script - <AUTHOR> https://github.com/AndrewVos/box <comment><USER2> I like this much better than "Puppet", "Chef" and similar systems that require you to be a bash expert plus an expert in the tool.</comment>


Never read hacker news before dinner - <AUTHOR> http://anton.kovalyov.net/2012/08/04/soviet-newspapers/

<comment><USER2> Yeah, a few weeks ago I felt particularly stressed and depressed. I stopped reading TechCrunch and HackerNews for several days, and found myself feeling significantly better.

Then I got back to doing both but noticed something interesting. It wasn't usually the articles making me stressed and depressed, it was the comments. The comments on technology news these days generally sounds like they're coming from people I would never have a second conversation with. They're rude, negative, spiteful, discouraging, and depressing.

It's a very hard habit to break, reading the comments, and it's unfortunate because I used to find great tidbits of information in the comments that made them very useful and worthwhile. However, skimming past dozens of people talking shit and criticizing the do-ers just to get to the possible good information has proven not worthwhile.

I need to be more disciplined about avoiding this negativity.</comment>


PG Essay Suggestion: an essay about each YC startup - <AUTHOR>

"This is a bit tangential: Every start-up that YC funds is potentially worth an essay. Isn't that why they are funded? They solve a problem that nags many." --ChaitanyaSai http://news.ycombinator.com/item?id=192730
I think it would be interesting to see what PG thinks about the startups they fund.
Why pg and the others at YC picked those of the groups they interviewed; what about the product was it they liked; what wasn't right; how did they see the people and product grow; etc, etc.
I of course understand this would be a lot of work. But it would be quite interesting. It might be easiest to start with the current group and keep a journal on them, and refine it after the current period is done and then publish. <comment><USER2> As a fan of pg, let me be the yang here and say, "Please don't do this, Paul." I like Paul's articles and ideas because I think he brings something unique and different many times. Wasting valuable neurons on something we all know (They got funded b/c they solved a problem, had a plan that we felt they could execute, and were smart enough to see that we create value for them) is just repetitive.

Stay the course, pg :)

<comment><AUTHOR> "(They got funded b/c they solved a problem, had a plan that we felt they could execute, and were smart enough to see that we create value for them) is just repetitive."

I'm asking for more than just why the got funded. I believe that I also suggested, flaws, and how they grew during their time at YC.

</comment></comment><comment><USER3> PG Essay Suggestion: Can you tell me what I should wear today? And tell me what to eat for lunch?

On a more serious note, if I were a newly accepted YC company, I don't think I'd want people reading about my interview before I've actually built the product. Now it might be interesting to see what PG thought of, say, Reddit, during the interview, given their successful exit.

<comment><AUTHOR> the journal suggestion was more of... keep track of what's going on while it's going on and report to us after it's a good time to do so. Writing on say reddit may or may not be as easy because he may not have notes to do so.

</comment></comment><comment><USER4> "I of course understand this would be a lot of work."

Understatement of the year.

</comment><comment><USER5> If not an essay about each YC startup, how about a blog about Y Combinator?

<comment><USER2> Why? So he can re-post the answers to questions people asked him on here?

<comment><AUTHOR> it would be interesting to see how startups progress as they go on. And not just from what the startups themselves want to say. I'd like to know what PG/YC (actual people involved) think.

</comment></comment></comment><comment><USER6> well, for starters, I'd suppose YC thinks favorably on the startups they've invested in. I mean, they're putting some of their money and I suspect a bunch of their time into them. Maybe I'm dense, but this seems obvious to me.

YC has posted the launched startups here: <http://ycombinator.com/faq.html>

So, if you were so motivated, you could contact these startups and do scoops on them, if they are so willing.

<comment><AUTHOR> you aren't dense. You are just oversimplifying the answer.

I could contact them, but it is not their perspective I am asking for. There is more than one perspective on the story.</comment></comment>


Best of DataGenetics blog – Top ten most read articles, by year - <AUTHOR> http://datagenetics.com/blog/may62014/index.html

<comment><USER2> Thanks for posting (and your kind comments in email the other day) - /\/ick</comment>


The Truth About Hiring - <AUTHOR> http://www.devonestes.com/the-truth-about-hiring/ <comment><USER2> Personally I find software engineering to have the worst hiring process of any industry or type of job. Simply put it is just cancerous and detrimental to people who are passionate about computer engineering. I recently had an interview with a company where the recruiter asked me if I would rather use C or C++ even though the company worked on embedded hardware. Why would it matter if when I told them I know both and love both? I'll obviously use whatever is needed by the company. And this was for a <3 years of experience job.</comment>


Are You Smart: What is intelligence? - <AUTHOR> http://amfix.blogs.cnn.com/2010/03/22/are-you-smart-what-is-intelligence/?hpt=Sbin

<comment><USER2> I feel like I've been getting less intelligent, like my brain is dry, un- lubricated, and pumping sand. I used to be so smug about my intelligence, too. Even declining the gifted and talented program. I was an arrogant kid.

I was never taught how to use my intelligence to best effect, and right now I feel like I'm fending for myself with it. I kind of learned the wrong thing: how to be extremely lazy yet acceptably productive.

Intelligence should be constantly evaluated, as early as possible, and children placed in the proper learning environments.</comment>


How to Stop Giving a Fuck What People Think - <AUTHOR> https://medium.com/life-hacking-2/46bf86584c95 <comment><USER2> When you are someone who lacks self-confidence or whose actions are determined by how others will think of you (taken to the extreme), this may very well be good advice. This is the type of advice that helps me personally, since I have struggled with the anxiety caused by worrying too much about other people's opinion of me.

However, while this may be a good quick-fix solution to self-confidence issues, I wouldn't say it's a very good way to live life in general. We're not isolated in this world, and other people's thoughts and opinions do matter. But if someone worries _too_ much about what other people think, this may be the type of article that helps shock them out of their current state.

</comment><comment><USER3> This is a pretty good way to limit your friends network, though. For example, feminists and other sjws often will delete you from everything and start a witch hunt trying to fire you, get all your friends to hate you, and so on if you "confess" to being an egalitarian and/or say anything that indicates rival theories for things outside of their ideology, like the scientific method, might have some validity.

Religion used to be like this (and still is in many developing countries, along with an uncomfortably large segment of the US), but it has to some extent grown much more milder in portions of the community. However, cult like thinking takes many forms, and inadvertently contradicting a cultist may very well become an aspiration crushing torment to the novice idgaf-er.

I guess it's all about taking baby steps at first. And sometimes antidepressants.

</comment><comment><USER4> The rest of the article aside, I really like the notion of travelling alone, at least once. It reminds me of a quote from one of my favourite movies, Into the Wild.

 _"The sea 's only gifts are harsh blows, and occasionally the chance to feel strong. Now, I don't know much about the sea, but I do know that that's the way it is here. And I also know how important it is in life not necessarily to be strong, but to feel strong, to measure yourself at least once, to find yourself at least once in the most ancient of human conditions, facing the blind, deaf stone alone with nothing to help you but your hands and your own head. "_

Not that you have to hitchhike alone to the Alaskan wilderness! Thats extreme of course.

</comment><comment><USER5> This is bad. The advice given perpetuates the myth you are an individual completely separate from the world outside of it, the very feeling that alienates you from other people and the feeling behind the animosity that we feel towards others. The only way to be at peace with world( and people who live in it) is to realize that you are the world not a part of it.

<comment><USER6> >> the myth you are an individual completely separate from the world outside

Aren't you?

You were born alone, you will die alone, nobody can live your life for you, nobody can share the responsibility for your decisions.

You are alone. Everyone else is a script. The only thing that matters is whether your actions make you happy without a hangover. Why would you worry about anyone else's judgments?

(Sick people, who are made happy by abusing neighbors, will always exist, but they are, luckily, not numerous.)

<comment><USER5> >> Aren't you?

Yes if you choose to identify yourself with small part of your being called the consciousness.

I don't find that view of self particularly appealing, I prefer to view my ego as part of me as my leg is a part me. You are not the image that you have constructed for yourself shaped by the society you live in. I don't want to identify myself with a tiny portion of thoughts that my mind has, I am not my ego.

</comment></comment></comment><comment><USER7> Reminds me of the title of a book by Richard Feynman -"What Do You Care What Other People Think?" [http://en.m.wikipedia.org/wiki/What_Do_You_Care_What_Other_P...](http://en.m.wikipedia.org/wiki/What_Do_You_Care_What_Other_People_Think%3F)

</comment><comment><USER8> Exercise is also effective at reducing emotional reactions to painful stimuli

[http://www.health.harvard.edu/newsweek/Exercise-and- Depressi...](http://www.health.harvard.edu/newsweek/Exercise-and-Depression- report-excerpt.htm)

</comment><comment><USER9> But what about downvotes and hellbans?

<comment><USER9> Also, it's hard to take this advice seriously, when the title of the article engages in polite self-censorship by partially masking foul language with asterisks.

<comment><USER10> I think there are two sides of this question.

The first is common decency: don't hurt others unnecessarily, don't be an ass, or you feel guilt.

The other is a matter of shame: worrying about the disapproval of others for something you did.

I want to be more proactive about being good to people around me in ways that matter to them.

I am also trying to do more things which create my "shame" feeling, because as this piece says the feeling is generally unnecessary and irrelevant to the feelings of the people around me. I try to do things I am uncomfortable with, or if the only thing holding me back is some vague sense others might disapprove. Really, most of the time they just don't care.

From that perspective, if you really think it will hurt some of your readers to spell out the words, and you don't have a significant reason to do so, censoring them is perfectly in line with his philosophy.</comment></comment></comment>


How to use MY API - <AUTHOR>

I am very new to the development world. I have been working on creating a REST API. I created it using Visual Studio. I now want to put it on the internet so I can use it and call to it. I would like to put it on the internet for free, or very cheap. But I can't find much information out there on how to get it on the internet. Any advice? <comment><USER2> You will need somewhere to deploy the API and likely will want some way to manage users of the API. For deployment, almost any web host that supports your tech stack should do.

See apievangelist.com for resources on everything API related.

<comment><AUTHOR> Thank you. After reading this I came across 3scale. I think that is what I need.

<comment><USER2> 3scale is one of many API management providers. I have no personal experience with 3scale but some other alternatives off the top of my head to check out include apigee, mashape, and mashery.

<comment><AUTHOR> ah okay so this isn't a place to deploy the apis</comment></comment></comment></comment>


Ambient backscatter tech allows devices to communicate, sans batteries - <AUTHOR> http://www.gizmag.com/ambient-backscatter-unpowered-communication/28709/

<comment><USER2> I wish technical writers would do historical research -- it would make their writing more interesting and educational.

During the Cold War, the Russians gave the U.S. consulate in Moscow a nice patriotic sculpture "as a gesture of friendship". The embassy did exactly what the Russians hoped they would -- they mounted it on a wall in the ambassador's office.

The device was actually an early example of an ambient backscatter device that transmitted voices from the room by way of backscattered energy, readable by the Soviets. It was years before the American embassy staff figured out what was going on.

[http://en.wikipedia.org/wiki/Thing_(listening_device)](http://en.wikipedia.org/wiki/Thing_\(listening_device\))

Quote: "The Thing, also known as the Great Seal bug, was one of the first covert listening devices (or "bugs") to use passive techniques to transmit an audio signal. Because it was passive, being energized and activated by electromagnetic energy from an outside source, it is considered a predecessor of current RFID technology."

My question is -- why won't tech writers do their job? History is replete with interesting example like this to spice up stories and educate people. Do these writers live in a vacuum?</comment>


Bitcoin Script: An In-Browser Playground - <AUTHOR> http://www.crmarsh.com/script/

<comment><USER2> I was playing with similar idea. To provide browser-based playground for bitcoin scripts.

Technically my approach was different. I used emscripten to compile bitcoin sources into javascript and exposed simple wrapper of its functionality.

Interesting excercise, never finished :(

[https://dl.dropboxusercontent.com/u/559047/bitcoin- emscripte...](https://dl.dropboxusercontent.com/u/559047/bitcoin- emscripten.png)

[https://dl.dropboxusercontent.com/u/559047/tx- verification.p...](https://dl.dropboxusercontent.com/u/559047/tx- verification.png)</comment>


China Builds EU Beachhead With $5 Billion City in Belarus - <AUTHOR> http://www.bloomberg.com/news/2013-05-26/china-builds-eu-beachhead-with-5-billion-city-in-belarus.html

<comment><USER2> Some fun facts about Belarus:

\- 51.2% of Belarusians are employed by state-controlled companies.

\- Political opponents have been violently suppressed

\- Per capita income $6.8k

\- A fifth of Belarusian land (principally farmland and forests in the southeastern provinces) continues to be affected by radiation fallout from Chernobyl

<comment><USER3> It's fairly accurate to think of it as a place that has tried as hard as possible not to move away from the Soviet economic/social/political model.

</comment></comment><comment><USER4> Manhattan isn't that big as far as cities go. It's only 23 square miles, less than 8% of NYC's land area.

<https://en.wikipedia.org/wiki/Manhattan>

</comment><comment><USER5> _A beachhead is a temporary line created when a military unit reaches a beach by sea and begins to defend the area while other reinforcements help out until a unit large enough to begin advancing has arrived._

Sometimes, bias is only in language.

</comment><comment><USER6> This is very interesting development in European politics and "Europe's last dictatorship".

Especially since the 'threat' of China often seems to be one thing that can unite the member states.

</comment><comment><USER7> Is anyone else reminded of the "charter city" they were going to build in Honduras? (Paul Romer had the idea, inspired by Shenzhen, of having third world countries set aside land to be under the jurisdiction of first world countries with more stable legal regimes. The plan being that this would attract international businesses and then bootstrap the rest of the countries development). In Honduras they ended up cancelling the idea, to the cheers of many in the Western press who thought it had echoes of colonialism. I doubt this Chinese city will get the same negative backlash.

<comment><USER8> _This American Life_ did a story on the idea and backlash: [http://www.thisamericanlife.org/radio- archives/episode/483/s...](http://www.thisamericanlife.org/radio- archives/episode/483/self-improvement-kick?act=2)

</comment></comment><comment><USER9> That [edit: was] an extremely misleading headline. It'll only be 40% larger than Manhattan _in acreage._

In terms of population, it'll be 1/10th the size of Manhattan.

(Still pretty impressive, though!)

</comment><comment><USER10> _China, which signed a $3 billion currency swap deal with Belarus in 2009 to boost trade, agreed to finance the venture with low-interest loans as long as half the money is spent on Chinese materials..._

Can someone explain the four-year planning of the currency swap related to the actual build-out? Or am I seeing something of insignificance related to the whole of the article?

</comment><comment><USER11> We're on a dictatorship kick today, it seems.

<comment><USER12> Ain't no party like the people's party because it's mandatory.

<comment><USER13> Hilarious.

Although it's projected to be 140% the size of Manhattan, the article states that the city will accommodate only 150,000 residents. Indeed, the article also says that the entire country of Belarus is only 9.5 million inhabitants, just 15% or so larger than all of NYC.

</comment></comment></comment><comment><USER14> So what, China wants to move some of its industry there, or does it simply want to enable its companies to send their stuff there and re-export it from there, dodging EU taxes in the mean time

</comment><comment><USER15> This piece reads like a press release.

</comment><comment><USER16> I wonder if this will end up like the other cities that sprung up in china that have yet to have any inhabitants…

Well, congrats to whoever gets awarded with the contracts…

</comment><comment><AUTHOR> _> The hub will put Chinese exporters within 170 miles of EU members Poland and Lithuania and give them tax-free entry into Russia and Kazakhstan, which share a customs union. It will also let them draw from a workforce that's 99.6 percent literate and makes $560 a month on average, half the Polish wage._

Imagine a Shenzhen on the edge of Europe. This is probably a hammer blow for domestic manufacturing in EU countries.

Chinese outsourcing and freedom from EU regulation will be just an hour or two away from every single entrepreneur in Europe.

<comment><USER17> You've got to be kidding me. Belarus is a landlocked tinpot dictatorship with an unreformed state-run economy, notoriously arbitrary government, strangulatory red tape, sanctions up the wazoo and virtually no access to EU markets, as it's outside every single European institution:

<http://boingboing.net/2011/03/12/venn-diagram-illustr.html>

Hint: Belarus's flag is not in there at all. Add in a near-total lack of workers skilled in post-1950s technology, English, or for that matter any language except Russian, and I'm hard pressed to think of a worse place to locate a factory.

<comment><USER18> > near-total lack of workers skilled in post-1950s technology

[citation needed]

>I'm hard pressed to think of a worse place to locate a factory.

How many factories have you placed? Would you put one in Bangladesh?

<comment><USER17> The article touts Belarus' monthly salaries of $650, but in Bangladesh, you can hire people for _$60_. And besides, multinationals don't operate their own factories in .bd, they just contract out to the lowest local bidder.

</comment></comment></comment></comment><comment><USER19> I, for one, welcome our new Chinese overlords!

</comment><comment><USER20> > Last year, Germany's openly gay foreign minister, Guido Westerwelle, called > Belarus "the last dictatorship in Europe," prompting Lukashenko to quip that > he'd "rather be a dictator than gay."

Probably the first and last time I'll ever agree with a dictator.</comment>


Is Uber the Root of All Evil? - <AUTHOR> http://techcrunch.com/2015/10/17/is-uber-the-root-of-all-evil/ <comment><USER2> Must read! Jon Evans has mastered Cognitive Dissonance and about a very important issue - the Gig Economy. That being said, there is an alternative. A guaranteed income - and the gig economy highlights the need for it.</comment>


The Tapplock IoT padlock has multiple security vulnerabilities - <AUTHOR> https://nakedsecurity.sophos.com/2018/06/18/the-worlds-worst-smart-padlock-its-even-worse-than-we-thought/ <comment><USER2> > Web programmer? Don't make account IDs easy to guess. In an otherwise secure > system, account numbers that go 1,2,3… shouldn't be a problem, but why make > it easy?

Is that the best advice to web programmers they can give based on this story? That's the "obscurity" part in the security by obscurity scheme. If you've got your security otherwise nailed down fine, some obscurity on the top doesn't hurt: security-in-depth, people seem to call that. But use only the obscurity, and only one person has to find out how your scheme works, and it's game over.

I'd, you know, recommend to think about authentication. Your authentication state is not "logged in", it's "logged in as user X". So the code that decides whether a client can see a specific page can and should (!) depend on what specifically you're authenticated as.

Oh, and yes, this company has proved that they don't know the least thing about security. But that was clear already.

<comment><USER3> > Your authentication state is not "logged in", it's "logged in as user X". So > the code that decides whether a client can see a specific page can and > should (!) depend on what specifically you're authenticated as.

"the code that decides whether a client can see a specific page" should not care about authentication, this is authorization issue. I see these things conflated too often.

Identification, Authentication and Authorization are three different beasts. Separate identification seems unnecessary complication, which it is in simple web app, but in a more complicated case where ID is not user supplied (login over external service, read ID from smart card, etc.) it can become a necessity, which can be embedded into authentication mechanism. Authentication mechanism should only provide "authenticated" and similar (e.g. "authentication security level") flags, because authentication at its root is a mechanism to establish trust that client has control of certain ID, nothing more.

<comment><USER4> Sometimes I wonder how technology can work, when so many people working in the field are unable to grasp the basic concepts of it

<comment><USER5> Either the competent pulls way more than their weight, or luck.

<comment> yjftsjthsd-h Also the really bad stuff sometimes dies under its own weight. Natural selection occasionally works.

</comment></comment></comment></comment></comment><comment><USER6> In a different market, with a different product, this could have been a funny success story 10 years later.

Something like:

> "when we launched, our [thing] was totally insecure and we had just thrown > together a bunch of spaghetti code over nights and weekends- anything that > would ship. Then when we hit it big we started investing in the process and > now our [thing] is the best, most secure one on the market"

Too bad in this case [thing] is a lock, where proper security is it's primary, and single reason for existing. There's no 10 years later for this one.

</comment><comment><USER7> "Invincible to the people who do not have a screwdriver"

[https://boingboing.net/2018/06/15/high-tech-lock-is- invincib...](https://boingboing.net/2018/06/15/high-tech-lock-is- invincible.html)

Which incidentally is also maybe and issue for tapplock

[https://www.theregister.co.uk/2018/06/15/taplock_broken_scre...](https://www.theregister.co.uk/2018/06/15/taplock_broken_screwdriver/)

<comment><USER8> > "Invincible to the people who do not have a screwdriver"

or a mobile phone.. or access to the Internet..

</comment></comment><comment><USER9> Genuinely curious how people still manage to fuck up this kind of super basic secure coding practices

<comment><USER10> IoT devices are generally built and programmed by electronic engineers. They have no knowledge about software security and neither do they care.

<comment><USER11> That's wrong. An engineer has a couple managers above. Product, project, platform manager. You name it. Engineer is just another blue collar worker nowadays. No decision making power. I was not allowed to save company $40k, they told that numbers shouldn't interest me. If management says, we need no encryption and authentifition, it's totally ok. I just print their emails with this statement for later.

<comment><USER12> Engineering is absolutely not blue collar, but this has nothing to do with the issue you're facing. If you found an opportunity to save $40k and they said you shouldn't care about numbers, then either you have poor management or there's more to the story that you didn't share. At the very least competent management should have been able to explain why saving the $40k was the wrong trade off.

<comment><USER11> Yes, competent management. Didn't experienced much companies having it. With competent management I could save my salary for couple years in this project alone. The client ist other branch of the same company. I could design a pcb with components for our needs, instead of that management wants to go with expensive 3rd party module having all bells and whistles on it.

Edit: pcb design is risky. But the system is very primitive having voltage regulator and single integrated circuit in it. I doubt this department with current performance would survive as independent company.

</comment></comment></comment></comment></comment><comment><AUTHOR> I wonder why the "message" field in the response says "API调用成功" ("API call succeeded", I think?) if this is a Canadian company. Did they just buy the locking solution from some Chinese OEM?

<comment> jon-wood Yes, almost certainly. One of the IoT industry's dirty little secrets is that just about everyone is just rebadging OEM hardware from China, and often doing a minimum of due diligence on that hardware.

(Disclaimer: I work for an IoT startup. We have an in-house security engineer, and contract pen testers who we call in to do physical and software tests against any new hardware we ship)

<comment><USER13> That's not a "Disclaimer", that's a "Source".

</comment></comment></comment><comment><USER14> This is a problem you see with a model of security where they have security on the front end (meaning the user can only see the bits they should have access to in the UI) but then the back end API is pretty much open to any authenticated user. The idea being that nobody should be able to send API requests if the UI isn't there.

It is a stupid practice.

I "hacked" a student newspaper back when I was at university with a similar "hack". They decided to roll their own CMS rather than using something like Wordpress, because, you know... that makes sense for a small team with little experience.

The user settings page was something like /user/edit/{userid}. I noticed that you can actually change _any_ user's settings (including login) by just changing the userid. So, of course, you just change it to 1 because the first user will inevitably be the admin. This gave control over the whole system.

</comment><comment><USER15> >What to do?

>Tapplock user? Get and install any and all patches provided. Apparently, the company has now addressed the most obvious web portal holes (guessable account IDs and no HTTPS), but we assume an app update will be needed as well.

Also, stop being a Tapplock user

</comment><comment><USER16> I thought this was a blog post about the guy who simply unlocked the padlock using a GoPro mount ([https://www.youtube.com/watch?v=RxM55DNS9CE](https://www.youtube.com/watch?v=RxM55DNS9CE) \- the video is worth watching from the beginning) but this was more amusing than I was expecting.

Nothing went right in the design of this padlock.

<comment><AUTHOR> Apparently that was a quality-control issue with his lock - the lock is designed to have a small metal pin that prevents rotating the back, but it was defective on his lock.

<comment><USER17> Same quality control that allows the shackle to be snipped with a 12" set of bolt cutters? It's almost as if at every turn, of two possible decisions, they consistently chose the wrong one.

</comment></comment></comment><comment><USER18> > Canadian internet of things (IoT) startup Tapplock learned the hard way why > you should never knit your own cryptography

If they wanted to knit their own cryptography, then cryptocurrency and ICO was their place to be.

<comment><USER19> Don't give them any ideas. Or they will want to save lock/unlock data to a blockchain, then read from it in order to unlock your padlock.

</comment></comment><comment><USER20> This may seem unrelated but I watched "The Disaster Artist" for the first time last night. It made me cringe, not for Wiseau but by reminding me of all the times I've been a Wiseau in my life as I disconnected from reality caught up in some fantasy of how I was going to make the world love me by something I was going to do. Reality can be a brutal place for the ego, but at least it's real.

"I'm going to make my own Bluetooth smart-lock. It's gonna be amaaaazing. Oh hai Mark."

</comment><comment><USER21> > You could easily sniff out account IDs because Tapplock was too lazy to use > HTTPS.

SSL benefits are generally over-hyped IMO and might give a false sense of being 'Secure' as in this article where such an obviously flawed system receives "use SSL" as one of two recommendations.

The idea that unencrypted traffic allows any hacker to easily sniff it is wrong and misleading. The eavesdropper needs to be "close": In the same LAN as the target, or upstream of it, i.e on the same wifi (needs to be physically there, know/hack the wifi password and performing an ARP spoofing attack), or being/hacking the ISP itself.

Of course I'm not saying SSL _shouldn 't_ be used, only that it's a secondary security measure, like using a seat-belts vs having good breaks.

<comment><USER22> Almost all flaws are "not that serious" on their own, because people aren't generally _that_ dumb.

"You can find out somebody's account ID" isn't that big a problem in the presence of other decent mitigations. Without those mitigations, of which HTTPS is one to prevent request spoofing, everything is terrible.

<comment><USER23> I agree, the account ID is a complete non-issue as long as each endpoint limits results to the account ID associated with the credentials.

</comment></comment></comment><comment><USER24> > "Incredibly, Tapplock's back-end system would not only let him open other > people's locks using the official app, but also tell him where to find the > locks he could now open!"

Never heard of this product before but what a hilarious read. They seem to fix some of the issues pretty quick. But what a nightmare IoT are. I'm stressed out by not keeping up to date with computer/phone updates (mostly because I wait a bit to ensure programs I use still work). Can't imagine owning even more products that I have to maintain software updates on...

</comment><comment><USER25> These seem like mistakes one would make if one was using tutorials to build a Rails application for the first or second time ever.

</comment><comment><USER26> The article recommends: > Don't allow plain HTTP any more. Make sure your servers insist upon HTTPS connections, and update your client software to use HTTPS exclusively.

Does this mean I should turn off HTTP completely? Right now, I redirect any incoming HTTP requests to HTTPS. Is this considered insecure?

<comment><USER27> So it depends on your client population. If you've got general browsers hitting your site, I think HTTP-->HTTPS is a reasonable trade off and stops the poor experience of a user putting your site name into the browser bar and getting told there's no site there.

If you control the client population, as in this case, there's no real need to allow HTTP at all, so I'd just disable it and have HTTPS only.

<comment><USER28> Have your domain HSTS preloaded and every proper browser will automatically redirect without you having to.

</comment></comment></comment><comment><USER29> As mentioned in the article. Jerry Rig Everything did a review on this and found that you can just twist off the back...[1]

[1] [https://youtu.be/RxM55DNS9CE?t=3m39s](https://youtu.be/RxM55DNS9CE?t=3m39s)

<comment><USER30> Taplock claim that was an exceptional unit and a spring loaded pin normally prevents this. Another researcher couldn't make it work.

Still fucked tho

</comment></comment><comment><USER31> There's an upside to the terrible security: no fingers have to be chopped to gain access.

</comment><comment><USER32> Utterly horrifying, but ultimately irrelevant. No lock of this size is meant to be anything other than inconvenient to open. Angle grinders are cheap, and more easily wielded than HTTP request crafting.

<comment><USER27> however there are cases where an attacker doesn't want to arouse suspicion, and Angle grinders are kind of noticable.

This would allow for an attack where the lock appears to be operating successfully, but someone has unauthorised access.

<comment><USER32> For this reason the scariest bit is the ability to access account information via their online systems - sounds like a map of locks that aren't locks.

<comment><USER31> Why the hell do they store the location data of the locks. Are they secretly selling the location and unlock access to governments?

</comment></comment></comment></comment><comment><USER33> Frankly, this all seems like quite a lock of fuss over nothing. Firstly, pad locks are generally very easy to just break open with a set of bolt cutters. Particularly, if you look at more secure traditional pad locks practically all of them share physical design features intended at minimizing the amount of the actual shackle that's accessible. So to be clear- the second you see the shape of that padlock you know that it's not designed to be super secure.

With that in mind - which are you more worried about? Something spoofing your Bluetooth pass code using some advanced tech, physically unscrewing the back and deconstructing the padlock, or the third option: chop open the shackle?

What I find amazing is that they thought they advertise this product as more secure than any other padlock with the same mechanism. This padlock is a finger print padlock, maybe people like that convenience, but don't try and pretend physical security isn't a concern.

<comment><USER34> If someone chops open your padlock you find out about it next time you see it.

The vulnerabilities in the article might go unnoticed, so the user keeps locking gates, chains, whatever with the bad lock and the crooks can come again and again and rifle through your shed, garage, whatever.

It is absolutely worse than a chopped padlock.</comment></comment>


Ask HN: What most controversial opinion do you hold? - <AUTHOR> Currently reading Thiel's book "Zero to One", and he mentions this is a favourite interview question of his. Which got me thinking, what is your most controversial opinion you'd be willing to put out there? <comment><USER2> And if people were truly honest about their 'controversial opinions' they'd get kicked from this site.

It's a problem in academia as well, there's a new journal launching to help combat that problem [https://www.bbc.co.uk/news/education-46146766](https://www.bbc.co.uk/news/education-46146766)

<comment><USER3> Most often people assume these opinions have to be political, but they really don't.

Well, maybe within the scope of the question as defined by OP since it explicitly begs for _controversy_. But should you expand it to the broader _What is an idea you hold that runs contrary to the common wisdom of field X?_ Then suddenly it becomes a lot more interesting and fruitful,

It's not that heterodox political opinions are intrinsically less interesting but few people know how to discuss them constructively, much less online. That breeds low quality discussions where everyone is at each other's throats. Broadening the question has at least the merit of being less polarizing without giving up on critical thinking, or bravery. Ultimately, the goal is the pursuit of the _truth_ \- something that breaks mimeticism (or kickstarts it).

</comment></comment><comment><USER4> Taxation is theft.

If you're looking for something not political, I'd go with something like:

1\. The web-browser shouldn't try to be a knock-off operating system, and should delegate many things to native code using protocol handlers or some- such.

2\. Groovy is a totally badass programming language and is way under- appreciated today.

3\. The Semantic Web vision remains alive and is continuing to develop and is one of the most important initiatives out there, short of us developing AGI.

4\. An AGI might have "human level" intelligence in dis-embodied form, but I believe an AGI would need to be embodied and sense the world somewhat like the way we do, to truly have "human like" intelligence.

</comment><comment><USER5> 1\. The Trans movement will die because of feminism/social justice. I believe that we are moving towards a society where there will be no stigma towards sexuality, fashion, presentation, or any other expression relative to gender/sex. Once any gender can present any way freely, and not be 'emasculated' or 'defeminated' based on expression, I do not see how dysphoria would exist.

2\. Abortion is murder and but that doesn't mean it it should be made illegal. The government sanctions killing of others through acts of war, self defense, use of deadly force. The historical precedent of the economic, public health and social impact of banning abortion make banning abortion against the function of most governments. The government should not be morality police, but a hockey-style referee for economics and public safety.

I got tired of explaining my stance on the second issue to the point to where I just say that citizenship is issued on birth in USA therefore fetuses aren't citizens and prioritizing the fetus over the mother is a homeland security issue.

</comment><comment><USER6> Most controversial opinion: The thesis behind the Second Amendment, that an armed populace is necessary for a free state, is incorrect, or at best obsolete in the modern era.

Second most controversial opinion: The Last Jedi was a good film. Flawed, yes, but not deserving of the hate it's gotten.

<comment><USER4> I'm with you on the latter point, but can't agree on the first. What I will concede however, is that an armed populate doesn't _guarantee_ a free state. But all other things being equal, I'd take an armed populace over an unarmed one, as long as state tyranny is a threat.

But yeah, The Last Jedi was frickin' awesome.

</comment></comment><comment><USER7> A dangerous proposition but since it is being asked I could give it a try.

My most controversial opinion is likely that any law that give gender, race and religion special treatment is discrimination that promotes tribalism and polarization.</comment>


Your favorite text editor anywhere - <AUTHOR> http://www.hogbaysoftware.com/products/quickcursor

<comment><USER2> I am an absurdly happy monkey, as I'm about to type :wq and close MacVim.

One note: it doesn't appear to work in the dev-version of Google Chrome on my machine. Having said that, Chrome and Chromium (the dev version) both seem not to play nice with the larger Mac OS (the clipboard interactions are a disaster, as an example).

Anyhow, thank you to the poster, thank you to the creator. Thank you Bram for Vim. Happy, happy monkey...

</comment><comment><USER3> This sounds good. A similar tool is It's All Text! for Firefox (<https://addons.mozilla.org/en-US/firefox/addon/4125>). It lets me edit textareas with Emacs. It's only Firefox, but it's cross-platform.

</comment><comment><USER4> No emacs support. :-(

<comment><USER5> Text fields on Mac OS X support basic Emacs keybindings for cursor movement natively.

<comment><USER4> Yeah. But every once in a while I have to put something in a webform that would be made _so_ much easier if I could use macros or rectangles.

</comment></comment></comment><comment><USER6> This has more instant-amazement-factor than any software I've tried in a while. Not sure if I'll find myself using it long-term, especially since it doesn't work with Firefox, but still: hats off.

</comment><comment><USER7> Anyone see a license in the git repo? I cloned it and did a text search for "license" and only see licenses in the deps. In main.m it says "All Rights Reserved".

</comment><comment><USER8> awesome job, the developer is also the developer of TaskPaper which is very simple task management app. I highly recommend all his software

</comment><comment><USER9> What did you do to get the key strokes to flash on the screen like that for your screencast?

<comment><USER10> Either Keycastr or Screenflow

<http://stephendeken.net/software/keycastr/>

<http://www.telestream.net/screen-flow/overview.htm>

</comment></comment><comment><USER11> Only for Mac? Shame :( Where's the Linux love :(</comment>


Flatdoc is the fastest way to create a site for your open source project. - <AUTHOR> http://ricostacruz.com/flatdoc/

<comment><USER2> Flatdoc seems useful and clean. I'm in the process of cleaning up & packaging Sinatra/Sphinx/email app for a semi-technical set of users and this seems a bit clearer and easier for them to navigate. Nothing replaces actually reading the whole README, but if you're not used to it I think it can be a bit intimidating for some people. I especially like the zero server side aspect, I'm trying to keep the dependencies for my app as minimal as possible for me.

</comment><comment><USER3> Looks cool! I've written a much simpler version of this (basically a shell script that calls make, with a separate makefile that calls pandoc) specifically for github pages: <https://github.com/lvh/typewriter>

This definitely comes with a lot more bells and whistles out of the box though :)

</comment><comment><USER4> Hey guys! I built this, let me know if you have any questions.

<comment><USER5> It took me a couple seconds to figure out there was content below the auto- resizing header image. I tried to click on both the "Documentation is easy" and "FLATDOC" text to see if either were links to the content before realizing there was a scroll bar.

I'd suggest not having such a large image, or at least resize it to only expand to a portion of the screen, to prevent confusion.

<comment><USER4> Good point—let me address that soon.</comment></comment></comment>


Swedish scientist advocates eating humans to combat climate change - <AUTHOR> https://bigthink.com/surprising-science/swedish-scientist-eating-humans-climate-change <comment><USER2> Ignoring obvious ethical and 'yuck' factors, this may reintroduce many forgotten diseases. For many parasites human body is a dead-end - they can't complete their complex life-cycle because nobody usually eats humans. Well, until now ;)

Also see Kuru disease [1].

Maybe this Swedish scientist should join forces with the Norwegian scientist, Dr. Jørgen Asbjørnsen, who has perfected a procedure that "downsizes" people, shrinking them down to five inches tall, in order to combat climate change.

One normal-sized human corpse can feed an entire village of miniaturized people ;)

In "The 100" SciFi series, eating humans serves dual purpose: population reduction and source of protein required for survival (they found out that plant-based protein wasn't sufficient).

[1] [https://en.wikipedia.org/wiki/Kuru_(disease)](https://en.wikipedia.org/wiki/Kuru_\(disease\))

</comment><comment><USER3> Obviously this has been met with a lot of pushback, _even_ here in Sweden.

I think the "the scientist"... uh, a professor of _marketing_ , is either trying to virally market himself, Greta style.. or there's something darker going on about him, at a very personal level... or both.

<comment><USER4> Read about the start of eugenics a hundred years ago.

There were people who really believed in instituting some really dark policies "for the greater good.

<comment><USER3> a) Yes, e.g. in Sweden. The same social democratic party that is currently ruling Sweden was deeply into eugenics before WW2.

b) I think this guy's motivation comes from a completely different perspective though. He's teaching at the [https://en.wikipedia.org/wiki/Stockholm_School_of_Economics](https://en.wikipedia.org/wiki/Stockholm_School_of_Economics) \- I can't really imagine anyone with social democratic tendencies wanting to work there. Given the current debate climate in Sweden my thinking is that he simply expected to be celebrated for having a radical solution to the climate change issue.

Or he just wanted to market himself. Or he is a cannibal.

Or a combination of the above things.

It will be interesting to see what the Stockholm School of Economics end up saying about him after the dust has settled.

<comment><USER4> Ah, you're right. He's an expert in marketing and gauging reactions.

It's much harder to see what his motives are then.

</comment></comment></comment></comment><comment><USER4> The single reason to avoid this is a slippery slope: When do we start having human livestock?

While I am a liberal, this is the side of liberalism that I detest.

<comment><USER5> > While I am a liberal, this is the side of liberalism that I detest.

Huh? What's liberal about this? Just the fact that it's a radical proposal? That's a pretty flat (and I'd argue, inaccurate) definition of liberalism.

<comment><USER6> It's not even radical. I mean, it's been originally penned as a _modest_ proposal ;)

[https://en.wikipedia.org/wiki/A_Modest_Proposal](https://en.wikipedia.org/wiki/A_Modest_Proposal)</comment></comment></comment>


Why Did Google+ Reject ABC's Profile But Pimp Out Mashable's? - <AUTHOR> http://www.betabeat.com/2011/07/21/google-plus-mashable-abc-radio-anger-boing-boing-brands-brand-pages-2011-07-21/

<comment><USER2> Google has a brand beta program. Perhaps Mashable applied and was accepted, and ABC either did not apply, or was not accepted?

Leo Laporte wrote about this, explaining why the TWiT brand is not on Google+ yet: [https://plus.google.com/101261243957067319422/posts/UYLdVpRq...](https://plus.google.com/101261243957067319422/posts/UYLdVpRqEvJ)

</comment><comment><USER3> Of course Google leaves the tech news sites' profiles up. They want the coverage to keep the product positioned in a good light with the publications that will keep it top of mind with the early adopters who will give it the momentum it needs to keep growing.

If they shut down those press sites, they'll pay less attention, write about "inflexible Google" and risk spoiling the current bromance between the early adpoters and Google+.

So while it is inconsistent, not "fair" and completely transparent in it's aim, it also makes total sense.

</comment><comment><USER4> "Of the 40 tweets since its launch, the Google+ Twitter account has given 14 links to Mashable."

The google+ twitter account has less than 1k follower, those links aren't worth much at the moment.

<comment><USER5> Is there any proof that @google_plus is an official account? It isn't a Twitter verified account, whereas @googleplus which has no tweets is a verified account.

<comment><USER4> Correct, i didn't notice, one more thing that show how the article's accusations are baseless.

(Downvotes? uh?)

</comment></comment></comment><comment><USER6> Mashable has renamed their account to be an individual (Pete Cashmore, the CEO).

"Mashable will be launching a new business profile and building it up from scratch once business accounts are available.

This account will continue to exist, but going forward it'll have my name and picture, and I'll continue to post here."

<https://plus.google.com/101849747879612982297/posts>

</comment><comment><USER7> In the Update it says Mashable has html code in its post but I don't see it? I only see the <i></i> tag in Clinton's post.

</comment><comment><USER8> Mashable reported that businesses would not be allowed on Google+ back in the first week of July.

</comment><comment><USER9> Looks like the Mashable Google+ account is gone...

<comment><USER10> I am getting a 404. I wonder if it is related to group of plussers that were reporting it for abuse.

</comment></comment><comment><USER11> "Mashable has a pony!"</comment>


In Search of the First Customer - <AUTHOR> http://mattsencenbaugh.com/in-search-of-the-first-customer/

<comment><USER2> Nice looking homepage, I think you describe the product fairly well. Did you speak to anybody before you built the product? I don't see myself using something like this, and I think FAQs is such a minor afterthought to most companies that I can't imagine them wanting to invest in something like this when they can just create the page themselves.

Maybe it's the FAQs thing which is the problem, but are you really doing anything more than other big companies do with forums?

You've come this far, so I assume it isn't costing you much to keep going. A few bits of advice I'd give are

1) bump up the focus on the demo. I completely missed it until I read that you did a video and went back looking for it

2) improve the look of the Faqs in the demo. You've done a nice job designing your website, why no design on the actual product.

3) in the demo video, don't expect people to read the video. The great thing about video is that the people get to hear from YOU! Make a personal connection by using your voice. If you have an accent that might be difficult to understand, or don't want your voice, go to fiver and get somebody to voiceover for you. A friend at sponsher.com did that, and their video turned out very well.

4) Show the interface your customers will be using. Show them what it is like to update their FAQs, maybe even call it support, so they understand it is a cost to them currently.

Hope that helps.

</comment><comment><USER3> It looks slick, but I can't bring myself to believe that a FAQ is so important to have (or difficult to create) that it needs to be outsourced to a third- party service such as this. When I read the pricing page, all I could see in my mind was "$4.99 per month for ten thousand pageviews", and that seemed pretty steep to me when creating a FAQ in an app is something that would be extremely easy to create during app development in the first place. Best of luck to you.</comment>


Why you should manage your energy, not your time - <AUTHOR> http://www.bbc.com/capital/story/20170612-why-you-should-manage-your-energy-not-your-time?ocid=twcptl <comment><USER2> The title is a little off, because what the article is basically arguing for is doing less because you will be more productive, rather than explicitly managing your energy levels directly.

Dilbert creator Scott Adams (yeah, I know, I know), wrote a book some years ago where he suggested that if you optimise for energy first, everything else becomes easier. Food, sleep and work choices should be around optimising your energy levels because without energy, everything else is harder. That makes more sense to me than managing my time.

Both viewpoints complement each other, and it's an excellent and worthy riposte to the death-march culture dominant in tech. We should lead the way on this more as an industry.

<comment><USER3> >Dilbert creator Scott Adams (yeah, I know, I know)

A broken clock is right twice a day... ;)

Edit: Lol, if you're downvoting me because you think that I'm a fan of him, you're wrong. Just pointing out that you should rather focus on a person's arguments :)

</comment></comment><comment><USER4> I've been doimg this for 4 years and it's great. I've not had a successful job in 4 years. It's easy to make plausible complaints about the relaxed uber productive guy who works like 8 hours a day and eats away from his desk and lifts consistently. Must be on drugs or trying to F somebody over etc, are things I hear. Tall poppy syndrome is real. I've left the last 2, one took me to a room and said I need to "be more excited"... maybe he meant get Adderall or something. Self directed work is much much better. Indeed, in 2018 with eng skills there are a million ways to do it.</comment>


Type Drummer – turn any text in a beat - <AUTHOR> http://typedrummer.com/ <comment><USER2> This is awesome, write a beat and then write code listening to it, kinda wish it also had an offline version</comment>


History of FORTRAN and FORTRAN II - <AUTHOR> http://www.softwarepreservation.org/projects/FORTRAN/ <comment><USER2> Wow. Fortran II was my first programming language.

<comment><USER3> Why did you switch to whatever you used next?

<comment><USER2> Back then, when you switched computers, you switched languages. The next computer I used was a TRS-80, and that ran Basic.</comment></comment></comment>


Ask HN: Why not openai hire using a kaggle competition? - <AUTHOR> Why openai hiring is not so open? <comment><USER2> The obvious answer is they want people to develop new things instead of plug together existing things.

<comment><AUTHOR> It does not look like you know what kaggle is? Try to contribute to a kaggle competition then you would know. By the way once Jeff Hinton himself participated in a kaggle competition in a team :)

<comment><USER2> I am familiar with kaggle, and from my reading of postmortems what I'm seeing is that winning is a matter of finding the right packages to use in the right ways.

This is the difference between theory and practice. If you care about practice, hire from kaggle. If you care about theory (as presumably openai does), then don't.

<comment><AUTHOR> TRY TO CONTRIBUTE TO A KAGGLE COMPETITION AND GET IN TOP 10 AND THEN GIVE YOUR OPINION. OTHERWISE JUST KEEP KALM AND BE HAPPY.

<comment><USER2> How many kaggles have you been in, and how well have you performed?</comment></comment></comment></comment></comment>