"I Will Ruin Him" – How it feels to be stalked - <AUTHOR> http://chronicle.com/article/I-Will-Ruin-Him/136693/

<comment><USER4> I battled with a mentally ill stalker for years in a petty online revenge game that started as a joke on an IRC channel and a gamer forum when I was 14yrs old, and ended up being decided by the courts as both of us eventually resorted to highly illegal activities to screw each other over.

We went from crapflooding and email bombing each other to him constantly phoning and writing everybody I knew or worked for and my school in an attempt to screw me over through the years. Every girlfriend I had he tried to fake pics of me 'cheating' on her and spammed their social accounts and email/phone. In turn I stupidly escalated and baited him through side channel attacking his box, wiping his drive countless times, hacking his blog countless times, and destroying his credit score through fraud. This goes on for a few years each personal attack gaining in pwnstastic levels of revenge. He even had badly packaged illegal drugs sent to me from overseas hoping customs would intercept it and bust me but somehow they arrived safely and for weeks I wondered how I ended up with a bunch of drugs in the mail. I then countered by further driving his credit score into the grave to the point collection agencies were after him and his family, and was able to wipe all his sites faster than he could put them back up again.

At one point during this insanity when I was 17, he started filing fake police reports to have me purposely picked up on a Friday to serve time all weekend before I could see a judge and have the bogus charges thrown out start of business day Monday. For revenge I did something incredibly stupid with the 911 system and he landed in the state pen for almost 3 months.

When I was about to turn 18, after years of us going back and forth escalating our stupidity I came down with a sudden case of ethics, plead out to meddling with 911 so he would get released, plead out to fraud to reinstate his credit score, paid out compensation and received probation in family court forbidding me from touching a computer for 2 years. He also plead out to filing false police reports, fraud and harassment, was sentenced to time served, compensation and 4yrs probation in adult court. Both of us forbidden to touch a computer and go after each other. That was 8 years ago.

It should have been over but he's still to this day trying to track me down from half way across the globe as both of us don't use real identities anywhere on the internet anymore and our real names turn up a black hole. Once in awhile I'll meet up with some old friends or employers when I come back to my old city for holidays and they'll tell me about how this sweaty-toothed madman keeps calling looking for me. I will also from time to time see various articles or comments written in my name which is him trying to lure me out of obscurity to resume our epic battle of the ages.

<comment><USER5> This sounds like it would make a great book or movie.

It's scary to know you can send someone to jail for 3 month, but at the same time knowing how you did it would be quite interesting.

<comment><USER4> Wouldn't make a good movie. Lol IRC troll warzzZ

