The server-side Javascript meme - <AUTHOR> http://eli.thegreenplace.net/2010/03/06/the-server-side-javascript-meme/

<comment><USER2> _"Aren't there enough ways to write web-applications as it stands?"_

...no? Choice (and the ensuing competition) is a good thing. Different frameworks and languages have different strengths and different uses, and people have different preferences. Tools that try to be everything to everyone fail.

</comment><comment><USER3> For me, it's all about Node.js. None of the other server-side JS web stacks have excited me at all - they didn't offer anything that Python or PHP didn't already give me (I'm utterly unexcited about being able to run the same code on both the client and the server). Node complements existing technolgies really well, and has an incredibly well designed API.

</comment><comment><USER4> I remember when the most popular use of javascript was putting scrolling text marquees in browser status bars. For years, javascript was largely dismissed as a gimmicky toy. It's kind of amazing how much further we've been able to take it.

</comment><comment><USER5> _"Aren't there enough ways to write web-applications as it stands?"_

Chances are someone else made the same argument about his language du jour several years ago.</comment>


Writ – Opinionated, classless styles for semantic HTML - <AUTHOR> https://cmcenroe.me/writ/ <comment><USER2> The notion that this feels refreshing enough to be compelling news is a testament to how incredibly convoluted our use of browser technology has become. It's nice to be reminded of CSS's humbler, less-radioactive days...

<comment><USER3> CSS has always been broken. For example, for many years it was impossible to vertically center an element in its parent (without extensive hacks). And still there are weird things like not being able to select all elements A which have B in them with a single CSS rule.

In my opinion, the reason that web technology sucks is that the standards are being created for novices instead of for developers. If the web was a place for developers, we would have seen multiple competing replacements for CSS years ago.

<comment><USER2> As a developer whose job is to deal with the ugly details of implementation, it's easy to forget the original purpose of the technology we're building.

Creating something for novices (or humans, as I like to call them) is the noble thing to do. Maybe the standards committee missed the target somewhat, but their goal was to empower _anyone_ to participate in the web.

I'm getting a bit sidetracked now, but I highly recommend watching this fantastic talk by Bret Victor; it has really changed the way I think about the work I do: [https://vimeo.com/115154289](https://vimeo.com/115154289)

<comment><USER3> > Creating something for novices (or humans, as I like to call them) is the > noble thing to do.

No, the noble thing to do for a committee is to acknowledge that you (as a committee, no matter how large) don't know what is best for all people, and that there are intelligent people out there (i.e., not part of the committee) who might have more insight than you do.

EDIT: Rephrased this a little because from the comments it seems this was misunderstood.

<comment><USER2> [http://www.w3.org/Consortium/join](http://www.w3.org/Consortium/join)

<comment><USER4> Or just join www-style[1] or public-webapps[2], or there's the WHATWG mailing list for all of its specs[3]. All of these are totally free to join.

[1]: [https://lists.w3.org/Archives/Public/www- style/](https://lists.w3.org/Archives/Public/www-style/) [2]: [https://lists.w3.org/Archives/Public/public- webapps/](https://lists.w3.org/Archives/Public/public-webapps/) [3]: [https://whatwg.org/mailing-list#specs](https://whatwg.org/mailing-list#specs)

<comment><USER5> _> All of these are totally free to join._

This is true, but misleading.

It's true that it costs nothing to join a W3C mailing list. However, if you join such a list and actually _try to participate_ , you rapidly discover that:

1) Making a meaningful contribution requires being able to commit enough time to shepherd that contribution through the twin gauntlets of W3C process and internal committee politics;

2) The only people who can justify committing that kind of time are people for whom doing so is their full-time job;

3) Almost all of the people whose full-time job is participating in a W3C list are browser implementers;

4) Browser implementers, unsurprisingly, tend to see the problems and concerns of browser implementers as being inherently more important than the problems and concerns of other types of stakeholders in the Web (e.g. Web developers, marketers/adtech people, privacy advocates, accessibility advocates, etc.).

You generally discover this the first time you have the temerity to offer an opinion, at which point you are bombarded with responses about how you don't really understand the issue because you're not a browser implementer and have _no idea_ how _hard_ it is to be a browser implementer because browser implementers have it _harder than anybody else in the world_ including _lepers_ and _orphans_ and _seriously you have no freaking idea how anything in the world even works_ and _bro do you even implement we didn 't think so thanks for your useless opinion now go away._

(Full disclosure: I may still be a little bitter from my participation in the HTML5 process.)

</comment></comment></comment></comment></comment></comment></comment><comment><USER6>
        ul li { list-style-type: disc; }
        ul li li { list-style-type: circle; }
        ul li li li { list-style-type: square; }

        ol li { list-style-type: decimal; }
        ol li li { list-style-type: lower-roman; }
        ol li li li { list-style-type: lower-alpha; }

These are bad. Very bad. Example:

 uses unordered styling on the ordered inner list.

A little better:

        ul > li { list-style-type: disc; }
        ul ul > li { list-style-type: circle; }
        ul ul ul > li { list-style-type: square; }

        ol > li { list-style-type: decimal; }
        ol ol > li { list-style-type: lower-roman; }
        ol ol ol > li { list-style-type: lower-alpha; }

<comment><USER7> Oops, I didn't notice this, thanks!

