A few points about the "tech bubble" debate - <AUTHOR> http://cdixon.org/2011/03/27/a-few-points-about-the-tech-bubble-debate/ <comment><USER3> _"I don't know whether successful private companies like Groupon, Zynga, Facebook and Twitter are over or under priced since I don't have access to their financials"_

To play devil's advocate, how can anyone call FB, Twitter, Zygna, etc., "successful" (in the financial sense) _without_ that information?

<comment><AUTHOR> I was under the impression that everyone believes these companies are printing money, but don't know how much money they're making relative to their valuations. Although, I'm not sure about Twitter, are they considered to be significantly profitable?

</comment></comment><comment><USER4> I find the argument that this isn't a bubble because the people driving up valuations are private investors to be a bit of a red herring. That doesn't affect bubbletude, just who gets hurt if and when it pops. Inflationary bidding with the expectation of continued growth forms bubbles wherever it happens.

Otherwise, the point about bubbledom being determined by the strength of the companies involved is valid. So too, is the point about diversified revenue streams speaking to a stronger underlying market. I'd actually like to see more on this last point. We can all agree that it makes sense that a market that relies on a single revenue stream (advertising) would be shakier than a diversified one, but I'd like to see some analysis into how diversified the current market is, and what that says about it's fundamental strength.

<comment><USER5> _the argument that this isn't a bubble because the people driving up valuations are private investors_

Whose argument is that? Chris certainly didn't make it.

His argument (implicitly) is that this isn't a bubble because the tech sector has sound fundamentals. The point about private investors is unrelated. If anything it's somewhat at odds with the rest of the post.

<comment><USER4> You're right, I was imprecise with my statement. His argument is that it's better that inflationary investing is happening in private markets, and while that's true for the general public, I'd still say that that has no impact on whether or not we're in a bubble. If there is a bubble, and it does pop, that would be very bad for the HN crowd. The fact that VCs and investment bankers would be losing most of the money doesn't change the fact that a whole lot of devs will be out of work, and there will be a few lean years of funding for people trying to launch. In fact, for just about anyone who cares whether or not there's a tech bubble, its existence would be bad. So yes, while it may be better for the economy as a whole to have the risk taken by a select few, it won't matter much to the rest of us.

</comment></comment></comment><comment><USER6> Chris is conflating the startup bubble with a general tech bubble and using the strength of profitable companies to defend startups.

Twitter and Color are startups with no clear business model. Groupon and Google are going concerns.

As per the blog entry: "A bubble is a decoupling of asset prices (valuations) from their underlying economic fundamentals". [Agreed!]

Throwing $45 million at Color with nothing more than an idea and the hint of an app is evidence of a bubble. So is Twitter's recent $7.7 billion valuation based on a predicted $150 million in 2011 revenue.

I know it hurts - hell it's going to hurt all of us - but you better believe it. Prepare to be profitable or die.

<comment><USER7> Twitter has a very clear business model: advertising. They are on track to make $150+ million this year from it.

<comment><USER6> Which means they're valued at 51 times revenue. To put that in perspective, Google is valued at just over 6 times revenue.

<comment><USER8> Totally different stages of business and incomparable. Google revenue is growing steadily, since $30B p.a for a single revenue stream is about as big as you can get.

If you want a proper comparison, Google's PE ratio was 150 at IPO (and 300 at the high range of estimates, and it eventually reached that)

A lot of smart people thought that was a bad buy at the time, as well:

<http://nikcub.appspot.com/the-google-ipo-skeptics>

<comment><USER6> Google turned a profit every year since 2001 and earned a profit of $105.6 million on revenues of $961.8 million during 2003. They IPO'd August 2004.

<comment><USER8> and Twitter has revenue of $150M and is probably 2 years away from an IPO. Just because it hasn't made a profit each year, like Google, doesn't mean that you can compare its current 50x PE to Google's current 6x

I would suggest that Twitter are likely waiting to book an entire year of profits and 3-4 years of revenue growth before they file

</comment></comment></comment></comment></comment></comment><comment><USER8> Analysts are searching for simple analogies to explain what is happening - <USER2> in tech it is either bubble or not bubble. Nobody is bothered or able to explain in any real terms how a company like GroupOn can go from unknown to a billion in revenue in 24 months. They only know to take the easy analysis by looking at valuations and calling bubble.

</comment><comment><USER9> It takes a hell of a lot to bore me when the topic relates to startups/tech/silicon valley but all this Bubble Talk seems so silly and pointless.

Why is this topic so damn fascinating to people?

<comment><USER10> From a strategy perspective, it matters hugely to anybody in or thinking of launching a startup.

If there's no bubble, then the current happy days are likely to continue: lots of money chasing after good ideas, huge rewards for the winners and so as a result easy access to angel investments and high valuations. Yay! So it makes sense to think of a strategy focused raising a lot of money on great terms.

On the other hand, if there is a bubble, a very different strategy is called for. One option is to sneak in and raise money at bubbleicious valuations before it pops. But that risks setting expectations with investors that will be impossible to meet in a post-bubble environment -- a recipe for a rocky medium term. Another option is to batten down the hatches and focus on getting to cash-flow positive ASAP to leave yourself in the best position to pick up the pieces as other unsustainable companies crumble. Or as I said elsewhere in the thread, maybe it's a good time to be contrarian: work out where the bubble is likely to be, and position yourself differently so that when it pops you can be there as one of the first exciting post-bubble companies. And it's also possible to take a straddling strategy, ready to go either way depending on whether or not it's a bubble.

Of course it's impossible to know for sure what the answer is. But hearing and understanding various perspectives (right and wrong) and others' reaction to them really helps map out the strategy space and highlight the best places to be.

<comment><USER11> I think the fact that you listed _so many_ options tells the real story: all this thinking about whether there is a bubble is a distraction for entrepreneurs (to a first order approximation). Build a great product that people will pay for - there's money for those no matter the state of 'the bubble'.

<comment><USER10> I see it differently. A good startup has multiple options about what great products it can try to build, the cost and revenue models behind them, and its funding strategy. Products that are great for people who are throwing around money in a frothy bubble environment can be millsontes in a buttoned-down, post-crash situation. So while too much reading thinking about the overall context is a distraction, ignoring it hugely increases risk and misses opportunities for significant advantages.

</comment></comment></comment></comment><comment><USER12> "It's not a surprise that we know we have crises every five or ten years. My daughter came home from school one day and said, 'daddy, what's a financial crisis?' And without trying to be funny, I said, 'it's the type of thing that happens every five, ten, seven, years.' And she said: 'why is everybody so surprised?' So we shouldn't be surprised..." - Jamie Dimon (Chairman & CEO @ JP Morgan; Dir of the NY Federal Reserve)

If you agree with Mr. Dimon, the party will come to an end sooner or later - bubble or no bubble. Your best bet is to relax, enjoy yourself, have some drinks and ensure you have a driver to take you home when the party is over. As John Wooden said, "Failure to prepare is preparing to fail."

Personally, I don't know if there is a bubble. But, I see plenty of cracks in the system that are cause for concern.

</comment><comment><USER13> I don't think Facebook's valuation is "bubbly". However, the valuations of many early stage startup companies are inherently speculative, because they are based on projections which rely on assumptions, and only time will show whether this assumptions were true or false. This bubble is only as "bubbly" as these assumptions are overly optimistic. This is why investors learned to bet on people and teams, rather then on ideas, because the quality of the team is a better predictor of its success then the business idea.

</comment><comment><USER14> As long as we are seriously having this debate, we are not in the middle of a bubble. It might be an overvaluation, fine, but that's not a bubble.

A bubble occurs when the overvaluation crosses an unsustainable threshold. It's when the values are rising faster than people can properly evaluate the risk.

We are definitely getting closer to a bubble. The euphoria associated with a Facebook IPO might get us there.

</comment><comment><USER15> Since Sarbanes Oxley has made it unpalatable to sell to the public directly, we really don't know much like the dotcom bubble the current situation is. But we do know that the Fed has pumped massive amounts of liquidity into the economy and that it has to go somewhere. And the Fed is the number one creator of bubbles in the world.</comment>


Kue - redis backed priority job queue for node.js  - <AUTHOR> http://learnboost.github.com/kue/

<comment><USER2> I keep seeing these (admittedly cool) redis based job queues popping up for different languages, such as resque, pyres, now kue, etc, however I'm disappointed to not see any standardization among them. Obviously they're different projects created by different people, but it would be great to have a common protocol amongst them, especially since they're all just json based messages.

I want to be able to use a job queue as a standard way to communicate between various language backends, so I can use different tools for different jobs. I've started looking into beanstalkd as it has an impressive list of client libraries: <https://github.com/kr/beanstalkd/wiki/Client-Libraries>.

I'm curious to hear if anyone has any thoughts/experiences/recommendations on using open source job queues to facilitate background processing between different languages and backends. I'm already using redis and resque, something like rabbitmq is overkill, and I just started looking into beanstalkd.

<comment><USER3> coffee-resque and resque work together really well. I didn't mess with the python resque lib much, but I was able to get it to read jobs queued by ruby. With a little work, resque could work as a cross platform queue if you wanted. The main issue I ran into is the way the libs bind resque jobs to objects. For instance, the ruby resque library queues jobs by the ruby class name (Foo::Jobs::Bar), which doesn't translate well to python or node.

A good first step would be defining a spec based on how resque or kue work so that alternate language ports can be written. In the case of resque, other interfaces like its failure or plugin system should also be documented, so that those libs could be ported too.

</comment></comment><comment><USER4> Incredibly cool, and thanks for this TJ (as well as your other great work for the Node.js community.)

Have you seen coffee-resque[1], a CoffeeScript interface to the Resque queueing system originally written in Ruby? It's similar, and both Resque (through resque-web) and your app have really nice interfaces. Did you build this because Resque wasn't everything you wanted?

[1]: <https://github.com/technoweenie/coffee-resque>

