Ask HN: What tech talk does everyone need to see? - <AUTHOR> Any lecture, TED talk or anything that one's talk that changed the way you think and you feel everyone needs to see? <comment><USER2> I really enjoyed the 'Four Algorithmic Journeys' Lecture series by Stepanov. (actually theres only 3 journeys) It is a combination of teaching your some basics of developing (generic) Algorithms, basic abstract algebra, and some (not always super accurate) history of mathematics.

1\. The first journey starts with an ancient Egyptian multiplication algorithm. When we think about what is required for it to work, we are immediately lead to the axioms of a semi-group, and various examples are considered.

2\. The second journey starts with division, and then Euclid GCD algorithm. We extend it to polynomials and beyond, and are led to the definition of a ring & euclidean domain. A surprising application to permutation algorithms is given as well!

3\. The third journey is about the peano axioms and has a bit of logic and compatibility theory, then the peano axioms are weakened a bit to produce the notion of an _iterator_ from programming.

Abstract algebra really seems like a much more relevant 'mathematics of everyday programming' than the usual subject CS students take, which seem to appear in domain specific technical work. By contrast, abstract algebra is to some extent elementary arithmetic and algebra, but extended to _non-numerical data_ , of the kind that appears all time in general-purpose computing.

[https://www.youtube.com/user/A9Videos/playlists](https://www.youtube.com/user/A9Videos/playlists)

</comment><comment><USER3> The Mother of All Demos.

I'm tired of talks. I would much rather most hackers organize their thoughts and set them down for posterity in the form of essays, white papers, and the like, rather than succumb to the temptation of listening to oneself speak. If one must present, either set it down in written form also (slides don't count), or have something so mindblowing to present that no writing can do it justice (as Engelbart did). Otherwise, making me sit through a video instead of reading what you're trying to say is simply wasting my time.

The curse of "documentation by talk" \-- which I hope more Hackernews will join me in excoriating -- has become particularly pernicious, especially among millennial and younger programmers.

<comment><USER4> ¿Porqué no los dos?

Sometimes I like to listen to a talk when I'm doing something else. Busy coding, listening to someone chatting on a topic, and when something really piques my interest I can temporarily put aside what I'm doing.

Apart from that, there's clearly an audience for these talks. Oftentimes they take pages and pages of undecipherable technical documentation and put it into an easy-to-swallow form such that people can twig about things that they didn't know interested them.

Excoriation, that's a bit far and, if I might say, a little elitist. There's place for long-form written content and there's place for presentations.

</comment></comment><comment><USER5> Richard Hamming: You and Your Research

It's on picking the right problems. When I heard him give it I was shocked that he criticized Einstein for working on a unified field theory (of course unlike me, he was actually _qualified_ to offer such criticism). His point for that example was that the necessary tools to attack the problem hadn't yet been developed so it was a fruitless endeavor. While many very important problems _are_ tractable.