Edit: [https://github.com/programble/writ/issues/4](https://github.com/programble/writ/issues/4)

</comment></comment><comment><USER8> Feels like a response to: [http://motherfuckingwebsite.com](http://motherfuckingwebsite.com) and [http://bettermotherfuckingwebsite.com](http://bettermotherfuckingwebsite.com)

But it breaks the font sizing. Also it would be cool if H1 would be smaller inside an ARTICLE than H1 outside of an article like the default setting in Safari etc.

Would be good if useful defaults wouldn't be destroyed by too general css.

<comment><USER7> [https://github.com/programble/writ/issues/5](https://github.com/programble/writ/issues/5)

</comment></comment><comment><USER9> When I first learned about CSS I was pretty intrigued by the W3C Core Styles [1]. They were a pretty good illustration of the separation of presentation from the underlying markup.

[1]: [http://www.w3.org/StyleSheets/Core/](http://www.w3.org/StyleSheets/Core/)

<comment><USER10> [http://www.csszengarden.com/](http://www.csszengarden.com/) is a neat example of that too: some wildly different visual designs with the same markup.

<comment><USER11> Zen Garden is pretty much the opposite of what one should do nowadays. Someone wrote some markup and sprinkled a ton of CSS hooks on top and then someone else came along and wrote the CSS.

It uses these 12 IDs:

 _css-zen-garden, design-archives, design-selection, zen-benefits, zen- explanation, zen-intro, zen-participation, zen-preamble, zen-requirements, zen-resources, zen-summary, zen-supporting_

And these 39 classes:

 _archives, benefits, css-resources, design-archives, design-name, design- selection, designer-name, explanation, extra1, extra2, extra3, extra4, extra5, extra6, indicator, intro, main, next, page-wrapper, participation, preamble, requirements, resources, select, sidebar, summary, supporting, view-css, viewall, wrapper, zen-accessibility, zen-faq, zen-github, zen-license, zen- resources, zen-submit, zen-translations, zen-validate-css, zen-validate-html_

If you've ever wondered how some websites end up with a meg of CSS, that's exactly how that happens. Each view/page starts with some markup, then you sprinkle some one-off CSS hooks over it, and then you write some overly specific CSS rules which are impossible to reuse. Rinse and repeat.

It's more efficient to create a library of reusable building blocks and then build your views/pages out of these. All of the more organized approaches (BEM, SUIT, etc) work this way. You always use what's already there and you only extend a component or create a new one if it's absolutely necessary.

<comment><USER12> I use the last approach, libraries that make up my elements.

But I always feel bad with all the CSS classes in my markup.

Back in the days I often had only <10 CSS classes and created my styles relative to that. I had the hope that those 10 classes would vanish with HTML5 and its special div-tags.

But now I'm running around throwing bootstrap classes around like there is no tomorrow.

</comment></comment></comment></comment><comment><USER13> Can we please use this as the new basic stylesheet that is used in browsers like Firefox and Chrome? Who decided that those ugly default stylesheets must be be applied to unstyled documents?

Why cannot unstyled document be nice by default?

<comment><USER11> It would probably break some websites.

Run this on some websites and you'll see some things moving around:

      document.head.insertAdjacentHTML('afterbegin', '<link rel="stylesheet" href="https://cmcenroe.me/writ/writ.min.css">')

<comment><USER14> Chrome and Firefox both support user stylesheets, so you could do that.

</comment></comment></comment><comment><USER15> Reminds me of a more complete version of Tacit [1].

[1] [http://yegor256.github.io/tacit/](http://yegor256.github.io/tacit/)

<comment><USER16> I've been using tacit a lot, and its working out great for my one page apps.

</comment></comment><comment><USER17> On the reference page [https://cmcenroe.me/writ/reference.html](https://cmcenroe.me/writ/reference.html) the aside note causes a horizontal scrollbar for me. Chromium 43.0.2357.81 (64-bit) on linux.

<comment><USER7> The  styling was an experiment, since I'm really not sure how to style those nicely. On a large enough screen, the aside sites off beside the body text, and on a mobile browser, the grey line is visible on the right and you can scroll over to see the aside. Unfortunately this doesn't work well at all on screen sizes small enough that the aside half fits.

Edit: [https://github.com/programble/writ/issues/6](https://github.com/programble/writ/issues/6)

</comment></comment><comment><USER18> A CSS framework that actually separates content from presentation. I wish that kind of things was more common.

</comment><comment><USER19> The body font size seems tiny to me.

<comment><USER6> Yeah, font-size: 14px is a bad idea. It should really, _really_ be put back to 16px (just leave the definition out!).

<comment><USER20> Font sizes are even better if defined in PT instead of PX!

<comment><USER6> Eh, 16px = 12pt, simple 4:3 ratio, why bother with the pt unit at all?

<comment><USER21> Yeah, on 96 DPI. Anywhere else you rely on browser scaling if you don't use pt.

Edit: Ok, so I'm not a web developer, so I read after it: [http://www.w3.org/Style/Examples/007/units.en.html](http://www.w3.org/Style/Examples/007/units.en.html)

Turns out I'm wrong about that 1px is required to be 1 device pixel. But the 3/4 rule is _not_ universal and only applies to print. I don't know how different implementations handle this.

<comment><USER20> CSS 'pixels' are a dark, dark magic, come back to the light!

CSS pixels are a measure of your viewing angle, the physical measurement of the device, and your screen's pixel density. Basically 15px should look like 15px should look like 15px, no matter what you're looking at, but because the actual pixel densities of screens differ it can be really weird to think about.

You may need a 30px icon to display 15px wide on a retina screen, even though it sounds like a 15px image should be 100% large (and therefore crisp) at 15px in CSS.

</comment></comment></comment></comment></comment></comment><comment><USER22> I honestly can't see why the Writ stylesheet is better than the standard html output. It seems to me that he just used a new font.

<comment><USER23> It's _almost_ more of a reset, than anything, but when you're authoring a classless stylesheet, the line is blurry. Using a readable width for the overall document makes it several times better than the default styles alone. The preformatted styles are much nicer than the defaults, too.

</comment></comment><comment><USER24> Not all abbreviations are initialisms, and small caps therefore aren't always appropriate.

Bootstrap (and various other similar systems) lets you specify this, by adding a class of .initialism to the

[http://getbootstrap.com/css/#type- abbreviations](http://getbootstrap.com/css/#type-abbreviations)

<comment><USER7> [https://github.com/programble/writ/issues/16](https://github.com/programble/writ/issues/16)

</comment></comment><comment><USER25> Very nice project. This is a quality normalize stylesheet.

It however pains me how this is heralded as something new by HN. "Finally, someone figured out how to do CSS correctly!" ... Shows how most people have no idea how to work with CSS yet comment on it. CSS Resets and Normalize stylesheets have been used for decades.

Edit: I feel like I should add this I'm not bashing this project. I recognize the quality of it.

<comment><USER26> This actually doesn't normalize anything; that is, it doesn't account for differences in the various UA stylesheets and how they render things by default so things are consistent between browsers.

Perhaps there are some things that could be incorporated from Normalize, which documents the subtle (and not so subtle) differences in how browsers handle certain elements: [https://github.com/necolas/normalize.css](https://github.com/necolas/normalize.css)

<comment><USER25> I agree that "normalize" wasn't the right word. It's however closer to what this do than "reset".

I don't know how I would call Writ. "Baseline" perhaps? Something like that.

</comment></comment></comment><comment><USER27> This looks so good and nice. I would definitely use it with some modifications for a drop in replacement of markdown block inside some blog. But will wrap it in a class ( e.g. .article-content ).

What is a beneficial stylesheet system, according to me, is a system that can scale and gives you the opportunity to create a complicated website. This unfortunately doesn't. Sorry.

<comment><USER7> I agree that would be a good stylesheet system, but it is not Writ's intended purpose.

</comment></comment><comment><USER26> It's 2015--have the browser use real small-caps if the font supports them. Even if it doesn't, you're probably better off letting the browser make them instead of you creating them.

        font-feature-settings: "smcp";

on an element turns lowercase letters into small-caps;

        font-feature-settings: "c2sc";

turns uppercase letters into small-caps.

More at [https://drafts.csswg.org/css-fonts/#font-variant-caps- prop](https://drafts.csswg.org/css-fonts/#font-variant-caps-prop).

Safari's renderring engine WebKit just got font-feature-settings: support: [https://twitter.com/webkit/status/631827777319256064](https://twitter.com/webkit/status/631827777319256064).

</comment><comment><USER28> See also [https://github.com/mblode/marx](https://github.com/mblode/marx) and [https://github.com/fiatjaf/classless](https://github.com/fiatjaf/classless)

</comment><comment><USER29> umm ok but why not box-sizing?

html{box-sizing:border-box} *,:after,:before{box-sizing:inherit}

<comment><USER6> Personally I think a much better question is _why_ change the box-sizing? I'd call it out of scope for something like this. Very seldom have I encountered a situation where I actually want border-box rather than content-box; there are normally better ways of doing things. (Truth to tell, I've wanted padding-box more often than border-box in recent times, but only Firefox supports it.) Ideally calc() can be used too; it's more powerful and expressive and well supported nowadays. The last piece of the puzzle to make it all fit together well on more complex arrangements is CSS variables, but they're only available in Firefox at present.

[http://caniuse.com/#feat=css-variables,calc](http://caniuse.com/#feat=css- variables,calc)

<comment><USER26> _Personally I think a much better question is why change the box-sizing?_

Because the default content-box is a pain in the ass to work with, so to be able to use border-box all the time is a good thing: [http://www.paulirish.com/2012/box-sizing-border-box- ftw/](http://www.paulirish.com/2012/box-sizing-border-box-ftw/).

</comment></comment></comment><comment><USER30> FYI writ.bassam.co

</comment><comment><USER31> Do people realize here that classes in HTML were actually invented to hook styling info through CSS and that it's actually the approved and promoted use case by the standards body?

<comment><USER2> I can't speak for everyone, but I suspect web developers are used to staring at "markup soup" when viewing the source of a pretty-nice-looking website such as the one showcased here, and so this seems refreshingly elegant.

<comment><USER32> I know I certainly appreciate as little of the markup soup as possible. I tend to try and use as little markup as needed to write semantically correct code. However, these days people expect you to use the twitter bootstrap and markup soup to build sites and web apps. I don't understand why people are fighting the web rather than working with it.

</comment></comment></comment><comment><USER33> Sick.</comment>


Ask HN: How do I pay taxes on crypto/token trading - <AUTHOR> From what I have read and can assume, in the USA trades between tokens should be treated as tax events to apply short/long term capital gains and not like-kind exchanges - tax should be paid immediately (current tax cycle), rather than when exchanged back to fiat.
Does anyone have any useful resources or authoritative info & suggestions on how to go about calculating and reporting taxes on crypto and ethereum tokens?
Thank you in advance. <comment><USER2> This is pretty awesome:

[https://www.reddit.com/r/personalfinance/comments/7p9a2t/cry...](https://www.reddit.com/r/personalfinance/comments/7p9a2t/cryptocurrency_a_guide_to_common_tax_situations/)

<comment><USER3> thank you!!!

</comment></comment><comment><USER4> [http://zenledger.io](http://zenledger.io)

My friends and I have been building out tech in this space. (no we're not doing an ICO= we've been asked if we are by so many people, jesus)

The 1031 laws change things for people, feel free to ping me if you have deeper questions.

<comment><USER5> Zenledger is a nice startup idea. I thought that Coinbase is sending out 1099 (K's or MISC) to users and the IRS though already?

I wonder how many US citizens will just ignore their tax obligations thinking crypto trades, profits are untraceable.

</comment></comment><comment><USER6> I use bitcoin.tax and it's made things so much easier. You can import trading history from the major exchanges and for any non-major exchange trading you can import manually or with a CSV.

It's free for up to 100 "events" (trades, mining, gifts, income, etc) and a reasonable $20 per year for anything above that.

I'll be taking the output from that software to give to my accountant and go from there.

</comment><comment><USER7> Here are some links I have come across

My favorite summary: [https://qz.com/1156706/a-guide-to-paying-taxes-on- bitcoin-in...](https://qz.com/1156706/a-guide-to-paying-taxes-on-bitcoin- investments/)

This was linked from a message on GDAX: [https://www.irs.gov/pub/irs- drop/n-14-21.pdf](https://www.irs.gov/pub/irs-drop/n-14-21.pdf)

And some additional tax tips: [https://cointelegraph.com/news/crypto-tax-tips- to-start-2018...](https://cointelegraph.com/news/crypto-tax-tips-to- start-2018-right)

</comment><comment><USER8> I don't think it's quite as straightforward as people are making it out to be here, especially when considering forks. If you bought BTC a year ago and sell BCH (or BTC) today, what was your purchase price?

There are currently a couple of dozen Bitcoin forks, each with arguably equal claim to be the true successor. So it's difficult enough if you bought before all the forks and are selling all of your BTC in one go now, but lord help you and your accountant if you've bought or sold any inbetween some of the forks.

<comment><USER9> At least for USA exchanges, only Bitcoin Cash has a marketplace so it's the only one I tracked. I put a cost basis of $0 at the time of fork, and paid short term capital gains on the sale.

<comment><USER10> Could you argue that the cost basis of your bitcoin was changed because BCH is similar to a stock dividend that is reinvested?

<comment><USER9> Maybe, but I've read CPA advice on just declaring as income. Seems to be the most conservative approach and didn't change the tax substantially for me.

</comment></comment></comment></comment><comment><USER11> I actually just wrote an article on this: [https://medium.com/@nkmlombardi/the-complicated-landscape- of...](https://medium.com/@nkmlombardi/the-complicated-landscape-of- cryptocurrency-taxation-fde0e1baca99)

</comment><comment><USER12> I don't think it has to be such a headache as long as you keep records. What I plan on doing is calculating my gains and losses using [https://bitcoin.tax/](https://bitcoin.tax/) and bringing the report to a CPA to check over.

Not sure about the "paid immediately" part. That's news to me actually. Can anybody else weigh in on this?

Edit: [https://www.irs.gov/faqs/estimated- tax](https://www.irs.gov/faqs/estimated-tax) suggests you do if you expect to owe more than $1,000 in taxes.

<comment><AUTHOR> To clarify: paid immediately as in the current tax cycle, and not when liquidated to fiat as another reply suggests is law in Canada.

</comment></comment><comment><USER13> The tax accounting isn't that complicated. I don't have anything specific to point you to, but for the most part, cryptocurrency assets will be treated like any other asset like a stock or bond. If you sell it for more than you bought it for then you owe taxes on the difference in the tax year you made the sale.

The only reason it seemed complicated is people were trying to gimmick their way out of it by making complicated arguments for preferential tax treatment. This is always the way it was headed IMHO.

</comment><comment><USER14> I'm using [http://cointracking.info](http://cointracking.info) \- great support so far when I run into issues.

10% off with my Affilate link - [https://cointracking.info?ref=Z106753](https://cointracking.info?ref=Z106753)

(^ if this is not allowed I can remove it)

</comment><comment><USER3> From Bluecobra, thought it was really good and worth repost

[https://www.bloomberg.com/amp/news/articles/2017-12-21/tax-f...](https://www.bloomberg.com/amp/news/articles/2017-12-21/tax- free-bitcoin-to-ether-trading-in-u-s-to-end-under-gop-plan)

<comment><AUTHOR> Article gives me the impression it was never a "lucrative tax break" and just a point of confusion, and coin-to-coin exchanges have always been subject to capital gains.

Anyone have thoughts on this?

</comment></comment><comment><USER15> Capitol Gains when converted to cash, in Canada.

Keep your records.

<comment><USER16> What about crypto to crypto conversion? Taxable event?

<comment><USER17> Yes:

[https://www.bloomberg.com/amp/news/articles/2017-12-21/tax-f...](https://www.bloomberg.com/amp/news/articles/2017-12-21/tax- free-bitcoin-to-ether-trading-in-u-s-to-end-under-gop-plan)

</comment></comment></comment><comment><USER18> [https://bitcoin.tax/](https://bitcoin.tax/)

</comment><comment><USER19> Do you know what is the tax situation for non-residents using an US exchange to convert to fiat? Should non-citizens, non-residents also pay capital gain tax?</comment>


STORM – Submarine rescue module (drone) - <AUTHOR> http://storm.mybluemix.net/ <comment><AUTHOR> STORM is an open-source project that aims to build a rescue module for submarine drone. We are seeking support for both software and hardware improvement.</comment>


What is jsHub? - <AUTHOR> http://www.jgc.org/blog/2009/10/what-is-jshub.html

<comment><USER2> I read your explanation, understood that it's a kind of external javascript combining machine to limit http requests and size, while increasing reliability.

I then went to your site to check out the demo and found a page with lots and lots of external javascript requests, and something about a microformat.

I'm still confused.

<comment><USER3> I think his point is the same thing I'm having a problem understanding. I went to the demo site and saw 17 scripts loaded on the page using firebug; I assumed from the description there would be only one.

Microformats aside, I'm trying to understand the solution to the hub part because that sounds like a problem many people would be interested in fixing.

<comment><AUTHOR> The problem jsHub is trying to solve is not "only ever load one piece of JavaScript in a page" it's "only have one piece of JavaScript for tracking, ad-serving, behavioural targetting, ...".

The reasons to do that are laid out in my blog post but the most important is consistency. If one piece of JavaScript gathers the data once and passes it to various vendors, then you know that the same data was sent, and was actually sent.

</comment></comment></comment><comment><USER4> So lets say I maintain some medium-to-large corporate websites (because, well, I do).

I want jsHub because it makes my sites load faster, right? How much faster? Any way to get some test cases or examples?

Differences in hit counts and visits between products are indeed annoying, but it serves as a check. How else would we know if traffic dipped overnight or jsHub went down? Also, I think part of the difference in those counts is due to different algorithms for what constitutes a "visit" and different filtering for bots.

And for the microformats, I hope you realize that's an uphill battle. I can't justify redesigning my pages to use some new format without a material benefit.

<comment><AUTHOR> There is no 'jsHub' to go down. The entire thing is JavaScript inside the browser. There's no dependency on anything at jshub.org.

Microformats aren't asking for a page redesign. They are just class names. Our argument is that a clear specification is many times better than obscure JavaScript variables inside a Omniture tag, or parameters in a comScore Beacon, ...

Finally, the whole point of jsHub is that won't have to tag your site again. Adding a new product to a jsHub tagged web site means just changing the plugins in your jsHub set up.

<comment><USER4> Thanks, I could have sworn there was a hosted version, but clearly I'm mistaken.

</comment></comment></comment><comment><USER5> Good idea, but how about not collecting tracking data at all? If you want to know about my web habits, ask me, or pay me to participate in a controlled study. But just spying on anything that you have access to is just going to get you blacklisted in noscript with prejudice.

<comment><USER6> Disclaimer: I'm a jsHub.org founder

One of the key reasons for using a microformat (hPage) is the principle to "design for humans first and machines second".

We provide an Inspector tool on our Demo store to meet this principle and hope that, with the microformat's community's help, we can make the data visible in many other tools.

We would like to make website publishers and users more aware of the data being declared and collected so it can be more accurate and therefore more beneficial to all involved.

Currently many users are unaware data is being collected at all.

<comment><USER7> This is a noble goal — letting the user and site publisher know what data is collected — however, I don't see what the benefit is to the ad providers or data collectors on the sites, other than that they might possibly be able to simplify their Javascript and reduce the load time in pages with that use their scripts.

Am I missing something? Unless consumers start demanding to know what information is collected about them, I don't think that the benefits jsHub has for ad providers are important, and that they won't implement a plugin until they're pushed by some other forces. In other words: the merit of technical innovation isn't enough for them to change their behavior, and they need a bigger incentive in order to consider using jsHub at all.</comment></comment></comment>


Taking Advantage of HTML5 and CSS3 with Modernizr - <AUTHOR> http://www.alistapart.com/articles/taking-advantage-of-html5-and-css3-with-modernizr/

<comment><USER2> If you want to take advantage of 2D/3D effects, you can use CSS media queries to hide them (and related stylings) from incapable browsers: `@media transform-3d { ... }`

[http://developer.apple.com/safari/library/documentation/appl...](http://developer.apple.com/safari/library/documentation/appleapplications/reference/SafariCSSRef/Articles/OtherStandardCSS3Features.html#//apple_ref/doc/uid/TP40007601-SW3)

</comment><comment><USER3> Weird... I get stuttery scrolling on all the styled samples (not on the raw) in Safari / WebKit nightly, but not Chrome. Anyone else experience this? I can't see what it's coming from...

That aside, interesting technique. I'll have to keep modernizr in mind for anything not-super-complicated that I want to allow degradation on, it seems like it would make a lot of tasks simpler.</comment>


Why DJ Hero failed - <AUTHOR> http://theferrett.livejournal.com/1379819.html

<comment><USER2> An interesting post, and the first thing that I've read on livejournal in a long while.

As a guy who just finished university, I've played more than my fair share of guitar hero and rock band. I like the games, and rhythm games in general.

To address the author's points:

* Maybe I'm not the typical person, but I would have no problem paying $120 for songs that I don't know. In each guitar hero or rock band game, I estimate that I know fewer than half of each set list, but I still enjoy the games.

* I played the demo in the store. I was too focussed on the controls the first time I played to give half a hoot about whether what I was listening to was any good.

* Finally, and this is the meat of the post - the game is too hard for a mainstream audience. I agree with the sentiment, but disagree with many of the points he makes to get there.

</comment><comment><USER3> I completely agree with him. I'm a bemani fan in general and like Beatmania IIDX quite a bit. A friend of mine bought DJ Hero and was eager to show it to me. I was confused playing it for the first 10 minutes or so. Awkward playing it for the first hour or so. I figured it out, but the disconnect is certainly there.

Beatmania (especially IIDX) offers all the flair and style of DJ'ing without that disconnect. It's a really simple game conceptually (in fact, Guitar Hero is almost the exact same game). IIDX has been massively successful (granted, in Japan only). Had Konami tried to make Beatmania like actual DJ'ing, it would have flopped too (and since it was literally the first ever music game, that would have been an interesting alternate history).

</comment><comment><USER4> I actually received this for Christmas and I absolutely love it. DJ Hero seemed to be on sale all over the place too before Christmas. I imagine these kinds of games sell themselves better when played at someone's house than at the store. I just had some friends come over last night who had heard of it but never checked it out and now love it!

It does help that I really enjoy this kind of music over the stand-alone songs found on GuitarHero/RockBand.

</comment><comment><USER5> Short version of the article: DJ Hero failed because it's awesome.

I kid. It's a fun read. However, in this context calling it _failed_ seems to only apply if marketplace competition is a zero-sum game.

Perhaps we could say instead that it succeeded in the audience of gamers who want a challenging DJ game?

</comment><comment><AUTHOR> I think it's interesting because it looks at how they've misunderstood who their market really is.

</comment><comment><USER6> I disagree with the post. It failed for 2 reasons:

1) DJs are not mainstream (as opposed to rock bands). Mashups are not mainstream.

2) We have a bad economy. People can't afford to buy a new $100 video game accessory.

</comment><comment><USER7> I did an analysis of this when it came out. They could have cut half the controls and still had an ample difficulty curve....

</comment><comment><USER8> I wasn't interested in the game because it looked too much like Frequency and Amplitude, and I'm in the Harmonix camp.

<comment><USER9> One day Harmonix will make Wavelength with a bundled keyboard and everything will be right in the world.

</comment></comment><comment><USER10> It failed because of Activision's hubris in believing people were going to spend another $120 on a game after having had 5 Rock Band titles and 10 Guitar Hero titles. It failed because it asked people to aspire to be something nobody wants to be: a dorky DJ. Seriously? A DJ? Why not Jazz Flute Hero while we're at it?

<comment><USER11> Especially after Sousaphone Hero had sluggish sales ( [http://www.theonion.com/content/news/activision_reports_slug...](http://www.theonion.com/content/news/activision_reports_sluggish_sales) )

<comment><USER12> I think Accordion Hero did okay, though: <http://www.phobe.com/sfi/accordion.html></comment></comment></comment>


The myth of the developer that can't code - <AUTHOR> https://www.neilwithdata.com/developer-myth <comment><USER3> This article is full of opinions, and brings no facts to the table. The author does not mention his experience interviewing or hiring people, and the whole piece reads more like a rant.

> When an accountant is in an interview, they're not asked to multiply on-the- > spot in their head what 485 x 761 equals because "you have to be good at > math to be an accountant"

This is an ignorant statement. Accountats don't have to multiply things in their head day to day. Yet developers do need to code, day to day.

I'm a hiring manager and the reason people code on interviews is - well, after joining a company, the first few months they _will_ spend a good chunk of their time coding. And the companies I worked at, who dropped the coding interview always regretted it, through mishires. People who could code, but were not very good at it. E.g. their code was sloppy, incorrect and they needed considerable mentoring and coaching to write code that worked. As senior developers.

The other reason is to even the odds. 70% of people I've seen hired did not have public Github profiles or code they could show. The people who complain about "why can't they just look at my portfolio" and (potentially rightfully) conclude that they're amazing developers don't realize that this approach would result in more bias for hiring this group of people. Good luck maintaining a fair hiring bar this way or hire diverse candidates.

This is why the coding test exists in most places. It's to test for something that you're expected to do from day one and to even the bar that people need to jump through, for everyone.

I'd love to hear what OP suggests to replace the coding tests with - a chat about past projects, then make an offer? And what do you do with the people who don't have these things to show?

<comment><USER4> The coding tests in many places no longer test coding. They test algorithms, dynamic programming, or how to deal with ambiguity for an incredibly under specified problem. They are useful in weeding out 80% of the candidates who are clueless, but they don't provide much reliable distinguishing signal for the 20% that remain. The coding interview isn't going to tell you the difference between a junior or senior dev. Heck, given that universities prep kids these days for google style leetcode interviews while a senior dev lacks the time for full time prep, junior devs are likely to do better on it.

<comment><USER5> > They test algorithms, dynamic programming, or how to deal with ambiguity for > an incredibly under specified problem.

I've been doing this for 25 years now and I've never had to implement an algorithm[1] from scratch or do any dynamic programming. I'm not entirely sure I'd consider myself "clueless" because of that.

[1] In the traditional computing sense of the word

<comment><USER6> I've been implementing Dynamic Programming, from scratch, just yesterday. But it wasn't for work either.

</comment></comment></comment></comment><comment><USER7> Accountants, Lawyers, and Surveyors have credentialling bodies that train, test and monitor performance.

Accountants don't need to show they are qualified in interview because they have the letters ACA, ACCA, CEMA or whatever that they can clearly point to.

Lawyers and Surveyors similarly have profession bodies that handle qualification.

Software engineering is not uniquely broken but it is broken, but the author jumps to the wrong conclusion.

The other engineering and professional disciplines have professional bodies who have official qualifications.

Software engineering has never solidified around any particular set of qualifications and many think they are not relevant.

And artists are often asked to do some initial work for free before a client commits, they often end up doing a lot of "wasted" work for free without getting properly compensated, so it seems odd to argue that's a model that software should look toward.

<comment><USER8> Software has a couple of unique problems which prevent those from working:

\- the state of the art is both extremely diverse and rapidly moving, so any credential system would run the risk of being too specific and easily out of date. Very few are respected and most existing ones are tied to particular products. Possibly the only set of those that is respected is the Cisco ones.

\- most of our work is (a) tightly intermingled with the work of others and (b) copyright belongs to our employers, so we can't build portfolios like artists. Many people have contracts that purport to own all code produced, even in your spare time.

It would be _great_ if we could take all the basic tests once, upfront, under exam conditions, and then re-use that for years. I can't see how it can be coordinated. Maybe what we need is not a union but a professional body. In the UK we sort of have one (BCS, and more absurdly, the Worshipful Guild Of Informational Technologists) but their impact and benefit is also pretty tiny.

<comment><USER9> _> Possibly the only set of those that is respected is the Cisco ones._

And that just because their stack is slower-moving. This is a problem that unfortunately is not going to be solved anytime soon, I fear. As industrial revolutions go, we are still in the "mad inventor / amateur / visionary" phase, really. It will take another 50 years before the field slows down enough to solidify into a consistent curriculum.

 _> we can't build portfolios like artists._

That's basically what personal Github accounts are, de-facto.

<comment><USER8> Yes, but that's not your "professional" work (which is copyright your employer), it's your "amateur" work done in spare time. Which is a pretty exclusionary approach to hiring.

It would be very different if more employers paid more than lip service to professional development and encouraged the publication of personal githubs on "work time" as part of that. It sounds like (some of?) the big Bay Area companies do, but those are the ones _after_ the big hiring barrier.

The actuaries I know spent a lot of time on exams, but also in their early years got some time set aside by their employers for that.

</comment></comment></comment></comment><comment><USER10> As someone who didn't major in CS, the technical interview is the reason I was able to get a job. I didn't have ton of professional experience, and I didn't have a degree in a directly relevant field. But in a technical interview, I could show that yes, I really did know how to code.

I did have a "portfolio" of projects on Github, but it wasn't very large, and the most interesting project there were, well, too complicated for an interviewer to understand in short amount of time. And what about people who don't contribute to open source, either due to lack of time or desire? What do they have for a portfolio?

Don't get me wrong, technical interviews certainly aren't perfect, and there are a lot of ways to improve them. But I think they should be improved by making them measure what an developer actually does, rather than removing them altogether. In fact, I would say that if accountants (or any other technical profession) aren't assessed on their technical ability as part of the interview process, maybe they should be.

<comment><USER11> This is the shift that happened in the 8 or so years at my previous job as well. It's a consultancy company, and when I was hired there it was more of an experiment - a traineeship, if you will. Their hiring practices were basically a minimum of 5 or 8 years of professional experience.

While I was there they shifted their hiring practices, focusing instead of merit and the results of a technical assignment and interview. We ended up hiring early 20-some year olds fresh out of college because they wrote great code and could explain it to us. I mean we've had some people that made a solution that sorta worked but couldn't really explain some of the work they did, or the underlying logic behind it. Some had great CVs (I mean that's the first check), but there wasn't any skill behind it.

</comment></comment><comment><USER12> I have to disagree with that statement. There are such and I've worked with such far more than I'd even want to imagine. There have been entire releases where I've had to re-do everything they've done from scratch because code reviewing simply wasn't going to cut it: Spend 2 weeks explaining what they've done wrong and then reviewing it all over again from scratch while the deadline is right around the corner. In their final months they were literally given nothing to do because we couldn't allocate the resource to clean up after them. But I'd have to quote Niki Lauda for those particular individuals: "At some point, it's no longer a question of experience, but a matter of intelligence".

<comment><USER9> The point of TFA is that this sort of people exist in any profession. I can assure you there are plenty of "bad" accountants, or the taxman would not have to spend billions to review tax returns. There are plenty of "bad" lawyers, or we wouldn't have mistrials and wrongful convictions. And let's not even look at anybody involved in real-estate processes. And still, the hiring process for professions that are much more critical for everyday life than "guaranteeing cat videos download on time" is _much_ more forgiving.

<comment><USER12> That is true, though I must also add that some of the ones in question came from prestigious and world renowned universities. Once you'd struggle to get in(in theory apparently, because otherwise I have no idea how that works). They all had the "senior developer" in their titles with near or double digit years of experience.

</comment></comment></comment><comment><USER13> > But I suspect there are no more developers that cannot code than there are > lawyers that don't know the law...

I suspect that's wrong. To get a job practicing law, someone generally needs to have passed their state's bar exam. Similarly for other licensed professions like doctors, CPAs, civil engineers, etc. But anyone can legally call themselves a software developer.

<comment><USER14> And if you want to be a firefighter, you have to pass fitness tests and climb ladders and stuff. If you want to be an actor or musician, you have to audition. The employer wants to know what you know. I guess maybe some people think of these these tests as pass/fail where if you forget a semicolon you "failed" the whiteboard interview. Any job where you don't have a degree or professional certification guaranteeing a bare minimum of knowledge will ask you to demonstrate your abilities and what you know. The fact that you don't do that in some professions is more of an indication of how hard it is to test without a comprehensive knowledge-based examination. Software development is not unique. If you say you're qualified for the job, you have to demonstrate it somehow.

</comment></comment><comment><USER15> I know these feel-good anti-whiteboard blog posts are in vogue right now, but the harsh reality is we're entering a recession. If you refuse to do whiteboard interviews, or complain about employers who want you to work hard, or only looking for jobs that'll let you unnecessarily rewrite their stack in Rust on k8s, or feel that FizzBuzz is beneath you: you're gonna be in for a rough couple years.

<comment><USER4> I don't feel like fizzbuz is beneath me, but Alien Dictionary is annoying the 10th time you are given it. Thankfully I got an offer from Google a couple of weeks ago, but I did spend way too much time doing interview prep.

</comment></comment><comment><USER16> I'll take coding interviews over expensive qualifications, work history and nepotism any day of the week.

Let's say I give candidates a basic whiteboard problem that requires no fancy algos/data structures other than knowing about arrays and dictionaries. A passing candidate will demonstrate the following attributes:

1\. Understands basic programming constructs and elementary data structures (loops, vars, arrays, dictionaries)

2\. Can model problems in her head

3\. Can communicate effectively

4\. Can work well under the pressure of an interview environment

So it's process that selects candidates that have desired attributes 1+2+3 but the downside is that it also selects irrelevant attribute 4

This is a pretty good system! Sometimes it will fail because candidates will be rejected for lacking 4 even though I don't care about it. Is there a better system? I don't believe that just looking at resumes and past experience selects for 1+2+3 nearly as well.

Furthermore I've said that "works well under the pressure of an interview" is an irrelevant attribute, but I think you could also make a case that it is weakly relevant in this way: if a candidate can do 1+2+3 while under pressure then you would expect them to perform 1+2+3 as well _or better_ when not under pressure.

There is also desired attribute 5 "is pleasant to work with" — coding interviews don't really select for this, but I don't think anything else does either short of probationary periods.

<comment><USER17> > Is there a better system? I don't believe that just looking at resumes and > past experience selects for 1+2+3 nearly as well.

A take-home test would cover 1+2+3 without 4. With the caveat that 3 becomes a test about written communication, which may be a good or bad thing. If you want to do both, you can expect a written description of the solution, but also go over things verbally if they pass the bar, in next phase.

</comment></comment><comment><USER18> Software Engineering hiring is broken in more subtle ways.

Recently I went through the process of an internal transfer in my company.

I applied to a team and went through a loop, just like an external candidate would.

I got rejected by that team. The reason is that I failed their systems design round.

The funny thing is that I spent the last two years maintaining and optimising the backend of my current team, that supports hundreds of thousands of customers.

Let me be clear, I didn't do well in the interview. They asked me to design a Dropbox clone and I flunked a few points. I didn't know long polling, and I tried to implement some of the features using the same solutions that we use in our system, which don't work very well here.

But what is the point of the interview? Is it to assess that I can design a Dropbox clone in 50 minutes, or that I know about systems design? If it is the later, you can just take a look a my work. You have access to all my pull requests and code reviews, design documents, and peer feedback. Heck, you can even ask me to walk you through our system and explain how and why we implemented certain features.

The reason why internal transfers are set up like that is so that internal candidates don't get a better treatment than external ones. Sure, I agree that some checks are in order to avoid moving low performers around, but are we trying to hire talent or make people jump hoops to get a job? The best part is that the hiring manager recommended me to 'reapply in a few months' to the job. What does that mean other than 'go study a bit and come back'?. If that isn't broken, I'm not sure what is.

</comment><comment><USER19> Personally I agree with idea. Software development and IT nowadays is complex. Do you really think that whiteboard interview can truly check anything? It will check if you can memorize definitions and patterns for solving tricky questions and that's it. That might work for some type of people, however I work poorly under such stress, my mind goes blank and I can't remember simplest definitions. I don't want to work for FAANG, I'm not math genius, I don't specialize in theoretical CS. I want to collect requirements, look for solution (often with help of the internet) and provide good enough solution that solves problem at hand. Currently I work in DevOps. I can easily answer most questions from my team and help troubleshoot issues at different areas. Should I never work in IT, because on some interview, my mind goes blank and I struggle with question that can be easily answered by CS student?

</comment><comment><USER20> If only it was a myth. I always like(d) to do a simple programming exercise (no fancy data structures nor algorithms) that can easily be solved with a map / filter / reduce one-liner (or a for loop with an accumulator and a simple if else, that's fine too).

I get that people aren't good at coding in interviews (count me in!), but I have lost count of the number of applicants who can't get it done. The situation got so bad that they kindly asked me to stop asking such questions.

<comment><USER21> I've seen people panic in coding interviews

I used to have a set of unit tests and asked the candidate to make them pass and I thought this was a good system.

We have a senior dev that got something wrong early on, started getting more nervous, refused help as it was a simple problem, got more nervous and flaked out completely.

On the other hand we had people that were so unfamiliar with coding that this was a good test to weed them out.

</comment></comment><comment><USER22> I've worked with "developers that can't code".

One example was an external contractor who, according to their CV, had multiple years experience with programming in C.

The person was tasked to fix some errors in our code base that the static code analysis tool found, e.g. remove implicit type conversion, etc. They submitted their changes for review, claiming the analysis tool reports 0 issues now. Their code simply did not compile (and the analysis tool only works with a successful compilation)!

Even after explaining the issue, the developer asked if the task is completed now and if they could move on to the next one.

This wasn't the only time this developer proved that they "can't code".

The issue is that it is very easy to claim to have experience. There are a lot of self-taught programmers out there who learned coding at home by themselves. How do you differentiate those from people who "can't code", but claim to do?

I like the approach to let them implement a small(!) piece of code ahead of time and in the actual interview let them explain their code, their decisions and ask questions.

</comment><comment><USER23> Best technical interview I had (on the interviewee side) had me do a very simple coding exercise at home - it took maybe 4 to 6 hours max so could easily be done during lunch breaks at your current job.

Once you submitted the exercise and went to on-site interview you sat with another engineer and they asked you to make some basic changes there and then.

I liked this approach: you could take your time working at home to be sure you understand the assignment and have a chance to think through your implementation, then when it came to the actual on-site interview you were already familiar with the code you'd already written so thwre was less of a deer-in-headlights effect. Bonus is you had to "work" with someone too so they can see if you are a good culture fit/not a jerk as well

<comment><USER24> 4-6 hours is a ridiculous amount of time, and certainly not something many people coud fit in a few lunch breaks.

<comment><USER25> I'm sure they find time to watch 4-6 hours of TV a week. If they can't find the motivation to put in an hour before bed for a week to apply for a better job, then it seems like the process is weeding out the people it's trying to weed out.

</comment></comment></comment><comment><USER25> What's not a myth is the person applying for a job as a developer that can't code. There are tons of people that apply for jobs as programmers that can barely write two lines of working code. They can't read code, they get weirdly confused when writing a simple loop, just total incompetents in every respect.

I'm not saying you have to be able to pass a FAANG technical screen or you are crap, I'm just saying there are a lot of pretenders that still apply for and manage to get jobs writing software.

</comment><comment><USER26> This part of the interview is just another filter, it being applied at all tells you that maybe the role you applied for isn't so desperate to take _you_ over the hundreds of other applicants.

In other situations, the interview may be as simple as you _showing up_ with the right credentials. Those jobs might be scarce in silicon valley or not pay as well, but they exist across the country.

Furthermore, if the procedure is bullshit, does that not mean people who are otherwise geniuses are getting passed up? If so, then there's a pool of geniuses out there to hire at a bargain, giving you a competitive advantage, should you be able to actually manage them.

Conversely, there must be companies already exploiting this advantage, so if you're a genius failing on the whiteboard, perhaps you're applying to all the wrong companies.

</comment><comment><USER27> I did quit a lot of interviews for both development and devops position. I always was happy with the hires. I never asked to write code, but I ask them to explain higher level and some times lower level concepts. Than let them draw it on aboard, paper or just explain it depending on there preference. The reason is that if you have a good understanding of programing concepts you are probably able to code.

For instance explain the concept of MVC. I have interviewed candidates that only could explain where they would put certain code based on the framework they used but could not explain the design pattern nor why they would put the code where they said the would. these types of questions will give you some insight if someone is able to reason about code and explain why they prefer some style over the other.

</comment><comment><USER28> This is demonstrably not true.

I work for large corporations, mainly banks.

In this setting there are couple of ways for people with absolutely no ability to code to get through the cracks. For example, one way this happens is through an external contractor vendor.

These vendors are only interested in fulfilling contract requirements and typically will try to sneak developers with least ability they can get away with. As hiring process for vendor-supplied contractors is relaxed it is not at all difficult and will only depend on management of the team/project to prevent. Then, if it is no longer sustainable to keep particular developer on the project the vendor will not let go of the developer, it is more likely he/she will be rotated to another project.

I have worked for a project in Credit Suisse where the "principal developer" was a person rotated from another project where she served as "development manager" and had many years of "experience" as Java developer before that. This person had only barest ability to code, she struggled to write a simple loop. When asked to add Json serializer to an application she was confused and wrote a bunch of code that concatenated strings to produce something not exactly resembling Json. She did not even have knowledge to spot the problems and would blame tools and other team members for parsing errors produced from parsing the code. Surprisingly, these explanations were accepted by the management as she had more "experience" than other team members.

When I joined the team and spotted this situation I implored management to reevalute her as principal developer. The management had no development experience either and were taking her explanations on face value. They told me that I need to spend more time on the project to "learn the way they are doing things". Only after months of persuasion and showing countless examples of glaring incompetence I was able to succeed to resolve this problem.

I find it not difficult to imagine more possible settings where people with no competence in coding can flourish when they can initially build a strong position for themselves and can exploit incompetence of their managers and peers.

This is especially true for large corporations which have huge appetite to hire developers and huge budgets but also can have managers with no incentive to do their hiring very well.

In one project I worked for the manager kept overseas staff even though it was net negative productivity because "higher management said so".

</comment><comment><USER29> I recently interviewed a guy who decided to solve a problem recursively, and he was allowed to choose his language. He wrote a function body that _kind of_ pseudocoded what he was describing as his algorithm, but was far from complete. He wrote no function header. When he got to the part where he was supposed to recurse, he got completely stuck because he couldn't figure out how to make this block of code which wasn't even a function call itself.

This was a developer who can't code. You can't tell me this guy is a programmer who's just been off "not coding" for a few months.

</comment><comment><USER30> [Warning unempathetic post]

The author needs to take off the "happy town" rose-tinted sunglasses.

Like any profession, software development requires competence. Empathy and understanding are not a driving factor.

Being able to produce a maintainable solution for a business problem and being able to communicate that solution to others is what is important.

If what he says is true, then why aren't Google et al. hiring mediocre developers?

Take home point would be this; you are responsible for your skills. If you are in a role where you are not doing coding day to day, then you need to evaluate that role and ask yourself, is code still right for me?

<comment><USER31> You're missing the point. The article is commenting on how every company is using FAANG practices even when it doesn't apply to them.

Quote: "Because make no mistake, that technical interview - that one-shot coding test we do. That's it. If in the heat of the moment you make a mistake or don't pass, absolutely nothing else matters. FAANG (and sadly everyone else who has copied their half-assed hiring practices) will not hire you. Nothing overrides it: you could be a Nobel laureate and it wouldn't make one iota of difference."

> Being able to produce a maintainable solution for a business problem and > being able to communicate that solution to others is what is important. > > > If what he says is true, then why aren't Google et al. hiring mediocre > developers?

FAANG interview questions do not constitute a "maintainable solution for a business problem" for most businesses. Unlike the author, I'm more willing to give FAANG the benefit of the doubt in their hiring practices but even then I'd give a very generous guess that only something like 20% of FAANG employees actually use the same skills in the interview in their everyday work.

Sure, Google might be able to save money if an engineer can come up with a way to reverse-index a volume of Britannica with a memory constraint of 4MB but other businesses won't if only for the fact that they don't have the organizational infrastructure (QA pipeline, canary version rollout, etc.) to properly verify the correctness of such hackery nor sufficient business clout to cushion possible outages that come with the territory of building your own libraries. For most businesses, hiring an engineer experienced with Elasticsearch would provide them with the business value they are looking for. Unfortunately, said engineer who spent the last 4 months debugging their ES cluster's split brain problems did his whiteboard interview in a Python-like pseudocode and couldn't handle memory swapping properly. So it was an unanimous no.

> If you are in a role where you are not doing coding day to day, then you > need to evaluate that role and ask yourself, is code still right for me?

I used to be in this "code everyday" mentality but I realized that a better mindset is to "solve problems/puzzles everyday". Someone who works on yet- another-CRUD-app on a daily basis is definitely coding everyday but is this activity leading to growth? On the other end of the spectrum we have someone who solves ICPC World Finals problems in that 20 minutes they have waiting for breakfast to be served; honestly more impressive than the CRUD guy hands down but consider that:

\- beyond something linear like lists, stacks, queues, there is very little opportunity to build a data structure class on your own. I've found my data structures knowledge useful in _reasoning about_ (not implementing) data structures other people wrote: the DOM is a tree, DB tables are trees, regexes are graphs, indices are look-up tables and/or hashes.

\- I've had to work with DP in my day job once and only once so far (out of 8 years working) and that was a very special circumstance at that. And, guess what, DP didn't really save the business in that situation. Communicating and cooperating with the non-engineering departments did.

\- Not to mention that sometimes life is just yak-shaving, as the article points out. I've made PRs with nothing but logs only so that three days later I can PR a one-line change (four, thanks to the linter) that would fix a performance problem I tracked down for three weeks. Or soldier through Jenkins and Maven so you can finally migrate your outdated CI pipeline.

</comment></comment><comment><USER32> Several times in my career I have worked with people in software developer roles who could not write basic code. This was not a situation of mistaken title, they were in a position where they were expected to write code and could not. In several cases, they struggled to operate Visual Studio in spite of claiming to be a proficient .NET developer. Non-technical management could not tell the difference or nepotism was involved. In each case, it took months to weed them out while other developers had to shoulder their work.

I am now in a position where I lead an organization that hires hundreds of software engineers every year. We start our interview process with take at home coding tests as a first line screening. These tests are not hard (I am no longer a day to day developer, they are not hard even for me) and of course you can always go to Stack Overflow. ~20% of our candidates fail them routinely. I am glad we are not wasting time interviewing them.

Those are facts. There are no facts in the article. Until this industry deals with its fraud problem and certifies engineers like other fields, technical testing is here to stay.

<comment><USER33> > they struggled to operate Visual Studio in spite of claiming to be a > proficient .NET developer

Just out of curiosity: were these junior devs? Were they maybe more proficient in other language/IDE? Couldn't better mentoring/on-job training help - <USER2> than just to "weed them out"?

I might be naive but (and I have also been on leading positions) I still believe that if it seems that somebody "cannot code" it (most of the time) just means that somebody a bit more senior just have to invest a bit of time to coach them...

<comment><USER34> From a company's perspective, why spend time mentoring juniors and doing on the job training - both of which takes time away from your senior resources - instead of just hiring someone else who can hit the ground running? Yes I realize _someone_ has to train them, but you might as well let someone else do it and poach them once they have experience and they are looking for another job.

Inevitable as they gain experience at the other company, their market value will go up quicker than their HR policy will allow for raises (salary compression) and you can still offer them slightly below market rates and they will be glad to take it because they don't know their worth and it's a big jump for them. They probably don't know how to negotiate either.

I'm not making a value judgement. This is just the world we live in.

</comment></comment></comment><comment><USER21> > When a digital artist is in an interview, they're not asked to rapid sketch > a portrait with a rusty spoon.

I'm going to use this from now on to explain whiteboard interviews

<comment><USER25> They are asked to submit a portfolio of their own original work. Incompetent programmers don't have anything to show, and our industry makes it easy to come up with excuses about why, excuses that wouldn't play for a digital artist.

<comment><USER21> >They are asked to submit a portfolio of their own original work.

How do you assess that it's their own work?

> Incompetent programmers don't have anything to show, and our industry makes > it easy to come up with excuses about why, excuses that wouldn't play for a > digital artist.

Such as?

One thing to bear in mind is that ultimately there is no perfect way to hire, whether programmers, artists etc ..

</comment></comment></comment><comment><USER35> Sounds like this guy is trying to make mediocrity more acceptable. If a developer is not able to do FizzBuzz, something is deeply wrong.

</comment><comment><USER36> The conclusion that those rejected developers eventually ended up getting a job at another software company and hence they must be able to code properly is false IMHO. In my experience there are _a lot_ of dysfunctional software companies out there where people do get hired for software jobs but they all end up doing whitebox testing or clicking around in some Excel sheets.

</comment><comment><USER37> I believe the fizzbuzz failure thing is largely interview anxiety

</comment><comment><USER38> I'm so beat down by interviews lately. Hours of softball questions and days of teeth-grinding anxiety just to be hit with a vague rejection. Repeat for weeks as the rejections just keep stacking up. I'm honestly thankful for the whiteboard interviews just so I don't have to repeat my resume spiel for a tenth time or making up BS answers about conflicts with coworkers. You can see my resume, you can see my github, if you want to reject me because I don't know scala then just do it before the interviews please!

<comment><USER39> Could you put your github in your profile, So that we can see your github?</comment></comment>


Ask HN: Would you be interested in an embeddable, lightweight subset of Python? - <AUTHOR> There are several implementations of the Python programming language. These include the standard CPython, the fast PyPy, and the microcontroller-focused MicroPython. However, none of these implementations are particularly good for embedding into applications - instead, this space is dominated by Lua.
I have an upcoming project which would benefit from an embedded scripting language. I would personally rather use Python than Lua, and people writing scripts are more likely to be familiar with Python.
I also have an interest in language implementations (interpreters, garbage collectors etc.). I am therefore considering both scratching my own itch and indulging my interest - by writing a new, embeddable implementation of Python.
Like Lua, this implementation would be lightweight - so it could only support a subset of the Python language. I believe a Ruby implementation with similar goals already exists: https://github.com/mruby/mruby
However, I am aware that a new language implementation represents a large amount of work. If I am going to spend a significant amount of time on something like this, I would like the result to be useful to others as well as to myself.
Would you consider using a Python implementation designed along the lines of Lua? If so, are there any particular features which you would like it to have? <comment><USER2> I doubt I would, even though I use Python for other purposes.

Lua isn't the only one in this space: I personally use Tcl (or Jim Tcl) for this sort of work, and it (IMHO) excels in this area. What advantages would you see your Python implementation having over Tcl or Lua which were designed with this area in mind?

<comment><AUTHOR> _What advantages would you see your Python implementation having over Tcl or Lua which were designed with this area in mind?_

Python is a much more popular language than Tcl or Lua. Embedding Python opens your application to scripting by many more people, because the average person wanting to write a script is more likely to be familiar with it. Even those familiar with multiple languages may prefer to use Python - Tcl and Lua are often considered to be slightly "quirky" languages.

Also, although an embedded Python interpreter is never going to run C libraries like NumPy, there are many pure-Python libraries out there which would potentially be available for scripts to use.

<comment><USER3> > Embedding Python opens your application to scripting by many more people

I don't think this is realistic, anyone who wants to script an application will use what ever is exposed by the developers no matter how bad it is (ie visual basic for applications, and redis with lua).

</comment></comment></comment><comment><USER4> Yes, I'm not really a fan of Lua or Forth.

The main feature I would like to see is a commitment for long term support and maintenance. Boring feature, yes- but a technology like this will only gain traction when people know it will still be around in a year or 10...

What does lightweight actually mean?

<comment><AUTHOR> _The main feature I would like to see is a commitment for long term support and maintenance._

How would such a commitment be demonstrated? Which existing projects have done a good job convincing you of their longevity?

 _What does lightweight actually mean?_

I would like to make it possible to embed Python within your application without significantly increasing its size. For example, a standalone implementation of Lua is around 500KB, and of mruby is around 700KB. I would consider both of these to be "lightweight" \- they could be embedded just about anywhere.

CPython 3.5, however, is closer to 4MB in size - large enough that embedding it would significantly increase the size of smaller applications. PyPy is much larger still, at around 40MB.

On the other hand, I intend for my implementation to target desktop and mobile applications, so am not too concerned about RAM usage at runtime. This contrasts with MicroPython, which targets microcontrollers with limited memory and is therefore designed "to minimise RAM usage" [1].

[1] [http://dpgeorge.net/talks/pycon- au-2016-main.pdf](http://dpgeorge.net/talks/pycon-au-2016-main.pdf)

<comment><USER3> Consider the case of an 'interpreter per thread' in an application server. In lua this is implemented by creating a lua context per thread, which is your memory foot print. The size here limits the number of concurrent requests the server can handle.

So, in addition to my other comment, I think there's a major barrier to wide adoption to any of the 'mini' scripting language implementations, and that is a lot of people who use python would expect your implementation to act like the mainline. Here I'm alluding to the trouble pypy has gaining acceptance, because so many users expect all the c libraries to just work.

I also contemplated going this route, not to get the language I want, but to get the runtime instrumentation I want. The conclusion I came to is that it would almost be better to create a new language than to always be explaining "no, that functionality doesn't work because of these design decisions". The language may in fact be a lot like python, or a subset python as you say, but just don't call it that!

Edit; created a dupe somehow...

<comment><AUTHOR> _An 'interpreter per thread' [...] your memory foot print [...] limits the number of concurrent requests the server can handle_

So, in this situation, it would be useful for the interpreter to be lightweight in terms of RAM usage as well as code size. Presumably, though, it is still not necessary to be as frugal as MicroPython, which can get by with as little as 8KB of RAM and is commonly used with 128KB [1]?

 _A lot of people who use python would expect your implementation to act like the mainline. [...] it would almost be better to create a new language than to always be explaining "no, that functionality doesn't work" [...] just don't call it [Python]_

In order to work within tens of kilobytes of RAM, MicroPython does some things differently from CPython [2]. I wonder if its developers spend much time explaining the differences between the two implementations? Or do users expect differences in the language runtimes because of the obvious differences in the hardware on which they run?

On the other hand, I imagine MicroPython would have significantly fewer users if it were advertised as "a Python-like language" rather than as "an implementation of Python".

[1] [https://github.com/micropython/micropython/wiki/FAQ](https://github.com/micropython/micropython/wiki/FAQ)

[2] [https://github.com/micropython/micropython/wiki/Differences](https://github.com/micropython/micropython/wiki/Differences)

<comment><USER3> Gave this some thought, pretty sure your conjecture is correct about number of users, and you don't want to waste the effort (it will be large). My only suggestion is to weigh the fact that cpython is embeddable, if a bit large, and consider how that would cannabalize uptake of your effort. Whatever you decide, good luck, and have fun with it!</comment></comment></comment></comment></comment>


Have a great iPhone idea? Apply now to KPCB's iFund! - <AUTHOR> http://www.kpcb.com/initiatives/ifund/index.html

<comment><USER2> the best thing is that there is no deadline

<comment><USER3> _"... the best thing is that there is no deadline ..."_

That's the worst. No deadline, no incentive to produce a product.

<comment><AUTHOR> if you lack the discipline to produce products on schedule, i'm not sure what deadlines can do</comment></comment></comment>


Lisp-style Macros for Ruby - <AUTHOR> http://github.com/coatl/rubymacros

<comment><USER2> I wish matz didn't remove macros in the first place.

<comment><USER3> I'm not sure he removed it, I think he just didn't want macros from the start as I recall.

<comment><USER2> He has said he took lisp and removed macros. But it could have just been conceptually, I don't know. Does anyone?

<comment><AUTHOR> I've read that, but I still don't grasp it. Even though he calls Ruby "MatzLisp," it feels a lot more like "MatzSmalltalk" to me. Even without macros, the homoiconicity of Lisp makes eval-ing lists a completely different beast than eval-ing strings or blocks. And everything is an object, there are no functions. And there are magic syntactic constructs like while...

But I digress. I guess he did start with Lisp and remove macros :-)

<comment><USER4> the 'MatzLisp' thing was a joke. He never understood Lisp, Lisp was too complicated for him and wanted to do his own thing anyway.

<comment><USER5> I know the whole MatzLisp was a joke, but where are you getting the idea that he never grokked Lisp?

I'm pretty sure writing an interpreter is pretty complicated as well.

<comment><USER4> watch his keynote from some last Ruby conference. He described that he tried to learned Lisp and that he thinks it is too complicated. He is relatively clueless about it.

Interpreters exist in dozens. In the Lisp community it is a sport to write those. Scheme has more than a hundred implementations. Many of them are much more ambitious than Ruby.

The Ruby implementation technique is not very advanced - it is a very simple interpreter, hacked together. The Ruby language may be convenient to use for scripting, but from a language implementation standpoint it is far away from the state of the art. It shows. The Ruby implementation is about the slowest language implementation out there.

There are dozens of Lisp implementations that are much more advanced, include compilers, etc..

Sure, Ruby is simpler and its implementation is simpler - that's part of the reason of its success.</comment></comment></comment></comment></comment></comment></comment>


School disciplinary incident ends with teen's suicide:'They scared him to death' - <AUTHOR> http://www.chicagotribune.com/news/local/breaking/ct-naperville-north-suicide-20170522-story.html <comment><USER2> I think the school bullied him.

"The dean told Walgren that they believed Corey had left the building. She said they asked if there was any reason to believe he would hurt himself."

The school went overboard in trying to scare him, didn't care to make sure he was physically at school and safe. If the school had an appropriate first response to the situation, why would they ask if he would hurt himself? That sounds to me like they know they bullied him and were worried he actually wasn't safe.

</comment><comment><USER3> Ugh. As a parent this makes me want to throw up. The attitudes about sex in this country are beyond the pale.

</comment><comment><USER4> so he was both the perpetrator, and victim of child pornography. That sounds reasonable</comment>


Why does everyone hate GoDaddy? - <AUTHOR>

I have my own personal reasons to dislike them, but I'd be interested in knowing some of the key reasons for their almost universal hate in the tech world. <comment><USER2> They have a history of confiscating domains on behalf of authorities without a court order or other legal reason. They helped author SOPA, written into drafts of the bill as the registrar to receive confiscated domains, the same way they already are for ICE/DHS. Registering your domain through them is a completely unnecessary risk to one of your business's most valuable assets. No moral or ethical stance about their former CEO, their "hot girls" advertising, or their upsell tactics is necessary to pass them over.

</comment><comment><USER3> Because you can not get anything done without them trying to up-sell you services that you do NOT need, they use some questionable tactics. You have to Opt out of services you don't need, it goes page after page. Safe yourself the headache go with NameCheap.com or some other respectable company.

</comment><comment><USER4> There are several users who've posted horror stories of how they accidentally deleted their domain when trying to disable autorenew as a result of godaddy's misleading UI, who were then told that the domain name had already been auctioned off upon contacting godaddy about the mistake (keep in mind this was during a time frame for which they had already paid for the domain name, not after expiration)

</comment><comment><USER5> I have my own personal moral reasons for not wanting to support them financially, but I also find that from a technical standpoint their shared hosting and domain management is terrible. I find the control panels extremely confusing, and the few times I have had to host WordPress sites with them they were slow as molasses in January.

</comment><comment><USER6> They've always been a questionable company. Compassionless customer service (unless you're buying something), the fact they are always trying to up-sell you and the biggest of all: the fact they were massive supporters of SOPA.

</comment><comment><USER7> The one time I made the mistake of buying something from them -- a domain-name evaluation -- they treated me like a patsy. I feel like I lose brain cells every time I come anywhere near their site or their ads.

</comment><comment><USER8> They were a big supporter of the SOPA legislation, for one.

<comment><USER9> This is why I don't. If you don't support an open internet I don't support you. I'm also not crazy about the hunting elephants thing.

</comment></comment><comment><USER10> The evening I heard about the elephant killing, I moved all my domains from GoDaddy and swore them off forever. By the time SOPA happened, they were already dead to me.</comment>


Review my app: GroupDocs.com – Share, View, Sign, Compare and Convert Documents - <AUTHOR> http://groupdocs.com/

<comment><USER2> Why did you choose to copy <http://simple.com/> ?

I don't think the design really fits your service.

<comment><USER3> Hi Zach, Thanks for taking the time to comment, This is the first version of our website, which was put together under a very tight deadline. We're in the process of completely redesigning the look and feel of the site (and also the underlying apps), the new look should be live in the next 4-6 weeks. The new design is fully responsive and optimised for the majority of screen sizes, when we put it live I'll be sure to post up here to get some more feedback :) Cheers, Derek

</comment></comment><comment><USER4> The landing page for your app is visually appealing, but it focuses on features instead of value. The closest thing to a value statement that appears above the fold on your site is this: "Our easy to use collaboration platform has been built to allow you to work with your documents how you want and need them." But even this statement is quite vague.

If you can answer the following question in the first screen of your landing page, you'll make it easier for potential customers to become actual customers: "How will this app make my life better?"

I'd be happy to help you answer that question for your customers: <http://www.hnofficehours.com/profile/philipmorg/>

</comment><comment><USER5> Hey, real nice landing page. There's a bit of confusion in that your example doc is a tax form (which isn't typically a document you would collaborate on). Some users may be confused into thinking this is a rightsignature/echosign alternative.

Also - I'd probably add an about us page. Might just be me, but websites without an identity make me skeptical why the site was created. I see you guys have posted a blog post but adding something about yourselves can't hurt - especially when you're planning on dealing with people's sensitive info (again - going off the tax form example).

When did you launch this? There's a ton of functionality here - seems pretty well built out.

</comment><comment><USER6> I'm confused by the sign-up form. "Just in-case I ever forget my password, my email address is..."

yet an e-mail address is required for logging in. Seems like it's more than "just in-case...".

<comment><USER3> Hi There, Thanks for taking the time to comment, the new design has a more standard registration form as part of the overall design. Cheers, Derek

</comment></comment><comment><USER7> I don't have time to test the actual _app_ right now (it seems like a great service). So my only review could be about the front page, which is pretty, but the _features_ animation (images fading & sliding in) is not implemented well. the previous image fades very slowly and for no apparent reason, every time a new image slides in, my browser lags (it could be my browser though; Safari 5.2 beta).

Also, I think your sample documents are not good examples of what your app can do, and a couple of them (1st, 2nd) are kinda low resolution.

<comment><USER8> I agree... cut out the animation, its too distracting and just as you start to read one page it changes to the next, I would recommend a clean, concise tab that explains what features the app has and why I would want to start using it

<comment><USER3> Hi There, Thank you both for your comments, this was something that we also flagged to be removed in the new design. GroupDocs marketing website v2.0 definitely wont have any distracting auto-scrolling moments. Cheers, Derek

<comment><USER8> Cool, yeah I actually tried clicking on one of the screens without realizing it was just an image, would be cool to have a screen where you can start interacting with right away.. good luck with your endeavor

<comment><USER3> That's actually something that I was thinking about doing, allowing users to play with the interface without actually creating an account, similar to what stripe do on their dashboard

</comment></comment></comment></comment></comment><comment><USER9> Looks cool... technically, do you mind telling us how you handle parsing/processing the documents w/ your web viewer? Google docs, etc?

</comment><comment><USER10> Can I use this to sign any document? (ie. in the same way that Preview allows you to sign documents now in Lion).

<comment><USER3> Hi there, thanks for you comment, currently the signature app operates by providing a platform for handling the full e-signature process, in a similar fashion to echosign and rightsignature.

</comment></comment><comment><USER11> Why do i need to _specifically_ use groupdocs.com? Atleast 3 answers please.</comment>


Closed Club – browse shut-down startups, learn why they closed down - <AUTHOR> http://closedclub.co/

<comment><USER2> So much more enjoyable when it was called "fuckedcompany.com", if for no other reason the FC guys didn't make you log in to fully use the site, which is incredibly douchey and a guarantee I'll never take another look at the site.</comment>


South Korean Authorities Used Law to Fight the Coronavirus - <AUTHOR> https://www.lawfareblog.com/lessons-america-how-south-korean-authorities-used-law-fight-coronavirus <comment><USER2> With all the talks of us resorting to socialism to fight the virus, it appears many countries had to resort to fascism.</comment>


I Started a $10K/Month SEO Link Building Agency - <AUTHOR> https://www.starterstory.com/seo-link-building-agency <comment><USER2> Thanks for the link, I discovered a really cool website for business inspiration :)</comment>


Why China's Ghost Towns Matter for Our Economy - <AUTHOR> http://www.theatlantic.com/business/archive/2011/06/why-chinas-ghost-towns-matter-for-the-world-economy/240629

<comment><USER2> The symptom of empty residential developments was one of the first signs of the collapsing housing bubble in Ireland and in Spain.

[http://www.vanityfair.com/business/features/2011/03/michael-...](http://www.vanityfair.com/business/features/2011/03/michael- lewis-ireland-201103)

[http://www.nzherald.co.nz/markets/news/article.cfm?c_id=62&#...](http://www.nzherald.co.nz/markets/news/article.cfm?c_id=62&objectid=10630528)

[http://www.guardian.co.uk/commentisfree/cifamerica/2010/mar/...](http://www.guardian.co.uk/commentisfree/cifamerica/2010/mar/08/financial- crisis-subprimecrisis)

If China shows the same symptom, but on the scale of empty cities rather than just empty developments, the bursting of the bubble could be calamitous. Plenty of economically astute observers are concerned about this.

[http://www.economist.com/node/18836400?story_id=18836400&...](http://www.economist.com/node/18836400?story_id=18836400&fsrc=rss)

There are already signs of new unrest in China

[http://www.ft.com/cms/s/0/e0696f2c-98f9-11e0-acd2-00144feab4...](http://www.ft.com/cms/s/0/e0696f2c-98f9-11e0-acd2-00144feab49a.html?ftcamp=rss)

[http://www.google.com/hostednews/afp/article/ALeqM5ht3xQPsLO...](http://www.google.com/hostednews/afp/article/ALeqM5ht3xQPsLOisVLKUHlX_5sypL5pgg?docId=CNG.8acba1b206bbac57a7e425ac22157b65.531)

in some of the most prosperous regions, and many social scientists in China are worried by the example of Yugoslavia, a country that split apart when regional economic disparities were less than they now are in China.

</comment><comment><USER3> In my opinion, this article is worthless. Does it mention how much cities or houses don't succeed to get sold? No. Does it mention the percentage? No. Actually, it gives no numbers.

In any country of the world, you'll find cities, houses, building that are not acquired, for a reason or another. China has got more than 1 bn inhabitant, it's not unusual to find whole cities that are not alive yet. But this doesn't mean that there is a crisis or a problem; even a tiny one. A crisis when all the economy is heading toward that direction, and only numbers can prove that.

<comment><USER4> That was my reaction too. Bit of a fluff piece. Here's an interesting link with some opinions from a commodities investor regarding China, and whether the ghost cities are a significant problem or not:

[http://www.moneymorning.com.au/20110616/why-im-flying-the- fl...](http://www.moneymorning.com.au/20110616/why-im-flying-the-flag-for- china.html)

He points out that China is urbanizing like mad (1 per cent a year) on top of 0.5 per cent population growth. At those rates, 50 million empty houses doesn't look so big. Whether there are other factors that prevent people taking up those apartments isn't clear though. Also I guess it depends on the financial situation of the developers. If there is a lot of leverage on those assets that are sitting idle and not being sold or generating income that must be hurting someone. Or perhaps the state owns them directly or indirectly, so ROI doesn't matter so much in the short term? I don't know.

<comment><USER5> Retail apartment buyers in China only borrow half the capital from the banks, but the developers who build them borrow all of the money from the bank, interest-free, based on their "guanxi" relationships with bankers. So instead of reducing prices on unsold apartments, popping a bubble, they and the banks collude to just let the empty apartment buildings sit there empty for years, until they sell. The property bubble might not burst for a long time.

Of course there's also social pressure on young unmarried males to buy apartments, because the girls won't marry them if they don't. I predict the banks will slowly lower the capital requirements, down to 30%, then 20%, then 5%, eventually to 0%. After that will come a Chinese version of CDO's, then, perhaps decades later, the bubble will burst.

<comment><USER4> Very interesting, thanks!

</comment></comment></comment></comment><comment><USER6> I've been thinking about these empty cities, and it strikes me as an indication that the planners of the Chinese economy are expecting continued increase in the value of commodities relative to other capital. If they expect to need more urban housing and infrastructure in the future and also expect the price of commodities (and also labor for construction, perhaps) to increase significantly, it makes sense to build them now. Since China already keeps a lot of capital in the form of US treasuries, it makes sense that they would want to diversify their investments by also building up a surplus of physical capital such as housing and other infrastructure.

<comment><USER7> I thought part of why US housing speculators are so screwed is that each unoccupied and unmaintained building they own is rapidly deteriorating from mold and infestation and vandalism and shoddy boom-year construction quality without repairs. Could anyone build an entire ghost town that would last until it's needed, at a reasonable cost?

<comment><USER6> I was assuming the cities would become occupied within a few years, not left empty for a decade or more. The shift from rural to urban has been happening very fast in China. I think China is expecting almost 100 million additional city dwellers within the next five years.

<comment><USER8> And yet one of the images was captioned "Dantu has been mostly empty for over a decade"

<comment><USER6> I admit I know approximately nothing about how rapidly infrastructure deteriorates, detailed demographic trends in China, or the decision making process that allocates these resources. It still seems to me that there must be some rational justification for the excess construction, even if it is a misconceived idea. Someone in the system thinks the use of resources in building these cities has a purpose, and since the purpose does not seem to be immediate use, the idea of an investment or hedge is the explanation that makes sense to me. It's just an attempt to understand why these cities exist. Is there a simple explanation I don't know about?

<comment><USER9> The "allocation of resources" is driven by builders, investors, and home buyers, not "planners". The housing flats were built because someone thought they could sell them.

The story I've heard is that builders are selling the flats mostly to small real estate investors who are hoping to flip them or rent them out without necessarily understanding the market or the prevailing rental vancancy rate (which in any sane rental market will never get above about 6% or 7%). Think of your aunt and uncle who buy a condo for rental income and as a retirement property.

None of this is a problem until lenders start handing out free money and foolish mortgages. Or perhaps investors are choosing the least-worst investment - real estate in a flooded market might still be seen as safer than any other options that small investors in China would have.

<comment><USER10> Most of those units you see have been sold and are being sat on by speculators expecting them to go up in value since real estate is still appreciating like mad. Sitting in front of the news here in Shanghai this morning it posted a message that in 67 out of 70 cities home prices went up in May. That's even after government curbs and more restrictions being put in place on who can buy property, especially in the cities.

Most educated folks I've talked with here acknowledge they're sitting in the middle of a property bubble. They assume that the large down payment options will protect the banks and just hope that they got in early enough to protect their initial investment.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> China should open their doors to Hollywood production companies. These places look perfect for zombie apocalypse movies.

</comment><comment><USER12> I have a distant relative who is a developer in southern china and told me that he has been so busy he has no time for himself; He bids on land sold by the government, hire people to build an apartment on the land and the apartment gets sold out before it even finishes building! So, he then has to keep moving on to building new apartments.

Those ghost towns will keep springing up if there is nowhere for investors to put their money. Where else can they put it? There is basically negative interest rate with inflation being so high. If you were given a million yuan you wouldn't know what to do with it except to a. spend it or b. buy a house or stocks with it.

</comment><comment><USER13> _Seven months ago, analysts were predicting 2011 would be the Year of America._

That would be news to me. Which analysts were predicting that?

</comment><comment><AUTHOR> A documentary on the ghost cities/malls - <http://www.youtube.com/watch?v=rPILhiTJv7E></comment>


Ask HN: [HELP] How to get my domain ban removed from HN - <AUTHOR>

Somehow my blog got into blacklist of Hacker News, when I post something it usually tells me I am spamming but when it does not, my posts do not appear on Newest submissions page to other people.
PG replied my mails once asking what is my domain name but nothing happened after that. I remailed to pg a few more times but he didn't respond back. Maybe you guys can provide another point of contact?
HN was like the only source for my readers, without publishing is not fun anymore. :( Thanks. <comment><USER2> I'm sure if you thought a bit about the problem, you could easily figure out a few ways that you could modify the URL and still sneak it past the the ban. That's what I would have done.

<comment><AUTHOR> Yes probably I am gonna set up a proxy to make http 301 or javascript redirection, an ugly hack but HN deserves.

</comment></comment><comment><USER3> 1\. Get a new domain 2\. Don't spam

<comment><AUTHOR> I did not spam. You didn't read the text at all, did you?

</comment></comment><comment><USER4> What is your domain?

<comment><AUTHOR> Hi John, whatever I post from <http://ahmetalpbalkan.com/blog> gets rejected. I am not sure it is bare domain name ban or URI wildcard ban.

Error I get: Stop spamming us. You're wasting your time.

<comment><USER5> So you were extremely frequently placing posts from your personal blog on HN, and ignored it while it warned you you were getting spammy.

Then you reached out directly to Paul Graham, and he eventually stopped responding.

Now you're asking the public?

Sounds like you had a lot of warnings, bro. I mean, I hope this gets fixed for you, but, you _had_ to know this was coming, because you're telling us about all the red flags you got.

<comment><AUTHOR> Assume you are John Gruber of daringfireball.net, wouldn't you be allowed to publish good posts you have written? What kind of throttling is that? I was not posting most of the blogs posts essays I have written, I was only posting essay-ish and hacker culture-related entries.

There you go, JGC is posting his own entries <http://news.ycombinator.com/item?id=4521682>

I didn't know this was coming and I asked for a "contact" that I would use to reach out and solve the problem. I didn't ask the public to remove ban on my website. Read the description first please.</comment></comment></comment></comment>


A Million Random Digits with 100,000 Normal Deviates (The RAND Corporation) - <AUTHOR> http://www.amazon.com/Million-Random-Digits-Normal-Deviates/dp/0833030477#customerReviews

<comment><USER2> The reviews are great.</comment>


Ask YC: recommended code reading? - <AUTHOR>

what good code is out there that we should read to make ourselves better programmers?<p>(inspired by 2 recent post: "It's Harder to Read Code than to Write It" and "Alan Kay's list of recommended reading") <comment><USER2> For javascript, "View Source" is your friend. Find a page you like and go at it. Even if you only pick up one idea, it's worth it.</comment>