<comment><AUTHOR> thanks! few reasons:

      a) I really wanted the logging / progress indication (haven't seen that personally)
      b) I don't read/write coffeescript
      c) I don't think coffee-resque has a UI (unless the ruby one works?)

<comment><USER4> Very cool, good to know. Yeah, it seems like it was a simple endeavor—Redis makes creating a queueing system quite easy.

The Ruby `resque-web` interface works and is beautiful[1] with live polling.

[1]: [http://fhwang.net/image/image/124/4b0a538a5aa9a3e7dc1ff81bc4...](http://fhwang.net/image/image/124/4b0a538a5aa9a3e7dc1ff81bc4d94de4cdeb9e16.jpg)

<comment><AUTHOR> ya it's not to shabby, Kue is all live as well.

</comment></comment></comment></comment><comment><USER5> One thing I'm not sure about with these job queues - how do you handle cases like having to drop down to C++ to do a chunk of work that cannot be done in JS, without blocking the interpreter?

Or would you just submit that work to a separate external process over something like RabbitMQ, and handle the return when its done?

<comment><AUTHOR> few ways, you could still utilize child processes of course, so web workers or something. Or just chunk that work up and nextTick() increasing concurrency, OR just increase the total number of workers for more parallelism.

</comment></comment><comment><USER6> Awesome, and awesome looking interface. Reminds me of Our project Norc, (github.com/darrellsilver/norc). Kue has intermediate statusnof the job, which would be a great feature for Norc.

</comment><comment><USER7> This look cool. One question though: How is this different from gearman? Is it the connector with nodejs?

</comment><comment><USER8> Looks nice, does it support clusters of machines?

<comment><AUTHOR> yup, I don't see why not, I plan on integrating cluster (one of our projects). each worker uses its own connection with WATCH to implement ZPOP so it should scale fine. we'll certainly need it to :)

</comment></comment><comment><USER9> Can someone please make this work with Hadoop?

</comment><comment><USER10> another library from TJ that looks super useful

</comment><comment><USER11> _waves the Node.JS flag_</comment>


The Japanese Calendar's Y2K Moment - <AUTHOR> https://blogs.msdn.microsoft.com/shawnste/2018/04/12/the-japanese-calendars-y2k-moment/ <comment><USER2> As a taxpayer in Japan, I want the government to stop worrying about this inefficient calendar system and fully adopt the Western calendar everywhere.

That said, I read the people's justifications are similar to those who favor the Fahrenheit system in the US. They say the scale is close to their everyday feel (under the current system, each era is roughly equivalent to one's lifespan) than 4-digit numbers, and therefore more "human". Their emotional attachment defies rationality.

<comment><USER3> You can fight back by cramming two extra digits into any paper form demanding you express years in this manner.

<comment><USER4> [https://en.wikipedia.org/wiki/ISO_8601](https://en.wikipedia.org/wiki/ISO_8601) is elegant because it solves the US/UK date ordering conflict and simultaneously renormalizes for most-to-least significant (which has been standard in the Far East for thousands of years). Depoliticizing time is a good thing(TM). See also: use of BCE suffix in dates: [https://en.wikipedia.org/wiki/Common_Era](https://en.wikipedia.org/wiki/Common_Era) and the total mess that is attempting to express to a human the actual meaning of an entry in the TZ database. [http://tz.iana.narkive.com/QuK9m7tT/tz- proposal-for-a-modern...](http://tz.iana.narkive.com/QuK9m7tT/tz-proposal-for- a-modern-collapsed-namespace)

</comment></comment></comment><comment><USER5> Two things that are missing from the article:

1) because of this problem, the government is considering keeping Heisei for a while after the emperor steps down [https://minhan.jp/4599](https://minhan.jp/4599) (in Japanese)

2) the Japanese calendar (specifically the year) is used in some official documents and formalities, but in daily life people mostly use the Gregorian calendar. If you ask a bunch of Japanese people what Heisei year is now, I bet a significant percentage of them won't remember. I've worked as a software engineer in Japan for over 10 years and I've never had to deal with Japanese calendar years.

<comment><USER6> The Japanese driving license expose people to the Japanese calendar years, and they are renewed every 3 or 5 years. Mine expires in 平31. So technically, it might even expire in year 1 of the new era (it expires in July).

</comment></comment><comment><USER7> So what happens if an emperor dies unexpectedly? Does all Japanese calendar aware software break?

<comment><USER8> The Heisei era started in 1989 with the death of Hirohito (posthumously named Showa). Since then, there was no unexpected death of emperors. Modern software has never been put to the test.