[https://www.youtube.com/watch?v=a1zDuOPkMSw](https://www.youtube.com/watch?v=a1zDuOPkMSw)

He gave this talk several times (I heard it at NASA in 84). Here's a good transcript: [http://www.cs.virginia.edu/~robins/YouAndYourResearch.html](http://www.cs.virginia.edu/~robins/YouAndYourResearch.html)

<comment><USER6> Fascinating indeed; thanks for sharing!

</comment></comment><comment><USER7> Rich Hickey has some fantastic talks: [https://changelog.com/posts/rich- hickeys-greatest-hits](https://changelog.com/posts/rich-hickeys-greatest-hits)

My favorite is [https://www.infoq.com/presentations/Are-We-There-Yet-Rich- Hi...](https://www.infoq.com/presentations/Are-We-There-Yet-Rich-Hickey)

</comment><comment><USER8> What Bodies Think About: Bioelectric Computation Outside the Nervous System talk by Prof. Michael Levin - [https://www.youtube.com/watch?v=RjD1aLm4Thg](https://www.youtube.com/watch?v=RjD1aLm4Thg)

</comment><comment><USER9> Bret Victor has some really inspiring ideas, inspired to some extent by Alan Kay.

Media for Thinking the Unthinkable: [http://worrydream.com/MediaForThinkingTheUnthinkable/](http://worrydream.com/MediaForThinkingTheUnthinkable/)

The Future of Programming: [http://worrydream.com/dbx/](http://worrydream.com/dbx/)

A powerful idea about ideas [https://www.ted.com/talks/alan_kay_shares_a_powerful_idea_ab...](https://www.ted.com/talks/alan_kay_shares_a_powerful_idea_about_ideas/)

<comment><AUTHOR> Wow! These are indeed great content.

</comment></comment><comment><USER10> Google Tech Talks Personal Growth Series: Dr William Dement on Healthy Sleep and Optimal Performance (2008-09-23)

[https://www.youtube.com/watch?v=8hAw1z8GdE8](https://www.youtube.com/watch?v=8hAw1z8GdE8)

</comment><comment><USER11> Pranav Mistry: The thrilling potential of SixthSense technology</comment>


A successful Bitcoin double spend – USD 10000 - <AUTHOR> https://bitcointalk.org/index.php?topic=152348 <comment><USER2> OK, so it's not hard to imagine double spends happening during a fork. This incident proves that as long as there is at least one provider willing to exchange BTC automatically, and is unaware of a fork in progress, then one can exploit the fork and double spend. This is bad, and should be fixed with a technical solution if possible. People will be looking for this in the future.

Here's the scary thing revealed by this bug however: Causing (intentionally) a fork is WAY easier than I thought!

You don't need to control a majority of mining. All you need is to craft a block such that some large % of the mining clients will fail on it. This could be a failure at any point in the bitcoin software. If there is a size limit discrepancy between versions (in this case the DB), or maybe a unicode parsing bug in some library used, or whatever. It doesn't need to be an exploitable code bug. It just needs to cause some % of mining clients to fail and reject a particular block.

It's relatively easy to find a bug that causes some software to crash. Most of the time these bugs are minor, and don't allow any remote execution or anything, so programmers don't necessarily worry about them most of the time. But in bitcoin they could potentially cause a blockchain fork! Which could be exploited, as this incident proves. This seems to lower the bar considerably to exploit BTC.

<comment><USER3> You would need to find a very localized, specific class of bug in a piece of software that has been highly scrutinized over many years by cryptography and security experts who know there are millions of dollars at stake, and this bug would need to affect parts of the P2P network but not others, keeping in mind everyone voluntarily chooses which software to run. I think calling it "relatively easy" is a bit of a stretch.

<comment><USER4>
      You would need to find a very localized, specific
      class of bug in a piece of software that has been
      highly scrutinized over many years by cryptography
      and security experts

Couldn't you monitor the version control system trunk for patches fixing bugs in the critical section of the code, work out the bug based on the fix, and exploit it before everyone had their systems patched?

      everyone voluntarily chooses which software to run.

In things like operating systems heterogeneous software is often seen as a defence against bugs - but in this instance, wasn't it the differences between the 0.7 and 0.8 clients that triggered the split in the blockchain?

Surely the most secure thing is to be on the most widely used client?

<comment><USER3> Clients emit a warning in the GUI (and IIRC disable the RPC interface, which would be the fail-safe for merchants) when this kind of issue is detected (namely, conflicting blockchains of significant length received from different peers). So the most secure thing would be to be connected to a high diversity of peer nodes, and to pause transaction processing and check the news when you get a warning.

</comment></comment></comment></comment><comment><USER5> I've actually thought about putting some play money in Bitcoin, but these stories prevent me from doing so.

This guy is (apparently?) unhappy, and he's knowledgable enough about bitcoin to know to inspect forks and vins and OKPAY transactions -- and then to make two double (?) spend transactions.

If this guy is getting screwed, I'd surely manage to lose twice my investment somehow.

<comment><USER6> It looks like this possibility was known and broadcasted to merchants during the maintenance window two days ago. It's kind of like the Rails mass assignment or security bug: merchants are just going to have to stay on top of Bitcoin issues.

[http://www.reddit.com/r/Bitcoin/comments/1a51xx/now_that_its...](http://www.reddit.com/r/Bitcoin/comments/1a51xx/now_that_its_over_the_blockchain_fork_explained)

      [Submitted March 12]

      It's DanielTaylor again and I wanted to create a simple yet
      intuitive post to explain the folks out there what happened
      a couple of hours ago. This might also be useful for
      bloggers or journalists who might be going to write about
      it in the following hours.

      TL;DR

      The programs that read the blockchain, the bitcoin ledger,
      disagree.

      Due to a bug in 0.7, it says that HIS is the correct
      version of this ledger and 0.8 says that HIS is the correct
      version.

      Miners (the people who add pages to the blockchain) are
      told to switch to the 0.7 program so that this version
      gains more support and the other one is discarded.
      (orphaned).

      Regular users are not affected. Their transactions are
      included in both ledgers and don't need to change any
      programs.

      During that time, though, there is a slight chance of a
      double-spend ocurring. That is why people recommended
      merchants and exchanges to wait until there is one single
      blockchain again before processing purchases and
      merchandise.

      ...

      What's a double-spend?

      This is the reason why some merchants and exchanges stopped
      processing incoming bitcoins for a couple of hours.

      The bitcoin network prevents people from spending the same
      coins by mantaining this unique ledger, the blockchain. But
      now that there were two of them, it was theoretically
      possible to broadcast two different transactions with the
      same coins and still get some confirmations.

      With some luck, someone could sneakily sneakily* buy a
      television to a merchant who was reading the 0.8 ledger and
      have the transaction confirmed. At the same time he could
      have sent the same coins back to himself and, with some
      luck, have the transaction confirmed on the 0.7 ledger.

      What happens is that, in the end when 0.7 wins, the thief
      will have the television and his bitcoins. Remember that
      there were two different versions of the same coins!

      This is not something easy to do and requires a lot of luck
      because the blocks mined (the pages added to the ledger)
      must be mined precisely in the correct order. But still, in
      this situation it was easier to pull off and so it was
      recommended for merchants and exchanges to temporarily stop
      processing incoming transactions.

      Now the situation has resolved and the blockchain keeps
      growing happily, page by page, block y block.

<comment><USER7> Calling what happened the other day a "maintenance window" is about as truthful as describing a fire that burns your house as down as a "redecorating party".

</comment></comment></comment><comment><USER3> This was only possible because of an obscure bug in a database library used by the reference client, which the developers are in the process of migrating away from. The latest 0.8-beta release inadvertently caused a size restriction on some part of the block structure to be loosened. Since the majority of the network's mining power had upgraded, older clients wouldn't accept these blocks, and the blockchain diverged, with 0.7 and 0.8 each on a different fork, seeing an inconsistent view of recent transactions. Miners were quickly contacted and asked to downgrade to 0.7, and once the 0.7 chain caught up with the 0.8 chain, the network resolved the problem and the view of transactions became consistent again.

One of his transactions was on the 0.8 chain (during its short life, and the other was on the 0.7 chain. So it's better to think of it as a transaction being invalidated rather than double-spent, because in the end there were no outputs that didn't come from an input.

This was only possible to to extraordinary circumstances, and as long as the majority of the network is running software that plays by the same rules, this kind of thing isn't possible.

<comment><USER8> >as long as the majority of the network is running software that plays by the same rules, this kind of thing isn't possible

Isn't this against the idea of decentralization?

<comment><USER9> HTTP is decentralised

<comment><USER10> Anything of value on the end of an HTTP transaction has some centralization, such as bank accounts, Amazon.com, or other things that involve real money.

</comment></comment></comment></comment><comment><USER11> There are people saying that this shouldn't happen again, etc. but it will. Perhaps not in this exact form, but in some form.

And, this was an accident. As we know, there are many people with the ill- intent and incentive to look for or create exploits 24/7. Saying this won't happen again is like saying "Ok, this is the LAST FireFox patch you'll ever need. Really. We've thought of everything."

This is a game of cat and mouse, similar to one I've involuntarily had to play with fraudsters in my business over the years, and we've all been involved with via viruses, software patches, etc.

I am not sure why we continue to have such supreme confidence that we have discovered something even approaching bulletproof here, when history has taught us that we should believe anything but. It's partly the developer mindset, I suppose. We all tend to believe we've thought of every path and that our code is bug free, until someone encounters a bug that is.

We need to abandon that overly optimistic mindset and look for solutions that accomodate the inevitability of this happening again, whether they be process, technical, or both.

This might include the notion of a central registry on the network, which can help to resolve/identify potential forks, etc. While I know the notion of decentralization is sacrosanct in the BTC community, it is really a fallacy that there is not centralization now. The "core team" is actually playing that role, albeit manually, and what this issue shows is that it may well be a necessary role. I am not talking about doing away with the P2P nodes or controlling them centrally, just acknowledging that pure P2P has strong merits, but also introduces vulnerabilities.

This incident was containable and manageable. In the future (and especially at scale), it may well be infeasible for such manual intervention to clean up the mess. Rather than all convince ourselves that we have now thought of everything, we need to assure ourselves that we haven't and never will, then use our collective brainpower to build in the kinds of safeguards and redundancies that will help avert catastrophe when the inevitable happens.

</comment><comment><USER12> You know the next time something like this happens (and, this is software, it _will_ happen), there will be a _lot_ of people trying this attack. It was theoretical before with "enough effort"; now, it is known to be easy.

And the problem will get harder to manage as BC becomes more popular. They could restrict damage because the ecosystem is still small, but when if there are millions of merchants? The alternative is centralized processors, which doesn't make BC that much better than cash.

<comment><USER13> shard the currency

</comment></comment><comment><USER14> Can somebody explain without the technical jargon?

<comment><USER15> Bitcoin's security is based on the idea of a "block chain", which is sort of a mutually agreed-upon list of transactions. As long as all participants in the Bitcoin economy are using the same block chain, then double-spending money is (for all practical purposes) impossible.

It was recently discovered that a change in Bitcoin 0.8 caused an entry in the block chain that old versions can't process. The old versions, unable to verify the 0.8 block chain, automatically started their own block chain based on the last block they could deal with.

      0.8-readable block chain continues
      |
      ---> |
           |  | <- 0.7-readable block chain splits off
           | /
           |/
           *  <- block that old versions can't process
           |
           |
      (history)

For technical reasons, it was decided that the 0.8 block chain would be abandoned, and all clients should switch to the "forked" block chain that was accidentally created by old clients.

      dead    | <- 0.7-readable block chain is now "official"
      |       |
      ---> _  |
           |  |
           | /
           |/
           *  <- block that old versions can't process
           |
           |
      (history)

This causes a problem, because until that switch happens, a person could issue a transaction to a 0.8 client that would be accepted only by clients running the "bad" 0.8 blockchain.

The OP states that he has done this successfully. He submitted a transaction to a BTC<->USD service running 0.8. The service, checking the bad block chain, thought it had received Bitcoins and therefore sent him USD. But his transaction was never sent to the "official" block chain, so according to the rest of the Bitcoin world, he still has his original Bitcoins.

This is significant because prevention of double-spending is a fundamental feature of Bitcoin. If it can be bypassed, then the entire Bitcoin economy is endangered.

<comment><USER16> What happened to bitcoins 'mined' on the 0.8 chain in the meantime? Did people lose their currency?

<comment><USER17> Good question. I know that any transactions in forked chains that have been orphaned are included as transaction if it hasn't been double spent on the other chain.

But what happens to the mining reward, I don't know. Anyone?

<comment><USER18> The mining rewards on the 0.8 branch went _poof_

A mining reward is actually just a special transaction that the miner includes in blocks they find that let them pay themselves out of thin air.

So, the mining reward transactions on the 0.8 branch only exist on that branch, since the 0.7 chain had its own reward transactions made out to its own miners. When the network reached consensus on the 0.7 branch, money that miners on 0.8 thought they earned just disappeared (other clients stopped acknowledging their reward bitcoins).

Some pool operators lost out too, since they paid people who found blocks on the 0.8 branch.

<comment><USER19> How would a pool operator lose? They would pay out on the 0.8 branch, in bitcoins. Do pool operators pay in real-world currency like USD?

<comment><USER18> They do indeed pay in bitcoins. The payment transactions during the fork weren't lost, however-- they were confirmed on both branches of the chain. The only transactions that disappeared were the block reward transactions on 0.8.

If pools paid miners using bitcoins from their own mined blocks, this problem would go away-- that's not a bad idea!

edit: I asked -- some pool operators apparently already do this. The ones that lost out are the ones that don't.

</comment></comment></comment></comment></comment></comment></comment><comment><USER20> There was a visible fork of the blockchain - a clearly exceptional condition showing that the network did not work correctly at that moment. All merchants should stop accepting payments for duration of that - this can easily be automated.

<comment><USER21> Forks of the blockchain happen all the time as a natural side effect of the distributed nature of blockchain calculation. How do you propose that a merchant detect a pathological fork?

If you're going to tell me that it depends upon the length of the fork, then you'd better be waiting at least that many blocks before you verify a transaction.

<comment><USER22> this is already built into the protocol.

<comment><USER21> what is 'this'?

If you mean waiting for x validations before accepting a transaction, yes -- but do you really think that it's practical to wait 30 minutes before delivering goods for a transaction? That's going to be a really long time spent staring at the little spinny thing over a line of text saying "verifying your payment" ...

<comment><USER22> It's completely reasonable. Bitcoin is not a good candidate for a medium of exchange despite what some adopters will tell you. It is more like virtual gold. You can see in the real world that mediums of exchange and stores of value aren't the same thing because the properties that are desirable in one are not desirable in the other.

<comment><USER23> And there's another electronic currency system coming online now that should handle instant transactions well: ripple.com Its a new incarnation of a relatively old idea, but the good thing about the new ripple is that transactions are (and should continue to be) nearly instant. And it is very, very easy to trade bitcoin for ripple using the ripple system, and should get even easier. So I imagine a future where value is stored in btc, and spent using ripple (in any of the supported currencies).

</comment></comment></comment></comment></comment></comment><comment><USER24> <http://pds.ewi.tudelft.nl/~victor/bitcoin.html>

There is a plethora of truly wonderful effects possible once the transaction chain is forked. The guy did the simplest thing possible with the least effort invested after the chain forked on its own, basically. In case we had several BitCoin codebases operating in the wild, such forks would be too easy to trigger.

Key point: the technology is crap but the demand is huge.

</comment><comment><USER25> Should be noted that the money was returned.

<comment> w-ll I might be wrong, but it wasn't returned, but that doesn't matter, all the mining ops switched to the 0.7 chain, and the transaction is now in limbo (for lack of a better term); the forked 0.8 chain.

<comment><USER26> He paid it back, he said something about it in the irc channel this morning.

Still, it's an exploitable vulnerability. Very difficult to make the conditions happen, but if they happen naturally it's something that can be taken advantage of. It'll need to be addressed in one way or another.

<comment><USER27> > he said something about it in the irc channel

What IRC channel out of curiosity?

<comment><USER26> #bitcoin, I think. That or #bitcoin-dev.

</comment></comment></comment></comment></comment><comment><USER28> Yet the price keeps rising...

<comment><USER29> Indeed, every time a negative story comes out, proponents always talk about the MtGox price and how that indicates how strong BitCoin is.

BitCoin's raison d'etre isn't for conversion to fiat currency - it's to become an alternative to fiat currency. I'd love to see a breakdown of how much has been converted into fiat currency vs. how much has been spent for goods/services. Likely, I bet it's well over 100:1. So what has happened? BitCoin is helping put more fiat currency in people's hands as it grows, which is (theoretically) being spent on iPhones and bubble gum, strengthening the value of fiat currency in general.

<comment><USER30> Even if Bitcoin fails at everything except conversion into and out of fiat currency, it's still a major win. It significantly undercuts existing services for international payments while also circumventing currency controls, AML regulations, and censorship.

</comment></comment></comment><comment> marco-fiset I was looking forward for BitCoins to be hacked. This tells me it's not secure enough yet.

</comment><comment><USER31> I submitted the exact same a day ago.

<https://news.ycombinator.com/item?id=5365083></comment>


Facing criticism in Entreprenuership - <AUTHOR> http://drcpchinmaya.blogspot.in/2013/12/be-spongebob-during-criticism.html

<comment><USER2> _Articles cite qualities such as not being able to work for someone, being innovative, not being able to take instructions and not being able to digest feedback and criticism among others_

I'm not sure which articles the author was reading, but if those are the qualities of entrepreneurs being listed, I wouldn't put much value on those articles at all. Digesting feedback and criticism, at least, are very important core traits of successful entrepreneurs and a key part of building the right thing. Not being abke to work for others and not being able to take instruction may be the reason many people look to entrepreneurship, but are hardly traits that make one _successful_. I'd argue that it likely makes it harder to be successful.

Being innovative is important, can't argue with that, but knowing when to be innovative and when not is something that often cones from feedback. Often innovation is actually a distraction.

Then again, the author says it's a list of "how to know you're an entrepreneur" and maybe a large number of entrepreneurs (especially the less successful ones) do indeed exhibit these traits.</comment>


10 Million hits a day with Wordpress using a $15 server - <AUTHOR> http://www.ewanleith.com/blog/900/10-million-hits-a-day-with-wordpress-using-a-15-server <comment><USER3> As someone who worked as lead dev for a blog network that does 10M+ visitors a month, here's the thing: if you've gotten your blog to 10M hits a day, you likely have a massive amount of content (we had about 1M posts over 5 or 6 years and about as many comments); that is, far too much to get into cache on a $15 server. Every page gets cached, every gallery page gets cached (if you've got photo galleries), every comment page gets cached and all of those have objects/actual DB rows that get cached as well. With that much content, the GoogleBot alone will kill you if you're not careful.

These are all great tips to help you scale, but unless you've got a very small site WP site that is also doing 10M hits a day, there are many more complications. Once I have a little more spare time, I'll have to blog about some other solutions we've come up with.

<comment><AUTHOR> Of course, all this really lets you do is survive a swarm of people from (for example) here, digg, a tweet meme, stuff like that, which will direct everyone at one single page on your site.

But I think that's the most likely cause of that kind of traffic on a small cheap VPS, as anyone running a big site without clustering is just being silly :)

<comment><USER3> Yup, that's fair. And there are actually ways to scale WP beautifully with a small amount of servers (we're using less than 5 servers to handle our 10M visitors a month and content archive). Again, I keep meaning to blog about it, I just need to find the time.

Anyways, I'm all for articles like this that help optimize WP sites and get rid of the stigma that WP doesn't scale without cost. Thanks for writing it.

<comment><AUTHOR> Thanks :)

Hope I see a blog post from you about it sometime soon, I think the details around that kind of stuff are far too hard to discover for people trying to learn about it.

</comment></comment></comment></comment><comment><USER4> This feels a bit like my "9 million hits per day" article from a while back: <http://tumbledry.org/2011/08/31/9_million_hits_day_with_120> & <http://news.ycombinator.com/item?id=2945185>

Now, with 11% more hits! :)

<comment><AUTHOR> Yeah but my 11% extra cost me 400% more RAM, so you probably win :)

I knew I'd seen a similar post in the past, but couldn't find it.

</comment></comment><comment><USER5> TL;DR - Vanilla ubuntu, configure firewall, install nginx, install wordpress, turn on wordpress caching, install and configure varnish.

<comment><USER6> Isn't there any kind of static generator for Wordpress? I'd expect a static wordpress + nginx would be sufficient to handle quite a serious load.

<comment><USER7> most of the caching plugins for WordPress will generate static html files, or static html stored in memcached, which can further be written to disk using nginx' fastcgi_cache, or something like varnish.

</comment></comment></comment><comment><USER8> A blog is the most simple to scale application, just one step after the _static_ content. The fact that wordpress has traditionally been not very scalable always used to puzzle me...

<comment><USER9> As a PHP dev with ~100 WP installs under my belt and plenty of customization, I think I'm qualified to say that WordPress isn't written to be scalable. It's actually kind of crap. Many of the things it does to make writing plugins easier for newbies are Very Bad Things in PHP. WordPress is a memory hog, to the point that foreaching over query data in the wrong way can cause you to hit the memory limit, even if just unwinding your foreach into a copy/paste wouldn't. The memory leaks are somewhat nonsensical, and they make scripting with the WordPress API a minefield.

I'm not an expert on WordPress internals, but the scene is definitely ripe for a replacement simple due to the quality of the API. WordPress has been good enough for most people for a long time, but it has many weak points.

<comment><USER8> IMHO the problem is that's old technology, who used to write free software N years ago is now busy doing startups ;) So the "next generation" of free software web stuff is missing in part.

</comment></comment></comment><comment><USER10> The hallmark of Wordpress is ease of use. That's why you can spin up a blog right on their site, and they have a backend designed by Happy Cog. Wordpress is blog software for the technically illiterate.

And then I take a look at this blog post that lists all the incantations necessary to scale Wordpress to reasonable scale and I wonder _why_ anyone should do this.

If you're setting up your own server, installing nginx, configuring PHP, and doing automated load testing, maybe you should also consider rolling your own software or using a different package that isn't supremely bloated.

<comment><USER11> The thing is this - configuring a server is one set of problems, building a decent CMS database/backend is another set of problems, and building a decent browser-based UX for content authoring is a third set.

Very few people have all three of these skills, and it's fair to say that 2 and 3 are not yet solved problems. Rolling your own CMS for any non-trivial purpose is always something that sounds like a good idea until you try it, and then you start hitting all of the incredible idiosyncrasies and speed bumps that other CMS have already solved, even if they've done it poorly.

I'm not exactly defending Wordpress and its lousy code, but in my experience with publishing CMSs, if it's powerful enough to flex to non-trivial needs (Modern WP, Drupal, Django, CQ, etc), then it's probably going to feel like a bloated/complex mess to a programmer, because of all the nuances in the problem space.

Having worked on both sides of this one, i'd rather solve the 'scale this crappy software' problem than the 'Build a useable UX solution that does everything we need and works on mobile and in IE8' problem.

<comment><USER12> > _if it's powerful enough to flex to non-trivial needs (Modern WP, Drupal, > Django, CQ, etc), then it's probably going to feel like a bloated/complex > mess to a programmer, because of all the nuances in the problem space._

This is a good rule of thumb, but I have found one shining exception, and it is called ProcessWire. If you've never tried it, I highly recommend a look. It's a CMS that essentially offers you a blank slate and a set of simple, powerful tools that let you mold it into something else quite quickly.

<comment><USER13> +1 for ProcessWire. I've been playing with it for a day now and I love its flexibility.

</comment></comment></comment></comment><comment><USER14> FWIW: Amazon's Micro instances will _burst_ to saturate unused CPU cycles on the host machine up to a hard-capped limit before being choked to death by the hypervisor.

Had he run the Blitz test for 10 mins or more you would see the spike in traffic up, beyond what you think a Micro should sustain, and then it plummet to near 0 for a disturbingly long period of time[1].

If you are unlucky enough to have a Micro on a host that is fairly saturated, the performance you get is untenable.

Micro's are not "smaller than" Smalls -- they are a different type of monetization production from AWS allowing you to pay cheaply for little bursts of underutilized hardware.

There is _no way_ (none... not possible, zero) that a Micro would be able to provide the bandwidth and CPU power to host a realistic site doing 10 million hits a day even if everything was straight from RAM.

Read through the EC2 forums for any length of time and you'll frequently find people coming in with reports of their machines "stopping" or "crashing, and totally inaccessible" for minutes at a time with a 100% ST ratio; every time it is a Micro that has been hammer for a bit either through benchmarking or use before the hypervisor puts it in a full nelson and brings it down to the point that SSH connections to the host cannot even be maintained.

\-- I would also point out that not only is the CPU time allocated in bursts for a Micro, but the bandwidth is prioritized behind every other instance type (unless you were using a CDN, this would make hosting a typical wordpress site sluggish at best from a Micro -- and again, doing 10 mil hits a day... not going to happen in reality) -- yes you can offload all your graphical assets to a CDN, but now this article is about a $15/mo server and a $4217/mo CDN bill which is a very different article.

Additionally, if you need to use EBS at all in here, the story gets even worse with Micro's (even using something like RDS which requires network I/O in addition to hosting site content is all going to collapse on itself within the first 5 mins of the site's life with traffic like that).

All that said, the tips in the article are great. I only mean to clarify expectations with the use of Micro's. A whole swarm of them grinding through a work queue in random order is great; using them as the backbone of your web presence will have pain points. (Yes you can put 20-50 of them behind an ELB, but at that point why not run a handful of Mediums or a few Larges).

Anyone with a Blitz.io account, please feel free to setup this exact configuration and run the benchmark for 1hr with the same load to verify the meltdown.

[UPDATE] Ewan, I am not knocking your article, I wouldn't expect most people to be familiar with the ins and outs of every cloud provider. The tips and techniques are great regardless of the actual performance on a Micro (and applies to anyone trying to scale WordPress). Just wanted to clarify for anyone getting excited that they can now run their Fortune 500 website on a single AWS Micro that there are nasty surprises lurking just under the surface.

[1] [http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/co...](http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/concepts_micro_instances.html)

<comment><AUTHOR> No problem, no offence taken :)

I only picked the micro because it's cheap, and AWS let me fire one up, build the config, break it, trash it, and start again, all in rapid succession.

One thing though, this configuration doesn't actually need much real CPU or disk resources - it's pretty much all memory, and as far as I know, AWS doesn't overcommit RAM. this means it should be "relatively" stable. The CPU usage is at around 5-10% even at the peak.

Personally, my own blog runs on Linode, because I think EBS is broken, but each to their own :)

<comment><USER15> EC2 may be a bit slow/clunky but at least it isn't a security nightmare like Linode.

Months after and they still haven't said what happened or what they fixed during the Bitcoin theft fiasco.

I wouldn't trust them again with ANY site (former customer).

<comment><USER16> > _Months after_

It's March 31. slush's post was on March 1.

</comment></comment></comment></comment><comment><USER7> Great post, the 10 million hits is a bit misleading, WordPress is a cookie monster, so your default configuration of Varnish is going to have issues, when people start adding comments etc.

WordPress itself isn't the scalability problem anymore, it's usually how the blog is being used, and when the db needs to be interacted with.

At the same time, a lot of our customers use WordPress as a CMS, and have static home pages and sub pages, which we serve in a similar fashion.

<https://github.com/zippykid/php-varnish> the plugin there, will be handy when you actually start making blog posts.

</comment><comment><USER17> I think this article title is misleading. It's not 10 million hits a day on _Wordpress_ , it's 10 million hits a day using _Varnish_ to a single URL. Might as well say you can serve 10 million hits a day to a static file served out of memory.

</comment><comment><USER18> This is good but let's look at from slightly different perspective. The author (Ewan) is so good, so I'll assume his hourly cost runs anywhere between $50 to $80 an hour on sys op.

Taking the least denominator - $50, if he spends just 5 hours a month trying to keep his server alive, active, update and making sure it's not down, responding to it if anything happens - that will cost him $200 + $15 per month to maintain his setup.

If you're about running a well maintained popular Wordpress powered blog, why go to the extend of doing it yourself when you can spend a little more, let the people who runs such services handle it. That way, you can keep doing your more productive work.

Unless, of course, he does nothing else but earns via the website, does it full-time and is happy spending his 4-hour a week on running the server.

<comment><AUTHOR> You're absolutely right (except about me being good, I don't know about that), and if someone asked me about hosting Wordpress for a serious business, I'd probably just tell them to use WPEngine or similar.

But as a learning experience for me, I think this has been pretty priceless, and I enjoy it, bizarre as that probably sounds to the people who don't read HN :)

</comment></comment><comment><USER19> While I agree with the main point of the post(optimization, caching)the title is a bit of an exaggeration.

On a normal website 10M hits will not be evenly during the day this example hits are only an avarage of 10Kb, and the number of concurrer users are only 250.

Also the test seems to be done on a new wordpress installation. The more content you have, the bigger the database,the longer the comunication with your DB, the bigger the cache, ect...

In a real world scenario you proabbly would need something more than a $15/month virtual server to handle 10M hits in a single day.

Still optimization is always a good thing.

</comment><comment><USER20> We're including a tool in Ubuntu called juju [1] that will enable us to ship cool setups like this to users.

We did something similar for Wordpress [2] and plan to ship it in 12.04.

I'd love to bring you on board so we can compare configs and make it even better. Also rkalla is correct, micros are great for prototyping but you'll need at least smalls for production. The nice thing about micros is that you can set it up, tweak, and then later reboot them into larger instances, so they're nice for playing, but I wouldn't run a live site on them.

[1]: <http://juju.ubuntu.com>

[2]: [http://www.jorgecastro.org/2012/03/18/redeploying-omg- ubuntu...](http://www.jorgecastro.org/2012/03/18/redeploying-omg-ubuntu-onto- the-cloud-with-juju/)

</comment><comment><USER21> What's the point of serving content from database by default if you have to set up all kinds of caches just in case your blogs happens to be on HN, Reddit, your local news paper, etc?

Shouldn't database be more like an add-on, not the core? Sure search is something that is hard to do with flat files, but everything else should just use files. It might be a good idea to save all the data also to DB, just in case you want to do some markup changes (which happen like once a year or something). But querying DB every time someone visits you blog? Crazy.

Also, when you don't need a database, backing up your whole site and/or transferring it to another host is a lot easier.

More complex sites than a normal personal blog is of course a different thing.

</comment><comment><USER22> > _echo "deb<http://nginx.org/packages/ubuntu/> lucid nginx" >> > /etc/apt/sources.list_

Shouldn't that be "oneiric" since you're using Ubuntu 11.10? Or does the nginx team compile everything statically so it works no matter which version you choose?

I'm also a bit puzzled with your decision to make PHP run as the "nginx" user. You probably did this to match the username that the nginx debs use (Ubuntu's default package uses www-data), but what's the benefit of matching users there? If you're going to change it anyway, why not make PHP run as "php", for example? Some might even say that running both PHP and nginx under the same user reduces security.

<comment><USER23> If you've got your php code and static assets in the same repo, then it's generally easiest to have php and nginx run as the same user that owns the files in that repo. php needs access to those file to parse/run them, and nginx needs access to those (static) files to serve them.

Of course, you can manage this in other, more security conscious ways (move static assets elsewhere, use group permissions, etc.) but this is probably the simplest.

<comment><USER22> Most files and directories have 644/755 permissions by default, which means they can be owned by any user and still be accessible (readable) to any other user on the same system. What really matters is who can _write_ to those files and directories, and there's no reason for anything other than "wp-content" to be writable by the web server. WordPress blogs get exploited all the time, so a bit of paranoia can't hurt.

</comment></comment></comment><comment><USER24> Kudos for the step-by-step benchmarking. However, ideal situations and no business requirements can give you pretty impressive statistics. The most load producing elements of every Wordpress site I've worked on have been necessary to pay the bills, allow a reasonable workflow for content creators, or provide good user experience.

When you load in a sizable theme, warm up the DB with thousands of posts, tens of thousands of comments and users, and have requirements of short TTLs for new stories to be posted, comment administration, etc, and real world traffic... the picture looks a little different.

</comment><comment><USER25> ProTip: Don't run your production MySQL server on a micro. Micros are great for mail relay servers, load balancer (no static assets), or dns.

</comment><comment><USER26> Or leverage a template cache on (insert any framework here) and get 2,000+ hits a second on a Linode, or 172,800,000 hits day.

<comment><USER27> Probably closer to 20,000 hits per second with Nginx configured correctly and if the framework doesn't impose too much overhead. Alternatively, use ESI with Varnish and the HTTP Cache spec and get 10,000+ hits per second on a relatively dynamic website (read: micro-caching).

<comment><USER26> Indeed, 1M per day may sound like a lot but it's really not that impressive.

</comment></comment></comment><comment><USER28> Well done on the article, man -- very detailed.

I would say you should dump the caching plugin, however, and just do everything it's doing in nginx itself. My mix also adds CloudFlare as a caching system:

[http://danielmiessler.com/blog/how-to-run-a-wicked-fast- word...](http://danielmiessler.com/blog/how-to-run-a-wicked-fast-wordpress- instance)

<comment><AUTHOR> Thanks, will take a look at your post later :-)

</comment></comment><comment><USER29> tl;dr - <USER2>

The only way to make WP "fast" is to make it nearly completely static.

Get a half dozen people working admin area and your server will cry.

<comment><USER26> Though people on WP doing admin, if you have 6 people, are unlikely to be doing things every second - most of it is writing stuff, looking at things, so even if they were doing a click every second that's still 6 requests per second that for even completely non-cached dynamic stuff is completely irrelevant.

</comment></comment><comment><USER30> Assuming you are serving static content, a much easier method is to use a CDN for all your assets (including the WP generated pages). It might cost a little more for big spikes, but it makes you completely immune to almost any amount of traffic for very little effort.

</comment><comment><USER31> Wish there is an Amazon AMI with your config... Much better than doing things from scratch :)

<comment><AUTHOR> Just run The Ubuntu ami ami-baba68d3 and follow the instructions, will only take 10 minutes :)