Because he was never able to defend his xp winbox against me getting inside his home lan by constantly falling for obvious side channel attacks (I'd pretend to be a girl interested in him, link him to my fake personal blog which was actually full of IE exploits back when they went unpatched for months) I had a lot of time to poke around his home lan and eventually I discovered he was stealing his neighbours wifi for some of the harassment against me so it wouldn't trace back to him.

This neighbour had a VNC port open, which at the time was exploitable so I started it up and enabled my xp backdoor on that system too as another attack vector. The original plan was to start doing some MITM attacks I was just learning about he wouldn't notice while thinking he was untraceable through stolen wifi, but then I got stupid and impatient. Note: I was no master hacker, the exploits I had were merely downloaded off shady forums like shadowcrew. I was an idiot with just enough knowledge to be dangerous at the time.

When he changed ISPs under a new name so I couldn't track him I just logged into his neighbours network where I left the door open and waited for him to connect to the stolen wifi. Re-owned his fresh system with a new permanent backdoor, set up a whole toolbox of spyware, and proceeded to do a bunch of illegal shit under his name like using his card which I had gleaned from a keylogger to buy illegal sex tourist vacations from very obvious fake FBI sting sites so somebody would start monitoring him (i have no idea if they did, I assume they did). Interesting note, when I stole his card, he was using it on his fresh install he thought was secure to pay for a data report on me from one of those information clearing house sites.

The emergency system attack was just using the same VNC exploit. Somebody on shadowcrew discovered they were using it and was daring other hackers to break in which pretty much guaranteed an instant bust if you were stupid enough to do so. This was E911 with admins using printout logs and checking them daily not a restaurant to fleece credit card numbers from where nobody will notice you for a year or so. We all made our own temporary vpns and used disposable sim card dongles and wireless hacking but still you'd be playing with fire screwing with E911.

Naturally this was perfect for what I needed and when I assumed the feds had started watching this guy I accepted the 911 bounty, logged into his system, connected through his neighbors wifi leaving a huge trail of identifying cookie crumbs to follow back to him like opening up his hotmail and yahoo accounts which would've all been logged when they looked at his neighbour for the breach, and proceeded to absolutely trash around their network trying to get somebody to notice and yanked some database tables.

Then I left a nice package of evidence for the cops to find in his system that was poorly hidden, cleaned all traces of me being on his neighbours system, cleaned all traces of me being in his network, and for good measure went online using his browser to attempt to sell the info on every carding forum there was to attract even more authority attention.

When I heard on the same game channel where the troll battle began that the reason he disappeared for almost 3 months was because he was in jail, I gloated my victory like a fool to my hacker friends on IRC who told me from their own experience he was probably looking at being transferred to federal and doing serious time in the double digits, which I could not let happen in all good conscience, even if I absolutely hated this guy so turned myself in figuring since I was underage I could probably slide on my stupidity by transparently admitting to everything and hoping for the best. Thankfully I received the Cosmo of UGnazi crew sentence and not the Kevin Mitnic solitary confinement revenge sentence.

Now when I google my name I just see the crazy baiter troll battleship nonsense he's written over the decade in my name with obvious references he knows I would understand to let me know it's him and to pick up where we left off. There's a hundred posts the latest one was Sep 2012.

<comment><USER6> Did you perchance enjoy playing Uplink?

Also, kudos for clearing his name of the stuff you did on his behalf. That shows some real strength of character, IMO.

</comment></comment></comment></comment><comment><USER7> Unfortunately this article is not an exaggeration.

We deal with stalkers on a regular basis, cam sites and stalking seem to go hand-in-hand. If you're ever in the position of being stalked please do the following:

\- never ever respond to the stalker

\- save each and every message

\- pre-emptively alert everybody in your surroundings that they might contact, explain everything and make sure they also never respond, and ask them to alert you if they are contacted.

\- formally alert law enforcement

\- forward each and every message received, posting made and so on to law enforcement (yes, that can be a nuisance, and yes it can be embarrassing but if you want them to sooner or later take action they have to be aware of how bad it really is).

Over the years this has dealt with the large majority of cases. The few that are not amendable (for instance, because you don't know who the stalker is!) are far more serious and will need a lot more work to resolve.

The most important thing to remember is that stalkers feed on your attention and your pain, the more feedback they get from you and your environment the longer it will go on.

If this happens to you (it has happened to me...) then I wish you much good luck and I hope that it will end sooner rather than later.

One tactic that we have deployed that is quite effective is to counter stalk the stalkers and to expose them publicly.

Stalkers are usually not first time offenders and likely will stalk again in the future. It helps to have them easily googlable.

<comment><USER8> Would it be a good idea to 'bounce' the emails back - i.e. send a fake "message was undeliverable" email status to the sender. But still keep the messages. That way they think that no one is reading the email and may give up, or at least try to find another way to contact you.

<comment><USER9> If the stalker writes from the same adress, you can make a filter for that and bounce this automatically back + save the message, without reading them.

<comment><USER7> A bounce is a response. Don't bounce.

<comment><USER10> An automated response is entirely different. The the bad part about responding personally is showing it affects you, however minutely. An automated response that it was not received takes away that crucial motivation quite effectively.

<comment><USER7> An automated response is information. It says 'I won't see this'. It shows you cared enough to set up an bouncer. Which in turn says that you were annoyed. Which is a pay-off. So it will result in a redirection of effort, not in reduced motivation.

<comment><USER10> I thought we were talking about in the long run. Setting up a bouncer is something that would take you a few minutes at most. I'm by no means an expert in this matter, so I can only pretend to be a stalker, and see how it would make me feel. If I thought the person received my emails, which I'd be certain of if I already knew the person, and already had conversed with the person through the email, "no response" would to me mean "he is ignoring me, but still receiving my messages". If I got a bounced back message I would think "shit, he blocked me. I'd better send from a different email address". I'm not sure which gets the most pay-off, I guess it depends on the stalker, but redirection effort means they have to do some effort. If you collect evidence of effort to stalk you, for little or no effort on your own, I'm sure that doesn't hurt either in proving your case.

<comment><USER11> "If I got a bounced back message I would think "shit, he blocked me. I'd better send from a different email address". I'm not sure which gets the most pay-off, I guess it depends on the stalker, but redirection effort means they have to do some effort."

You're talking about someone who's extremely mentally ill and ungrounded in reality. I'd be worried about them putting more effort in.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> I've had peripheral contact with stalking on multiple occasions. I have two useful tips.

The first one is that stalkers try to convince themselves that the object of their desire would love them back if they only had a chance. When they learn otherwise, desire can easily flip to hatred, then to attempts to destroy a life. Therefore if you are being stalked and can avoid letting the stalker know how you feel about it, do that. You can see that one in play in this case where she pursued him for years, without the nasty behavior, until she realized that he didn't love her. Then she turned vindictive.

The second tip is that if you're going to stalk someone, don't stalk a psychiatrist. It is very, very hard for anyone other than a psychiatrist to get someone committed to an institution until after the stalker has committed a conventional crime. However if you're stalking a psychiatrist, the psychiatrist can, as a professional psychiatrist, evaluate you and decide to institutionalize you. And whatever institution you go to - which is generally associated with said psychiatrist - is likely to support the psychiatrist in that evaluation.

<comment><USER13> I've experienced that flip. It's scary. I should have never rejected the stalker.

I've been told, and believe, that the only course of action for the stalked is to COMPLETELY IGNORE the stalker, until something threatening and legally actionable happens.

Anything else you do, positive or negative, simply adds fuel to the fire.

It really sucks and makes you feel helpless, but the legal system simply doesn't offer any refuge for stalking victims unless it passes a certain threat threshold.

After about a year of ignoring him, my stalker got bored. But I still fear his return. I got a single tweet from him about 6months ago that made me worry for a bit, but it was just 1 single tweet and didn't continue.

<comment><USER14> In the UK, stalking is now specifically a criminal offence (since late last year):

<http://www.bbc.co.uk/news/uk-20482930>

<comment><USER15> That law does seem like it would be effective, but it also seems hugely broad. Just reading it it seems like you can accuse anyone of "stalking" even after contacting you a couple of times...

I'm not saying such laws aren't good, I'm just saying that the way that particular one is written means that it couple potentially overly criminalise a lot of situations.

<comment><USER14> It wouldn't be the first time that something has been over-criminalized, but you can read what the Home Office is saying about the new measures here:

[http://www.homeoffice.gov.uk/about-us/corporate- publications...](http://www.homeoffice.gov.uk/about-us/corporate-publications- strategy/home-office-circulars/circulars-2012/018-2012/)

Note that because this was introduced as a "patch" to a 1997 act, it's very hard to understand what the law now actually says. If only they'd use version control ...

</comment></comment></comment></comment></comment><comment><USER16> It can be surprisingly hard to fight this. As the author notes, even if the ramblings of the stalker are so obviously crazy, it still requires people to evaluate whether you could have done said actions and whether it is a risk to associate with you regardless.

My wife got dragged into a situation a while ago. She merely commented on a blog article about a man who had travelled to another country, got a woman pregnant, and then when the woman got sick and needed treatment, claimed it was a scam. In his mind it grew into a giant conspiracy. Anyone who didn't take his side was involved in this conspiracy, including the hospital, local business people, even the British Embassy was in on it apparently. And then my wife, for commenting on an article. I worked out that if you divided the hospital bill by the number of people he alleged were involved, they'd all make about $3 each.

The local community rallied behind the woman who was disadvantaged and could barely afford the bill. They tracked her down, obtained proof from the hospital, took photos and posted them (with permission) thinking that would clear up the allegations. He started to look for evidence in every blog post, image, comment and forum posting. Where you look for a pattern, given enough data, you start to find them. He tweaked his conspiracy theory to fit the patterns he found, offering them up as evidence. My wife's name ended up on a "website of scammers" he created. He set up free websites on many services, created videos which he cross posted to every video sharing site (surprisingly effective), set up blogs dedicated to his ramblings.

Eventually the community he was targeting with his hate had enough. Being computer literate they beat him at his own game, set up a domain that matched his real name, used masses of SEO and inbound links from networks of blogs they ran, and listed what he'd done on the website. Now whenever someone Googles his name or something related, they can see exactly what he's done. Since he worked as a freelance professional with schools, theatres and companies, this really was not good for him, and after that he seemed to vanish. I presume this was only effective because his own reputation could be used as leverage. If they have nothing to lose it would be a pretty bad situation, as the author has experienced.

I have another anecdote about a friend who tried to raise money in his community for victims of a disaster, only to be character assassinated by a fake facebook account. He stopped raising money and cut himself off from the community which is a real loss.

</comment><comment><USER17> The only workable solution I've found: maintain absolute transparency with everyone in your various networks, and never, ever, ever respond to the animal in any way. It literally takes years for them to break off from the hunt, and there is no protection from their predation as long as they can still smell your blood. Your attention fuels their hatred and their psychosis.

Notifying their family or friends is counterproductive - they have been programmed to treat their predator as a victim and will attack you as well, multiplying the threat.

<comment><USER18> A mentally ill person - even one who is criminally so - is still a person, and not "the animal". Maybe you're just trying to hammer home the predator/hunt thing, but it still sounds really wrong to me. Whatever bad thing happened to you, don't let it corrupt your own sense of humanity.

<comment><USER19> It's easy to say that from the sidelines. I think it's a small price to pay for maintaining your sanity while its under siege by a mentally ill person. So long as you're not harming anybody, who cares how you frame your aggressor?

<comment><USER20> Framing them in an appropriate way is significant. Framing them as a mentally ill person can help _you_ cope with what's going on, because it helps you understand what's happening. And while it's not nice, humans deal much better with things that they think they understand (cf: origins of religions)

Framing them as a cunning predator that can strike mysteriously and who knows where the next attack vector is, well, that's just feeding the paranoia - <USER3> playing into their hands.

Besides, if your goal is to react as encouraged above and remain as dispassionate as possible, framing them as mentally ill helps put you in a mood of pity (or even compassion), whereas framing them as an animal suggests that they must have battle done to them.

EDIT: Not to mention just the basic humanity of seeing humans as people who can have problems, instead of simply writing off people wholesale if they take a wrong turn.

<comment><USER11> "Framing them as a cunning predator that can strike mysteriously and who knows where the next attack vector is, well, that's just feeding the paranoia - <USER3> playing into their hands."

But it's true, in a way. You can't really assume much about the limits of a person who's willing to take their own life down to assume control over yours.

</comment></comment></comment></comment></comment><comment><USER21> _... And then she began again.

James Lasdun is a writer who ... This essay is adapted from his new book, Give Me Everything You Have: On Being Stalked, to be published next month by ..._

I can't help but feel that I've been had.

<comment><USER22> If you take a look at his Wikipedia page, you will find the kind of defacement he discusses in the article:

[http://en.wikipedia.org/w/index.php?title=James_Lasdun&d...](http://en.wikipedia.org/w/index.php?title=James_Lasdun&diff=191599529&oldid=191539044)

"He has no integrity. He sells students' fiction to half-assed writers for personal profit and political reasons and makes it obvious because he's a psychotic who hates women and loves money. He is a rapist and sadist."

Now, while there's always the slim chance that he could have defaced his own page back in 2008 just to make it support a fake memoir about being stalked, it sounds a lot more likely that the stalking was real.

This is a promotional excerpt from his book, designed to entice you to buy it. Yes, he leaves out the ending in order to get you to buy the book. That doesn't mean that the book is a work of fiction.

<comment><USER23> More edits: [http://en.wikipedia.org/wiki/Special:Contributions/71.138.91...](http://en.wikipedia.org/wiki/Special:Contributions/22.214.171.124)

</comment></comment></comment><comment><USER24> I'm surprised the article didn't address the possibility that there was some mental illness involved. I assume the woman was in her early or mid 20's, an age where schizophrenia can manifest.

<comment><AUTHOR> My guess as well, and it's mentioned in the comments in the link. I suppose the author didn't want to speculate on her motives and so didn't mention this.

</comment></comment><comment><USER25> _Basically, as Nasreen had discovered, you can pretend to be anyone you want when you forward an article, and she had decided to pretend to be my old program director._

Does the general public really not realise that this is true of _any_ email?

Perhaps there's a need for some kind of campaign to remind the population at large that the From: address on an email is no more reliable than the sender address typed on the back of an envelope.

<comment><USER26> I'd be surprised if most people know that. On the other hand, I do get spam from all manner of famous people who don't really seem like the type to be selling v1agra online... seems like people might connect the dots.

<comment><USER27> The double-edged sword of the effective spam filters on Gmail/Hotmail/YahooMail is that people don't see these too often anymore?

</comment></comment></comment><comment><USER28> A coworker of mine met a guy from a dating site, had a lousy date at a TGIF/Applebees/etc's, decided not to pursue and ended up with a serious stalker issue.

\- Hundreds of texts over the next few weeks

\- She didn't provide her address to him, yet he ended up tracking her down over the next few weeks

\- He would drive 60 miles or so every morning before driving another 40 miles to start his 6am shift so that he could tape or nail a 10 or 20 page hand written letter to her door frame

\- She would routinely leave work to find him asleep in his car in front of her house

\- In a fit of rage over being ignored, he drove into and smashed down her garage door causing thousands of dollars of damage to her home

\- Several arrests later, his behavior hadn't changed

She finally had to get a restraining order and have him arrested for violating it, the police contacted his place of employment and he was fired (he held a position with serious privacy and security restrictions, which is probably how he tracked her down) and to this day, a couple years later, she still has to look out her window before heading out to work to see if he's there.

All of this over a single 90 minute meeting over food to discuss shared interests.

</comment><comment><USER29> > _A deluge of e-mails poured into my inbox over the next few months. I > deleted most without reading them._

What's best practice here? Set up filters to route them into a special folder? You never have to read them, but you've kept them in case you need to go to the police and courts?

<comment><USER13> You have to check them periodically to make sure the situation isn't escalating. For example, if they start threatening physical violence against you, you now have something to use to take legal action. And it's good to know if someone is planning to show up on your doorstep.

In my case, once the stalker started hitting my work email, my employer could step in and filter & review the messages for me (yeah, that was actually someone's job).

<comment><USER30> > You have to check them periodically to make sure the situation isn't > escalating. For example, if they start threatening physical violence against > you, you now have something to use to take legal action.

I guess for your own sanity you should get a trusted third-party (like a friend) to check those messages for you.

</comment></comment></comment><comment><USER31> I rememebr when I was about 13 years old my friends and I used ICQ to chat online. One of my friends had an acquaintance who thought it was amusing to 'hack' their chat client. It wasn't particularly complicated or malicious, but she would do it persistently every night and this made it impossible to chat. We knew who it was because they would quite openly brag about it. But we also knew who their dialup ISP was. So we faked an email written by the ISP telling this person to stop what they were doing or legal action would be taken etc. We just changed the 'from' address in the email from a throaway hotmail account. They could have easily worked out that the email was fake, but we figured they would be so mortified that they wouldn't get that far. We were right. The problem stopped immediately and never happened again.

I can't help but think that this category of solution would be useful here, although there is a fine ethical line to tread...

<comment><USER32> Also a legal line, since this is probably identity theft.

</comment></comment><comment><USER33> This article was riveting. It's rare that I read such a long piece, but it's really well written. Particularly when it occurs that disturbingly, I have no better way to check the veracity of the words here than anyone else would of the words written by "Nasreen". Reminds me of Ghost in the Shell.

</comment><comment><USER34> I recall when I was in Wikipedia that perverted-justice.org (or PeeJ for short) accused me of supporting paedophiles, and a whole bunch more. Luckily, I had been against the "Childlove Movement" article and wanted it changed significantly, and when they saw that they published an apology.

Stalking can ruin reputations - it was a hell of a scary thing.

</comment><comment><USER35> What resonated with me was the sinking feeling you get when you're defending yourself to a third party, thinking or knowing that the stalker has already put in place some counter-evidence to your rebuttal.

It's important to develop a strong emotional instinct of conviction based on your own beliefs rather than the natural method of holding convictions viz. based on what is popular knowledge at that time.

</comment><comment><USER8> FYI here's a link to the upcoming book detailing his experience ...

[http://www.amazon.com/Give-Me-Everything-You- Have/dp/0374219...](http://www.amazon.com/Give-Me-Everything-You- Have/dp/0374219079)

</comment><comment><USER36> If such a story doesn't sell you on the ideas of rigor and corroboration, then there's probably no hope for you. Gripping, true or not, and a reminder that we often accept as truth far more than we should.

</comment><comment><USER19> I think somebody should get James Lasdun on the horn and tell him to start using GPG on all of his emails....just sayin'.

</comment><comment><USER37> I used to think being a professor was a boring and safe profession. Boy was I wrong! I hope his student can receive the appropriate mental counseling to live a more normal and fulfilling life.

<comment><USER12> You never know what craziness is commonly found in the student population until it starts showing up in your office hours. Remember, if you deal with thousands of somewhat random people, you will have had to deal with dozens of seriously crazy people.

</comment></comment><comment><USER38> If anyone here is concerned that someone in their life might be a danger to them, I would encourage them to read 'The Gift of Fear' by Gavin de Becker: <http://www.amazon.com/dp/0440226198>

</comment><comment><USER39> There was a similar story in Texas:

[https://chronicle.com/blogs/ticker/jp/former-u-of-texas- stud...](https://chronicle.com/blogs/ticker/jp/former-u-of-texas-student-is- charged-with-stalking-professor)

</comment><comment><USER40> This book has everything you need to know to deal with these sorts of situations: <http://www.amazon.com/Gift-Fear-Gavin-Becker/dp/0440226198>

<comment><USER41> Fascinating book, in which Gavin De Becker (the author) reiterates the advice of commenters here, to deny the stalker any form of feedback whatsoever. It also highlights how, as in the Lasdun case, it can be a completely banal and initially harmless social transaction that can spiral out of control.

</comment></comment><comment><USER42> How does this relate to startups, software dev or anything remotely related to what HN stands for?

<comment><USER43> From the guidelines: "On-Topic: Anything that good hackers would find interesting. That includes more than hacking and startups. If you had to reduce it to a sentence, the answer might be: anything that gratifies one's intellectual curiosity."

It appears many people in this thread find this interesting (particularly in the ways technology interacts with stalking) so it is on topic.

<comment><USER44> Then again:

Off-Topic: Most stories about politics, or crime, or sports, unless they're evidence of some interesting new phenomenon. Videos of pratfalls or disasters, or cute animal pictures. If they'd cover it on TV news, it's probably off- topic.

I find this article to be in the "crime without any interesting new perspective" category, since the phenomenon of Internet stalking is old news by now, even for mainstream media.

Then again, lots of politics and crime stories seem to be making their way to the front page nowadays and there's no way to vote against them except to flag. So maybe I should just hope we at least stay clear of sports articles, or switch news sources ;).

<comment><USER43> I was thinking about that as I was posting that, but I thought this was generating an in-depth discussion beyond "crime without a new perspective" so it was okay with me.</comment></comment></comment></comment>


Ask HN: How is office music handled at your startup/company? - <AUTHOR>

Does everyone just put headphones on? Are there ways of bringing music into the workplace without upsetting someones sensibilities or taste? How does it work at your office? <comment><USER2> We play stuff if the office is quiet, not a lot of people. Simple communication works "is this distracting anybody?".

AirPlay gives control to whoever wants it. So if you're going to play some gangsta rap, get ready for some lykke li.

 _edit_ gangsta rap is a rarity.

</comment><comment><USER3> Headphones are a must where I work. And at some points no music is preferred, but that's only when the pressure is on and people need to be responsive.

The teams that are constantly on the phone however, they don't really listen to any music at all.

</comment><comment><USER4> Yes.

No.

I won't expose you to my horrible taste in music [1] if you don't expose me to yours.

[1] Think dab of Kate Bush, mixed with Steve Earle and Slaid Cleaves, seasoned with the soundtrack from 'Black Hawk Down'.

</comment><comment><USER5> Very strict no noise rule. No playing music or videos without headphones ever. Breaking someone's concentration is just about the worst thing you can do to a person that's deep in the zone.

</comment><comment><USER6> I actually control the music at my office, and I use accuradio and have a station custom made that mixes a tons of styles so everyone is satisfied.

<comment><AUTHOR> how do you know that everyone is satisfied? Is anyone every really satisfied by a mix of a ton of styles?

<comment><USER6> I know by employees coming to me or emailing me saying they enjoy the music.</comment></comment></comment>


How Microsoft Created a Revolution in Soviet Computing - <AUTHOR> http://www.atlasobscura.com/articles/how-microsoft-created-a-revolution-in-soviet-computing <comment><USER2> That was devolution, not revolution. The only reason US companies got to that market was political decision in Moscow to halt development of their own original systems and start to copy. That was very wrong decision, led to 99% dependency of later Russia from Wintel. Now Russia struggles to get out of this dependency, but I am afraid its too late.

<comment><USER3> I have no idea what you're smoking, but I'd like some of that, please. If they had developed their own system, they would be absolutely incompatible with standard systems and have to reinvent everything, while now they can just build on what's already there. The slight specific advantage of doing one or two things differently is massively overshadowed by the advantage of being able to coöperate and exchange data easily with the rest of the world.

<comment><USER4> This one [https://en.wikipedia.org/wiki/Ternary_computer](https://en.wikipedia.org/wiki/Ternary_computer) incompatible with everything ahaha

</comment></comment></comment><comment><USER5> I can only speak from the East-German perspective not Soviet/Russian, things might have been very different over there, but the article paints a too simplistic and too 'business-oriented' Western view and I wouldn't call it a 'revolution' at all.

Here's what changed from the 80's to the 90's from my perspective (as an 80's computer kid):

What became better:

\- computers got a whole lot cheaper and easier to buy, the domestic 8-bit computers were astronomically priced, and 'grey imports' like a C64 or Amiga cost as much as an expensive car (and those were _expensive_ ) and were completely unreachable unless you had relatives in the West

\- since it was suddenly possible to easily get a private phone for everyone, information exchange also got a lot easier (and legal!, e.g. in Eastern Germany, access to copying machines was restricted, owning a computer printer was legal though), information exchange between computer enthusiasts mostly happened via snail mail in the 80's

What was lost:

\- the 8-bit computers in the East were mostly about education, there was (nearly) no commercial interest to sell 'gaming computers', and of course we wrote our own games because there was nothing to play on those things. Without being saturated with distractions, there was more motivation to explore and learn how those computers actually work

\- shift to very few computer architectures that were successful at that time in the West (at least in Eastern Germany (in the 90's) it was either Amiga or PC, with a few Macs in schools in the 90's). But in 80's Eastern Germany alone, 5 different 8-bit architectures were built, with 9 or 10 different models, none of them a direct clone of western computers (with one exception, a late CPC clone in 1989), other Eastern Bloc countries very likely had the same number of domestically developed computers. Sure, the chips were direct clones (only Z80, no 6502, at least in Eastern-Germany), but the computer architecture and operating systems had a few unique and interesting ideas in them

\- before the 90's, copyright simply didn't exist in the East, everything was copied and modified as needed without anyone giving a shit who invented or built it originally, I'd argue that this had overall a positive effect on knowledge exchange, similar to what open source is today

Looking back, I think the 90's were the dark age of computing. The boring (compared to Amiga or Atari) PC had won, Silicon Graphics went down. Nearly all useful software was commercial and expensive. It was only since the mid-2000s after Open Source and Linux had won, that things started to get interesting again.

All IMHO of course :)

<comment><USER6> Same story in Bulgaria, except 6502s instead of Z80s.

</comment></comment><comment><USER7> An obligatory quote, which, while hyperbolic, touches some peculiarities of the time and place:

[http://www.vladware.com/Personal/Programmers.htm](http://www.vladware.com/Personal/Programmers.htm)

</comment><comment><USER8> Developers sneaking in pirated copies of software from companies like Borland into the office long preceded and anticipated their entry.

</comment><comment><USER9> I knew the Amstrad was old, but really...</comment>


Chemical equation balancing: An integer programming approach - <AUTHOR> http://www.sciencedirect.com/science/article/pii/S0895717706000367 <comment><USER2> A while ago I saw a paper in the _SIAM Review_ \- just one and a half pages of maths, followed by

"Remark 2. The theorem proved here gives a completely new general method. It generalizes all known results for balancing chemical equations cited chronologically in references [1]–[125]." [http://www.siam.org/journals/problems/downloadfiles/71-025s....](http://www.siam.org/journals/problems/downloadfiles/71-025s.pdf)

Reference 125 is to this paper.

<comment><USER3> This appears to be essentially equivalent to solving a linear system using the Moore-Penrose pseudoinverse. [https://en.m.wikipedia.org/wiki/Moore%E2%80%93Penrose_pseudo...](https://en.m.wikipedia.org/wiki/Moore%E2%80%93Penrose_pseudoinverse)

</comment></comment><comment><USER4> My high-school chemistry teacher had a tradition of announcing "Automatic A" challenges at the start of the term. One challenge was balancing a large chemical equation. I recall it required solving something like 6 equations with 6 unknowns. I solved it with multiple attempts and many pages of algebra, and crucial hints at sticking points from my dad who had a Masters in Chemistry. Easy A.

Another term, an A was promised for anyone turning in a "print out" of the numbers from 1 to 1 million. Dad, coming to the rescue again, got me access to a Microfilm printer at his work, and taught me just enough FORTRAN to generate the list. (Yeah, short program, all about the formatting.) Another easy A. The teacher's expression was priceless.

<comment><USER5> Did you enjoy working on those things?

The way you write it it seems like you think that it was stupid for a professor to give you an A for such easy things. However I bet you learned a lot.

<comment><USER4> >seems like you think that it was stupid

Because I mentioned the expression on his face? I didn't intend to convey that I was laughing at him for that - only that he was (understandably) surprised, and I enjoyed that.

I don't think it was stupid. The chemical equation balancing was highly relevant, and I did learn a lot from that. In some sense it was like "testing out" of the class - by mastering a homework challenge that was much harder than any of the class material.

The "million" challenge was interesting as well, and I did learn from it, but not about Chemistry. I knew I had the A less than halfway into the term, so I stopped doing chem homework. That was not optimal if the goal was to teach me Chemistry. In that sense, the first challenge was probably better.

</comment></comment></comment><comment><USER6> Amusingly, I discovered a method very similar to this in college. My method was simpler - stick a 1 in front of one chemical, then you get an n x n linear system of equations for the remaining compounds. Solve it, then figure out what to multiply by to get an int solution. I suspect that my version isn't stable, which I gather is the problem these guys are solving.

I was forbidden from using this method on the final, since it isn't the ad-hoc method that was taught.

<comment><USER7> How are you supposed to solve it, and how would they know?

<comment><USER6> Roughly speaking, this method: [http://www.wikihow.com/Balance-Chemical- Equations](http://www.wikihow.com/Balance-Chemical-Equations)

Showing work is required, and if work contains a matrix then they'd just mark it as zero.

<comment><USER8> > Showing work is required, and if work contains a matrix then they'd just > mark it as zero.

Ugh, this makes me so angry and resentful ...

<comment><USER9> School's first objective is to make you obey.

</comment></comment></comment></comment></comment><comment><USER10> I might be missing something big, but isn't chemical equation balancing just a system of linear Diophantine equations[1]? If it is, you should be able to solve it in O(n^3) time by converting to Smith normal form[2]. Unlike Hermite form, which the paper mentions, you don't need rational arithmetic or floating points.

[1][https://en.wikipedia.org/wiki/Diophantine_equation#System_of...](https://en.wikipedia.org/wiki/Diophantine_equation#System_of_linear_Diophantine_equations) [2][https://en.wikipedia.org/wiki/Smith_normal_form](https://en.wikipedia.org/wiki/Smith_normal_form)

<comment><USER11> Yeah, I remember using gaussian elimination to solve them in high school chemistry. My teacher taught us some guess and check method when it was clearly just a system of linear equations. He gave us a "challenge" problem with more variables than normal; much to his chagrin, I popped it into my TI-89 and had a solution within a few minutes.

</comment></comment><comment><USER12> Does this mean that, conversely, we can solve integer programming problems by doing chemical experiments?

<comment><USER5> Is chemical equation balancing NP-complete? hehe

<comment><USER13> Did you perhaps miss the third sentence of the abstract: "This special algorithm is polynomial time O(n3), unlike the ILP approach, and uses the widely available conventional floating-point arithmetic, obviating the need for both rational arithmetic and multiple modulus residue arithmetic. "

</comment></comment></comment><comment><AUTHOR> My face lit up when I found this paper after beginning balancing chemical equations in my 10th grade chemistry class this morning - so I thought I share it with HN.

<comment><USER14> That's awesome. Bonus points, did you implement it on a TI?

<comment><AUTHOR> Not yet.

</comment></comment></comment><comment><USER15> I'd always assumed that stoichiometry problems could be solved with linear algebra, but was too lazy to investigate. Usually the problems assigned were easy enough that you didn't have to work too hard to figure them out.</comment>


Coronavirus: White House concedes US lacks enough test kits - <AUTHOR> https://www.bbc.co.uk/news/world-us-canada-51761435 <comment><USER2> This article is light on details, but from other reading it seems like there was a flaw in the original test kits.

i.e. they didn't just forget to make kits, they did and they didn't work.

</comment><comment><USER3> ,,The president is expected to sign an $8.3bn (£6.4bn) funding bill passed 96-1 by the US Senate on Thursday. It is intended to help state and local governments combat the coronavirus.''

Expected? This sounds like a joke. What can be more important for him? Trump is doing everything to not get reelected.

<comment><USER4> I read that as "expected to sign on Thursday". As in,we can't predict the future and perhaps the signing will be moved forwards or delayed. Not that we're unsure if he intends to sign. I think your letting you bias cloud your interpretation severely.</comment></comment>


Free Dynamic DNS Using Vultr.com - <AUTHOR> https://github.com/se1exin/Vultr-Dynamic-DNS <comment><USER2> If it meets the guidelines, this might make a good "Show HN".

Guidelines: [https://news.ycombinator.com/showhn.html](https://news.ycombinator.com/showhn.html)</comment>


A man ate 'expired' food for a year - <AUTHOR> https://www.washingtonpost.com/business/2019/06/17/this-man-ate-expired-food-year-heres-why-expiration-dates-are-practically-meaningless <comment><USER2> Link to the original article - from the experimenter himself: [https://scottscompostpile.com/2019/02/11/my-year-of- eating-e...](https://scottscompostpile.com/2019/02/11/my-year-of-eating- expired-food/)

Reminds me of a Nobel winning physician Barry Marshall[1] who drank a broth containing cultured H. pylori, expecting to develop, perhaps years later, an ulcer :-). He ended up proving that bacteria cause ulcers.

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

</comment><comment><USER3> I love the 250 million year old salt example in this article.</comment>


Ask HN: is there such a thing as a public stream of encrypted messages? - <AUTHOR>

I feel like I should know about this and could probably find out with a little research, but thought I'd ask today seeing as there are so many crypto experts on HN.
If two people are exchanging encrypted email a third party could still observe the fact that communication was taking place even if the content itself were obscured. But what if a large number of people were posting encrypted data to a public message board? Only the recipients would know which messages were intended for them. Of course, this would mean attempted to decrypt every new message using one's private key, and getting nothing useful in the majority of cases - very inefficient, but also secure. For example:

  pg:       slkdjfbiofdnbdoibjowerni
  swombat:  poripmkbdoijdpohkdpjthkj
  tptacek:  sdflkjsdffnhhxgfjhlfkgjh
  ....etc.
 I try decrypting every one of these 'messages' (all of which would be much longer in reality) with my private key, but only swombat's resolves to plain text. Now I know his message was intended for me, but onlookers do not.
Obviously, there is nothing especially clever about this - it's just the old espionage technique of public signalling (through a classified advertisement or visual display) combined with a dead drop. Some twitter clients allow for the broadcast of encrypted tweets, for example. But I was unable to think of any obvious streams of encrypted  material like this. Do such things exist, or are most people too paranoid to use them? I have no practical purpose in mind, it just came up as a hypothetical in a discussion, for which I was unable to think of a real-world example. <comment><USER2> You can do it a bit easier without needing to have a large central message repository. Start with a secure distributed write-only database (imagine something like a big collection of random people running a variant of couchdb that included some crypto primitives) and then mix in a bit of private information retrieval[ * ] and you are most of the way there. There are some tricky bits to this general idea, like notifications and indexing the mailboxes, but the principle is fairly sound. The problem with these sort of ideas is that if you try to implement them in the real world you soon discover that your addressable userbase is really, really small, most of them are people you probably don't want to help out very much, and the resource provider/parasite ratio is hard to keep sustainable.

[ * ] PIR in a nutshell: Servers A & B contain messages 1, 2, 3, 4 & 5\. You ask server A to XOR messages 1 & 4 together and send it to you and you ask server B to XOR messages 1, 2 & 4 together and send them to you. You XOR the two streams and get message 2, but neither A nor B know what you asked them for. Obviously there are additional steps that make the system more secure, but that is the basic gist of how it works.

</comment><comment><USER3> The Newsgroup alt.anonymous.messages is made exactly for this purpose.

<http://groups.google.com/group/alt.anonymous.messages/topics>

<comment><USER4> if you'll excuse my naïveté, but what's the purpose?

<comment><USER5> Transmitting messages such that the intended recipient is impossible to know for any third-party observer. If you're sufficiently and justifiably paranoid, you'll want to obscure both the content of your messages and who you're talking with.

I can think of some uses for this, mostly related to spying and espionage. On the other hand, if you're really paranoid you don't want anyone to know that you're transmitting messages - because that can lead to danger, if they choose to take the lead pipe approach to finding out what you want to keep secret.

</comment></comment></comment><comment><USER6> Perhaps Twitter has the better solution? Why not direct messages to a single user, or hash tag, etc? It's basically a way of sending messages to only a set of recipients that wants to receive it. In your case though, there'd also be a level of encryption involved. I guess what I'm saying is, perhaps a real-world example could be close to Twitter?

<comment><AUTHOR> Well, the idea here is to prevent third parties from knowing which senders are communicating with which recipients. If only 2 people are using such a system then obviously that's pointless, but as _n_ increases then there are _n(n-1)/2_ possible conversations in progress, obscuring the pattern as well as the content of communication.

</comment></comment><comment><USER7> I think onion routing, like the Tor project, satisfies the criteria of obscuring sender and recipient.

</comment><comment><USER8> wifi routers?</comment>


Simple Ways to Protect an API - <AUTHOR> http://techblog.thescore.com/2014/06/25/http-basic-authentication-and-http-token-authentication/

<comment><USER2> It is not 100% clear but it looks like the authentication credentials in the blog post are static and are shared between clients (from the code comment: "In real applications, we will not have the authentication credentials lying around in code. We will store them in external configuration.").

This is REALLY bad idea to have static and shared credentials. Especially in the case of mobile client when the client code itself is in a "hostile" environment. A "bad" guy can inspect the code and extract the authentication credentials. As soon as it happens, you need to update _all_ other clients to push the new shared secret.

While OAuth protocol has a number of problems, it gets this right: all the tokens are specific to the client and the compromise of one token would not compromise others. The application can react by marking the compromised token as invalid on the server side without requiring expensive clients update.

<comment><USER3> Agreed, and theScore client apps actually use OAuth. We use HTTP Token Authentication for internal services with a limited number of consumers (other internal services). For this purpose, static and shared credentials are fine.

<comment><USER2> If this is an internal services call, then I am not sure what is the value of having HTTP authentication. Personally, I would setup X509 certificates on both client and server; and then just use those for the authentication. Plus IP restriction if you are hosting in the cloud.

</comment></comment></comment><comment><USER4> According to RFC 2617[1], _Both Digest and Basic Authentication are very much on the weak end of the security strength spectrum._

[1]: [http://tools.ietf.org/html/rfc2617#section-4.4](http://tools.ietf.org/html/rfc2617#section-4.4)

<comment><USER5> The main criticism relates to eavesdropping. Wrapping Basic or Digest authentication in TLS eliminates that issue.

<comment><USER6> The article makes no mention of TLS anywhere, and the example endpoints are all HTTP. So, this is a thoroughly insecure implementation, relying on very weak security mechanisms, prone to straightforward interception and tampering, replay etc.

</comment></comment></comment><comment><USER7> Why is the API accessible from the public internet if it's not a public API ?

<comment><USER8> Why is an `/admin` area password protected if it's on the public internet?</comment></comment>


Web frameworks are transforming from runtime libraries into optimizing compilers - <AUTHOR> https://tomdale.net/2017/09/compilers-are-the-new-frameworks/ <comment><USER2> "The trend started by minifiers like UglifyJS and continued by transpilers like Babel will only accelerate."

Those were predated by Closure Compiler, which was started with Gmail, and Closure Compiler in some ways still doesn't have an equal. Besides being a fully optimizing compiler, it also has a module system for code splitting, and optimization passes designed to move code at the method/property level from initially loaded code into deferred loaded code if it is detected to only be used later.

You can see this in action with photos.google.com which splits up every UI component, model, and controller into a dependency tree of modules, which are aggressively optimized. When an action needs to fire, only the transitive dependency of reachable code needed to handle it is loaded.

The closest external version of this is Malte Ubl's"Splittables" for Closure Compiler ([https://medium.com/@cramforce/introducing- splittable-1c882ba...](https://medium.com/@cramforce/introducing- splittable-1c882babca7e))

<comment><USER3> This seems to be something of a trend in the software library and tool world:

A problem emerges. Some early, sharp thinkers create tools which attack the problem in a high level, abstract, powerful way... but also with the rough edges that come with being early. These tools get a few adopters, but not that many because it is difficult to see the value versus the obvious rough edges.

Then other sharp thinkers, put off by those rough edges, create N new waves of tools which attack the problem less effectively, but more accessibly.

Then eventually, some years later, common practice of the waves of tools will circle back around and start doing the things that that early rave started.

It's easy to criticize the "daily new JavaScript framework" phenomenon along these lines, but I don't think it is specific to JavaScript, nor specific to 2017, and not even specific to software development. It's just part of how we humans work.

<comment><USER4> Somewhat relatedly - when a new technology wave gets started, it's usually proprietary, because there are big competitive advantages that can be had by being the only one with possession of a new technology. As details leak out and enterprising independent hackers get interested, commodity or open-source clones emerge, and they get much wider distribution _simply because they 're cheap or free_. The original innovator is caught flat-footed, loses mindshare, and eventually has to adopt the open-source solution when it becomes dominant in the open-source world.

Altair -> Apple -> IBM -> Dell & clones. UNIX -> System V -> BSD -> Linux. MapReduce -> Hadoop. GMail -> Closure Compiler -> Traceur -> Babel. Google datacenters -> AWS -> Docker -> Kubernetes.

<comment><USER5> This is a very strange example. Gmail, Closure, and Traceur are all Google products.

<comment><USER6> And Closure and Traceur are both open source.

<comment><USER4> And Babel's the one people actually use.

Within the progression, each new generation is decreasingly tied to a proprietary, revenue-generating product, and increasingly intended for outside consumption. So GMail was completely proprietary and closed off from the outside world. The JS library, compiler, and optimizer from GMail was spun off into Closure, which was widely used across Google products and finally open- sourced 5ish years later, but never got widespread external use because it's very tightly tied to the style of JS development within Google. The idea of JS transpilation was proven by Closure, and Traceur was developed from the outset to be open-sourced and not tied to Google products - but it was developed by a member of the Chrome team, and so the developer perspective was that of how internal Google engineers think, and the development process wasn't really inclusive of outside engineers. Finally, Babel was developed entirely outside Google, based on ideas that had been proven out and were widely disseminated, but it was developed from the start with an open community process.

</comment></comment></comment></comment></comment></comment><comment><USER7> Svelte([https://svelte.technology/](https://svelte.technology/)) is one similar idea. It's a framework that compiles down to plain JS before being shipped out to browsers.

There's a couple of concerns though:

#1

How are we going to manage browser inconsistencies? We are very much better than what we were when jQuery came out. Yet we aren't 100% there either. Browser inconsistencies, still do exist and runtime frameworks try to deal with it.

#2

I'll take Svelte as an example. Say, a component written in Svelte is 2 lines long. The compiled JS file of that component is around 200 lines long (verified). Out of these 200 lines of code, almost a hundred lines are repeating units that occur in every component file.

By the time my app reaches a hundred components, this extra 100 lines gets multiplied by 100 times. This bloat is exactly what we want to avoid with runtime frameworks.

So, let's think of the simplest solution.

Why not ship these repeating units of code as one module/set/block of code, that gets reused in different places? But wait, isn't that block of code is what we call "Runtime Frameworks" ?

I still think compile-time frameworks are the best bet we've got. Would be helpful if somebody can throw light on these aspects though.

<comment><USER8> Some of these concerns were already mentioned in HN when Svelte itself got discussed ([https://news.ycombinator.com/item?id=13069841](https://news.ycombinator.com/item?id=13069841)), and the suggested solutions for problem #2 were (kudos to user callumlocke):

\- Bundling and gzipping several Svelte components together might compress well – a lot of their size comes from repetitive substrings like `.parentNode.removeChild` and `.setAttribute` etc.

\- Once downloaded, the Svelte approach would probably be faster than React (at both rendering and updating) and would use less memory (no virtual DOM, no diffing, just fast granular updates).

\- The self-contained nature of Svelte components makes it easier to treat them as atomic downloads and use them as needed. For example, you could get to a working UI extremely fast, and then download more components for below-the- fold or other pages in the background. This could work well with HTTP/2.

<comment><USER9> According to js-framework-benchmark ([http://www.stefankrause.net/wp/?p=431](http://www.stefankrause.net/wp/?p=431)) it doesn't just use much less memory than React, it uses less memory than _any_ other framework, because we don't have the overhead of a virtual DOM. And yes, it's significantly faster.

I answered the deduplication point in another reply to the parent, but you make a great point about code-splitting. If you're using a convention runtime framework it doesn't matter how aggressively you code-split — your smallest chunk will be at least as large as your framework. Self-contained components solve that problem.

<comment><USER8> That is fantastic, thanks for the clarification. The problem with calling self-contained components on demand is more of a mindset one: we've grown too used to compiling everything into one single file and calling it a day.

</comment></comment></comment></comment><comment><USER10> Check Svelte out ([https://svelte.technology/](https://svelte.technology/)). From the docs: "... rather than interpreting your application code at run time, your app is converted into ideal JavaScript at build time. That means you don't pay the performance cost of the framework's abstractions, or incur a penalty when your app first loads."

<comment><USER3> Svelte is quite appealing, especially for the "reusable widget" layer web development. But there are two areas where there's probably room for something else to swoop in:

* Pervasively typed with TypeScript, written in TypeScript, completely first-class. (It is very easy to consume TypeScript base code from JavaScript, but tacking types onto something written without them almost always yields a much lesser experience.)

* Output standards-compliant web components by default. (Perhaps with room to also output some other variation of component, if there is some API aspect where that helps.)

(Distraction for another day: I think the future of SPA development will be web components at the widget/component level, while application frameworks start evolving upward to provide more features around building applications - because there is less for them to do around building components.)

<comment><USER9> Svelte does now offer an option to compile directly to web components, though it's experimental at this time. You could give StencilJS a go - it's web components through and through, and uses Typescript.

</comment></comment></comment><comment><USER11> Whilst I am in favour of the optimisation of resources (and use these sources) we are willingly moving the "View Source" model to for profit entities like github.

In the way the internet has evolved we really should look hard it the elephant in the room: the DOM is for documents - not for interfaces.

IMHO optimisation for javascript is just a short term fad (hopefully) and browsers will adopt a more open approach to interface building. This should lead to "View source" on an open standard for interface building - which I think React comes close to. I know there are projects around that attempt this, but I am not aware of any real successes - at least in the same way React has grown.

The elegance of HTML has been superseded now, because interfaces are rich and packed with features. The DOM design is lacking and slow because of legacy support.

If the whole community effort was spent creating a better UI/UX standard (a standard web front end) - compilers would have no business case and i'm not sure they ever should.

<comment><USER12> Honest question: apart from nerds, what reason do we have for valuing 'View Source'?

I mean, you can't 'View Source' anything of the computer the browser is running on, or the browser itself.

<comment><USER11> How do non-nerds become nerds? "View source" can be the lid of the pandora's box for lots of young people who become inspired to be developers.

Alos the web is not just for nerds! HTML is a language that lots of everyday people can write now - it is empowering.

<comment><USER13> We were already nerds for a few decades before the browser was invented.

<comment><USER14> And we (my generation) weren't!

"View Source" is not the only way to start on your way to nerddom, but it is, or at least was at some point in time, an important one.

<comment><USER13> I find computer magazines and programming books more relevant, and those aren't going away.

<comment><USER15> An opposing data point: I can't recall the last time I used a physical programming book for anything other than a monitor riser (being so thick, they're fantastic for this). And I am from the generation where those books were how you learned to program.

Every resource I consume today is either in HTML or PDF form.

</comment></comment></comment></comment></comment></comment></comment><comment><USER16> > a small 40MB iOS app

What a sad, sad world we find ourselves to live in.

<comment><USER17> Indeed, we no longer worry about food, safety and survival and instead our sadness is directed at irrelevant application binary file sizes.

<comment><USER18> The sadness does not step from the size of a random binary file per se. The sad part is the prevalence of attitudes deemed unprofessional among people of a certain profession.

It's sad for example, that with all the technologies available to us, to imagine what we _could_ have, and compare it with what we _do_ have.

<comment><USER19> It wouldn't help. If we spent more engineering effort on efficiencies that don't have a substantive effect on consumer response, we're just being inefficient with our time. That will result in less capable software, higher big counts, or higher software prices. Software is written with budgets, and nothing is free.

<comment><USER18> How would you like it if a car mechanic left extra garbage in your car because he has no time to clean it and you don't know what's underneath the hood anyway so who cares!

It's kind of hard to trust someone with that attitude, don't you think?

Yet we waste CPU/RAM/Disk space on consumer's devices without hardly giving it a second thought.

<comment><USER20> Fantastic way of putting it. Developers shirk responsibility too easily

</comment></comment></comment></comment></comment></comment><comment><USER21> Yet all this is doing so little. It's not like many people are using WebGL and canvases to do interesting graphical things. Mostly they're just messing with scrolling, popping things up, and fading things in and out. All this machinery is way overkill for what it's used for.

(Especially messing with scrolling, badly.)

<comment><USER22> You'd be surprised how often WebGL comes into play, take those silky smooth animations for example...

or, you know, Google Maps.

</comment></comment><comment><USER23> In 2002, the Laszlo Presentation Server compiled XML with embedded JavaScript to swf (Flash) byte code. [A later version also compiled to HTML. Performant cross-browser dynamic HTML was daunting in 2002.]

We considered HTML's "View Source" feature important, so we emulated this by causing the compiler to place a formatted source file in the output asset directory, and to embed a "View Source" popup menu. You could turn this off, and probably would for a deployed app, but the nudge was there.

</comment><comment><USER24> Just throwing my side project, Surplus, out there as another example of this strategy ([https://github.com/adamhaile/surplus](https://github.com/adamhaile/surplus)). Surplus compiles JSX into optimized code that produces real DOM elements. The combination of an ahead-of-time compiler plus no virtual DOM layer means that the runtime code only has to do the minimal, truly dynamic work.

As a result, Surplus is the fastest framework in Stefan Krauss's latest js- framework-benchmark ([http://www.stefankrause.net/wp/?p=431](http://www.stefankrause.net/wp/?p=431)).

DSLs are powerful, compiler support can make them fast.

</comment><comment><USER25> OT, but this jumped out to me:

> In the same way that a compiled Android binary bears little resemblance to > the original Java source code

From what I recall, Java binaries actually look a lot like their source code. They're not human-readable of course, but you can decompile them very easily and get fairly good code back out. This made Minecraft an easy game to mod: just decompile a class, change a line or two, recompile, insert back into the JAR and you're done.

Is Android different?

<comment><USER26> Android code goes through ProGuard on release usually, which is an optimizer (and obfuscator if enabled). It usually makes a lot of optimizations on bytecode level which makes decompiled code noticably harder to read.

<comment><USER27> If you disable the obfuscation, ProGuard code still looks basically the same.

I never enable the obfuscation, as my apps are GPL anyway, and I want users to be able to just decompile any version.

<comment><USER26> Not really - ProGuard does several optimizations (finalization, removal of redundant bytecode instructions, pulling up methods into superclasses, removing needless sublcasses, some fixes to handling exceptions and several other things depending on optimization settings) which change the bytecode output to the point where you don't have a two-way mapping from Java to compiled code anymore.

<comment><USER27> I know, and it gets a lot worse when using Kotlin, but this ensures that users can always take the compiled binary, and check that it doesn't use any analytics, tracking, or any proprietary code that might violate their privacy.

This is very important for me.

</comment></comment></comment></comment></comment><comment><USER28> > The trend started by minifiers like UglifyJS and continued by transpilers > like Babel will only accelerate.

Not to be pedantic, but are UglifyJS and Babel "frameworks"? Not a Ember user, so maybe Ember has some sort of built-in source code transformer and that's what the author is referring to?

I think the basic idea that JavaScript developers, especially those working in a browser environment, will increasingly write source code that compiles to JavaScript "bytecode" is not a recent idea. A much more nuanced reflection on that idea can be found here: [http://composition.al/blog/2017/07/30/what-do- people-mean-wh...](http://composition.al/blog/2017/07/30/what-do-people-mean- when-they-say-transpiler/).

With all the hand-wringing about "JavaScript fatigue", it's a little bit sad that prominent JavaScript developers use titles like "Compilers are the New Frameworks". The tone of this title is the tone of a bell ringing for the next round of JavaScript fad musical chairs.

<comment><USER29> > Not to be pedantic, but are UglifyJS and Babel "frameworks"?

The article doesn't make that claim, which kinda invalidates the "pedantry strawman" the rest of your comment is based on.

<comment><USER28> >...what we call web frameworks are transforming from runtime libraries into optimizing compilers.

I took that to mean that the frameworks are doing the optimization. But the article doesn't give examples of the frameworks. The only examples of code transforming optimizations are Uglify and Babel. So I thought maybe these were the things the author has in mind and not actual frameworks. I was genuinely confused and prefaced with the aside about pedantry because questioning these kinds of semantics can come across as pedantic.

The second half of my comment stands regardless.

</comment></comment></comment><comment><USER30> > Our job now is figuring out how to adapt the ideas of high-performance > native code while preserving what makes the web great: URLs, instant > loading, and a security model that allows us to forget that we run thousands > and thousands of untrusted scripts every day.

URLs are indeed part of what makes the web great. So, too, is being able to read a document on any device imaginable, from a desktop with multiple monitors to a VT100 to a Plan 9 terminal window to a laptop to a watch to a phone to the custom OS I'm building in my free time. Non-progressively- enhancing JavaScript kills that entirely.

Also, I don't think the security model of the web _allows_ or _enables_ us to forget that we're running thousands (hundreds of thousands?) of untrusted scripts; I think it just _encourages_ us to. Really, we shouldn't forget it at all. The web security model — while nothing to sneer at — has enabled wholesale violations of privacy and the reduction of human beings to marketing data.

</comment><comment><USER31> It's crazy to me what amounts to most UI's -- basically forms and buttons, lists of things, images, pages have become so complex.

It's like I've died and woken up in a strange, bizarre world where the laws of physics are different, but I still inhabit the same world.

Does anyone else feel this way? Is this just how technology works?

<comment><USER32> This is typical of the maturation of any technology platform. What is actually happening is a change from a long-term growing complexity to short-term stable complexity.

Historically, building something simple in an HTML page has always been simple. A field here, a button there, you're done.

But with increased requirements, that sort of work became exponentially more difficult to maintain. If you have 10 fields each with the same basic functionality, you'd end up repeating the same thing 10 times. If you wanted some complex state management, you're building it all from the ground up. Your code may be "simple" in the sense that you don't need a build tool, preprocessors, or any dependencies to maintain it, but it becomes increasingly difficult to maintain.

React, babel, webpack et al can make things much more complicated _to start_, especially for someone not acquainted with it. But the trade off is that things keep more or less the same level of complexity. Adding a feature is easier, duplicating an element or a screen is easier.

<comment><USER31> I disagree with this sentiment and it's tautologically false.

Have you ever worked in a mature babel code base? I have worked in many and frequently get contracts to clean them up. I have yet to see a clean one. Can you even point to a clean open source one?

The complexity doesn't reach some steady state, it just keeps growing.

The argument that something simple needs to be complex because of unknown future needs is a prime example of design based on emotion, not engineering.

</comment></comment></comment><comment><USER33> Domain specific languages I suppose are the next cool aid. Or languages with a comprehensive macro system (like Elixir) can bridge the gap between these ways of thinking. This feels very frontend focused though - I'm wondering if there is a more holistic approach.

I have an idea for a framework/project, that over web sockets, views the browser as a thin client for a server side representation; commands would be sent from the browser but defined on the server. I haven't decided how this would work yet fully but it would be interesting to do the DOM diff-ing on the server and have the thin client only transfer the changes. This would hopefully make the initial payload extremely small and the changes being transferred minimal as well.

Are there any projects that do anything like this currently?

<comment><USER34> "I'm wondering if there is a more holistic approach."

The end game, once WebAssembly is fully integrated into the browser, is to expose the 3D API and/or a high-performance low-level 2D API (or both) and slowly, but surely, a "web browser" will become an environment where you download a full rendering engine for a website, written in an arbitrary language that has WebASM support, and in the end both DOM and JS will become merely another option, at which point IMHO neither of them will actually fare very well, excepting their substantial existing install base. Caching will make this feasible as most of the "long tail" isn't going to make their own engine, just use someone else's, and there aren't really all that many sites who can afford to write their own.

While I consider the forces pressing on the browser to virtually predestine this outcome, it is at least 10 years off.

(If it wasn't for the fact that Javascript is still not fast enough to pull this off, I think we'd already see more frameworks that do layout and ship down a lot more divs and such with hard-coded absolute positions, turning the browser into an environment where it simply puts text and images where the server tells it to, and stops doing all this expensive reflowing and layout. You can see on all kinds of sites the desire to do this on the part of web publishers. However, it is impossible to do this on the server side because you need access to font metrics (where you may not be able to force your own), screen size info, browser zoom level, and a whole bunch of other such things that make it impractical to do server-side in a whole bunch of ways. But JS is still at least ten times slower than native code here, plus would take an inevitable penalty accessing a _lot_ of FFI code, so this is currently almost unthinkably infeasible on the client side.)

<comment><USER12> As always, the fantastic Gary Bernhardt takes this through to its logical conclusion [https://www.destroyallsoftware.com/talks/the-birth-and- death...](https://www.destroyallsoftware.com/talks/the-birth-and-death-of- javascript)

<comment><USER34> First, while presented humorously, I take it somewhat seriously as well. And one place where I disagree with it is that unless you consider WebAssembly as Javascript, it isn't true. It isn't Javascript destined to take over the world, it's WebAssembly.

You will know WebAssembly is here and in charge when the browsers compile Javascript itself into WebAssembly and take at most a 10% performance hit, thus making it the default. Call it 2022 or so.

</comment></comment></comment></comment><comment><USER35> Its funny that companies like Google work so hard to make Javascript interpretation so fast. Yet people write in an abstracted dialect that needs to get compiled down to Javascript because of productivity, convenience, sexiness, or whatever else. So many layers...

A developer spends a lot of time debugging. Its so fun to write Jasvacript in the console. Yet we need source maps to solve the above problem in order to debug the code we wrote.

Some times I feel the amount of engineering we do in defining new frameworks, dialects, transpilers, etc would be better served writing features for our end users. No, we absolutely need that hammer++ to hit that nail.

</comment><comment><USER36> That's funny because all the deep-learning frameworks also did the same move: the API is now just functions building an AST that is then translated by a compiler into parallel cpu or gpu code...

</comment><comment><USER37> It seems like the less code users have access to, the less control they will have over their computers. Example: it might become harder to block tracking and ads, turning the open WWW into something more like mobile phone apps (which are terrible for the freedom of end users).

<comment><USER38> I think that's the very thesis to the free & open source software movement.

</comment></comment><comment><USER39> I don't think so.

Browsers will catch up with what developers want.

We have seen that with ActiveX, Flash, Java applets, jQuery etc. Every time tech was needed because "The browser alone is not good enough" the browser became better and made the additional tech obsolete.

<comment><USER40> I think the effort going into browsers is a double-edged sword. It's nice that we've got so much work going on, pushing new standards, etc. but it's also making browsers more bloated and making it less viable to bring out new browsers.

As more stuff gets done in Javascript, and Javascript gains more APIs, browsers like Lynx, Dillo, Netsurf, and umpteen yet-to-be-written ones are becoming less able to browse the Web. Likewise, the effort required to "upgrade" them would be massive.

I think a consolidation of features would alleviate the situation a little: have a small "foundation" of required tech, e.g. a subset of JS (or WebAssembly) with few primitives or APIs, and have the browser pull in polyfills for everything else, including interpreters for fuller, newer JS standards, etc. If a browser is graphical, it could provide a bitmap-blitting primitive, and use polyfills for CSS, fonts, layout, etc.

The Chromes and Firefoxes of the world could ignore the polyfills and keep going with their highly-tuned native implementations of these things, but it would prevent "kicking the ladder away" from everyone else.

<comment><USER41> While I agree with the overall sentiment, browsers like Dillon and Lynx don't even implement HTTP caching correctly (they cache everything regardless of the headers).

JavaScript is not their biggest problem, as they can plug in one of the existing engines (in fact one of the links forks does just that).

<comment><USER42> > as they can plug in one of the existing engines

As someone who attempted this for Lynx back in the [~late 90s~] early 00s with the Mozilla JS engine of the time, no, they can't.

Lynx has _no DOM_. It parses and renders the HTML to a fixed textual pane without any intermediate format - even `document.write()` is nigh-on impossible to implement because it required keeping a copy of the HTML around, jiggering it with the output, reparsing, and going through the layout again. And that only covers the most trivial uses of `document.write()`.

To add Javascript to Lynx would require rewriting the entire internals of Lynx - not going to happen.

[Edited to correct the time period]

</comment></comment></comment></comment><comment><USER43> I think things are changing. Angular 4 was definitely "compiling" their code, instead of just running it. However, with VueJS growing in popularity, lightweight apps are on the rise again. People are tired of 5-10mb web apps.

</comment><comment><USER44> I think Angular2/4 already goes into that direction. Afaik it optionally precompiles all templates, which means what ends up in the user-facing HTML/Javascript is not the source but optimized generated javascript from it.

<comment><USER45> Angular 4 does code splitting, but it's bundle size carries a pretty big baseline

<comment><USER3> Beyond code splitting, I wonder if a future Angular version may do more aggressive compilation as the linked article and much of this discussion describes, to reduce that baseline. I have written quite a lot of Angular code, and I don't think there is really all that much from and application point of view that absolutely requires a large baseline run time. Much of the same experience and application code base (perhaps with some API adjustments now and then, with semver taken very seriously...) could likely be preserved while making Angular work more and more like an optimizing compiler with a small runtime.

<comment><USER45> They're definitely aiming to make use of the closure compiler (which is why they went with Typescript as a default)

[https://github.com/angular/tsickle](https://github.com/angular/tsickle)

</comment></comment></comment></comment><comment><USER46> The author mentions WebAssembly, yet writes at the end :

" and a security model that allows us to forget that we run thousands and thousands of untrusted scripts every day."

WebAssembly is designed to run in a sandbox. I suppose that does not by itself make it completely safe, but it can not be much worse than the current situation, can it?

<comment><USER47> I think WebAssembly has a huge expectations problem:

What many people think it is: I can compile my JS frameworks as assembly and ship binaries to the browser, that'll run near-native and be more compact.

What WebAssembly actually is: a way to compile libraries from other languages in a manner that you can run them in a JS runtime, but with no access to the DOM, etc. (Think of things like shipping a JS based OCR library or a JS based audio-engine that runs at near-native speeds)

<comment><USER48> Thanks for putting the discussion back into the realm of reality.

For as long as I'm in IT, there has always been the story of an upcoming holy grail of technology that'll change _everything_ aka the silver bullet. Reading through this thread, that role seems currently occupied by WASM, with wild projections of all kind of perceived problems of frontend development and beyond onto WASM.

The reality is I have yet to see a single app making use of WASM on the web. And even when, if, there eventually is a WASM app, it won't be able to do anything that other (native) development environments haven't been able to do for ages. I'm not sure the world needs a new bytecode format, when only the ARM and x86_64 ISAs are still around. OTOH, what's new with WASM is that the browser and the internet acts as a gatekeeper for starting apps on your device, which I'm not sure will be met with enthusiasm by users. Furthermore, since WASM lacks APIs for even the most basic things, it would take ages to establish a platform, with all the fragmentation this entails.

<comment><USER46> > The reality is I have yet to see a single app making use of WASM on the web.

IMHO a spectacular example is stockfish on lichess.org. On some browsers, like Chrome and Firefox IIRC, it is still slower than PNACL or asm.js, but on Microsoft Edge it is the fastest solution and it's what is currently used for this browser. It should be the fastest solution everywhere once multithreading is added.

The developer of lichess stated that is was fairly trivial to port stockfish to webassembly and compile it for lichess. When I saw it running, I was impressed (and still am).

</comment></comment></comment></comment><comment><USER49> If you want to make a pure web app without server side "rendering", you should forget about HTML/XML and only use JavaScript and CSS. Managing GUI state in JavaScript sure is boring at first, but the trick is to use functions and abstractions, event listeners/observers, and plugin patterns. Then it becomes fun again, the performance is good, the source code is small, and it's easy to debug. Stop using < and > in your web app code!

</comment><comment><USER50> > Ember has always been driven by the idea that web apps are becoming more and > more like native apps over time.

Well, this is what people keep telling again and again, as if it was enough to repeat it to make it real, but I still have to see one web application that I would prefer to use over a desktop one.

Sure, we have hugely complex webapps, but the browser is a really a shitty environment to think of it as a "platform" to do anything else than to read documents.

<comment><USER51> > _but I still have to see one web application that I would prefer to use over > a desktop one._

Sure you have, I would make a huge bet you've used a website that you were unwilling to install the app for. On-demand, truly cross-platform app deployment is a huge feature, not to be underestimated.

<comment><USER52> > I would make a huge bet you've used a website that you were unwilling to > install the app for

HN!

</comment></comment></comment><comment><USER53> I would rather suggest the opposite: the compilers will be moved out of frameworks, because they will become more and more powerful and general purpose, so that there is no need to handle framework specific things.

When we have web assembly and compilers like the Kotlin compiler that can translate a high-level language to web assembly, there is little need for framework specific compilation.

</comment><comment><USER54> elm is a good example.

<comment><USER3> Elm is a very good example of a compiler, but (as I recall, unfortunately without information in front of me) it's not that great of an example of doing maximal work at compile time to minimize the size of a runtime support library. I don't remember the kilobytes but they are significant.

That said though, since the Elm language is nicely constrained, it seems possible that a future version of the compiler could keep moving quite far in this direction.

<comment><USER55> The latest thought on this from the Elm community is that dead code elimination should be done after compilation[1] and that this should be easy[2].

I don't think the OP's main point was about file size optimization though. Elm's killer "optimization" is to remove the mutable parts of JavaScript and add a strong type system that can prevent practically all runtime errors. To achieve that goal the source language is significantly different than the target language.

[1][https://github.com/elm-lang/elm- compiler/issues/1453#issueco...](https://github.com/elm-lang/elm- compiler/issues/1453#issuecomment-236917961) [2] [https://github.com/elm- lang/elm-make/issues/91#issuecomment-...](https://github.com/elm-lang/elm- make/issues/91#issuecomment-205984891)

</comment></comment></comment><comment><USER56> > _Native code tends to have the luxury of not really caring about file size—a > small 40MB iOS app would get you laughed out of the room on the web._

Sure. And then your investor comes knocking on the door, sits down, looks at you judgingly, inhales smoke from his $200 cigar and says that he wants more returns from your startup. And you have no choice and have to put 10+ spy... - errr, advertisement, I meant advertisement! - scripts, and your web app consumes those 40MB easily.

Don't act like web development is some small elitist circle where things are done extremely well, are optimized, and are with attention to technical detail.

They are not. JS is a shit-show still. Compilers help, I agree. You can't go anywhere without reusable code though. Also known as "runtime frameworks".

</comment><comment><USER57> > The trend started by minifiers like UglifyJS and continued by transpilers > like Babel will only accelerate.

No, the Babel trend is decelerating thanks to ES6 being supported practically everywhere. Minifiers (based on Babel :D) are still used but they're not _that_ necessary thanks to HTTP compression.

We have a component model with Custom Elements, encapsulation with Shadow DOM, variables (custom properties) in CSS, JavaScript with classes and modules, and HTTP/2 push to deliver these modules without extra roundtrips. The future is more platform, less tooling.

</comment><comment><USER52> Just let me know which open source web framework has the best batteries- included (as part of the main framework) data grid and I'll be happy.

</comment><comment><USER58> Is there a compiler for server side code? Producing DDL sql-code, views, templates etc from a more abstracted meta model?

</comment><comment><USER49> Isn't the JavaScript engine itself doing a good enough job of optimizing the JavaScript code !?

</comment><comment><USER59> Isn't the title backwards? (Still seems so after reading the article)

<comment><USER60> Yes, I agree it's awkward, I think it's meant as:

> The new web development frameworks are compilers

</comment></comment><comment><USER61> The thing you have to always remember is there is no specific language that is JavaScript.

</comment><comment><USER22> What a terrible title. A "web framework" conventionally is the runtime library, e.g. React, or Ruby on Rails.

The optimizing compilers are part of the "build tools" or "build chain" or "make system". They weren't ever runtime libraries (except in isolated examples), and the general patterns have been around since the 70s.

Yes, it's good to learn how a compiler works.

</comment><comment><USER62> > When it comes to eking performance out of hand-authored JavaScript and > accompanying runtime libraries, we've reached the point of diminishing > returns.

Are you saying that web developers are writing the best code that they can? That future gains are going to come from more advanced js preprocessors instead of more informed developers? I strongly disagree that we have reached any sort of diminishing returns when it comes to the quality of hand written code.

> Between WebAssembly, SharedArrayBuffer and Atomics, and maybe even threads > in JavaScript, the building blocks for the next generation of web > applications are falling into place.

Read the specs for one of these. Read the specs for any of these. Read the specs for js functions you call every day, and image what the native implementation looks like. The web will never approach native performance because w3 has been sabotaging it for a decade.

> time to learn how compilers work.

I think the author would benefit from learning about how web frameworks work, or perhaps how web specs mandate that your browser works.

<comment><USER63> > I think the author would benefit from learning about how web frameworks > work, or perhaps how web specs mandate that your browser works.

Haha, he is the creator of Ember.js. I think he knows a thing or two about web frameworks ;)

<comment><USER62> And he has come to the conclusion that he is making an optimizing compiler.

Perhaps the reason he thinks web frameworks will help us 'approach native performance' is because he doesn't know what native performance is? Could you really understand web performance if you don't understand native performance?</comment></comment></comment>


Is Offer-Based Monitization Really The Future Web/Mobile Revenue Model? - <AUTHOR>

Everyone I talk to in the Valley seems to think that companies like Offerpal (http://www.offerpalmedia.com/) are the future of web and mobile application monitization ...What?! <comment><USER2> I disagree, but I think I understand why they think that.

The only exit for VCs is selling the company. Acquisitions seem to be based in large part on the number of users. Since ad-supported models don't do well when there is less ad-spend and fewer conversions (like our current economy), donations may provide enough to keep the ship afloat.

The thing is, I don't think anyone is trying to actually make money with a donation model; it is just trying to hang on until the sale. If we get rid of Sarbanes Oxley and VCs had a second exit possibility, I think we would see a companies actually trying to make money and not just make enough to keep the servers powered up.</comment>


Our social networking fetish. - <AUTHOR> http://blog.socialkey.com/?p=61

<comment><USER2> There is definitely a "damned if you do, damned if you don't" sort of relationship to social networking.

Once upon a time I used MySpace, and found all the info I would get on it completely useless. So I stopped using MySpace. Within the last 4 months, just about everyone in my family has started using Facebook, and I have no interest in joining Facebook whatsoever, because to me it seems like it is just a cleaner web interface to the same sort of thing I could read on MySpace.

But lately, whenever I talk to someone in my family they will ask me why I haven't joined Facebook yet. I prefer to just get in touch with my family over phone calls and in person, I don't need to drill down into every last detail of their lives on a daily basis. So I continue to remain outside of the realm of Facebook.

I do like Twitter though, and no one in my family or within my close friends is using it, and they don't want to use it. It doesn't bother me that the people I follow and who follow me on twitter are mostly people outside of my family and are not my closest friends. A lot of the things I write on Twitter aren't things I think they would care about anyways.</comment>


Disappointing Experience with Rackspace - <AUTHOR> http://petewarden.typepad.com/searchbrowser/2011/03/why-signing-up-with-rackspace-was-a-disappointing-experience.html

<comment><USER2> The author is chronically unhappy with everything (apparently Amazon EC2 also sucks). Complexity of the password for his account? A checkbox? Really?

Rackspace is a great company with strong ties to developing open source software. They are reliable and professional. Amazon EC2 is also an excellent service. I use both.

<comment><USER3> I'm actually overjoyed to be living in a world where companies like Rackspace and Amazon are possible, it still blows my mind that I can rent a hundred machine cluster for $10 an hour.

I wrote up the article at the end of a long and frustrating day, and looking back on it, the tone's all wrong. I still stand by the content, but it needs way more context and the equivalent of smileys surrounding it.

</comment></comment><comment><USER4> Amazon´s bar has ruined the Internet for the rest of businesses. Now if you have to make one click too many or wait a minute there's going to be a blog post about it.

I'm just amazed that if I'm thirsty I touch something and I get instant water and if I'm cold I touch something and quickly it gets warmer. I enjoy things like these every day that only three or four generations ago not even kings had.

<comment><USER5> _Amazon´s bar has ruined the Internet for the rest of businesses. Now if you have to make one click too many or wait a minute there's going to be a blog post about it._

Oh no! The Internet is getting better, more user-friendly! It's terrible, it's a disaster! /sarcasm.

</comment></comment><comment><USER6> I had an interesting conversation with Rackspace this week that I found pretty amusing.

My company is putting together a project that will ramp up to around $3 million / yr in hosting costs, give or take, within two years and continuing on for the winning hosting provider indefinitely. It is a bit of a surprise contract so we are in a big hurry to get a third of that capacity up ASAP. We have several options and Rackspace /was/ near the top of the list.

So I am in a meeting with someone from their engineering staff, a sales guy, our lead operations engineer and our top sales guy.

So our sales guy, doing his job, asks their sales guy "Is there anything else you can do for us." (referring to price) "I mean this deal is worth about $3 million/year" and the Rackspace sales guy replies "Well we are a $700 million dollar a year company so no, we do these kinds of deals all of the time."

I was floored...My immediate thought was "Well, I guess you won't be a 703 million dollar a year company."

<comment><USER7> if you have that kind of scratch to throw at the problem, why are you not buying your own hardware?

I mean, outsourcing is great if you need to scale up fast, but if you are at that kind of scale, you will quickly save a lot of money if you can move some of your longer-term load off to your own hardware. Your monthly cost is going to be a rather large fraction of the capital cost of the hardware, and difference between the capital cost of harware+co-lo fees and what an outsourced server rental will charge at that scale is more than enough to amortize out the cost of a good sysadmin and a hardware grunt or two.

<comment><USER6> We are definitely exploring this option but it will have to wait until after we ramp up because we have to do it in such a hurry.

Not only that but I'd like to stay out of the hardware business as much as possible. If we have to pay a premium to do so we have to pay a premium...depending, of course, on the size of the premium.

We've fallen into the trap before of "We can do this. We'll just roll our own and save some cash." It has, without fail, ended up being more trouble than it is worth. Granted, that was on a much smaller scale so its not like we were hiring people just to handle that aspect (at first) but there is a lot to be said for focusing on core competencies and ours is software.

My first concern, funny enough, was not the cost but the loss of control...there is something almost aesthetically pleasing about owning the whole stack. But, surprisingly, I've found that it feels like we are actually more in control when I can pick up the phone and say "This is what I want done." or "We are having a problem. Fix it." and not have to worry about "Is this key person in my organization trying to help fix some hardware problem when they should be working on 'x'?" etc, etc. And if the provider becomes too much of a problem, we know we can always fall back to doing it ourselves.

<comment><USER7> >We are definitely exploring this option but it will have to wait until after we ramp up because we have to do it in such a hurry.

yeah, that's the big advantage of outsourcing. I was just pointing out that you should make sure you are aware of and okay with the premium you are paying if you keep the outsourced stuff around for more than a few months.

</comment></comment></comment></comment><comment><USER8> I have had a working relationship with Rackspace as a web developer and reseller of hosting services for the past 18 months. I have yet to find a competitor that can come close to meeting the high-level of customer service that Rackspace has to offer. I am not sure that you complaints are worthy of such harsh words. I would strongly encourage that you stick with them and see how the relationship transpires. I an certain you will change your tune.

</comment><comment><USER9> They do have superb customer support though. I've been quite pleased with them from that perspective.

</comment><comment><USER10> At least he got thought a real person at the end, for most VPS/Cloud provider you never got this chance... That guy is seriously picky, I don't know why people just chill and instead of complain just build awesome stuff...</comment>