</comment></comment><comment><USER9> Taiwan had a similar problem just a few years ago: [https://en.wikipedia.org/wiki/Y1C_Problem](https://en.wikipedia.org/wiki/Y1C_Problem)

</comment><comment><USER10> Did they mess up character encoding, or are there really a bunch of question marks in the registry.

<comment><USER11> From the article:

> The last value "2019 05 01" contains the temporary information > "??_?_??????_?"

<comment><USER12> Now I'm not sure if the thing contains a bunch of question marks (in two different fonts, no less) or if somewhere (the original poster, the blog, your OS, hacker news, my browser, my OS) the character encoding got dorked up.

For reference, here's what I see: [https://imgur.com/a/VdcaQ0r](https://imgur.com/a/VdcaQ0r)

The fact that there are unicode "Fullwidth Question Mark"s as well as what appear to be normal question marks make me thing there still is an encoding issue.

<comment><USER13> As possibly should the fact that the Klingon in the title is greeked in the header. (-:

</comment></comment></comment></comment><comment><USER8> Honestly at this point if you are not storing dates in UTC form and transforming it in order to get to the Japanese calendar format, you are doing things wrong. The emperor is not eternal (yeah, I know, blasphemy) and the end of the era is totally expected.

<comment><USER14> What does it mean to store a date in a time zone (such as UTC) form? Do you mean store dates as timestamps of UTC midnight on that date? Even this isn't a storage format: do you mean a big-endian Java epoch milliseconds timestamp, ISO 8601 text, or some other format?

I think you mean they should be using some representation of a Gregorian calendar date, be it text or binary.

In any case, it sounds like they should probably have something analogous to the timezone database for converting between various calendars where the mapping can't be determined in advance.

That brings up a good question: in the Islamic calendar, the new year doesn't start until reception of a reliable lunar observation by a Muslim. How do they get around this in strict Muslim countries? Do they have a second concept for "year" that's identical to the year except in the observational requirement and therefore can be treated the same, but because of name doesn't break the religious law? I presume they don't go through the trouble of creating a low- latency network to distribute the start-of-year signal and make timestamp-to- string routines block near the year rollover until they've seen the signal.

<comment><USER8> Well look at how DST regulation changes (about one worldwide every six months) are handled: tzdata is the most underrated project around. I would not be surprised if islami calendars relied on something similar. In their case it is easier as there are (to my knowledge) not several islamic zones observing different rules.

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

<comment><USER14> Yes, that's the Wikipedia link to the timezone database I mentioned.

But, latency is the issue. The year doesn't officially change until a Muslim makes the necessary lunar observation on the first evening of the new year. You can't pre-calculate a human observation, so to be in strict compliance, you'd need an efficient way to rapidly distribute the observation.

I'm sure that in practice, pre-calculation is almost always used. My question is how this is rationalized in more strict conservative Islamic countries, (or less likely, how they avoid using pre-calculated start of the new year).

<comment><USER15> I would guess that the people tasked with observing the new moon have a sense of responsibility and know on which day they are expected to observe it, so they do the right thing. It's easy enough to avoid observing the new moon too early: just don't look at the sunset on the day before. Making sure you do observe the new moon on the right day is harder, but if you have several observatories you can probably manage it without self-deception almost every time.

</comment></comment></comment></comment></comment><comment><USER16> ok selfish question but I fly into Tokyo on 28 April - Does anyone expect any disruptions around the 30th?</comment>


SIRUM (YC W15) Matches Unused Medicine with Low-Income Patients - <AUTHOR> http://techcrunch.com/2015/03/10/the-drugs-still-work/?ncid=rss

<comment><USER2> The only way for low-income individual to get a valid prescription is to go to the doctor, which is expensive. I guess there's a law in US that prohibits selling drugs without prescription. But if you know what medication you need then you don't have a choice but to pay for a doctor visit. For example, in Ukraine absolute majority of medications can be bought without prescription (except medications that are used by drug-addicts).

<comment><USER3> Prescription medication can be extremely expensive without good (expensive) health insurance, especially if there is no "generic brand" version of the drug available. Think hundreds of dollars per refill. I think that's the pain point they're trying to solve.

<comment><AUTHOR> some patients have reported costs in the $1-2K for prescriptions for just 1 month. That's definitely on the higher end but even if someone has multiple chronic diseases (diabetes, high blood pressure) co-pays of $10 or $20 dollars per medicine add up quickly.</comment></comment></comment>


Peter Martin: Google does something really good. - <AUTHOR> http://www.petermartin.com.au/2010/11/google-does-something-really-good.html <comment><USER2> I'm glad I read this. Google's been on these threads a lot, because of employees leaving it, demonstrating stunted innovation, etc. etc. But, ultimately, Google still does a world of good through the choices and products it makes.

</comment><comment><USER3> Shows the number for the Samaritans on google.co.uk, but nothing for me on google.com. Google.co.nz has a helpline, but google.ca doesn't.

I wonder who decides which countries to roll this sort of thing out to? Is it done by someone who just looks up certain countries helpline numbers first, or do they roll it out based on which countries are searching heavily on key terms?

Google have a ton of hard data on how people live - and die - and they could use it to really optimise how society helps people in times of vulnerability and need.

<comment><USER4> On google.com from the US, I see "Need help? In the U.S., call 1-800-273-8255 National Suicide Prevention Lifeline".

<comment><USER5> Me too, but it's under an ad and links to two news stories with a photo.

<http://cl.ly/3Ekm>

<comment><USER6> But before the wikipedia link on methods. All in all, I think it's reasonable mix between people searching for information on recent suicides and helping those who need it.

<comment><USER7> Also, the top two before the help line draw attention and are also discouraging.

</comment></comment></comment></comment></comment><comment><USER8> I tried the danish word for suicide, and it suggested suicide methods.

Not even google likes Danes.

<comment><USER9> Odd, I tried "selvmord" here in Norway, and it gives

      Trenger du hjelp i Norge, ringer du 116 123
      Mental Helse

Must be really a thing against Danes ;)

</comment></comment><comment><USER10> Seems to work for other similar queries. I tried the first that popped into my head: [kill myself]. Pretty good idea.

<comment><USER11> I tried "I want to kill myself" and I still got a suicide prevention link. Pretty good.

</comment></comment><comment><USER12> After first [and second] look at the screenshot I did NOT notice that suicide- line phone number.

It's probably because usually there are ads there.

</comment><comment><USER13> There must be some geolocation going on - the Japanese Google.com and Google.co.jp are not giving out hotline #s from NYC. Is there someone in Japan who could test this?

Of course, it makes sense, since the hotline numbers would probably not work outside the country.

</comment><comment><USER14> They haven't gotten around to adding this feature for Swedish searches -- the first hit is the _Swedish suicide guide_ (talks about mental preparation, choosing a location, how to find the courage, practical details etc). Made me feel ill at ease.

<comment><USER15> It's being rolled out in Sweden:

[http://googleblog.blogspot.com/2010/11/helping-you-find- emer...](http://googleblog.blogspot.com/2010/11/helping-you-find-emergency- information.html)

</comment></comment><comment><USER16> I'm in Switzerland. According to SERPs there doesn't seem to be a suicide hot- line here, so the search doesn't get any special treatment on google.ch, nor on google.com.

I tried English/French (it's the same word) and also German, but still no go.

<comment><USER17> Does an ad for Dignitas come up?

</comment></comment><comment><USER18> Is this new to google.com.au? This has been on Google.com for years, hasn't it?

<comment><USER19> Yes. Google just rolled this out to multiple countries.

[http://googleblog.blogspot.com/2010/11/helping-you-find- emer...](http://googleblog.blogspot.com/2010/11/helping-you-find-emergency- information.html)

</comment></comment><comment><USER20> That's cool and all, but I don't think folks who commit suicide generally Google it before hand.

<comment><USER21> The overwhelming majority of people at risk for suicide broadcast many warning signs. Often, they are subtle, but more often, they represent a loud cry for help for an ultimately preventable situation.

Very few people commit suicide on a whim.

I'd bet my life's savings that enough suicidal people search for the word "suicide" that this showed up in metrics.

Having worked at Google, I could take a guess at how these help numbers came to be a feature. Some search engineers were probably analyzing a question along the lines of "What pattern of searches result in unhappy users that don't come back?"

</comment></comment><comment><USER22> Blogspam.

The essence of a screenshot and 4 sentences is "if you google for 'suicide', Google will show a helpline telephone number".

<comment><USER23> Peter Martin is a respected Australian economics writer based in the national capital.

I'd be amazed if he's heard of HN. Which makes it hard for him to be in the HN-linkbaiting business.</comment></comment>


The Great Bank Robbery - <AUTHOR> http://breckyunits.com/the_great_bank_robbery

<comment><USER2> Seems to me, what would happen is:

1) Banks would determine they need to replace the revenue from all the fees. This means either lowering interest rates, eliminating services, charging a monthly fee for _all_ formerly free accounts, or hiring less people. (We're already seeing a lot of this under the Dodd-Frank legislation).

2) ...forget option 2. Initially I was going to say the small-claims courts would have a backlog of claims filed by banks against those who aren't paying the fees...but the filing fees would likely be more than a bank wanted to pay, unless someone had quite a few overdrafts.

Simple thing is, a checking account is not a credit card account. If you have one, you should know enough to know how money works.

Are overdraft fees annoying? Yes. We've all had to pay them. But under the current system, we all have a _choice_ as to whether or not we pay them. The simple choice is: balance your checking account. Punishing the banks for an individual not taking responsibility for his or her own money is shortsighted at best, and unsustainable at worst.

<comment><USER3> It's not a hypothetical scenario. Plenty of banks work under Sharia Law and prohibit usury. Hell, the majority of the world's population was emphatically against usury for a long time.

> Are overdraft fees annoying? Yes. We've all had to pay them. But under the > current system, we all have a choice as to whether or not we pay them. The > simple choice is: balance your checking account. Punishing the banks for an > individual not taking responsibility for his or her own money is > shortsighted at best, and unsustainable at worst.

This argument is rooted in a logical fallacy - <http://en.wikipedia.org/wiki/Just-world_hypothesis></comment></comment>


Ask HN: Is 26 too old to start a startup? - <AUTHOR>

How many of you started with 26+ year?
I'm doing some side projects, but until now never managed to start anything (personal problems), and it always bugs me if I'm "too old" to start a startup.
HN take on this? <comment><USER2> Age is a strawman. When I started reading HN I thought, yeah, I've missed the boat by 10 years (I'm 28). But this isn't dealing with reality.

If you can change your situation or tolerate the changes creating a startup will introduce (working after hours, quitting your job, making contacts, whatever you choose), you can do it.

My story: I initially went, fine, I'm too old and I can't program so I'm out. This was a waste. When I sat down and genuinely looked at it I have basically the same profile as a graduate (single, educated, no major bad debt), but with the bonus of what the last 8 years in a corp setting has brought to me (insight, GFC, some usable assets, project management skills, etc).

Pathway after throwing out the age idea was simple - what are my skill sets? What resources do I have? What am I willing and realistically able to do? What will I enjoy? How much profit do I want from this? Will it be a fulltime job?

Now I'm into doing a volume of freelance art, and moving the completed work into merchandising and passive revenue ideas (prints, licensed work, etc). It's not the traditional "startup" type thing, but the plan is to expand it into a standalone business of some form once it builds a head of capital up.

Basically, do whatever you can stomach, and don't use age as an excuse. Building your venture / new life will probably take a few years anyhow, so will it bother you if you're 32 and still building something? 38? 45? Or would it bother you more to _wait_ until you're 45 to start?

</comment><comment><USER3> no offense of course but, it frightens me that this is even a serious question

<comment><USER4> OP: Take this as a huge "No".

</comment></comment><comment><USER5> Not entirely relevant, but sort of:

"More millionaires are made in their 50s than any other decade." (From Dave Ramsey: <http://www.foxnews.com/story/0,2933,426043,00.html>)

If 'startup' to you means 21 year olds drinking beer in a studio and living on ramen noodles and pizza, then yeah, you're WAY too old (what are you even doing READING this site?).

If 'startup' means a way of you controlling your destiny, making a difference in your life and the lives of others, being creative, and following your passions, then you're not too old.

</comment><comment><USER6> Not at all. I was 31 when I did my first startup, and I know people who have been in their 40s and 50s. You're never too old.

</comment><comment><USER7> Speaking from a younger persons point of view: what about being 26 would make you worse than say a 21 year old at starting a startup?

If you are supporting other people it may be quite a bit harder but if you are basically only supporting yourself I would see age as an advantage as you have more experience in dealing with problems and more solutions available.

Age to me seems like a silly thing to prevent you from starting a business it is the other things in like that should be taken into consideration.

</comment><comment><USER8> Never too old ... my partner is 38 and I am 46. Physical age is not that important as long as you have the drive and desire in you.

</comment><comment><USER9> Go listen to all the Mixergy.com interviews.

You'll see that people who create startups come in all ages and walks of life.

</comment><comment><USER10> I find that my first two attempts at "startups" floundered (and eventually foundered) due in large part because I was too "young" (i.e., immature). I lacked confidence in what I was doing, and I always felt like I wasn't old enough to bring in real customers.

We'll see if startup #3 does any better (having a strong cofounder has certainly helped), but I think I can already say that there's no way our early-20s selves would have gotten this far (the two of us just weren't ready for it).

</comment><comment><USER11> The average age of a tech startup founder is around 40 ([http://www.newsweek.com/2010/08/20/innovation-grows-among- ol...](http://www.newsweek.com/2010/08/20/innovation-grows-among-older- workers.html)).

So no, you've got a few good years left.

</comment><comment><USER12> 26 is not old at all. Most people who have successful start-ups actually start in their 30s

</comment><comment><USER13> PG was 30 when he started with Viaweb. I wouldn't worry about being 26.

</comment><comment><USER14> W-w-what? That doesn't even make sense. Of course not, there's no specific age where you're "too old" to do a startup. If you're still alive, you're young enough. Now get cracking.

</comment><comment><USER15> No

</comment><comment><USER16> yes</comment>


My interview with Google is tomorrow, any advice? - <AUTHOR> It will be a technical interview, by the way. <comment><USER2> Don't worry about it. Hard advice I know, but google is just as desperate as everyone else for quality candidates. Get some sleep, drink some coffee before your interview, and just talk through the problems as you get to them. If this is your first interview it's likely a phone interview. They usually last about an hour, and they just want to make sure you can think through a problem.

Also, regardless of whether it works or not, don't let it affect you. I know some really brilliant people who couldn't get into google, but are masterful coders.

<comment><AUTHOR> I really appreciate your words! I'll do my best. They ask me to use hangout for the interview.

So I'll let you know...

<comment><USER3> Hey there! How was your interview?

<comment><AUTHOR> Thanks for asking.

It was ok, but I made a couple of silly mistakes about CSS questions.

I'm a little worried about the outcome.

</comment></comment></comment></comment><comment><USER4> I went through a technical interview with Google a few months ago (the first stage phone screening).

The best tip I can give you is to expect some relatively basic CompSci questions, but ones that might catch you off guard if you're not from a CompSci background. Examples being things like finding a value in an ordered list when you don't have direct access to the data set (just a method call to get one item by its index), and don't know how big it is.

Try not to go for the easiest answer (like incrementally pulling every item in the dataset until you get the one you want) first, try to solve the problem the "right way" - even if it takes a bit longer.

Other than that, relax - Interviews are for both the employer and the candidate, it's not an interrogation.

Good luck! :D

</comment><comment><USER5> Regardless of how talented you are, the coding interview is flawed. That is, even if you are great, if you mess up an interview you likely won't get the job. This isn't to discourage though, just know that if you don't get in it DOES NOT mean that you aren't talented. It means you had a bad day and you should try again soon.

</comment><comment><USER6> Eat breakfast and be calm and collected. Don't stress.

Check out Steve Yegge's blog post about interviews if you haven't already: [http://steve-yegge.blogspot.com.au/2008/03/get-that-job- at-g...](http://steve-yegge.blogspot.com.au/2008/03/get-that-job-at- google.html)

<comment><AUTHOR> Steve is a genius... thanks for this, it helped me at many levels.

</comment></comment><comment><USER7> Even though it is a technical interview, confidence is always key. Visualize yourself succeeding and believe in yourself. I would stick to your guns and just do what you know best.

"Go confidently in the direction of your dreams. Live the life you've imagined." ― Henry David Thoreau

</comment><comment><USER8> Say what you're thinking, so they can follow your thought process. Most interviewers won't fault you for giving a suboptimal or even incorrect solution, as long as you recognize it and continue working towards a better solution.

</comment><comment><USER9> Eat breakfast.

</comment><comment><USER10> Consider starting a start-up if you are at all interested in executing on your own ideas. If you are able to get a job at Google, you should be able to execute on a good idea. 20% time is a minuscule investment in your ideas for a company that is investing $300 million in start-ups.</comment>


All of my side-projects from 2012 - <AUTHOR> http://blog.jazzychad.net/2012/12/31/year-in-review-side-projects.html <comment><USER2> Jeez, I thought I had a lot of side projects, but I think you have me beat. You've inspired me to make my own list:

Scrollorama <http://johnpolacek.github.com/scrollorama/>

What The Heck Is Responsive Web Design [http://johnpolacek.github.com/scrolldeck.js/decks/responsive...](http://johnpolacek.github.com/scrolldeck.js/decks/responsive/)

Scrolldeck <http://johnpolacek.github.com/scrolldeck.js>

Scrollorama2:SuperScrollorama <http://johnpolacek.github.com/superscrollorama/>

Are You A Brogrammer <http://areyouabrogrammer.com>

BigVideo.js <http://dfcb.github.com/BigVideo.js/>

Channel of Awesome <http://dfcb.github.com/channel-of-awesome/>

Responsivator! <http://dfcb.github.com/Responsivator/>

stacktable.js <http://johnpolacek.github.com/stacktable.js/>

controldeck.js (2013) <http://dfcb.github.com/controldeck.js/>

<comment><USER3> Neat projects! A lot of useful things for developers in there. My projects for this year are less developer oriented, just random things I thought were interesting at the time:

Six Degrees of Bowie - <http://www.sixdegreesofbowie.com/> \- simple musical influencers graph

web-workers-fallback - <https://github.com/typpo/web-workers-fallback> \- webworker compatibility layer

Github Participation Graph - <https://github.com/typpo/github-participation- graph> \- chrome extension that improves some github aesthetics

World of Loot - <http://worldofloot.com/> \- pinterest-style mmo wishlists

Asterank 3D - <http://asterank.com/3d> \- interactive visualization of thousands of objects in our inner solar system

Facebook Unsee - <http://ianww.com/fb-unsee/> \- chrome extensions that stops facebook from telling people when you've viewed a message

Asterank - <http://asterank.com> \- a database of asteroids that catalogs their scientific attributes and potential economic value

GiftHorse - <http://gifthorse.us> \- gift suggestion engine that barely generates revenue via amazon affiliate links

TextBelt - <http://textbelt.com> \- free outgoing SMS API

KeepDream - <http://keepdream.me> \- dream logging service

<comment><USER4> Your Asterank and Asterank 3d is pretty cool. How did you get the value of the asteroids ?

<comment><USER3> Thanks. I estimated the value based on spectral class, which gives us an idea of composition based on how they reflect light. I combined this with current prices for materials mostly from the London Metal Exchange. Other costs such as getting to the asteroid and mining overhead are factored in.

<comment><USER5> This sounds awesome, nicely done.

I've been planning to do a hack like this to demonstrate the realities of interstellar travel, modelled after a game I played as a child.

</comment></comment></comment></comment></comment><comment><USER6> Here are mine. All of them are open source:

\- Punch - <http://github.com/laktek/punch> (my most popular open source project)

\- Punch Blog Boilerplate - <https://github.com/laktek/punch-blog>

\- Extract Values (JS) - <https://github.com/laktek/extract-values>

\- Distraction Free Writing for Vim - <https://github.com/laktek/distraction- free-writing-vim>

\- Go wrapper for Stack Exchange API - <https://github.com/laktek/Stack-on-Go>

More than that, I enjoyed blogging a lot in last year - <http://laktek.com/2012>

8 out of those 24 posts, got featured in HN homepage. Those discussion threads helped me to learn more and raise my bar. Also, I made lot of new friends thanks to HN.

Thanks for all the inspiration HN. Looking forward for a great 2013!

<comment><USER7> Currently using Punch to build up an MVP and loving it so far :) Hoping to contribute back a few boilerplates and helpers in the near future

</comment></comment><comment><USER8> I don't mean to be negative, but I've never been impressed with people who have dozens of side projects. Instead of writing 10 crappy side projects, who not make 1 great side project?

My side project, at the time is called Giotto: <https://github.com/priestc/giotto>. It's a python web framework. I started it in April, and still commit to it almost every day.

<comment><USER9> That's very negative, despite the disclaimer. And from what I've seen of the above, people aren't writing ten crappy side projects, many of them are excellent.

Staying focused on one thing is fine too, but for many of us, we like to dabble in many things.

If Giotto is your way of learning python and building another (python) web framework then that's fine too. One difference is that many of the above side projects are new and do things that we didn't have prior to someone building them, meanwhile yet another web framework a la bottle et al is really contributing very little new.

<comment><USER8> Its not about size, its about length of development. Great software takes more than a few days to create. I think the most direct indicator of software quality is number of commits. A project with 10 commits is probably full of bugs. A project with 400 commits has probably had enough chance to adapt really well to whatever problem it is supposed to be solving. Its not a direct correlation, but its usually true.

I've had co-workers who had 50 github repos all filled with 30 line "projects" with 5 commits each. Those types of projects don't make you a better programmer. Work on the same project all year. That will make you a better programmer. Craft the project. Let it adapt. Test it, deploy it. Tweak it. Deploy it again. Seek feedback from users. Tweak it some more. Going through that process _will_ make you a better programmer.

<comment><USER10> Sounds more like the day job than a side project.

</comment></comment></comment></comment><comment><USER11> That's a good list!

When I start a side project I tend to forget that after it's "done" I have to maintain it. In fact I've been delaying the inevitable and I should kill a couple of them ASAP (hey, that's a good new year's resolution!).

My 2012 list is quite short:

\- A web based crossword app, content automatically generated from wiktionary entries; the puzzles require some review before can be queued (~30 minutes per week): <http://crucigramas.usebox.net/>

\- Run CGI apps under Python WSGI protocol (PEP 333): <https://github.com/reidrac/wsgi2cgi>

\- I've been working on an Arduino project (it will be a game console; audio done -XM player, 4 channels-), but I haven't released anything yet :(

\- A Network Block Device (NBD) server for OpenStack Object Storage (technically a 2012 project because I started it in December, but there's a lot of stuff to do): <https://github.com/reidrac/swift-nbd-server>

All my side projects are in the "scratch my own itch" category. Sometimes I wish I could make something profitable (meaning: extra income), but learning new stuff and keeping my skills current is definitely a good value... so I don't mind.

</comment><comment><USER12> I'm on the complete other end of the spectrum. No sideprojects. Doing anything other than working on the startup always made me feel guilty. Just my blog that I just rebuilt/designed in December: <http://paulstamatiou.com> Hoping to write more in 2013

<comment><AUTHOR> There should be a healthy life/work balance. Doing nothing but work is unhealthy. Side-projects offer a nice break from the norm and the ability to be creative and learn new things. Usually my side-projects wind up helping me in my normal work later on. But, you don't have to do side-projects. Just make sure to not burn yourself out with work. Do you feel guilty eating, sleeping, exercising, travelling, meeting with friends? Hopefully not.

</comment></comment><comment><USER13> I'm sure I'm forgetting a couple, but:

\- QtzWeb - <https://github.com/daeken/Qtzweb> (Quartz Composer -> JS+WebGL compiler; used it to partycode <http://pouet.net/prod.php?which=60732>)

\- QuestCompanions - <https://github.com/daeken/QuestCompanions> (Online labor marketplace for help in MMORPGs -- complete failure from a commercial perspective!)

\- SteelBreeze - <https://github.com/daeken/SteelBreeze> (Xbox emulation platform, mainly to test out new ways to write emulators)

\- WebGLEnabler - <https://github.com/daeken/WebGLEnabler> (Enables WebGL on iOS devices)

\- GenShaders - <http://www.displayhack.org/2012/genshaders-part-1/> (failed experiment for evolving fragment shaders; still need to write a followup article)

<comment><USER14> What happened with QuestCompanions? Is it up still anywhere? haven't sen you on IRC in a while.

<comment><USER13> I kept meaning to write a blog post about it, but it kept getting pushed back. Short story is: we got a decent number of users signed up, but no one was willing to pay money, everyone just wanted to get paid to play games. And by "no one", I truly mean 0%. A few weeks in, the server died and when I brought it back up, I decided not to restore the site (I had backups) but rather keep it down and rebrand it a bit, in hopes of making it clearer and more appealing to people. But I ended up getting way too busy with work and all that, and that never happened.

I opened the source a while back; it'd be cool if someone took it and actually made it successful, but I have serious doubts that it could ever work. I always knew that few users would be willing to pay money for in-game help, but capturing those few turned out to be harder than I thought.

</comment></comment></comment><comment><USER15> \- PairMixer - <http://pairmixer.com> \- Find someone to Pair with (got sued for this one had to take it down)

\- Sink or Ship - <http://sinkorship.com> \- Ship Your Project In Time, Or Else...

<comment><USER16> Can you say why you got sued for PairMixer? Was it patent related?

<comment><USER15> I probably shouldn't say yet, suit is still ongoing and isn't settled yet.

</comment></comment></comment><comment><USER17> I just have one: unslideshow, a Chrome extension which takes slideshow articles and turns them into single page articles.

<https://github.com/jgross206/unslideshow>

It's very rough because I'm the only one that uses it. It only works with one site (complex.com) because their slideshows are egregious (100 items with a full page load on each slide) and I got really frustrated one night.

I currently have plans to extend it to other sites and polish up the UI a bit so it's actually worth publishing, but who knows.

I had a lot of fun writing it and learned a lot, it was my first Chrome extension.

Bonus: I left my Ruby POC in the source tree because it was so fun to write. 17 lines!

</comment><comment><USER18> This is awesome, I thought 3 was a lot of projects but clearly I'm way behind on this one. As a side note, I started learning to program early 2012.

Here is my list:

\- CourseBacon: Find online learning resources (<http://coursebacon.com/>)

\- NetworkMill: Help you transform contacts into connections (<http://networkmill.com/>)

\- Roompatible: Roommate finder. It's the 1st webapp I built while learning to code (<http://roompatible.com/>)

Note: CourseBacon and NetworkMill are still work in progress.

<comment><USER19> You're quite awesome mate. I started learning to program since 2005, but this year i haven't finish any programming projects yet.

<comment><USER18> Thanks for the encouragement, much appreciated!

How about you aim to ship at least 1 project this year? You've got over 360 days to do it. If you want I'll be your accountability partner.

Edit: Feel free to email me at <hn_username>@gmail.com :)

</comment></comment></comment><comment><USER20> I would pay for a site/newsletter that sent me side projects like these (and the others mentioned on this thread) on a daily basis. These are fantastic!

<comment><AUTHOR> interesting... sort of like a <http://builtwithbootstrap.com/> style site or newsletter? perhaps also a featured section for people to promote their projects... ?

<comment><USER20> Yup. That could be your next project :)

</comment></comment></comment><comment><USER21> HN has really motivated me to start thinking about side projects seriously, even if just as learning exercise or solving my own problems. I only just started publishing them a few months ago, but I've had a lot of fun these:

Chroma <https://github.com/seenaburns/Chroma> \- Python color handling and manipulation library

Desaturate <https://github.com/seenaburns/Desaturate> \- Menu Bar app to force Mac OS X into grayscale display

Tungsten <https://github.com/seenaburns/Tungsten> \- Wolfram Alpha API wrapper for Python

Open URLs In Tabs <https://github.com/seenaburns/Open-URLs-In-Tabs> \- Port of John Gruber's OS X service to open links in tabs, modified to work for Chrome (/ your default browser).

Desaturate is definitely my favorite. Now for 2013, I have to learn to comment more and write more.

</comment><comment><USER22> All my projects from 2012.

Applications:

\- CherryNotes: <https://appworld.blackberry.com/webstore/content/19964625>

\- RubyGems Browser for Android: [https://play.google.com/store/apps/details?id=com.nathan.rub...](https://play.google.com/store/apps/details?id=com.nathan.rubygems.browser)

\- build.prop Editor: [https://play.google.com/store/apps/details?id=org.nathan.jf....](https://play.google.com/store/apps/details?id=org.nathan.jf.build.prop.editor)

Awesomeness:

\- stream.json: <https://github.com/nathanpc/stream.json>

\- tinymd: <https://github.com/nathanpc/tinymd>

\- ascii-image: <https://github.com/nathanpc/ascii-image>

APIs:

\- build-webworks: <https://github.com/nathanpc/build-webworks>

\- pinboard.js: <https://github.com/nathanpc/pinboard-js>

\- hn-api: <https://github.com/nathanpc/hn-api>

Unfinished stuff:

\- bonsai: <https://github.com/nathanpc/bonsai>

\- rain: <https://github.com/nathanpc/rain>

\- hn-cli: <https://github.com/nathanpc/hn-cli>

\- showcase: <https://github.com/nathanpc/showcase>

\- A lot more if you check my GitHub

</comment><comment><USER23> Wow, impressive list. Clearly I need to get off my backside and develop more. Thanks for the kick!

</comment><comment><USER24> That's a very impressive list. One thing great about programming is the path from idea to product is fairly smooth if you can do it all by yourself. Great list.

Mine is much shorter. Didn't have time to do more.

\- Jsoda, <https://github.com/williamw520/jsoda>, API unifying SimpleDB and DynamoDB.

\- BoxupText, <https://boxuptext.com/>, pure browser side encryption.

\- Daily Badge, [https://play.google.com/store/apps/details?id=com.mhillsyste...](https://play.google.com/store/apps/details?id=com.mhillsystem.dailybadge), app for tracking daily goal.

</comment><comment><USER25> Only three, but some are quite big.

Framer <http://www.framerjs.com> \- Modern prototyping tool for web and mobile using javascript and css transitions.

Cactus <http://github.com/koenbok/Cactus> \- Simple static site generator with s3 deployment aimed at designers.

Cavia <http://github.com/koenbok/Cavia> \- Document store on top of sql modeled after bigtable/appengine datastore, and how FriendFeed stored data in mysql.

</comment><comment><USER26> Truly very inspirational. I was wondering about the new year resolutions for 2013. Thanks jazzychad for a direction. I am still a long long way from creating and developing applications like the ones mentioned in your list. But someday I wish to get there too. Planning to start with a list like this year! What could be a better resolution than learn something new and then build something from that knowledge gained. So wishing myself luck for my endeavor!

</comment><comment><USER7> Only one true sideproject for me in 2012:

CallMeMae.be: <http://callmemae.be>

Business Card sharing and exchange. Built it at an eight hour hackathon and won the grand prize, making it my only profitable project to date! In the new year I'm hoping to rewrite from the ground up as a telephone proxy service, but still need to do the customer validation.

<comment><USER27> > In the new year I'm hoping to rewrite from the ground up as a telephone > proxy service...

Would you mind elaborating on that a little bit? I'm working on something similar and would love to hear what others are doing.

</comment></comment><comment><USER28> Mine are mostly incomplete, but my main one so far has been:

Knockblock: <https://github.com/agentultra/knockblock>

and I guess <http://mug.io> \-- but I haven't touched that one in a while. I guess 2013 will be the year that I get a few of these projects finished!

</comment><comment><USER29> Given that mobile photo sharing has been done to death, I'd be interested to hear what you think makes Pixit a significantly better solution than all the other apps out there for some usecase.

(Not trying to sound confrontational--it's just not a space that I thought had much more innovation left in it, so I'm curious to hear what you've come up with.)

<comment><AUTHOR> That's a fair question. It could be that this is a solved problem by some other system/app, but I couldn't easily find one while my problem persisted... so I did what every over-active nerd does: I just built my own solution.

I think Pixit is different because it is solely for quick photo sharing between friends in 3 steps. Simple, quick, and effective. However, I'm not sure how much mass appeal it would have. It works for my usecase, but increasingly I find that I am an outlier when it comes to consumery stuff.

<comment><USER9> I don't get it?

"I thought up an app that would make it extremely easy to send many pictures to a group of friends in one go."

Isn't that email?

<comment><AUTHOR> yes, it is. however, accomplishing this with email on iphone is extremely tedious (many steps) and error-prone.

<comment><USER9> Not in my experience, camera roll, select photos, share, email, auto-complete friends email address's, send

This isn't in any way tedious or error prone.

</comment></comment></comment></comment></comment><comment><USER30> "I wanted to improve my life skills in some other fashion than programming ... I needed a way to train myself since there are many rules to learn. So, what do I do? I break my rule of no more programming and write my own training software."

Things like this confirm for me that I am in the right profession :)

</comment><comment><USER31> nice list! I also did a similar post, and since people seem to be posting theirs here, here's mine: [http://blog.mroth.info/blog/2012/11/11/the-year-in- side-proj...](http://blog.mroth.info/blog/2012/11/11/the-year-in-side- projects/)

<comment><USER32> I'm loving this stuff! It says you went on a domain buying spree after the emoji find. Can I ask what Other domains you got? Is there something special about the .ws or does it work on .com too?

<comment><USER31> for .ws, as far as I can tell, most TLDs don't allow "fun" things such as emoji, and the software most registrars use also sometimes barfs on it, so it was definitely specific to that registrar/TLD/point in time. Not sure if it will still work. The registar was iwantmyname.com

No easy way to cut&paste the domains I have here, but my favorites other than the star are the spiral, bomb, storm cloud (which I want to turn into a weather service) and fork&knife.

</comment></comment></comment><comment><USER33> I really like the formatting of your list, especially your detailed notes on each project.

</comment><comment><USER34> StepStats is great! I just got a Fitbit for Christmas and these graphs are a lot better than the ones on the Fitbit site. The best part is they work on iOS devices unlike the Flash ones that Fitbit uses.

</comment><comment><USER10> libs:

\- PayLib <https://github.com/rutherford/PayLib> (about to be gutted and rebuilt)

sites:

\- Kickstartit <http://kickstarter.greatsuccessmaker.com>

\- Ghost Messenger <https://facebookghostmessenger.appspot.com/>

bones:

\- nltk on app engine <https://github.com/rutherford/nltk-gae>

</comment><comment><USER14> My one and only side project - <http://www.cheekynote.com> (WARNING NSFW)

</comment><comment><USER35> Could you share the reasons for your choice in technologies in the stack?

i.e node.js, mongodb, heroku, php, ruby etc.

</comment><comment><USER36> BankersBox looks nice! A shame you didn't "finish it" with the implementation of hashes & co.

<comment><AUTHOR> I'd still like to... or for someone else to! In 10 months nobody has done it, so it might be up to me after all.... or it means that nobody really wants/needs it. It would be fun as an academic exercise, though.</comment></comment>


Get Ready For C# 4.0 - <AUTHOR> http://blogs.msdn.com/csharpfaq/archive/2010/04/12/get-ready-for-c-4-0.aspx <comment><USER2> <http://channel9.msdn.com/pdc2008/TL16/> Although from 2008, this is still an interesting talk from Anders Hejlsberg - the lead architect of the C# programming language. He outlines the future (now mostly present) of C# and describes the many forces that influence and shape the future of programming languages and explain how they fit into C#.

In the end he talks a little bit about what is beyond 4.0 and he demonstrates the "compiler as a service", which is something I am looking forward to see :) In fact guys from Mono already moved things forward a little bit: <http://www.mono-project.com/CsharpRepl>

I like where this is heading.

<comment><USER3> Here's a more recent one: [http://channel9.msdn.com/posts/matthijs/Anders- Hejlsberg-Tre...](http://channel9.msdn.com/posts/matthijs/Anders-Hejlsberg- Trends-and-Future-Directions-in-Programming-Languages-DevDays-2010-Keynote/)

<comment><USER2> Thanks.

</comment></comment></comment><comment><USER4> I have written a fair amount of C# code, although not so much recently. I think Microsoft are in danger of crowbarring too much into this language. Ideally I think they ought to start looking at rationalising and simplifying the syntax rather than adding ever more stuff to it.

<comment><USER5> There isn't a great deal of actual "new" features. Alot of the fixed, such as "IEnumerable<Object> objects = new List<String>();" are just filling out gaps in implementation. I have a large amount of just written code that is dying for the above feature, not to mention optional+ named parameters!

</comment></comment><comment><USER6> We switched over in our shop on release week, and I must say that I'm enjoying the new features of .NET and C# 4.0. COM interop with Office Communicator is cleaner. IronRuby + Sass for css with ASP MVC rocks. Optional parameters have killed off many pass-through overloads. Also, DynamicObject and IDynamicMetadataProvider give potential for the dynamic keyword goes far beyond ExpandoObject. It opens up possibility for new DSLs within C#. Although likely to be misused, having the power to manipulate the meaning of the language is an impressive feature.

</comment><comment><USER7> Have we not been getting ready for C# 4 for some time? It's been in CTP and Beta variants for most of the last year. Some good new features exist of course.

<comment><USER8> This article is also a month old.

</comment></comment><comment><USER9> I'm not sure I like the overloading of the "out" keyword for covariant type parameters, but otherwise, pretty cool.

<comment><USER10> Yeah, I'm not a huge fan of named parameters, either. Seems a bit superfluous.

<comment><USER11> Named parameters make code more readable when used properly. For example, which is more readable?

        var c = new Cube(1, 2, 3)

or:

        var c = new Cube(height: 1, width: 2, depth: 3);

<comment><USER12> The real advantage of named parameters is the ability to have optional parameters as well. Which means that instead of:

       var c = new X(3, "blue", null, null, null, null, false, true, null, 1, null);

(which, sadly, is an all too common implementation pattern), you can have:

       var c = new X(foo: 3, bar: "blue", baz: false, quux: true, wibble: 1);

Which seems quite a bit better.

Another advantage of named/optional parameters is that you can use them in the construction of immutable objects, whereas you don't get that advantage if you use settable properties.

</comment></comment></comment></comment><comment><USER13> I think I'll pass.

I've passed on anything coming out of microsoft since about 2003 or so, and I feel much better for it. No more stacks of MSDN cds, no more 'support events' and so on.

No more viruses, worms, trojans, piles of malware and other nonsense, besides license fees, subscriptions to stay up-to-date, re-installs every 3 to 5 months.

Open source all the way for me these days, and I feel _much_ happier for it.

It's possible that C# is a great language and that I'm missing out on something that would improve my life in a way that I can not currently imagine but there always seems to be a price for that.

<comment><USER14> It's a shame some HN users down vote people just because they disagree with their opinion. I didn't seen anything in this comment that would be considered offensive to anyone. I didn't even see any FUD.

Can any of you really disagree with "No more viruses, worms, trojans, piles of malware..."? In all the time I have been using Linux (OpenBSD now) I haven't had this sort of problem. I am not saying this systems are invulnerable. But OSS/*NIX system users will probably not have this sort of problem and even if they do it won't be as often as Windows users.

P.S. Maybe the title attracted only Windows and C# people?

<comment><USER15> Perhaps because I have used windows for about 20 years now and never had piles of malware. I have never reinstalled the OS. I have never paid license fees, subscription fees etc. It is almost as if he were living in an alternate reality from the one I inhabit.(Note I have been dual booting Linux for around 10 years. I like both sides of the fence.)

Two all is comments are about Windows OS not a single one about C# which is presumably the topic at hand.

<comment><USER13> I've used microsoft products from before 'DOS' was even around, and I quit around 2003. I would have quit earlier but I still had to support a bunch of stuff that was running on windows (the webcam.exe client side stuff to connect to our websites), and a bookkeeping program that was windows only.

I've had to re-install machines numerous times because they became unusably slow or infested with malware. We had _one_ machine to which this never happened, nobody really understood what made it different from all the other ones (as much as 25 machines at a time at some point), that little machine just kept chugging away. Maybe it needed an occasional reboot, but even that must have been rare because I don't recall ever having to do that. It's not like it was build with premium components either, it was mostly built from leftover bits and pieces.

I was a licensed MSDN developer for a long time, it cost a pretty penny. You've never paid license fees ? Ok, that's your decision, I always paid for the ones we used, in fact I probably paid for plenty that I didn't use (aka the microsoft tax).

For the most part though, windows was nothing but trouble for me and the people that I worked with, and since switching to linux I haven't had any experience even remotely comparable to what used to be my lot when still using windows.

The machine I'm writing this on was bought in December, the 'vista' installation that came with it was wiped and replaced with Ubuntu. It's a fair sized machine, 10G of ram and an i7 processor, this is still the first logged in session on that machine since I got it. That's amazing stability. It's possible that microsoft has comparable stuff now but I won't be seeing any of it until I either absolutely have to or they do something unthinkable today to prove that they really get it. (Such as, for instance really opening up the source to windows or some earth shattering move like that).

I'm happy you're happy with either, I'm more happy with FOSS stuff, it feels like it is a more natural and democratic approach to computing than having my capabilities granted and removed by some corporation, especially one that has been a bad little boy in the class of corporations.

<comment><USER15> _You've never paid license fees ? Ok, that's your decision, I always paid for the ones we used, in fact I probably paid for plenty that I didn't use (aka the microsoft tax)._ Any copy of windows I have came with the machine, so I have never directly paid license fees(as far as the Microsoft tax goes Dell seems to charge the same for its Linux boxes). As a developer I have always used the other guy(borland and watcom mostly.)

 _this is still the first logged in session on that machine since I got it. That's amazing stability._ Not sure what to say about that, I have only rebooted Windows after applying system updates for as long as I can remember but then I mostly turn it off when I know I am not going to use it for a few hours so I have never had a large uptime.

That still doesn't address the fact that this is entirely off topic as Windows OS != C#. My entire use case for C# is as the scripting language for Unity3d which is based on mono since it is cross platform capable.

</comment></comment></comment></comment></comment><comment><USER16> Buh... I haven't read Jon Skeet's C# In Depth for C# 3.0 yet. Can I pass?

<comment><USER17> I haven't read C# In Depth for 4.0 yet, but I would suggest that you should not pass on the 3.0 version. Here's why.

C# In Depth is not like a technical reference book where the author rehashes the same information what you can find on your own at MSDN. Jon discusses the evolution of language starting from C# 1.0 up to 3.0. I sincerely wish that all technical books were written like this. If you are still not convinced and want the cofnirmation from someone more authoritative, let me point you to Eric Lippert's forward for the book.

[http://blogs.msdn.com/ericlippert/archive/2008/04/28/c-in- de...](http://blogs.msdn.com/ericlippert/archive/2008/04/28/c-in-depth.aspx)

Eric Lippert is a senior developer on the C# compiler team and his blog is a must read for all C# developers.

Coming to the main point, my __guess __is that Jon may be skipping on some details in the new version of the book which he has already covered in the current version. And I think it would be great idea to learn about the choices/compromises made by the language designers.

Good luck.

<comment><USER16> Thank you. It occurred to me that it would be nice if the pre-generics artefacts were somehow erased from history. (They're essentially clutter in a space that's getting fuller and fuller, right?)

</comment></comment></comment><comment><USER18> The funny thing I come back to question myself with after seeing ExpandoObject and not needing to declare types (var blah = ), is, why not just go all the way to Ruby instead of being stuck inbetween?

<comment><USER19> Because static typing is really, really useful?

<comment><USER18> ExpandoObject basically says you can add properties ad hoc. When that happens, how do I know when a property on the object exists or not? The value of static typing goes down with ad hoc properties.

<comment><USER20> Sure; if every object was an ExpandoObject, the value of your "static typing" would be nil. The point is that you can just make an ExpandoObject if you really need ad hoc properties in one place, and it cooperates with the rest of your statically-typed code.

To illustrate the value of such a thing, I invite you to look at the ADO.NET libraries for data access, which provided a verbose, painful "dynamic property bag" experience as far back as .NET 1.0; you had DataTables with columns that you would pass a type to, and then you had DataRows that you indexed into with strings to put objects in and get them out, and you had to cast them back and forth as you did it -- all of it ugly, none of it checked at compile-time. The value of C# dynamic (besides interop) is that now you can have such a thing in a fairly concise form with syntax that doesn't make you sob uncontrollably when you use it.

<comment><USER5> And people do use it. I have worked on a mind bending .NET call centre application within which the entire state of the program is stored within untyped, globally accessible datatables.

It's down to the old "with great power comes great responsibility" idea.

</comment></comment></comment></comment></comment><comment><USER21> My 2c on that topic: <http://blog.dispatched.ch/2010/05/10/c-40s-dynamicity/></comment>


Starcraft AI competition - <AUTHOR> http://users.soe.ucsc.edu/~bweber/dokuwiki/doku.php?id=starcraft_aiide_2010 <comment><AUTHOR> I have not yet fully read the API. This is an unfounded idea but I am curious: if we could hack it so that developers could shoot it out over the internet prior to the combination, would anyone want a HN league?

<comment><USER2> This would interest me.

<comment><USER3> While you can't run the Broodwar API on battle.net, it is possible to run bots on ICCup. But dont expect anybody to join the game, since you will not be running the antihack.

</comment></comment></comment><comment><USER4> While we're talking about StarCraft, I'm on the MIT team and we're hosting an exhibition match against Caltech on Saturday. It'll be streaming if you want to watch: [http://www.teamliquid.net/forum/viewmessage.php?topic_id=105...](http://www.teamliquid.net/forum/viewmessage.php?topic_id=105576)

</comment><comment><USER5> Dreaming about this kind of thing is one reason I went into computer science.

<comment><USER6> I often wished that I had a cyborg-mode: gaming with a very programmable interface. (With basically something like Emacs and a REPL.) I could teach the computer new things as I explored, and eventually start to play in a very high-level way.

<comment><USER5> A friend worked on a gaming company where you train an algorithm to play a fighter in a mortal combat style game. The way you train it is by playing against it. Then you release it into the wild to fight other AIs using your style. When it came back, it was better than you, but not for long.

Product didn't go anywhere, but the architecture could easily be copied. It would be ridiculously cool to build this into Star Craft. There would be so many more people exposed to the AIs if all the knowledge needed to "program" them was in the game play itself.

<comment><USER7> How exactly did the training work?

Thinking out loud, for a fighting game you have two obvious measurable criteria (your health bar and the health of your opponent) which constitute a 2D coordinate system. Any action you take which is expected to reduce your opponent's health more than your own is going to be a beneficial one (unless it will push you to death, in which case you need to go for attacks that have minimal cost to your own health).

The game state would be the positions of both players on the x-axis and the health bars for both players. If you had jumping and kneeling, you might want to record positions & momentums for both players in x & y.

Now a very simple kind of AI could look for periodic subsequences that could return it to the same position while causing more damage to the opponent than to itself. That is, do some sequence of moves (strike, jump, block, etc.) and then return to the original game state except that both health bars have changed.

Then do this again, as you've "reduced it to a previously solved problem".

This of course would be too simple a thing to do because the opponent's responses would (a) be nonrandom and (b) he would not return to the exact same position. So you would need to build up a statistical database of expected countermoves to each moves (and update that for each new opponent). You would also probably want a similarity function for game states.

I guess overall this shouldn't be too difficult to do if you recorded the game states of many real games between two players, because the game rules don't change over time. Once you've got a few difficult-to-counter loops that cost them more health than they cost you, you can run them over and over again.

<comment><USER8> Also thinking out loud (out type?)

I agree with some of it... you'd need to keep track of the the location of each player on the x-axis and y-axis, momentums, etc... Additionally you'd want to keep track of the "visible" actions. For example, if the human hits the soft punch button, you can see the fist cocking before the punch. Similarly for other actions.

This gives you various points in the state space. The way I see doing this is:

1) Make the continuous variables discrete. You need enough granularity to have good responses of course...

2) Use genetic programming to pick reactions in each state. However, the reaction in each state is not a single action but a probability distributions over various actions (move left, move right, jump, punch, kick, etc...).

The randomness is key. I spent some time talking to a guy who plays in tournaments and he said that the absolute worst thing you can do is get into a cycle or become predictable.

</comment></comment></comment></comment></comment><comment><USER9> How is this possible? Isn't Starcraft closed source? Did they hack the binaries to allow exposing an API or something? If so isn't this project illegal? Or did Starcraft provide a C++ API all along?

<comment><USER10> The "Getting started" section of the page explains this.

Apparently it is possible to script Starcraft using a C++ API.

<http://eis.ucsc.edu/StarCraftAICompetition#GettingStarted>

<comment><USER9> Yeah but is this C++ API official or is it hacked into the binary by third parties?

<comment><USER11> The API is third party. I'm pretty sure they are using this:

<http://www.broodwarai.com/forums/index.php?showtopic=322> <http://code.google.com/p/bwapi/>

</comment></comment></comment></comment><comment><USER12> Wow, this looks awesome. Even if I don't make it into the competition, I'd love to play with the APIs.

I've always wanted to get into RTS games but I am just not very good at the mouse--I always get bogged down by failing to click on the right units and issue the right commands at the right times, and I've fond that once you make a few mistakes you usually don't recover, or you are back to square one.

Board games and turn-based games don't share this problem of course, but they aren't quite the adrenaline pumpers either... not worse, just different :-)

</comment><comment><AUTHOR> This is a cross-post from Slashdot. Nonetheless, this is VERY cool. For those of you who missed the very interesting Mario competition, you have a while on this one.

<comment><USER13> Speaking of the mario competition, is there a way to watch videos of submissions?

<comment><USER14> Here's one: <http://www.youtube.com/watch?v=DlkMs4ZHHr8>

Impressive stuff. Others in the video responses below.

<comment><USER15> Robin's also released the source to his bot, if you want to run it locally: <http://www.doc.ic.ac.uk/~rb1006/projects:marioai>

All you need to run it is the latest competition code: <http://code.google.com/p/marioai/>

</comment></comment></comment></comment><comment><USER16> The link looks broken. :/

<comment><AUTHOR> I guess the defense against slash-dotting could not be sustained.

<comment><USER3> The site has been transferred to a new sub-domain to handle the traffic

</comment></comment></comment><comment><USER17> On the one hand I'm surprised people are still playing this game. Then again, given how long Starcraft II has been taking to come out, I guess these guys have no choice but to enjoy what they have.

(PS - I'm not flaming them. I was an SC addict about 8 years ago untill WOW came out and everyone seemed to have lost interest.)

</comment><comment><USER18> What has become of the Starcraft lectures, are there transcripts yet? I suppose they would be mandatory viewing for coming up with a decent strategy...

<http://academicearth.org/lectures/introduction-starcraft>

<comment><USER19> I don't know about transcripts, but there are some pretty detailed summaries (minus the mathematical derivations) available here: <http://www.sirlin.net/blog/category/starcraft-class>

</comment></comment><comment><USER20> <http://www.broodwarai.com/index.php>

</comment><comment><USER21> I'd love to see some videos of these AIs playing against one another, especially if there was a really widescreen video that could show a split screen of what both AIs are doing at the same time.

<comment><USER3> All of the replay files will be made publicly available after the competition, see the rules page.

</comment></comment><comment><USER22> Wonder how it fares against the standard Starcraft AI?

<comment><USER23> The standard starcraft AI was always pretty pathetic, even after Blizzard's attempts to make it more challenging. My guess is that in the subset competitions (1 - 3) the sc AI would get whipped, if it could even be coerced into competing. (I don't think it could even do the micromanaging competition, I think the units would just sit there until they were attacked. And even then it would be the standard unit ai responding instead of the overall ai. It might fair a little better in the tech limited tournament.) I think the limited scope of those tournaments will allow the submitted bots to be highly optimized. It might fare better in the overall competition though, since both sides will be dealing with the full complexity of the game. But I still think that by the tournament the submitted bots will be highly superior to the built in ai.

<comment><USER22> Wasn't part of the Warcraft and Starcraft bot's technique that they cheated effectively and often knew things that a player couldn't have known (and executed on things that a player couldn't have?) in order to stand any chance at winning?

</comment></comment></comment><comment><USER24> MMMM sounds cool. Would be nice to practice against some challenging AIs vs the crappy one provided by SC that cheats to win :P Specially without perfect awareness.

Would be awesome if the AIs had a difficulty tweak that allowed them to be used in actual SC games :)</comment>


Google adwords meets Airbnb for property lettings - <AUTHOR>

What comes to mind when you read that one-liner?<p>More info to follow in these comments. <comment><AUTHOR> <http://angel.co/wigwamm></comment>


HyperSphere - continuous surveillance - <AUTHOR> http://www.hipersfera.hr

<comment><USER2> > proprietary innovative autonomous MALE UAV airship

I love when companies try to use "proprietary" as a selling point. The point they're trying to convey is "our competitors don't have this", but the point they _do_ convey to savvy customers is "Hoh boy is there some ugly code in here, and we aren't going to let you see it when something goes wrong."

</comment><comment><USER3> Just a couple of short comments:

* Hypersphere is not a blimp, balloon, airplane or rocket. it is a rigid airship. difference matters.

* yes, remote sensing can be done with RC toys. But those toys do not ensure quality and continuity of the RS service, let alone cost-effectiveness.

* why is Hypersphere different? Look at the first two pages of the brochure from the webpage, or at the end of the animation for the keypoints (again from the web: <http://www.hipersfera.hr>). In short - the most cost-effective Remote Sensing system in the world, offering 24/7 continuous REAL TIME covering of large ground areas.

* applications: ppl at ycomb cannot see apps for a real time high res online remote sensing database? i usually expect this from people without the "vision capability". think about smartphone market 20 years ago. nuff said.

* Skylifter is another type of vehicle, designed for transport, and Hypersphere is designed for loitering. Might look similar, but the similarity stops there.

* "proprietary" issue. no code has been patented. we have the PCT patent granted on the overall airship design, proving that we're "novel, innovative, and relevant for the industry". that is the point of "proprietary".

* privacy: cell phone penetration is around 100% or more in most of the developed world. hence, there are technical means for govmnts and corporations to know exactly where you are, what are you doing, what are you saying, etc, at any given time, regardless if ur phone is turned on or off. hence, the point is in efficient regulation of the technology.

* linked article title says the project is worth 7.5Bn$. what I actually said is that the RS market is valued at 7.5Bn$ today, and that Hypersphere, with a right strategic partner, has the potential to become the market-multiplier, coz it enables a complete change of the Remote Sensing Business model, because of 2-order-magnitude image price drop.

* there is a flight tested scaled prototype, which confirmed innovative flight concept.

Bojan Pecnik, founder and CTO

</comment><comment><USER4> Soooo...they reinvented a blimp, strapped on some gimballed cameras and are using a proprietary equivalent to ArduPilot?

One of my hobbies is FPV RC planes/quadrotors. People are doing this with planes and quads for a fraction of the cost. Not 100 hour deployments sure, but that's because blimps are boring to fly.

<comment><USER5> Actually its a dirigible according to the render (rigid structure) and it has exploited the same "design innovation" that the Australian company [1] did which is that by making is a saucer shape you avoid some of the stationkeeping issues as the vehicle presents a uniform air resistance profile in every direction.

I wonder though who the target market is for this thing which is clearly out looking for funding. Given the scale on the render by a hanger it seems to be quite large, and while being predominantly clear would have it be hard to spot at altitude its overall size and the slow maneuverability of gas filled aircraft suggests it would be an easy target.

It doesn't seem to have the payload to carry a communication substation (another proposed application of long loiter aircraft) thus the market seems like it might be drug lords wanting surveillance around their home base (always a bad idea since its also a flag "here is my home base") or perhaps border patrol.

The good news is that being specialized you only have a few possible customers and you can quickly ascertain if they will buy from you or not thus you won't waste a lot of time.

[1] <http://skylifter.com.au/>

</comment></comment><comment><AUTHOR> The following article (in croatian) states that the project is worth 7.5 billion euros. The inventors are saying that they want to keep the project in Croatia, but that there's no interest from the government or anyone else here, so they're forced to look elsewhere for investors. They claim that one particular european country has already shown interest and considers the project important to protecting its national interests. The project was also exhibited in London and on Google's campus.

[http://dnevnik.hr/vijesti/hrvatska/doznajemo-hrvatskoj-iz- ru...](http://dnevnik.hr/vijesti/hrvatska/doznajemo-hrvatskoj-iz-ruku-klizi- domaci-projekt-vrijedan-7-5-milijardi-eura.html)

</comment><comment><USER6> The geek inside me loves the idea. The human inside me, however sees this as a +1 for big brother.

</comment><comment><USER7> Balloons like this tend to have high drag. These small propellers seem inadequate for keeping the direction in strong or even medium winds.

<comment><USER8> The founder has stated that he doesn't want to see it used for military purposes.

<comment><USER9> Other than the military and the police, there aren't a lot of people who have lots of money to spend on "continuous surveillance".

</comment></comment></comment><comment><USER10> So, does this exist yet or is it just an executive summary and some renderings?

<comment><AUTHOR> According to croatian news portals, there's a fully functional smaller scale prototype.

More in this news report: <http://www.youtube.com/watch?v=xDKyRy43NxQ>

<comment><AUTHOR> The youtube video is in english.</comment></comment></comment>


Show HN: SQLCheck – Automatically identify anti-patterns in SQL queries - <AUTHOR> https://github.com/jarulraj/sqlcheck <comment><USER2> The tests in this read like someone who has only used one SQL dialect, and wanted another project to show off C++ abilities. Its full of bad advice that does little to help developers write better code.

CheckJoinCount: "Consider splitting up the complex query into many simpler queries, and reduce the number of JOINs" - And offload the additional work to where, to the client?

CheckSpaghettiQuery: Character count > 500, again "Split up a complex spaghetti query into several simpler queries"

"Rewriting the query's HAVING clause into a predicate will enable the use of indexes during query processing." \- On what engines, and in what circumstances?

<comment><USER3> > CheckJoinCount: "Consider splitting up the complex query into many simpler > queries, and reduce the number of JOINs" - And offload the additional work > to where, to the client?

I'm sure, like many, I've seen both extremes of this. It seems like most developers I've worked with have stopped and generally thought about what they were doing with their queries, but there are those few that leave you bewildered.

1) Developer who produces a software package used by a fair number of counties across the US. They're essentially one of, if not the only, company working in that field. We acted as a go-between between the state and the software company.

There are a set of standard reports included with the software, each of which amounts to little more than a very basic PDF wrapper around an SQL query. A huge, ugly turd of a query. One that they created through some SQL GUI, whenever they created the report.

They hadn't profiled any of them or spent any time tuning them. For a large number of them it took quite a while, even with relatively small numbers of records. The state my employers worked with didn't do things on a small scale. In one query's case it would take upwards of 45 minutes to produce a report under optimal conditions. The indexes were great for the general workload, but lousy for producing the report via that query.

They also clearly hadn't thought about the end user experience. Nothing on the page to indicate progress (hard to demonstrate progress when you're waiting on one monolithic query). It wasn't set up as a nice asynchronous report production either.

While I didn't really have time for it, we wanted to be as helpful to the agency in question as possible, so I took a stab at one report, using a quick python script. Breaking the underlying query apart into a few distinct components, and paying attention to the indexes resulted in 1) producing the report in under a minute. 2) progress bars.

Trying to wrestle that change in approach into the monolithic query was way too complicated for pretty much zero benefit.

2) At another company, a co-worker kept having to reject a deployment request from one particular developer (this was quite a while ago, the company used the waterfall method).

Littered throughout their code was "SELECT * FROM table", followed by implementing _all_ filtering logic inside their code. It got to the point where we celebrated the dev at least putting code forwards that included a WHERE clause: "SELECT * FROM table WHERE", even if we still had to reject it (due to the breaks-on-every-schema-change "SELECT *"). Over and over again we demonstrated that the database server was quicker than his code, and really hoped he'd eventually learn. That was one of the few times I really, really, really wished a team would either use an ORM, or fire the developer.

<comment><AUTHOR> Thanks for sharing these interesting anecdotes.

</comment></comment></comment><comment><USER4> [https://github.com/jarulraj/sqlcheck/blob/master/docs/logica...](https://github.com/jarulraj/sqlcheck/blob/master/docs/logical/1004.md)

Strongly disagree.

Table columns should always be prefixed with table name. So users.user_id is one of the most hated patters for me. user.id looks _so_ much cleaner. No one in their right mind should ever write the column name by itself. Especially with queries that use more than one tables.

<comment><USER5> It's pretty annoying to do joins and have to alias all your columns because their names are ambiguous. Also in my experience most people use very terse table aliases so it's not always obvious what "u.ID" "uc.ID" "puc.ID" etc. are referring to.

<comment><USER6> You don't need to alias "all" of your columns, just about 1 out of 10. And I don't understand the complaint about terse table aliases being non-obvious. The answer key is right below the select clause.

</comment></comment></comment><comment><USER7> How about "do not use offset for pagination"?

[http://use-the-index-luke.com/no-offset](http://use-the-index-luke.com/no- offset)

<comment><USER8> I feel like the author unjustly brushes aside the main benefit of using offsets for pagination (that is: the ability to query a specific page of results). Yeah, most page-based UIs do a lame job at it, but it's nice to be able to say "yeah, the record you want is on the fourteenth row of page 9".

If that's not a relevant use case for your application, though, then by all means use key-set pagination.

As a side note, I happen to dislike most implementations of infinite scrolling (especially when the keep pushing down the page footer, making it impossible to actually read or click on anything down there... GRRRR!).

</comment></comment><comment><USER9> Interesting.

Some bones to pick: [https://github.com/jarulraj/sqlcheck/blob/master/docs/query/...](https://github.com/jarulraj/sqlcheck/blob/master/docs/query/3013.md)

First, dat implicit, inner join. Second, it could be written more clearly that, in this case, the reason you want to use a join is because you are not sure that the sub-query returns at most one row.

<comment><AUTHOR> Can you please open an issue or send a PR to update the documentation? Thanks!

<comment><USER9> Yup sure thing!

</comment></comment></comment><comment> m-j-fox If you know any devs at Tableau, please forward this to them.

<comment><AUTHOR> Thanks for the suggestion. I unfortunately don't, but this tool can certainly be integrated with ORMs and in other BI stacks.

</comment></comment><comment><USER10> Sounds good in theory. but I wonder how well it works for any SQL dialects. I write SQL in a dialect like T-SQL usually. The tool would probably not recognize the brackets or different join syntax.

<comment><AUTHOR> By design, the tool is dialect-agnostic.</comment></comment>


Review my AI based marketing bot - <AUTHOR> http://beta.crowdfireapp.com/?beta=agnipath <comment><AUTHOR> So we, the good folks at Crowdfire, have made an AI-based virtual marketing assistant for small businesses, startups and entrepreneurs all across the world. We've been working hard on it for the past 9 months and hope it helps businesses grow easily on Twitter and Instagram with the least bit of time or knowledge required. Would love feedback on it's effectiveness and general UI. Thanks!

</comment><comment><USER2> You should explain a couple use cases where this could help me.</comment>


Skype security hole allows anyone to hijack your account using email address - <AUTHOR> http://thenextweb.com/microsoft/2012/11/14/security-hole-allows-anyone-to-hijack-your-skype-account-using-only-your-email-address/?fromcat=all

<comment><USER2> Previous discussion: <http://news.ycombinator.com/item?id=4782519>

<comment><USER3> Previous to that: <http://news.ycombinator.com/item?id=4781642>

</comment></comment><comment><USER4> No longer an issue. From the top of the article: "Update: Skype has fixed the issue, overhauling its password reset process."

</comment><comment><USER5> Beg HN: Don't double-post stories :D</comment>


San Bernardino iPhone hack won't work on newer models, says FBI - <AUTHOR> https://www.theguardian.com/technology/2016/apr/07/san-bernardino-iphone-hack-work-newer-models-fbi-james-comey <comment><USER2> So it's not the replacing NAND that everyone thought it was?</comment>