</comment></comment><comment><USER32> Awesome, Wordpress promotes bad practices in multiple spaces now. Horrible PHP habits formed from green developers learning on the "platform" and now basic server architecture is going to crap for those poor newbies. Thanks Wordpress...

</comment><comment><USER33> Try it again with just the last step(vanilla apache/vanilla wordpress/varnish) what are your results like?

Keep the original setup and have your test script perform some random searches. New figures?

(Everything is fast/non-server intensive when you're serving static data)

<comment><USER34> I think the main difference between using Apache vs nginx as the backend server would be the amount of memory available for Varnish to use for caching. nginx has a much smaller memory footprint.

<comment><USER35> apache-prefork has a larger footprint because it includes the php interpreter in each thread. If he's using php-fpm, he would use mpm-worker in which case apache and nginx threads have a similar memory footprint.

</comment></comment></comment><comment><USER36> What about memory usage with MySql? I've found that to be a significant bottleneck with wordpress sites. A basic wordpress installation doesn't use the database much, but if you add just a few plugins, things start to jump pretty quickly.

<comment><USER34> Varnish takes the load off by caching the results from Wordpress. The Total Cache plugin handles purging cache entries when you update posts/pages.

If you want to see how many queries Wordpress runs even for a simple post install this plugin I wrote at my last job. It shows a log of queries in the page footer if you are logged in as admin.

<http://wordpress.org/extend/plugins/wpdb-profiling/>

</comment></comment><comment><USER9> I found this really digestible. The HowTos that read like an annotated bash history are incredibly effective, and even though I don't need this for any of the WP sites I host, I can use it for almost any (mostly) static site.

</comment><comment><USER37> I really like these articles; it's nice to see how things like this are done from scratch. The firewall step may be unnecessary in AWS though, because AWS already has a firewall enabled by default through "security groups."

</comment><comment><USER38> Why setup a firewall when it's hosted on ec2? It's all firewalled off by default.

<comment><AUTHOR> Mostly because some people won't be using EC2, and I didn't want to leave them unprotected. I thought I might as well include it - it's a trivial addition after all.

</comment></comment><comment><USER39> > Download the nginx secure key to verify the package

>

>cd /tmp/

>wget <http://nginx.org/keys/nginx_signing.key>

Verify a package with a key you got over http? Am I the only one who noticed this?

<comment><AUTHOR> A bit silly yes, but nginx.org doesn't support https, which is slightly more silly and rules out most other options.

</comment></comment><comment><USER40> On a single page, without any plugins, menus, custom data, sidebar/widgets logic etc. Real sites will have 10-100x worse performance, so you might get 100k/day on the same machine.

</comment><comment><USER41> Great article.

Question: If you have Varnish running as a cache, should you really have the WP 3W Cache plugin running too? Seems redundant, but I'm not familiar this tech.

<comment><USER42> Varnish caches the actual HTTP requests, and speeds up static content substantially by removing the necessity to load up PHP.

WP caching speeds up requests that spin up PHP by preventing them from making a connection to the MySQL Database. This is useful for requests that may peruse multiple blog posts, but load the exact same sidebar content by caching things like post counts, categories, tag clouds, etc.

<comment><USER41> Really? That's interesting. I assumed the WP caching was straight page output caching.

<comment><USER42> Some of the cache plugins may just utilize page output caching, but IMO if you're spinning up your language runtime (Ruby, PHP, Python, Java, .NET) just to do page caching, you've already lost. Varnish and even built in Web Server caching can be far more efficient.

It's better to use the language runtime for more specific caching inside your application logic and for smarter cache expiration.

</comment></comment></comment></comment><comment><USER43> This is quite interesting .u could such a setup to run your prototype without breaking you bank account.

</comment><comment><USER44> Will the bandwidth not cost way higher on AWS than the $15 mentioned?

<comment><AUTHOR> Mmm, your right it'll cost something, though AWS free tier covers 15GB per month of bandwidth, then 12 cents per GB after that, so I'd expect it to be a few $.

Obviously though, there's cheaper options than AWS out there - Linode include 200GB of transfer per month in their $20 option.

I mostly just used AWS because I could start the server, build it, and blow it away, then restart, all without any hassles or full monthly chargers.

<comment><USER45> If you are going to host it for a long duration, you can reserve a heavy utilization micro instance and end up with an instance cost of less than $6.50 per month (with a three year reserved instance).

As long as you aren't serving lots of images, this will keep you well below $20/month - even with large amounts of traffic.

If you are serving lots of images, or worried about excessive bandwidth: Linode gives you 20GB/200GB (storage/bandwidth) on a 512MB server for $20, and MediaTemple gives you a 512MB server with 20GB/350GB for $30 (a little cheaper if you are going to be in the 300GB range when you consider Linodes .10/GB for overages).

</comment></comment></comment><comment><USER46> 15$ != 15$ per month</comment>


Wolfram Alpha: First-Hand Impressions - <AUTHOR> http://thenoisychannel.com/2009/03/31/wolfram-alpha-first-hand-impressions/

<comment><USER2> Without seeing a demo, it's hard to say anything factual - but in principle, the "problem" in any well-design/near-perfect system is still human beings. (context, language, HCI, "true", "news" etc) So while it is possible that Wolfram Alpha has successfully modeled a completely new area of search/information modeling - more likely, WA is another novel way parse language and information.

Also, Freebase and Wikipedia might the competitors (I agree with Nova Spivak) - but Wolphram Alpha won't be a panacea until it's open source data/technology. The wisdom of the crowds is the only way to model... the wisdom of crowds.

<comment><USER3> Actually, they're not really about natural language--that's what I'm trying to get across in my post. They're more about a place to store and use _structured_ data and access it formally. That they have an NLP interface right now is, in my mind, a kludge.

And they aren't taking an open source / wisdom of crowd approach. Rather, they are taking a very retro curated data approach, more Britannica than Wikipedia. I'm a huge Wikipedia fan (see my recent post reacting harshly to Nick Carr's calling Wikipedia a "Potemkinpedia"), so my reaction was highly skeptical. But, for objective data like the populations of countries and atomic weights of elements, curated works just fine. In fact, for structured data, I suspect curated is probably the way to go.

</comment></comment><comment><USER3> Am very curious to hear from others who have seen Wolfram Alpha in action. They did a lot to address my initial skepticism (which was extreme--see my earlier post), but it's no slam dunk by any means.

<comment><USER4> A biz dev guy from Wolfram gave me a walkthrough recently (no NDA required, which was nice) - he had a big text list of queries that he ran through it, and although I didn't try to stump him with my own suggestions, the results returned seemed reasonable, if you weren't expecting an exact replica of a Google results page, and particularly if you had a rough idea of what information sources it contained, and didn't ask questions outside those bounds.

Some examples seemed gimmicky and of questionable value (e.g. dividing the price of gold by the price of silver) - but given the right context, I'm sure it could return useful results for more realistic queries as well.

In one instance, he used the wrong tense ("is" instead of "was") in a query ("How old is Barack Obama in 1967" or something like that), and no results were returned - but the error message wasn't smart enough to suggest why it didn't work.

One big challenge will undoubtedly be to "curate," as they say, enough common data sources to make it useful _nearly all_ of the time...rather than just some, or even most, of the time. I think there's a threshold of usefulness (measured in percentage of successful queries - perhaps 98% or more) that Wolfram will have to reach if it intends not to languish as a mere curiosity like Cuil. Given that they've already got 200 people doing curation of just their existing data sources, and they plan to add many more sources, that seems like a pretty significant financial barrier to cross - I don't know whose pocketbook got the project to this stage, or how they intend to continue before it starts generating income.

If Wolfram Alpha IS a success, it seems like it could change the behavior of web users in two ways:

1\. People will start expecting a higher degree of authoritativeness from information they refer to on the web. For instance, if you're making a decision with a committee, and there's an email thread going around that sums up facts upon which the decision will be based, nowadays those facts might include links to "non-expert" sources like Wikipedia. If you have the option of linking to the same information in Wolfram Alpha, you'll probably choose to link to Wolfram instead, since you know the information has been vetted by paid experts. There also appeared to be a "References" link at the bottom of each results page that had an AMA-citation-style list of sources. Although Wikipedia also often links to sources, it's arguably more of a crap shoot as to whether you should trust the source, the editor referring to the source, or even that the reference was made in the right context.

2\. People will start using Wolfram as the single (or at least the first) place that they go to for factual, authoritative information. For example, nowadays, if I want authoritative information about a stock, I can go to Yahoo Finance and pull up the financial details - and be reasonably certain that it's accurate and trustworthy. However, if I also need to refer to another type of data - for example, official population data for a region - I'd have to find another authoritative source - perhaps the CIA world factbook. Instead of having to remember multiple sources, it's much easier to go to a single, trusted source for all types of factual data.

<comment><USER3> Sounds like we may have talked to the same guy. I agree that breadth of data is a challenge, and I didn't have the chance to push its limits. Though I was surprised that it knew about acids but not about the pH levels. That might be ok--and certainly fixable if it matters to enough people--but it's a reminder that there will always be holes.

It is interesting to imagine an approach like this raising the bar for information quality / provenance on the web. That would be a delightful outcome wrt information accountability.

</comment></comment></comment><comment><USER5> The is_a(china, country) example suddenly made Alpha "click" for me: it's the "general knowledge" database that you feed to semantic web programs to correlate their domain-specific knowledge to.

<comment><USER3> Yeah, that's at least how I saw it. And I think that message is being lost in the rush to see it as the next Powerset. I know Powerset and NLP generally gets lots of hype, but I think that sort of positioning for them would be a death sentence.

</comment></comment><comment><USER6> i had no idea until about a month ago that these guys are all located down the street from me. cool to see them getting coverage considering we're in the middle of a corn field. </random></comment>


An Entomologist Claims That Mars Is Covered in Bug-Shaped Things - <AUTHOR> https://www.sciencealert.com/an-entomologist-is-trying-to-convince-us-that-mars-is-covered-in-bugs <comment><USER2> This is objectively better than the face on Mars.

</comment><comment><AUTHOR> I'm wondering what do you guys think? I wish we could have higher resolution pictures.</comment>


Get good rankings so you can steal other's content - <AUTHOR> http://www.gettingmorevisitors.com/2008/05/25/get-good-rankings-so-you-can-steal-others-content/

<comment><USER2> From the article: When it comes to duplicate content, authority matters more to Google than who published it first.

I mentioned to friend that a small but anti-social group of spammers were repeatedly using this tactic to improve their ranking. The more they do it, the more hits they get, the more links they get, the more their ranking improves. This puts them above the authoritive threshold of other sites which allows them to steal more content.

Can you think of a method to discourage this activity?

<comment><USER3> Umm...copyright?

Obviously that doesn't really help in nations that don't enforce copyright...but repeated takedown notices in the US will be enough of a nuisance to prevent wholesale theft over a long period of time.

I wrote a book, both online and published, a few years back that was lifted wholesale by a rather large (at the time, who have since fallen on well- deserved hard times) Linux vendor...a few letters between lawyers, a lump sum cash payment, and the problem went away. Obviously, the fact that all parties were in the US made copyright more effective...but most first world nations do respect copyright.</comment></comment>


Zuckerberg: The end goal isn't to sell the company or IPO - <AUTHOR> http://news.cnet.com/8301-13953_3-9954419-80.html

<comment><USER2> Yeah, I'm sure his VCs are happy with that statement and they'll go along with that plan...

If you're a VC-backed company, you usually have a maximum of 7 years to make an exit. The clock usually runs out much faster since the company is either acquired long before then or it slumps and VCs take what's left of their money and put it into something else. As for IPO market... it's dead for majority of companies until SOX is overturned.

</comment><comment><USER3> This is stupid. What possible incentive would he have to announce an exit intention prematurely other than to sabotage the perceived value of his company in an exit?

</comment><comment><USER4> He's said this before (for example, in the interview with Sarah Lacy at SXSW). His statement echoes Larry and Sergey's 20 year commitment to Google.

It seems reasonable that Zuckerberg is telling the truth. He will get rich no matter what, and the desire to Do Something Great is an almost overpowering driving force for some people.

</comment><comment><USER5> i like zuckerbergs attitude, i dont use facebook myself but appreciate the fact that he really wants to create something rather than just making money.

<comment><USER6> ... he says.

<comment><USER7> Yeah. "It's about enhancing/enabling communication with the whole world" is a far cry from "I'd like to match up my peers' harvard facebook pictures with farm animals on something like hot or not" (<http://tinyurl.com/4vb8dy> slate.com) - I imagine the valuation for the latter wouldn't have been as generous, nor its reach as comprehensive =)</comment></comment></comment>


SVG-edit: Vector drawing in your browser - <AUTHOR> http://svg-edit.googlecode.com/svn-history/r1771/trunk/editor/svg-editor.html <comment><USER2> Another SVG based drawing tool is <http://markup.io/>, which is more useful for marking up web pages.

Example: <http://api.markup.io/v/ng7dny7nxj0r> At least I think it is SVG, at the very least it uses Raphael.js

<comment><USER3> OpenDNS blocks your second link with a phishing warning.

</comment></comment><comment> mike-cardwell Wow. That worked much better than I was expecting it to. Bookmarked.

</comment><comment><USER4> I didn't know SWG worked so well, even in Chrome. It's great how it scales on page zoom. I wish desktop application could be zoomed in this way.

</comment><comment><USER5> Sites like these remind me of the first days of programs like MacPaint. A sign of far more capable things to come.

</comment><comment><USER6> This is amazing.

It's not amazing to use a vector editor, but amazing that this is the first one I've ever used that feels _right_ , and that all the Flash-based graphics editing apps written in the last couple of years couldn't achieve that proper feel.

</comment><comment><USER7> That's a really nice application, but I think I still prefer Inkscape.

<comment><USER8> Can I click on a link into Inkscape's code repository and try it out right now?

Comparing this with a desktop app is missing the point.

<comment><USER7> _> Can I click on a link into Inkscape's code repository and try it out right now?_

I can select Inkscape in aptitude (or any other package manager of any other decent OS), wait a few seconds for the download, and can run it immediately.

Okay, this won't give me the latest bleeding edge version, but instead I get a mature application that is well-tested and provides more functionality than I ever needed. (in particular, more functionality than SVG-edit)

 _> Comparing this with a desktop app is missing the point._

You seem to imply that SVG-edit has some inherent advantage over Inkscape because it is a web application.

However, the main criterion is still: getting things done for the user, isn't it?

So yes, maybe SVG-edit will evolve more quickly due to being a web application. However, in that case it should surpass Inkscape in the near future. Only _then_ it has proven to be better - not because it is a web application, but because it is more useful.

<comment><USER9> Okay, this won't give me the latest bleeding edge version, but instead I get a mature application that is well-tested and provides more functionality than I ever needed. (in particular, more functionality than SVG-edit)

But the same goes for Google Docs and OpenOffice. Having more features isn't always what matters most.

<comment><USER7> _> But the same goes for Google Docs and OpenOffice_

I beg to differ. Google Docs does provide some important features which OpenOffice doesn't provide.

However, I didn't find any such thing in SVG-edit.

 _> Having more features isn't always what matters most._

Apart from stability (which could also be considered a feature), what else are you talking about? The set of features determines the usefulness (or uselessness) of an application, doesn't it?

<comment><USER9> Apart from stability (which could also be considered a feature)

At what point does anything that makes an application more useful a feature? If this is the definition of a feature, then your second point seems a bit obvious.

</comment></comment></comment></comment></comment></comment><comment><USER10> It seems overly difficult to create a shape or line with bezier curves. Do you have to start with the freeform pen tool?

</comment><comment><USER11> For anybody that is using Firefox, you might try the stable release: [http://svg-edit.googlecode.com/svn/branches/2.5.1/editor/svg...](http://svg- edit.googlecode.com/svn/branches/2.5.1/editor/svg-editor.html)

I wasn't able to get the linked version to work in Firefox (3.6.11).

</comment><comment><USER12> It reminds me of Corel Draw, which was my preferred tool for vector graphics for seven years before I switched to mac. Man! you've made me miss it and remembered me how much I hate Adobe Illfrustrator.

Any intention of growing this into a real full fledged product?

</comment><comment><USER13> Funny to see this. I'm releasing a vector drawing app for android this week. Code is almost done but I need to come up with a good name for it...

<comment><USER14> how about vecroid?

<comment><USER15> Vectroid?

<comment><USER13> I always appreciate suggestions, People might think vectroid is a game. It sounds a little like metroid. For naming I like using combinations of regular words. Like "vector paint" or something.

</comment></comment></comment></comment><comment><USER8> They have a good project overview page, but one thing I would like to see is links to some apps where this is used.

<comment><USER16> <http://bluegriffon.org>

<comment><USER8> I needed to look at Wikipedia to find out what that does, and that its from the creator of Nvu.

<http://en.wikipedia.org/wiki/BlueGriffon>

</comment></comment></comment><comment><USER17> Very cool, been waiting for such things to pop up. Now I can draw a penis on any site and send it to friends!</comment>


Octopus farming will soon be the norm. Marine scientists say this isn't good - <AUTHOR> https://qz.com/1588694/octopus-farming-will-soon-be-the-norm-heres-the-argument-against-it/ <comment><USER2> Article brings up a good point, pigs are one of the most intelligent animals on the planet, yet pork production is increasing every year. More than half of grain also goes towards livestocks. Intelligence and consumption efficiency of other produce isn't really a good excuse for not being eaten as the markets have proven.

[https://www.peta.org/issues/animals-used-for-food/animals- us...](https://www.peta.org/issues/animals-used-for-food/animals-used-food- factsheets/pigs-intelligent-animals-suffering-factory-farms-slaughterhouses/)

[https://www.theecologycenter.org/resources/pasture-raised- vs...](https://www.theecologycenter.org/resources/pasture-raised-vs- conventional-pork/)

<comment><USER3> Hard, but not impossible. We actively ban eating dogs and cats.[1] I was surprised to learn that there are no laws barring the capture/consumption of dolphin [2].

1\. [https://www.usatoday.com/story/news/politics/2018/09/13/eati...](https://www.usatoday.com/story/news/politics/2018/09/13/eating- dogs-and-cats-banned-house-passed-bill/1288897002/)

2\. [https://www.worldanimalprotection.us/our-work/animals- wild/m...](https://www.worldanimalprotection.us/our-work/animals-wild/marine- animals-captivity/us-dolphin-regulations)

</comment></comment><comment><USER4> But will it decrease the cost of grilled octopus, because, dang is it tasty.</comment>


Show HN: CodePicnic: Full-stack code containers running in your browser - <AUTHOR> https://codepicnic.com

<comment><USER2> This is super-cool. Not sure it's recommendable to use it in place of ssh, but maybe with ssl+http-auth it could be workable? It definitely adds some convenience for when I'm away from one of my boxes and I don't want to deal with putty. As per all HN comments, one downside is that it kind of messes up with my vim colors, but that may be that my vim colors are messed up to begin with.

<comment><USER3> That's pretty interesting. We love working with awesome use cases, so feel free to explore using it as a tunnel for your servers.

Is there a way for you to send me your vim config? Would love to see if there's something I can do to improve our support.

You can reach me at alvaro AT codepicnic DOT com.

</comment></comment><comment><USER4> Even though I can imagine how this works, it's still unnerving to see a live console on a webpage. Nice work!

<comment><USER3> Thanks! It really feels good for others to see hard work <3

</comment></comment><comment><USER5> A pre-typed command (or a README?) could be useful in the demos

<comment><AUTHOR> Yes, if you create README.md file, it will replace the default README in the console. Check the Demos page to see them.

</comment></comment><comment><USER6> Accessed from the browser, not running in the browser, right?

<comment><AUTHOR> Right. We create Docker containers and exposes a Terminal with websockets, so everything runs in a server and the response is shown in the browser in real time.

</comment></comment><comment><USER2> what library are you using for the Console in the browser?

<comment><AUTHOR> We use a custom version of term.js. Nice username, btw ;)

</comment></comment><comment><USER7> socks!</comment>


Ask HN: why is there no competition for LinkedIn? - <AUTHOR>

They have the valuable business graph, but their execution (and vision perhaps) often seems to stumble. Why aren't there competitors trying to eat their lunch? Surely this must be a valuable space worth getting into?<p>Trying to understand, I don't feel LinkedIn has this space locked up the way Facebook has social locked up (plus Facebook's vision and execution seem much stronger). So why no competition? <comment><USER2> Because the extent of user interaction is the sign-up process?

<comment><USER3> I would agree with this wholeheartedly. They may have a big user base but the engagement per user is very small and most of those users rarely visit.

If you compare average time spent on site in both:

Visits per user per month. Average time spent on site.

vs say a facebook, these numbers are not even close.

No doubt there is some value here and maybe linkedin hasn't figured out how to engage the users to unlock it, so if you have a great idea on how to do this you could probably move into the space and capture users (and billions).

But, the lack of direct competition would suggest nobody really has a great idea on how to do this and coupling that with the lack of hype lnkedin gets the me too clones in the space have not arrived yet ( a la groupon and the army of social buying clones ).

<comment><USER4> Everyone has competition.

<comment><AUTHOR> Yes, I would think so, but then where is it? I just don't see it.

</comment></comment></comment></comment><comment><USER5> Main reason i think Linkedin doesn't have other exact clones. _1) Lengthy account creation process - What is the motivation, again?_ 2) They got first and got the Industry respected people(Bill Gates...) *3) There in no stickability - you don't share stuff, you don't update status..it's just there(now they have integrated some twitter like non-sense)

As for competition anyone who can create a profile page will do, FB, Twitter, I am sure there are very many.

</comment><comment><USER4> You're mistaken, Linked.in has a ton of competition. Where don't you see competition? It does compete with facebook. There are also applications developed for FB that deliver similar information and features that linked.in does - although not to the extent. Just today they launched a product in direct competition with the WSJ - pretty much. They compete with other professional networks in the same space .. there is a big list.

<comment><AUTHOR> Do you have any pointers? I don't think they compete directly with Facebook, and I haven't found/seen any other professional social networks.

</comment></comment><comment><USER6> [http://venturebeatprofiles.com/company/profile/linkedin/comp...](http://venturebeatprofiles.com/company/profile/linkedin/competitors)

<comment><AUTHOR> Not a very good list though, Plaxo, Bebo and Facebook aren't really LinkedIn competitors imo.

</comment></comment><comment><USER7> at least in germany XING.com is very big.</comment>


How to stop people from unsubscribing to your newsletter and other tips - <AUTHOR> https://sleeknote.com/blog/email-marketing-up-to-date?utm_medium=organic&utm_source=hackernews&utm_campaign=email_marketing_up_to_date <comment><USER2> > First of all, don't buy data. It is never going to work as well. It is much > better if you collect your leads in a genuine way and on your own site.

So, basically, the advice here is "don't act like a spammer". Good advice, but I thought it's _fsckin ' obvious_.

The rest of the article is low-density garbage. Number one thing to keep people on your mailing list is to provide _useful information_ through this list. And be humble: your product is rarely this useful information.</comment>


Facebook Ordered by Hamburg Regulator to Allow Pseudonyms - <AUTHOR> http://www.bloomberg.com/news/articles/2015-07-28/facebook-ordered-by-hamburg-regulator-to-allow-pseudonyms <comment><USER2> Facebook does the same with birthdays. I input my age as 90 when creating my account. They changed it to my real birthday somehow.

AND then they expose it publicly to anyone who looks up my profile, even when they aren't my friends.

AND this is all after me having disabled the "show birthday on timeline" and enabling every other privacy setting there was.

If there's one company using AI and data collection for evil, it's Facebook. Not to mention the years of silently disabling previously set privacy settings without getting the user's permission - e.g. the "show profile in search".

Insane. Facebook should be slammed hard by the courts.

<comment><USER3> How is that possible for them to know your real age, logically? (I don't mean you're lying, but only you can work out the link with other services and facebook that might be leaking this information).

<comment><USER2> \- Deducing based on my median friends' ages.

\- Easily deducing my approximate age from my Linkedin profile.

\- Any of the numerous other private people data sources they have access to or have bought over the years. I'm sure my birthday and basic details are in some of those. It's impossible to get those all deleted once the information is out.

\- Day and month are easy, because everyone wishes me happy birthday in the messages and wall posts. All that's remaining is the year, which could be easily deduced from Linkedin and other third party data sources. - Which I've mostly cleaned up now, until Facebook exposed it all again.

\- I had a profile for a few months in 2005 before deleting it. Used a different computer, different location, different email and everything for this new one a decade later, but probably they've connected the identities. Looks like if you ever tell Facebook some private information, it's non- revokably theirs to expose to the world forever.

Facebook invests very heavily in machine learning / AI, and uses it heavily through out their platform. They collect and buy tons of data both on the site and from third parties. This deduction is trivial for them.

The bad part is not so much that they deduced these details about me though, it's that I specifically made it clear that I didn't want any age public, let alone the real age, and they exposed me anyway.

<comment><USER4> I don't think Facebook are as clever as you imagine, and they certainly would never do something as crazy as trying to deduce your age based on median friends ages. But, if you _do_ give Facebook information about yourself, then it's no longer private to only youurself - it's known to both of you. You will have agreed to some T&Cs about sharing it based on certain account settings when you signed up, so as I mentioned above, if you can prove information leakage when you've set certain privacy settings explicitly then this is absolutely a bug in Facebook's system, and you should definitely report it...

<comment><USER2> I can't begin to guess as to why you'd feel that way.

Facebook runs one of the top machine learning research labs in the world. They're among the most clever in this domain, by every possible metric. They've written extensively about how they employ machine learning across their entire product line, and are adding more constantly. They've acquired numerous ML startups and world-class researchers.

[https://research.facebook.com/](https://research.facebook.com/)

[https://research.facebook.com/researchers/1543934539189348](https://research.facebook.com/researchers/1543934539189348)

Respectfully, you're absolutely wrong, and I'm suspicious as to why you'd be intentionally spreading misinformation that they don't use ML/AI to fill in the gaps in their information about their users.

<comment><USER4> The ML activities at Facebook seem to be focussed on delivering content and advertising optimally to users. They can determinine which posts or adverts you might 'Like' based on your friends choices, or those of other similar groups of users found by various demographics and metadata. It's right there in the research group page you linked:

> "We strive to find ways to deliver more engaging content in News Feed, rank > search results more accurately, and present the most relevant ads possible."

I think it'd be a pretty poor use of ML and AI to use it to try and guess the gaps in your profile, and then _fill them in_. Of course I'm sure they try and show you content and adverts based on what they believe your demographic profile might be, but these beliefs are purely internal to the algorithms that make the decisions as to what to publish - they aren't used to populate your public profile.

In fact, Facebook _want_ the profile information to come _from you_ and for it to be as accurate as possible - to help those algorithms. It wouldn't be sensible or useful to just set your profile fields based on guesses, no matter how clever the ML behind it. As I said before, I think people ascribe too much intelligence to the way Facebook handles personal information - it isn't magic.

<comment><USER5> I don't know if they are using ML or not, but they filled in my "works at" field with laughably wrong information. I didn't bother to correct it. It's not far-fetched to me that advertisers would be interested in this kind of information- ads to your SO when your birthday nears, etc.

<comment><USER4> While you say 'they' did it, it's actually hard to know what is going on. Was it stale browser data that got passed in as autofill field values when you registered? Is it based on an old LinkedIn profile you associated with facebook and then forgot to update? Did you connect with the Facebook app on an old phone where you had contact details for yourself from a previous job, and synchronise them?

Actually, the LinkedIn profile is the most likely, people often try these things, signing up and click-thru acknowledging everything without thinking, then never touch the app again. All I'm saying is that often what you think of as external is actually caused by actions you performed and then forgot about, or never really registered in the first place. Although, some of this may well be down to 'Dark Patterns'in the UX, which should really be investigated and changed.

<comment><USER5> Nope- never worked there. Heck, I've never even been there. Not on linkedIn. Has nothing to do with what I do (Imagine I was an elementary school teacher and it said I worked at Delta Airlines). Never filled out a form. In this case, they used _something_ to guess.

I do have a FB connection to the place, though.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> How can a government have jurisdiction over this? It's their system. If they decide to only give you an account on their system if you've verified your name (i.e. through driver's license) then why can you demand otherwise? They can just refuse you service, can't they?

<comment><USER7> It's not fully clear whether the German government has jurisdiction here, with Facebook nominally residing in Ireland. A case has just been _filed_ by the Hamburg state government, but that can easily take years to go through courts.

> How can a government have jurisdiction over this?

Because the government can decide that demanding a driver's license is illegal because it is an unreasonable burden on users, simple as that. German law states it _must_ be possible to use a service anonymously or pseudonymously "if it is technically possible and reasonable". Whether it is reasonable in this particular case is for the courts to decide. (cf. Telemediengesetz, [http://www.cgerli.org/index.php?id=51&tx_vmdocumentsearch_pi...](http://www.cgerli.org/index.php?id=51&tx_vmdocumentsearch_pi2\[docID\]=1438) )

<comment><USER8> They can _decide_ all that, but that doesn't give them clear jurisdiction to actually enforce it. They can penalise users doing it, possibly by making it a breach of the terms of carrying a drivers license to use it for this purpose, although it's not clear how they'd prove such usage.

Alternatively, they can try to hit Facebook's ad sales in Germany, but that's likely to run into common market rules around trade barriers.

Anyway, does Facebook actually enforce this? I have never shown any ID to Facebook, and I see plenty of people not using their real names (typically they use derivatives or add a screenname as a middle name, rather than being totally pseudonymous).

<comment><USER9> Facebook completely enforces this, but only acts on profiles that are reported to them.

Around a year ago, many of my friends were in a "Gay Pride 2014 parade" group. Over two or three days, everyone in that group with a fake-looking name was reported. A little later, everyone who had 'liked' a local gay nightclub page was reported.

The obvious conclusion was someone with an agenda was searching particular groups for people to report.

<comment><USER10> This is another example of a theoretically neutral policy being used to enable harrasment, because it's not applied in a uniform manner.

</comment></comment></comment></comment></comment><comment><USER11> A lot of users in Germany already, from my experience, 'use pseudonyms' (you just put a real-enough sounding name that's fake) and be done with it.

Facebook should really not try to make the same mistakes as G+ in that sense

<comment><USER12> Real identities have been core to the Facebook experience since the day it launched; just as fake usernames have been core to YouTube since its launch. For either to go back on a core part of who they are would be a mistake.

Facebook would be making the same mistake as Google if it _did_ allow pseudonyms.

<comment><USER13> Should Facebook not allow "Robert Galbraith" (JK Rowling) to have a page? How about "JK Rowling" (Joanne Rowling)? Should she be forced to use her full forename?

In England you can use whatever name you like, as long as you don't have the intent to deceive. (This is tricky with doctors and banks). So, legally, I could be "Bob Smith" and "Ann Jones" at the same time. Why does Facebook get to tell me that I only have one name when my government is fine with me having multiple names?

<comment> florian-f Is there a British version of the [Lichtbildausweis]([https://shop.digitalcourage.de/lng/en/thema/ak-data- retensio...](https://shop.digitalcourage.de/lng/en/thema/ak-data- retension/lichtbildausweis-mit-selbst-gewaehlten- daten.html?type=N&language=en))? It's a custom 'official' looking ID that is sold by an NGO that promotes privacy among other things.

<comment><USER9> No, but probably because there's no official identity card in Britain.

I've never tried to use a false name, but it probably would be easy for many things (utilities, local government) but difficult for others (bank account).

<comment><USER14> Not even a driver's license?

<comment><USER15> Driver's licenses, passports, utility bills, bank cards, all are considered 'forms of ID' in the UK, which you might need to use to open a bank account or get credit, but there's no 'ID card'; there's no obligation to have a driving license, or a passport, or whatever.

<comment><USER14> That much is true in the US as well.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER16> "Facebook changed the profile to her real name against her will ..."

How did they know her real name?

<comment><USER17> One explanation is that Facebook collects its users contact lists.

That way, it can create 'shadow-accounts' for people that don't have yet a Facebook account. So when/if that person finally creates a Facebook account with some data tying him/her to a shadow-account, Facebook can directly propose relevant contacts and already knows a lot about that person, including his/her real name.

</comment></comment><comment><USER18> Many of my friends already use pseudonyms on Facebook. They just use ones that look like a real name. Their reason is just that they want to be able to tell new friends something to search and still be invisible when they look for jobs etc.

</comment><comment><USER19> Facebook and twitter will soon become the primary medium for a government to communicate with its citizens. It's the new press, so governments have to make sure their citizens have access to that information, regardless of whether they want to use their real names or not. The freedom of the press cuts both ways, and forces a number of responsibilities on these companies, due to their peculiar and de-facto monopoly state, and the sheer amount of attention time they occupy. The press was not completely unregulated in any well-functioning democracy, and i don't see the reason why the new (increasingly old actually) media should not be.

</comment><comment><USER20> Hamburg Regulator == Hamburger Helper?</comment>


Template Haskell and Quasiquotes - <AUTHOR> http://linuxramb.blogspot.com/2017/02/template-haskell-and-quasiquotes.html <comment><USER2> The link wants my Google data.</comment>


Microsoft CEO says Amazon and Google are rigging the system against retailers - <AUTHOR> https://www.businessinsider.in/SHOTS-FIRED-Microsoft-CEO-says-Amazon-and-Google-are-rigging-the-system-against-retailers/articleshow/64069096.cms <comment><USER2> "I've never seen business models where [when] there's more demand, there are higher prices."

I agree anything short of a flat fee for business listings(whether its per product or something else) incentivises the marketplace towards higher prices.</comment>


Death in the city: the grisly secrets of dealing with Victorian London's dead - <AUTHOR> http://www.theguardian.com/cities/2015/jan/22/death-city-grisly-secrets-victorian-london-dead

<comment><USER2> There's a quite nice little book on the history of the idea of vampirism in Europe called "Vampire Forensics" and it mentions that cremation only became legal in England in 1902. Bram Stoker--who died in 1914--was cremated.

The potential for poorly buried corpses to float to the surface and move under the influence of internal gasses may have influenced notions of vampirism. It's remarkable how much like a liquid soil cover is on long time scales. I used to live across from a graveyard-turned-park and the odd bone would still surface now and then, a century after the conversion.

</comment><comment><USER3> Fascinating reading for those interested in how the world has changed in a mere 150 years. In school we learn the grand sweep of history. In distinction this article is a window into the ordinary and the mundane.</comment>


Broke, in debt, lots of skills. Need your advice - <AUTHOR> Hi guys, I need an advice.
I'm long time lurker. I was working for the last 10 years on my own startups, every one of them failed miserably and I'm broke with huge debt (more than 100k). Of course I'm depressed and lonely and all that stuff and of course It's awesome that I learned lots of stuff and I still want to start something new and that after lots of struggle I found my "real purpose in life" (= what I want to do for rest of my life and what makes me happy) but right know I'm realist.
I really need to fix all of my money issues and start from zero, debt is catching me. I can't and don't want to borrow money, I don't have family to back me up. For know, I need to start making money as quickly as possible. I have my own family (and we have a 6yo child).
I have tons of experiences with PHP/MySQL/CSS/jQuery+Bootstrap, I can do rapid prototype of any website/business model, I can do frontend or backend, and even though I failed with all of my startups, I can do consulting of idea, business model or website (the reasons I failed was, you guess it, money management and stupid, stupid, stupid way of "poker" thinking - "Ok, I failed, I'm in some debt, but now i will double down on next company and it will be OK). I have many lean startup skills (programming, coding, marketing, bootstrapping, designing, UI/UX, idea development, idea brainstorming, etc). I'm completely aware of my strengths and weaknesses. I don't have any portfolio of my work I can present, I was working for the last 3 years on huge startup which failed, our investor now owns it and we have NDA and everything i was working before starting that company is gone.
I need your advice guys, your opinion. What's the best way to start making money in my situation quickly? By quickly I mean to be paid in next weeks, not months.
if I can help you with something, If you want to use my skills or knowledge, PM me, please.
Thank you, guys!
Tom <comment><USER2> Tough situation! Sorry to hear it!

The quickest way to make money in my mind is to take one of two paths.

If you live in a low cost of living area, I would look to see if you can get a service job (retail, restaurant, etc). They will hire pretty quickly and you can get some money coming in (low hourly rate though it may be).

Alternatively, reach out to your network, of people you have worked with in the past decade and let them know you are looking for work. The phrase I like to use is "do you know anyone looking for an extra pair of hands". I suggest invoicing weekly to help with your cash flow, and aiming for small or midsize companies. This will be hit or miss, but if you throw the net wide enough you'll find someone who will want you to start contracting pretty quickly, because you are a known quantity. LinkedIn can be a great place to start building this list, depending on how up to date you have kept your network.

The second method takes more work and you'll have some risk, but should have a better hourly rate.

<comment><AUTHOR> Second method is more suitable because in our country we have really small hourly rates for service jobs. It's the only one option i can see for now, to start freelancing. Deal breaker is no portfolio, so I need to hack it somehow. Thank you very much for your support!

<comment><USER3> "in our country we have really small hourly rates for service jobs"

Which country is it?

</comment></comment></comment><comment><USER4> Hi there!

Despite the tough situation, it is great that you're facing it head on.

mooreds suggestions are great, I would start with those.

If you want to work as a dev, the thing that best worked for me is to open a github account and put some code of my own there. It doesn't have to be revolutionary or state of the art code, but if you have even a simple web site there, it will probably help you get either freelance gigs or a full-time job.

In your case, you might consider putting there a simple site (front and backend). If later down the road you pick a skill (like say, React) you can then tweak your project and include it.

Also, I suggest having a spreadsheet to track your assets/liabilities at the beginning and at the end of each month. It might be tough doing it at first, but knowing exactly how much you owe is the first step to get out of debt.

Best of luck!!

<comment><AUTHOR> Yes, I putting all my assets/liabilities to the spreadsheet, I need control over my budget, it's my weakness to manage money. Thank you for your ideas!

</comment></comment><comment><USER5> Hi,

Reading your situation, my first thought was to consider the "Personal bankruptcy" [1]. I don't know what this would imply for you, if your country has such a system, or even if it is a good idea in general to go for this. Probably any other solution to get money would be better, but if you don't succeed or get into an even more difficult situation, this may be an option to consider.

Good luck!

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

<comment><AUTHOR> I have heard about that, it has negative long-term consequences, but I will check it. I always prefer "clean" way, I don't like cheating or sacrificing future for todays relieve. But as a last hope it's suitable.

</comment></comment><comment><USER6> Since depression and loneliness were mentioned, it might make sense to consider talking with a professional mental health clinician.

Good luck.

<comment><AUTHOR> Already doing it regularly, haha. Every entrepreneur must have some unresolved issues from the past and bunch of new problems from present, I think. I'm working on myself daily. Starting from daily rituals to meditation, nootropics, reading tons of stuff (psychology, entrepreneurship, motivation/self-help), you name it.

I really appreciate you mentioned mental health. Thank you!</comment></comment>


How Money Can Hurt Employee Motivation [INFOGRAPHIC] - <AUTHOR> http://blog.clarity.fm/how-money-can-hurt-employee-motivation/

<comment><USER2> Only 42% of employees are engaged at work? That's crazy.

</comment><comment><USER3> Physical touch? Seriously? Be careful. That's likely to be creepy in many circumstances, and not just across genders. It can easily come across as controlling, condescending, etc.

Maybe I'm weird, but money does motivate me. Or rather, the desire to make more of it. But it's more of a negative motivator than a positive one. If I feel I am not getting a good deal, I am likely to "strategically disengage," continuing to do what is _required_ of me but not _engaging_ in a meaningful way. Why would I truly engage if there is no reward for doing so?</comment>


Xenix - <AUTHOR> https://en.wikipedia.org/wiki/Xenix <comment><AUTHOR> "In the mid-to-late 1980s, Xenix was the most common Unix variant, measured according to the number of machines on which it was installed."</comment>


Ask HN: Anyone actually using JSON API? - <AUTHOR> I'm working on a project to build a flexible database API wrapper and the requirements include REST support. I've known about JSON API for a while, however can't tell if it's a cute idea, or if it is actually being adopted broadly.<p>Before I model my wrapper around this, I'd like to get some real-world feedback from the HN community. <comment><USER2> So, let's link to the thing:

[http://jsonapi.org/](http://jsonapi.org/)

How much benefit do you think you'll derive from all the extra crap that shows up? How much work is required to distill business entities back down from a conformant response?

It looks interesting, but I haven't heard much about it. Ember may use it somehow?</comment>