Ask HN: Feedback on my landing page? - http://gini.io - <AUTHOR> Gini - http://gini.io
Hi, I'm building a customer admin dashboard, which combines data from your database, spreadsheets and third-party web apps (Stripe, Mailchimp, Xero, etc.) to show you unified profiles for each customer.
The differentiating factor compared to other dashboard products is that it's individual customer level info, not aggregate metrics.
This is the very first version of my landing page and I would love your feedback and comments on it:
http://gini.io
Thanks! <comment><USER2> Too basic and bare. You have a neat little mascot in the top left. Maybe use a faded version of that blown up as the background image (like off to the left or something). The layout needs to be more consistent too with even spacing between text and point of actions.

I'd probably go with a double column layout with your points placed beside each other rather then just a ream of text.

Best of luck

<comment><AUTHOR> Thanks for your suggestions. I've updated the homepage with a new design now - [http://gini.io](http://gini.io)

<comment><USER2> A huge improvement! Good job!

</comment></comment></comment><comment><USER3> You can get a professional admin template from ThemeForest for few bucks (usually $20 for admin templates).

[http://themeforest.net/category/site-templates/admin- templat...](http://themeforest.net/category/site-templates/admin- templates?ref=Errayes)

(note: I put my refferal in the url)

<comment><AUTHOR> Hey, thanks. I already had a theme, just hadn't got around to using it. But I've updated the homepage now - [http://gini.io](http://gini.io)

</comment></comment><comment><USER4> My _very first_ impression was that the page hadn't completed loading... I sat there for a few moments expecting some background images, or icons, or something else to flow in.

That's probably just my personal bias, but I guess I'm saying that it feels incomplete to me.

<comment><AUTHOR> Thanks Malcolm. A few people have mentioned it now. I will update the design to make it look a bit more respectable :)

</comment></comment><comment><USER5> Unfortunately, on first glance, it looks like one of those spam pages used to sell pills — at least, IMO. (Sorry, I just think it might be helpful if you get my honest first impression.)

Suggestions:

* wider

* less text

* more pictures

* more consistent layout/typography: multiple sections, each with a header and explanatory text

<comment><AUTHOR> Thanks, will try to address those things.

Is there any specific element that makes it look spammy to you?

<comment><USER5> Yes, I think it's the narrow width and especially the inconsistent layout. You have a header, then a button, then a bold sentence, then a paragraph, then a box with bold text, then a header, then a paragraph with an image stuck in the middle... it's all over the place. I recommend going for a small number of simple header+paragraph sections.

<comment><AUTHOR> Ok, now I see what you mean. I have a clean new design which looks very professional. Just need to fix a few things and I'll put it up shortly.

</comment></comment></comment></comment><comment><USER6> Is there any demo or 30 days trial period? This landing page doesn't explain anything. In my opinion just twitter bootstrap and one paragraph of text definitely is not enough!

<comment><AUTHOR> Yeah I should add a demo. Thanks for the idea!

</comment></comment><comment><USER7> The idea sounds good but the landing page is still very raw. The logo is cool, I would extend the use of the logo colors to the rest of the page.

<comment><AUTHOR> Thanks. I'm sorry about the crappy landing page. I'm going to put up my proper design tonight. I was tired of procrastinating on it and just posted it on the spur of the moment.

</comment></comment><comment><USER8> Needs a screenshot and a lot more explanation of what it is, and who it is for, and what problem it solves exactly.

<comment><AUTHOR> Thanks Peter. I'm going to add screenshots and a video. Gini is mainly for SaaS businesses to have all information about every customer in one unified place, so that they don't have to look in 5 different places, when doing customer support or metrics analysis.

<comment><USER8> Cool, then say that as your headline.

<comment><USER8> New text is better. This part "See a list of all your customers and a profile for each of them with all their information on one page." just says the same as the header, instead say what the benefit is: "Make it easier to give customer support etc. etc."

Plus needs a screenshot above the fold.

Your demo link is broken. Your learn more link doesn't really tell me much [http://getgini.com/#features](http://getgini.com/#features)

</comment></comment></comment></comment><comment><USER9> Tiny note, I see a typo: 'dasboard' !== 'dashboard'

<comment><AUTHOR> Thanks, fixed.

</comment></comment><comment><USER10> The stuff under the button seems slightly off-center to the right.

<comment><AUTHOR> Thanks, will fix!

</comment></comment><comment><AUTHOR> Based on the awesome feedback I got yesterday, I've put up a brand new design. More comments welcome! - [http://gini.io](http://gini.io)

</comment><comment><AUTHOR> Clickable link - [http://gini.io](http://gini.io)</comment>


Fast deserialization in Python - <AUTHOR> http://blog.metaoptimize.com/2009/03/22/fast-deserialization-in-python/

<comment><USER2> I'm the author of jsonlib, and I registered specifically to post this message. Please, please, _please_ do not use cjson!

First, it is unmaintained. The latest version available was posted on August 24, 2007. When you encounter one of its myriad bugs, you'll either have to patch it yourself or pick another JSON library. Just skip the intermediate step and use another library to begin with.

Second, it is _buggy_. In some cases, parsing text it just generated will return a different value from what you passed in! It's almost entirely ignorant of Unicode, and what little it tries to parse it gets wrong.

Third, it's exceedingly non-compliant. The text it parses and generates bears only a passing resemblance to JSON. There are varying degrees of conformance to the spec between libraries, based on personal preference of the authors -- I prefer strict conformance, others less strict -- but cjson is _so_ different as to be simply unusable.

Yes, it's fast. I know. I wrote jsonlib partly because I was unsatisfied with simplejson's performance, and one goal (never truly achieved) was always to surpass cjson. However, speed isn't everything. As the saying goes, "if I want my math performed fast and wrong I'll ask my cat".

In my opinion, the _only_ Python JSON libraries worth considering are:

* simplejson -- it's in the standard library, and should therefore be considered first and most thoroughly.

* jsonlib -- it's fast, well-tested, and standards-compliant.

* demjson -- has several options for reliable parsing of invalid input.

Last time I checked, jsonlib and simplejson's C extensions are neck-and-neck performance-wise. In some quick, unscientific tests, jsonlib reads faster and simplejson writes faster. However, simplejson's extensions are only used for certain subsets of input -- if you want to use an uncommon feature, performance will degrade. jsonlib has an implementation in pure C, which avoids this problem at the cost of complexity.

Apologies for the brain-dump, but even if you skip right over it, please remember: don't use cjson.

</comment><comment><USER3> Really surprising that it beats cPickle with binary protocol. Good stuff, thanks.

<comment><AUTHOR> My understanding is that cPickle can be slow, because of introspection.</comment></comment>


Ask HN: which is the most influencing quote you ever came across? - <AUTHOR> "Your mind is software. Program it. Your body is a shell. Change it. Death is a disease. Cure it. Extinction is approaching. Fight it." source : http://blakemasters.com/ <comment><USER4> My favourite from Hacker News, not the most influencing but a fun one that I rather enjoy bringing up in the work place.

CFO asks "what if we spend our money training our staff and they leave?", CTO replies "what if we don't and they stay?" - <USER2>

<comment><AUTHOR> it is actually very interesting .

<comment><USER5> Yep, for me it implies that a company has a sweet spot about the value of its employees. If it's too high they leave, if it's too low they are useless.

</comment></comment></comment><comment><USER6> I keep these 3 printed out, near my desk:

\</comment><comment></comment><comment></comment><comment>---

Seek freedom and become captive of your desires. Seek discipline and find your liberty. \- The Coda (Dune Series)

\</comment><comment></comment><comment></comment><comment>---

1\. Learn From Everyone. 2\. Follow No One. 3\. Watch For Patterns. 4\. Work Like Hell. \- Scott McCloud (Comic Book Artist, TED 2005)

\</comment><comment></comment><comment></comment><comment>---

The old ways are dead. And you need people around you who concur. That means hanging out more with the creative people, the freaks, the real visionaries, than you're already doing. Thinking more about what their needs are, and responding accordingly. Avoid the dullards; avoid the folk who play it safe. They can't help you any more. Their stability model no longer offers that much stability. They are extinct, they are extinction. \- Hugh MacLeod - [http://changethis.com/manifesto/6.HowToBeCreative/pdf/6.HowT...](http://changethis.com/manifesto/6.HowToBeCreative/pdf/6.HowToBeCreative.pdf)

</comment><comment><USER7> It is not the critic who counts; not the man who points out how the strong man stumbles, or where the doer of deeds could have done them better. The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood; who strives valiantly; who errs, who comes short again and again, because there is no effort without error and shortcoming; but who does actually strive to do the deeds; who knows great enthusiasms, the great devotions; who spends himself in a worthy cause; who at the best knows in the end the triumph of high achievement, and who at the worst, if he fails, at least fails while daring greatly, so that his place shall never be with those cold and timid souls who neither know victory nor defeat.

<comment><USER8> Ah, Teddy. Definitely a favorite of mine as well.

</comment></comment><comment><USER9> "There are many people, particularly in sports who think that success and excellence is the same thing and they are not the same thing. Excellence is something that is lasting and dependable and largely within a person's control. In contrast, success is perishable and is often outside our control… If you strive for excellence, you will probably be successful eventually… people who put excellence in first place have the patience to end up with success… An additional burden for the victim of the success mentality is that he is threatened by the success of others and resents real excellence. In contrast, the person fascinated by quality is excited when he sees it in others." — Joe Paterno

</comment><comment><USER10> "Remembering that I'll be dead soon is the most important tool I've ever encountered to help me make the big choices in life. Because almost everything — all external expectations, all pride, all fear of embarrassment or failure - these things just fall away in the face of death, leaving only what is truly important. Remembering that you are going to die is the best way I know to avoid the trap of thinking you have something to lose. You are already naked. There is no reason not to follow your heart." - Steve Jobs

</comment><comment><USER4> "Nothing in the world is worth having or worth doing unless it means effort, pain, difficulty… I have never in my life envied a human being who led an easy life. I have envied a great many people who led difficult lives and led them well." - Theodore Roosevelt

</comment><comment><USER11> "Never doubt that a small group of thoughtful, committed citizens can change the world. Indeed, it is the only thing that ever has." --Margaret Mead

<http://en.m.wikiquote.org/wiki/Margaret_Mead>

<comment><USER12> _"The hope to change the world is a childish illusion. You have to change yourself."_

<https://en.wikipedia.org/wiki/Marie-Louise_Von_Franz>

</comment></comment><comment><USER13> "Nothing is more fatal to the progress of the human mind than to presume that our views of science are ultimate. That our triumphs are complete. That there are no mysteries in Nature and that there are no new worlds to conquer." Sir Humphry Davy

</comment><comment><USER14> "Tough and Competent" - Gene Kranz, Monday following Apollo 1 to other flight controllers.

I actually just wrote about this yesterday: <http://jimkeener.com/posts/tough- and-competent>

EDIT: Attribution

</comment><comment><USER15> If I have seen further it is by standing on the shoulders of giants. -- Isaac Newton

One should need to remind oneself of this every single day.

</comment><comment><USER16> Not a quote, but a poem:

You are the man who used to boast

That you'd achieve the uttermost,

Some day.

You merely wished to show,

To demonstrate how much you know

And prove the distance you can go.

Another year we've just passed through.

What new ideas came to you?

How many big things did you do?

Time left twelve fresh months in your care.

How many of them did you share

With opportunity and dare

Again where you so often missed?

We do not find you on the list of Makers Good.

Explain the fact!

Ah no, 'twas not the chance you lacked!

As usual – you failed to act!

</comment><comment><USER6> I've got a few that I like. These two are for those moments, when you look back at yourself and you feel like a complete ass.

"How often it is that the angry man rages denial of what his inner self is telling him."

"We tend to become like the worst in those we oppose."

</comment><comment> jarek-foksa I do not remember the authors and exact words, but here it goes:

1\. If you do something that is not moving you towards your goal then it's moving you away from your goal.

2\. What you DO NOT include in your product is as important as what you DO include.

</comment><comment><USER17> Resentment is like drinking poison and waiting for the other person to die.

</comment><comment><USER18> "Never Explain, Never Complain" \-- Cole Porter "If one would give me six lines written by the hand of the most honest man, I would find something in them to have him hanged." \-- Cardinal Richelieu

</comment><comment><USER12> _"Our situation on this earth seems strange. Every one of us appears here involuntarily and uninvited, for a short stay, without knowing why. For me it is enough to wonder at the secrets."_

\-- Albert Einstein

</comment><comment><USER19> "The proper thing for a parent to say is, 'I did badly at mathematics, but I had a very bad teacher. I wish I had had a good one.'" W. W. Sawyer, Vision in Elementary Mathematics (1964), page 5.

</comment><comment><USER20> "That which does not kill us makes us stronger." -Friedrich Nietzsche

</comment><comment><USER21> "There's no profit in Peace" - Oscar Harrison, drummer from Ocean Colour Scene

<http://www.youtube.com/watch?v=OesTFysRzbc>

<comment><AUTHOR> If we follow this thought, certainly everyone in this world is unhappy. People are bonded.

</comment></comment><comment><USER22> "Just complete what you have started." Wrote it here - <http://www.vusal.me/essays/just-complete/>

</comment><comment><USER23> "You'll always have plenty of time to spend it." My Dad, to me, when I was a teenager and contemplating whether to do overtime, get an extra Summer job.

<comment><USER23> Also:

You'll catch more flies with honey than with vinegar

and:

Always marry a woman with small hands.

</comment></comment><comment><USER24> "Fail we may, sail we must" - A random fisherman talking to a dj/producer called Andrew Weatherall. He made out a song with this title then.

</comment><comment><USER25> "Everything should be made as simple as possible, but not simpler." - Originated from a quote by Einstein.

</comment><comment><USER26> "If people never did silly things nothing intelligent would ever get done." - Ludwig Wittgenstein

</comment><comment><USER8> "Success is going from failure to failure without losing enthusiasm." - Winston Churchill

<comment><USER12> _"Success is a little like wrestling a gorilla. You don't quit when you're tired -- you quit when the gorilla is tired."_

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

</comment></comment><comment> miia-s "The pure and simple truth is rarely pure and never simple." \- Oscar Wilde

</comment><comment><USER27> "$X0,000 a week" - <USER3>

Words to live by.

</comment><comment><USER28> "If I don't do it, somebody else will" -- Dr John (Such a Night)

</comment><comment><USER29> "You are confined only by the wall you build yourself"

</comment><comment><USER30> A fish stinks from the head down (Obama White House )

</comment><comment><USER31> 1) Do it NOW 2) Feel the fear and do it anyway

</comment><comment> why-el Learn from the masters.

Martin Scorcese.

<comment><USER12> _"Study the masters, and not the pupils."_

<https://en.wikipedia.org/wiki/Neils_Abel></comment></comment>


Solving the Traveling Tesla Salesman Problem: Part 2 - <AUTHOR> http://mortada.net/the-traveling-tesla-salesman-part-2.html

<comment><AUTHOR> Part 1 discussed last week on HN: [https://news.ycombinator.com/item?id=9724990](https://news.ycombinator.com/item?id=9724990)

The comments here and on the blog raised a few interesting questions:

\- small route suboptimality problems, probably arising from integer input rounding for the Concorde solver

\- optimizing for Euclidean/Geodesic distance vs drivable route distance

Both seem to be addressed here and it's interesting to compare how the solution changes when prioritizing raw distance vs driving distance vs driving time.

I figured since it hit #2 on HN last week people would enjoy the follow-up.

</comment><comment><USER2> > Also interesting is the Marathon Supercharger in the Florida Keys: it > clearly makes a big difference in the route whether you can fly over water > or not :)

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

Which replaced: [https://en.wikipedia.org/wiki/Overseas_Railroad](https://en.wikipedia.org/wiki/Overseas_Railroad)</comment>


The Michelson Fourier Analyzer - <AUTHOR> http://www.leancrew.com/all-this/2015/01/the-michelson-fourier-analyzer/? <comment><USER2> The detail which was missing for me from Bill Hammack's wonderful videos was how one might change the phase angle of a Fourier component from zero. I believe it's possible, at least within a discrete gear-tooth (the smallest gear component having the coarsest phase adjustment), by manipulating the "pinion gear".

There's only so much one can stuff in a video; perhaps Bill has some mention of phase angles in his accompanying book.

</comment><comment><USER3> This was discussed on HN recently ([https://news.ycombinator.com/item?id=8612860](https://news.ycombinator.com/item?id=8612860)), but the current post seems different enough to be treated separately.</comment>


Ask HN: Do you have a mentor? How has s/he helped you? How did you find s/him? - <AUTHOR> <comment><USER2> 1\. Mentors should be people much older than you. There generational knowledge, much of which has been lost, is a value unmeasurable and you will not find on the internet or in almost any book still in print. This also means they are retired, their kids have gone to college, etc. and this they have more time.

2\. If you work for a big large company that's been around for a while, find one of the old-timers. Someone who started in 1990 or earlier. What are the fads they've seen? What trends have turned out to be pure intellectual charlantry? Who really turned out to be a success?

3\. If you don't, consider looking at something SCORE, a program with a good reputation specifically set up for mentors.

4\. Being a mentor and having a mentee is such a deeply rewarding experience you're almost doing them a favor, at the very least the exchange is 50-50. Keep this in mind.

</comment><comment><USER3> I have a mentor. We met through a talk he gave at my church. He's got a lot of altitude with me. Sometimes when I'm not sure I will talk to him and it helps me to pick the course of action and to be sure about it. He also pushes me and ask me questions that help me to confront areas of my life that I would normally shy away from. We make a good team and I'm happy I found him. I help others to pay it back.

He is older than me. In fact, he recently retired. This adds to the altitude.

Plus he is extremely knowledgeable and capable and an amazing public speaker. And really fun too! One of the things I've learned from him it's how to enjoy life more. Very valuable!

</comment><comment><USER4> Having a mentor seems like a nice idea. It would be awesome to discuss things I am learning with someone more knowledgeable, but to be honest, hiring a mentor seems like a bit too luxurious if you are on a tight budget.

</comment><comment><USER5> I had the same conversation with my co-founder.

We require a mentor who can help us maintain discipline & growth.</comment>


Hacking the English Language - <AUTHOR> http://blog.alexbrowne.info/hacking-the-english-language/

<comment><USER2> Read the first paragraph of 'spelt as it sounds' English and could not bare it any further.</comment>


Microsoft developing a touchscreen that lets you feel objects - <AUTHOR> http://venturebeat.com/2010/11/29/microsoft-developing-a-touchscreen-that-lets-you-feel-objects/

<comment><USER2> geee I wonder what everyone will be looking up....</comment>


Playing with Ember.js - <AUTHOR> http://ngauthier.com/2012/02/playing-with-ember.html <comment><USER2> Hey all,

Just wanted to mention I'm new to ember and probably got some stuff wrong. Please help out with constructive criticism in the post's comments.

Thanks! xoxo @ngauthier

<comment><USER3> Good stuff, I found it useful info whilst trying to decide between Backbone and Ember for a project.

<comment><USER4> what did you decide and why?

</comment></comment></comment><comment><USER5> I've been playing with ember also. It gets better. I'm trying to look to where ember will be vs. where it is now. The documentation leaves a lot to be desired. But they are working on it. Here is the todo gist that peter posted today on irc: <https://gist.github.com/1856842#comments>

</comment><comment><USER6> I've also jumped on the Ember bandwagon and can't recommend it highly enough. The babushka design-philosophy provides huge code-leverage. Take 500 lines written against another framework, chances are Ember can do it in 250.</comment>


U.S. to block cotton, tomato product imports from Xinjiang over forced labor - abc-xyz https://www.reuters.com/article/us-usa-trade-china-xinjiang/u-s-to-block-cotton-tomato-product-imports-from-chinas-xinjiang-over-forced-labor-cbp-idUSKBN25Z29N <comment><USER3> Does the US import that many tomato products from China? Most produce will be domestic, Mexican, or Chilean in the off season. Is there significantly tomato processing there?

Same with cotton. If this impacts clothes, that could be significant, but I don't think of China as a big textiles player, and the US still produces a lot of cotton, it just doesn't weave it or make clothes from it.

</comment><comment><USER4> "We have reasonable but not conclusive evidence that there is a risk of forced labor in supply chains related to cotton textiles and tomatoes coming out of Xinjiang," Smith said in an interview. "We will continue to work our investigations to fill in those gaps."

Xinjiang produces 20% of the world's cotton. The reality is, most farmers in Xinjiang are independent entities. They are the little guys. They grow cotton or any other produces on their land, and sell the produces to distributors. Many of these farmers are minority ethnicity, Uighur included, but there are others as well. These people lived in villages and in the country side for generations. Farming and the "primary" sector of the economy is how they make a living for generations. They are the low to middle income bracket of the society. They depend on agriculture to raise families, provide food on the table, raise children, and take care of the elderly in the family. A blanket ban of all cotton produced in this region will devastate the life of these people. Think about it from the perspective of these people. They grew cotton on their farm, and one day they are told "The U.S. stops buying your product because they want to protect you from forced labor", and because of that, you will be out of work. The farmer sits there and think "Wait, I am farming because I need money to feed my families". This ban sounds like its standing with the Uighur people, but in reality, it hurts them the most. Rights to live, rights to livelihood, rights to income and bringing food to the table is also human rights.

Target companies or organizations that actually committed forced labor and present concrete evidence. Maybe require a document of the name of the farmer, require disclosure and certifications of the practices of the producers. There are many ways this could be done to both protect legitimate producers, farmers, and rule out the bad actors. Or at least act like you are trying. A blanket ban blew the covers off of the PR statement this is about protecting human rights and stand with the people. Instead, the actual intent is to suppress the Chinese economy, and prevent the people living there from getting richer and achieve a better quality of life. Its sad that there are people in the world who don't really care about other people's quality of life. They can enjoy themselves a good paying job, nice cloths, good cars etc. While for other people, farming, doing hard, manual and labor intensive work on the farm is all they can ever dream of. And what little they have now will be "taken" away from them.

<comment><USER5> Given this account's pro-CCP comment history and _exclusively_ commenting on China-specific topics (seriously, nothing else) in its 8 month history, this comment should be taken with a Honda Civic-sized grain of salt.

<comment> tom-_- Is there substance in the comment that strikes you as misleading, an exaggeration or just untrue? If so, you should speak to that instead of not so subtly suggesting that the commenter is a Chinese misinformant, which is against HN guidelines and probably untrue.

</comment></comment></comment><comment><USER6> >"We have reasonable but not conclusive evidence that there is a risk of forced labor in supply chains related to cotton textiles and tomatoes coming out of Xinjiang," Smith said in an interview. "We will continue to work our investigations to fill in those gaps."

...

>In March, U.S. lawmakers proposed legislation that would effectively assume that all goods produced in Xinjiang are made with forced labor and would require certification that they are not.

These sanctions are an of extension XPCC / bingtuan sanctions from a few weeks ago. The organizations run XJ agriculture. Ultimately they're kind whatever, XJ tomatoes are <1B export and will be redirected for internal consumption. 40-50B of cotton will be washed through SEA producers. In terms of human rights, the reality is the ag workers particularly Uyghurs are going to suffer more after XPCC sanctions - primarily because region can't import superior US agricultural equipment. So they'll just end up working the people harder. Obviously US equipment producers will also lose out. Decouple is expensive, SMIC lose 4B, PSI loses 100B. The question is whether these moves are smart and within stated interests. Regardless, hope the bar for more significant escalation, particular military ones, is based on more conclusive findings, but you never know with election politics.

<comment><USER7> > the reality is the ag workers particularly Uyghurs are going to suffer more > after XPCC sanctions - primarily because region can't import superior US > agricultural equipment

Could you tell more about "superior agricultural equipment"? I have only heard about tractors with DRM, but I assume, that you meant something else.

<comment><USER6> From what I read, John Deere harvesters have lower error rates and better efficiency than domestic machines which makes significant difference in cotton production.

On DRM note, wonder if they're going to be forced to disable existing machines in the region. That would be interesting. I think half of the cotton production occurs in other provinces, so there's a loophole for more parts and supplies if hacktivists can overcome geo locks or other restrictions. Maybe John Deere will be incentivized to sell DRM free systems.

</comment></comment></comment><comment><USER8> Pretty weak response from the US considering China actually have huge forced labor camps.

How about even stronger sanctions?

I guess the US is now so dependent on China that they can't?

<comment><USER9> At least this US administration is standing up and doing something about it. Do you see the Germany chancellor sanctioning for Xinjiang concentration labor camps? UK prime minister? French president? Japanese prime minister?

Another reason this current administration's hands are tied because it's an election year. And wall street has already raised more money for democrats this past few months than republicans, because of the anti-China stance.

<comment><USER10> This administration messed up any opportunity to curtail China by dropping TPP.

Everything they've done since then is a fraction of the massive gift they gave the Chinese.

Heck, even the Chinese know what a joke this administration is which is why they basically captured Hong Kong, are trying to destroy Vietnam, extracting as much from Australia and India as they can in the past year while the going is good with the administration.

Also, comparing to Germany, a country with a population less than 20% of the US's which has basically no standing army by design, and hosts massive American bases within it is a complete non sequitur.

Why don't you compare to India, for example, which within weeks of a small border skirmish pretty much eliminated the entirety of Chinese digital companies from the country. Setting aside the wisdom of that decision, if you're just comparing the actions taken by administrations, India has done far more in far less time that has been far more effective than throwing random tantrums after Xi refused to bribe your President enough.

<comment><USER9> > This administration messed up any opportunity to curtail China

Companies are stepping over each other to move factories out of China. Just check chinalawblog. Any sane COO is de-risking right now. And what about Pompeo's speech? tariffs? banning wechat? supporting Taiwan? There's an endless list of this administration actions trying to curtail China.

> dropping TPP.

TPP was still an IF still when 2017 rolled around.

> Chinese know what a joke this administration is which is why they basically > captured Hong Kong, are trying to destroy Vietnam, extracting as much from > Australia and India

China is making stupid mistakes after mistakes. It managed to piss off almost every surrounding neighbors: South Korea, Japan, Taiwan, India, Australia, New Zealand, Vietnam, etc. It is basically at war with India right now. And US, Canada, UK, France, and some EU countries are in conflict with China as well. Just recently, even Germany, one of its last ally in Europe has condemned China publically for the czech republic situation

China is so knee deep in trouble, with internal top leadership conflict, coronavirus, job losses, suffering trade, flooding, food shortage, that it has no choice but to establish internal "order" with inner Mongolia, Xinjiang, Hong Kong, Tibet. But it is messing up there too.

> Also, comparing to Germany, a country with a population less than 20% of the > US

That's just dishonest hand waving. Everyone knows Germany leads the EU.

> Why don't you compare to India

China literally killed Indian soldiers - an act of war. There's no comparison here. And again, this is election year. This US administration cannot piss off every US companies by an absolute economic sanction on China.

<comment><USER11> > with internal top leadership conflict

Source? My understanding is Xi has pretty effectively consolidated power, and such internal struggles would be pretty opaque to everyone who doesn't have access to a well-connected CCP member.

It does look like they're expecting a period of increased isolation in the future though: [https://www.nytimes.com/2020/09/07/business/china-xi- economy...](https://www.nytimes.com/2020/09/07/business/china-xi-economy.html)

<comment><USER9> sinoinsider

</comment></comment></comment></comment></comment></comment><comment><USER12> The US condemns the use of forced labor to produce cotton.

<comment><USER13> What's your point? Slavery was abolished a long time ago in the US. Any pressure to stop enslavement or forced labor of humans should be celebrated.

<comment><USER14> > Slavery was abolished a long time ago in the US

No, it wasn't.

 _Chattel_ slavery was converted almost overnight into _penal_ slavery, with largely pretextual criminalization of the exact same group previously subject to chattel slavery, a long time ago in the United States.

<comment><USER13> You're right.

We can go buy slaves today in the US. /s

Yes, criminalization of legal acts to recapture the free labor is abhorrent. However, passing the 13th amendment and then fighting a civil war to enforce it at least creates an incredibly strong legal footing for defending people from forced labor.

Criminals paying back their debt to society is a different conversation in terms of the length and harshness of the penality.

<comment><USER14> > We can go buy slaves today in the US

No, slaves you can buy as an individual is what you have with _chattel_ slavery.

Slaves whose labor you can rent, or the product of whose labor you can buy, from the state who holds them as convicts (or that the state uses directly for it's own purposes under the same conditions) is what you have with _penal_ slavery.

> However, passing the 13th amendment and then fighting a civil war to enforce > it

That...didn't happen. In fact, the Republicans, despite being an ideologically abolitionist party, didn't pursue abolition as a policy, merely limiting (not even stopping) the geographic expansion of slavery, specifically to avoid splitting the union and provoking a civil war.

</comment></comment></comment></comment></comment><comment><USER15> I'm going to tell you a secret that maybe you don't understand - <AUTHOR> tomatoes will be exported to another country and then imported to the US minus the extra costs.

<comment><USER16> That extra cost might make tomato exporting to the US unprofitable.

> I'm going to tell you a secret

It is not a secret, and people working in US government agencies are not stupid, they know about this scheme and a thousand others.

<comment><USER17> It's just a funny way to say. You're killing the humor here.

<comment><USER18> Being patronising is hardly humorous.

</comment></comment></comment></comment><comment><USER19> What's the difference between forced labor in China, vs prisoner firefighter in California?

<comment><USER20> One involves imprisonment with no chance of release with potential torture, the other is allowed free after their jail term. I don't understand your comparison?

<comment><USER21> Exactly, in the US you are left at the mercy of cruel jailors who will torture you

[https://www.currentaffairs.org/2017/08/wait-do-people- actual...](https://www.currentaffairs.org/2017/08/wait-do-people-actually- know-just-how-evil-this-man-is)

You'll be forced to work and live in prisons overrun by the pandemic

[https://www.voanews.com/covid-19-pandemic/coronavirus- sweepi...](https://www.voanews.com/covid-19-pandemic/coronavirus-sweeping- through-massive-us-prison-population)

Even if you're released, you'll be jailed right away if the battery of your electronic monitor will ran out

[https://www.wired.com/story/opinion-ankle-monitors-are- anoth...](https://www.wired.com/story/opinion-ankle-monitors-are-another-kind- of-jail/)

Tt'll be though rebuilding your life, since employment opportunities are denied to ex-inmates, and thanks to probation fees, you'll be saddled with debts hard to pull away from.

[https://www.prisonpolicy.org/blog/2019/04/09/probation_incom...](https://www.prisonpolicy.org/blog/2019/04/09/probation_income)

Ultimately, if you fail to repay those fees, you'll be jailed again. The system works wonderfully... for the for-profit prisons

[https://www.sentencingproject.org/publications/capitalizing-...](https://www.sentencingproject.org/publications/capitalizing- on-mass-incarceration-u-s-growth-in-private-prisons/)

The US is a modern day dystopia, and I don't think that anyone seriously thinks that China's prison system is as bad as the US'

<comment><USER20> I do think it's worse. You certainly do not get a lawyer, and you sure as shit do not get the right to a fair trial in china.

<comment><USER21> You might want to educate yourself:

[https://www.chinalawtranslate.com/en/the-right-to-an- attorne...](https://www.chinalawtranslate.com/en/the-right-to-an-attorney-and- your-attorneys-rights/)

It's far from perfect, but better than in the US

<comment><USER20> > The criminal representation rate now is generally said to be somewhere > between 30-50%.

Last I checked, in the US, every person is entitled to representation. You want to argue that a country without a separate independent judiciary is capable of producing fairer outcomes for individuals without political collusion?

</comment></comment></comment></comment></comment></comment><comment><USER22> tbh, I'm not sure if I believe the allegations. Most of the most serious assertions have come from people connected to the CIA and the various Radio Free * newsources that come from the state department. Very few of these stories are independently verified and the numbers claimed are comical. Of 11M people, they claim 3M are in camps. A friend of mine's sister just visited XJ and said it was fine. You can't hide 3M people out of 11M. Given the anti- China stance of the ruling class right now, I am extremely skeptical of various scurrilous claims being bandied about. The US routinely lies about official enemies and has for decades (nay centuries), so their record should speak for itself. A recent example is the Iraq War and WMD. Another famous example is the Gulf of Tonkin incident.

For example, the US news reported that the UN had condemned the practices in XJ, but in fact it was one US person on one commission that didn't represent the UN as a whole. The US media has to do more than mere assertion. In any case, the current fascist US regime has little credibility on human rights issues given their open support for police murders and various policies of ripping children away from travelers and imprisoning them.

I'd like to say show me the evidence, but unfortunately when I try to read chinese government documents or political discourse I am befuddled by my inability to read chinese. :-/ Note how many US reporters on these stories cannot either.

<comment><USER23> I agree. I've not seen a single piece of indisputable evidence - <USER2> everything has been "take our word for it" or some indistinct satellite photo of a building.

Considering that an anti-China stance is part of Trump's strategy, and intelligence agencies have been caught lying countless times (e.g. Iraq's WMD) to further their agenda, there's no good reason to believe these accusations.

The Chinese are certainly a totalitarian regime, and it is certain that the people of Xinjiang are not in a good state, and there are certainly political prisoners there. But, as you mentioned, the numbers I've heard of 1-2 million prisoners (there are 10 million Uyghurs in total) in concentration camps and slave labor etc seem extremely exaggerated. Pretty much everyone in china has a phone with a camera, including Uyghurs. You'd think at least a few videos of indisputable evidence would be leaked. If you want to accuse a nation of a holocaust, you must have strong evidence.

And on a tangential note, the US has the world's largest prison population, at 22% of the world's prisoners, and a disproportionate number are black. The Chinese could also spin the situation and say that the Americans are running concentration camps for blacks and be on similar footing.

People mistake the frequency and breadth of repetition of a narrative as a measure of truth value, and the three letter agencies take advantage of this human bias, hence the downvotes for your salient comment. It's not easy to take a contrarian stance in these times.

<comment><USER24> Pretty sure there is no such thing as indisputable evidence. What evidence would suffice for you though?

<comment><USER25> Take a look at the "UN report" that was referenced in the article. It looks like they just interviewed 8 villagers in different villages to estimate the number of people being detained and extrapolated that to all of Xinjiang. Any evidence less handwavy than that would be a good start.

[https://www.nchrd.org/2018/08/china-massive-numbers-of- uyghu...](https://www.nchrd.org/2018/08/china-massive-numbers-of-uyghurs- other-ethnic-minorities-forced-into-re-education-programs/)

<comment><USER26> [https://www.youtube.com/watch?v=gGYoeJ5U7cQ](https://www.youtube.com/watch?v=gGYoeJ5U7cQ) how about drone video of hundreds of hundreds of 'detainees' being loaded onto trains.

how about so many interned that they have to build new camps. [https://www.buzzfeednews.com/article/meghara/china-new- inter...](https://www.buzzfeednews.com/article/meghara/china-new-internment- camps-xinjiang-uighurs-muslims)

<comment><USER23> These have both been widely circulated.

The video has a few problems: there's no indication of where in china this is; there's no indication that these are uighurs; there's no indication that these are any particular kind of prisoner (i.e. political vs criminal); and last this doesn't provide any evidence of more than a few dozen or hundred prisoners.

The BuzzFeed article has problems as well. They extrapolate too much from scant or vague evidence. The satellite photos and maps don't provide any solid evidence for their claims. Just pictures of buildings.

The HN crowd is skeptical of heavily documented scientific studies from renowned scientists and picks them with a fine toothed comb, yet accepts political narratives with patchy evidence put forth by parties with conflicts of interest with little skepticism. It's kind of absurd.

<comment><USER11> > The video has a few problems: there's no indication of where in china this > is;

Someone actually figured out the exact train station and approximate date of when the video was shot. He even showed his work, if you want to check it:

[https://observers.france24.com/en/20190925-drone-video- shows...](https://observers.france24.com/en/20190925-drone-video-shows-mass- displacement-prisoners-china-xinjiang-uyghur-region)

> there's no indication that these are uighurs; there's no indication that > these are any particular kind of prisoner (i.e. political vs criminal); and > last this doesn't provide any evidence of more than a few dozen or hundred > prisoners.

> The BuzzFeed article has problems as well. They extrapolate too much from > scant or vague evidence. The satellite photos and maps don't provide any > solid evidence for their claims. Just pictures of buildings.

This isn't skepticism, it's denialism. There are hundreds of original reports circulated in reputable journals and news outlets that assemble testimony, documents, and circumstantial evidence that paint a pretty indisputable picture there is some kind of ethnicity-based mass imprisonment program going on in Xinjiang. The attempts of the Chinese government to suppress fact- gathering in the region add even more credibility to picture. Sure, you're not going to find some single piece of evidence that proves it all (e.g. a single satellite image of a vast field of prisons capable of holding one million inmates with a sign legible from space that says "Uyghur forced re-education through labor prison complex, population 1,000,000. Don't tell the foreigners!" and has all the inmates standing outside being counted), but to expect something like that is unreasonable. Each article usually presents just one new piece of the larger puzzle, which has been assembled well enough that it's pretty clear what it's of.</comment></comment></comment></comment></comment></comment></comment>


How I learned to program - <AUTHOR> http://danluu.com/learning-to-program/ <comment><USER2> > The other thing I encountered for the first time at IBM was version control > (CVS, unfortunately). Looking back, I find it a bit surprising that not only > did I never use version control in any of my classes, but I'd never met any > other students who were using version control. My IBM internship was between > undergrad and grad school, so I managed to get a B.S. degree without ever > using or seeing anyone use version control.

I love this bit. This is extremely true even today. Most students at my university, and all of my university's classes, do not use or understand the benefits of a VCS systems. This is crazy on a different level. I hate to say this but it is in fact 2016 and it should not be a question that git or something should be used on every project no matter how small.

<comment><USER3> I disagree, except maybe in a class specifically focused on real-world software engineering. Teaching somebody to use git takes an afternoon, teaching somebody to understand programming and computation takes years.

<comment><USER2> Git is not a skill, it is a habit. Anyone in computer science should have developed this habit.

This is for many reasons. Version control is not only about controlling versions.

      - It's not about saving files, it's about understanding group work flows. Every text project should be in a git repo. If it's code or not it doesn't matter. You can see what things were written for, who wrote them, and even more.
      - It's a method to catch cheating. If someone submits one commit called "Working" or something and has no history of the code/project it's likely they are cheating.
      - It's decentralized backups and and offline workflow (for git)
      - It's a method to collect and aggregate work. Setup a gitlabs/gitbucket for the class and make every student keep their projects up there. The teacher has a centralized and nice looking place to find the code and it doesn't make the students zip up or require them to do anything. Their work is shared by nature.
      - It exposes you to what you are going to be using every day for the rest of your life as a CS major.

<comment><USER3> It's not a question of how useful VCS is. It's a question about what the role of universities is.

In the US/Canada college degrees are generally not directly training you for a career -- that's what internships are for. My position is that this is the right approach. I will have a lifetime to perfect my git skills, but I only had four years to learn about programming language semantics from a recognized expert in the field.

<comment><USER4> Hopefully your CS degree made you write code and submit code for evaluation. Asking you to write code and not teaching you how to use version control is wasting your time fixing problems with your code that are easily solved when you have version control. Being taught how to use version control leaves you more time to learn about programming language semantics.

Also, a university that gives CS degrees to people who cannot actually work as programmers is doing a disservice to their graduates, even if the university intends for everyone to continue with post graduate studies and go into academia. At the very least, your doctoral advisor will need you to write some code for them, and you better be able to do it.

</comment></comment></comment></comment></comment><comment><USER5> "I was hesitant about taking the job because the interview was the easiest interview I had at any company, which made me wonder if they had a low hiring bar, and therefore relatively weak engineers. It turns out that, on average, that's the best group of people I've ever worked with."

Maybe / quite probably they weren't filtering out ton of false negatives.

<comment><USER6> The best people I've ever hired all looked the same:

1\. Had a Github with actual code in it.

2\. The code was clean, lightly commented, and brief without being terse; regardless of the paradigm.

3\. They breezed through the interview because the questions tested their ability to actually build the thing they said they could build. No silly games. A light question that touches on data structures and O time, but nothing you'd need to crack open your old college books over.

I feel bad for people starting out, but senior / intermediate devs are just such a better deal. You pay double and you get about four or five times the work.

<comment><USER7> In my experience, this holds true as well. I would say though, that you have to keep an open mind when interviewing people just starting out or at that junior level cause there are some really talented, yet raw, developers that you can miss out on otherwise. This is of course assuming you have the bandwidth to help mentor these developers and/or you are okay with less output for the first 6-9 months while they begin to grok what is needed for the job.

Overall, I've been bummed lately because I've interviewed CS majors and they have no/poor personal website, basic CS code in Github, and overall don't seem to have that passion that other non CS majors do have. I don't know if it's college that isn't preparing them well enough, but having a personal project or two in Github alongside a decent personal website goes a long way to at least indicate you actually enjoy programming.

<comment><USER8> Or perhaps it's because not everyone wants to be a web dev.

Perhaps all of their code at previous gigs has been proprietary and they don't relish the prospect of doing a full days work and then coming home to spend their evenings maintaining a GitHub profile in case a future employer has it as an unspoken requirement for the position.

<comment><USER9> Indeed. We can't have portfolios of our actual work, because it's proprietary. So we end up with a pseudo-requirement for sample projects to be done on our own time. Which have to be kept (reasonably) continuously updated. Fortunately this has only cost me one interview so far and not made it genuinely hard to find a job while having a job.

I suppose I could try citing my 22k karma on electronics.stackexchange, but I'm not sure that has the same level of name recognition.

<comment><USER7> I would mention it. If anything it at least shows a sense of community and as an interviewer I would make the assumption that you enjoy answering questions so would likely make a helpful, pleasant teammate. I'd even ask a few questions around your approach to answering questions etc.

<comment><USER10> How do you mention it to your interviewer if you get rejected pre-interview for not having a portfolio?

<comment><USER11> You can include your membership in various technical communities in your CV/resume. People list ACM/IEEE memberships, participation in mentorship programs, etc. No reason not to include online communities (short a desire for privacy, once you give out your handle it's one google search away to _everything_ else you have online).

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> Amazing little essay. I love his intellectual honesty, and his lucid view of his career path. While he claims to have no takeway, I think one obvious one is that, barring disaster, you'll eventually end up where you belong no matter what path you take. You'll leave the bad jobs (maybe later than you should) and you'll get positive reinforcement for things you do well. Every time I've had "career envy", I've tried the alternate path only to discover why I'm really where I currently belong. But I'm glad for those alternate paths, as they gave me that reinforcement I needed.

Crazy also how similar our path to learning programming was. Looking back, all those hours of fiddling with BASIC in high school, or with Pascal at school really didn't teach us all that much. Like him, my internships mostly taught me meta-lessons rather than actually valuable skills. Like him, in my education I followed the path of least resistance, or rather the path of "most options left to explore since I have no clue what I want to do", and I feel I'm lucky I ended up where I did. Like him, I fell in love with math way late when I finally saw it wasn't about rote application of arbitrary techniques (abstract algebra is what opened my eyes) like we're taught in school.

This sentence, buried deep in the essay, is brilliant: "a common failure mode is that you're given work that's a bad fit, and then maybe you don't do a great job because the work is a bad fit. If you ask for something that's a better fit, that's refused (why should you be rewarded with doing something you want when you're not doing good work, instead you should be punished by having to do more of this thing you don't like), which causes a spiral that ends in the person leaving or getting fired."

</comment><comment><USER13> This is a wonderful essay that 1) shows its messy work, 2) outlines the deep reward of metacognition.

I have a very smart friend who is actually a great writer. But if she doesn't nail the first draft, she gives up saying, "I suck at writing". Writing is rewriting. And similarly, good learning is having grasp at the engine at your disposal through metacognition.

</comment><comment><USER14> This was a lot more random than I expected. Very surprised to learn that Dan Luu nearly failed high school, for instance.

<comment><USER15> Lots of very smart folks do - especially if they can't get courses that match their ability. You end up spending lots of time chasing other things.

</comment></comment><comment><USER16> > In retrospect, I should have taken the intro classes, but I didn't, which > left me with huge holes in my knowledge that I didn't really fill in for > nearly a decade

After joining industry immediately after high school, I dismissed the value of formal education and selected a major with little consideration (I was unaware that CS even existed). I've recently joined a team where all my colleagues, many who received their degrees from prestigious institutions, majored in C.S. and imposter syndrome haunts me. Many though, are surprised,

Although I have my B.S. in information systems, I'm debating whether to return to academia -- obtain a second B.S. in CS or a stretch for a masters in CS (self study the fundamentals, which I'm currently doing, prior to starting the program) -- or continue the self study route to fill the missing gaps in my knowledge.

<comment><USER17> _and imposter syndrome haunts me_

You'll get over it. However, you will forever be cursed with having to keep your wiz-kid credentials up to date as you will never have that degree to help wedge the door open for your next opportunity. Ultimately, if programming is what you do (yes, I know CS is not just about coding) it doesn't really matter, because the rubber meets the road at some point, and either you can code, or you can't.

<comment><USER16> Keeping up with credentials, regardless of having a CS degree, is a life long commitment for everyone in the field - right?

<comment><USER17> Absolutely, but when you enter that room for an interview, there may be a bias already built up against you. Somehow you made it through the door, but now you have to overcome the skeptics, maybe a team member who refuses to believe anyone without a formal degree could possibly have the proper foundation for "real work". You can't be just good, you have to be outstanding. Even if you shine in the interview, you may still have to make it through an upper manager who did not bother to interview you. Twice I've been rejected because the upper management didn't want anything to do with me, even though the technical team was excited. I was never told exactly why, but I suspected the lack of formal education (what else?). In one case I was offered the position about a month later but already had another job.

</comment></comment></comment></comment><comment><USER18> I'm also an EE starting my PhD doing research in hardware/software co-design and circuit design. I'm also heavily interested in CS in general, so I'm planning to take as many CS courses as possible.

One thing I'm trying to do is keep myself current when it comes to software development. I think it's good to have a backup skill that I can fall back on in case my PhD doesn't work out.

It's good to know that someone like Dan Luu went through ups and downs before getting to where he is now.

</comment><comment><USER19> Very interesting read. Especially for someone like me who is on the verge of completing his undergraduate education. I have always feared that life might be too boring in the industry. This provides some fresh perspective. Also thank you for pointing out the downside of reading 50 Manning books. I wish wherever I end up working I manage to carve out time to continue reading and educating myself like you did.

</comment><comment><USER20> I was reading the "bad stuff" section and I stumbled upon what he said about the Joel Test:

 _The Joel Test is now considered to be obsolete because it awards points for things like "Do you have testers?" and "Do you fix bugs before writing new code?", which aren't considered best practices by most devs today._

Can anyone explain why having testers isn't considered a best practice by most devs today?

<comment><USER21> Not sure, but I believe that part of XP is having devs do more/all of their own testing and getting rid of the developer vs. tester roles (note that this doesn't necessarily mean getting rid of QA), and this aspect of XP is increasingly common.

I probably would be disinclined to hire a developer who wanted a different person to write/run their tests, unless it was for a very specialized role and said developer had exceptional talents.

<comment><USER22> > to hire a developer who wanted a different person to write/run their tests

That's not the role of the tester. The developer should be writing and running their own unit tests. The Tester should be running through user scenarios, use cases, and basically be pretending to be a user of the software to make sure that everything works and makes sense in a workflow (not just in their unit components)

</comment></comment></comment><comment><USER23> My programming story: I started with BASIC on an old pocket computer. I typed in games from a manual without really understanding how the code worked. In eighth grade, I programmed a bit in QBASIC in an informal computer class. Then, for years, I didn't program much except for a formula on my TI-82. I never learned the TI-82 programming language well enough to do anything more complex.

Towards the end of high school, I got Internet access and learned HTML to build a web page. I took AP Computer Science (in C++) in my senior year and scored 5 on the exam. I majored in computer science at a top math/science university that isn't as well-known for CS as some other schools. I turned down some of the higher ranked CS schools, which was probably a mistake, especially as I wasn't even that interested in the other sciences. I'm more into languages, and I was interested in CS because of its creative and entrepreneurial potential.

Fast forward to now: I started programming early and majored in CS, and I can write classes, objects, and functions, but I still don't really "get" programming. My algorithms course in college was all math and proofs that I didn't really understand. I've since gone through algorithm MOOCs and implemented some algorithms, but I still can't really apply them. My work involves some programming, but more of it is Linux administration. (I also don't really get how to deal with hardware because of my problems with anything physical.)

</comment><comment><USER24>
        > Tavish Armstrong has a great document where he describes
        > how and when he learned the programming skills he has. I
        > like this idea because I've found that the paths that
        > people take to get into programming are much more varied
        > than stereotypes give credit for, and I think it's useful
        > to see that there are many possible paths into programming.

Okay. Yes that's useful. Let's see what path you took...

        > Luckily, the internet was relatively young [...]

There ya go. Look no further!

Mine own story is a little different... The author had local peers, I did not. The author made no mention of an old hand-me-down c64 nor Tandy 1000's in his kindergarten classroom...

But, getting online in the mid-nineties? Check. That's huge.

TCP/IP was explained to me by some random gamer in a chatroom, long before I ever thought to "google" it.

(Speaking of paths... Lycos --> Altavista --> Still Altavista for a long time as I resisted the change to Google --> Google --> DDG)

</comment><comment><USER25> One way to learn to program is the urge to teach the machine some principle you might find nice to be realised by a machine. Some things are opposed to entropy, some things are there to create order (always with a net gain in entropy, but nonetheless). Therefore, the machines and us seem to be on the same side of nature. Even the whole ecosystem of the planet is a miraculous emergence of high level structure. So you learn to program, if you want to program some. Print that on the next calendar.

</comment><comment> barry-cotter RC = Recurse Centre

<comment><USER26> While we're clarifying, it's Recurse Center (insert American flag emoji)

</comment></comment><comment><USER27> TL;DR Naturally talented, hardworking individual downplays everything he has ever done and tries to chock it all up to chance. I found this all very abrasive.

<comment><USER28> Never underestimate the power of chance. The naturally talented, hardworking individuals who _don 't_ succeed tend to not write blog posts about it.

<comment><USER29> Also, don't forget: The non-talented, non-hardworking individuals who luck into succeeding tend to never shut up about how it was all about talent and hard work.

</comment></comment></comment><comment><USER30> > no one's going to stop you from spending time reading at work or spending > time learning

What? You've lived a truly blessed life, Dan Luu. I've observed the opposite, pretty consistently. I've been working as a programmer for 25 years and I've found, across nine separate employers (and lost-track-of-how-many different supervisors) that spending any appreciable time reading (even a book about Angular when you're supposed to be learning Angular) will become a management issue. Everywhere I've ever worked has expected learning to be on your own time. Don't believe me? Put "read three chapters of a book" on a status report and see how many levels of management show up at your desk to micromanage your time.

<comment><USER31> > Put "read three chapters of a book" on a status report and see how many > levels of management show up at your desk to micromanage your time.

Try something like "reviewed industry publications for new paradigms and optimization techniques."

<comment><USER30> Yep, that's pretty much how I spin it. But make no mistake, I have to "spin" the fact that I'm reading about programming while working as a programmer.

</comment></comment></comment><comment><USER32> To improve readability:

        document.body.style.maxWidth = "768px";
        document.body.style.margin = "auto";
        document.body.style.fontSize = "20px"

<comment><USER33> Or... you know, maybe don't browse stuff with a full-sized browser window? I don't get who is forcing people to make their surfing so uncomfortable.

<comment><USER32> I'm not prepared to resize my window as I switch between tabs.

I'm not really complaining, I just wanted to point out how little styling was needed to massively improve readability.

<comment><USER33> Understood, I upvoted your message. The different preferences between sites -- and tabs -- is the biggest nuisance for me too, but not too big a nuisance.

</comment></comment></comment></comment><comment> guard-of-terra > We tried BASIC, and could write some simple loops, use conditionals, and > print to the screen, but never figured out how to do anything fun or useful.

Luckily my BASIC books had most of their examples starting with SCREEN 1. Drawing images programmatically happened to be fun and useful, I learned the hard way by retyping examples and then somehow began modifying those.

My own bummer was Windows epoch. I could do VB but never otherwise grasp Windows programming because any program will have so many IDE-generated boilerplate that was totally meaningless to me and I could not work with that.

I could only resume when I learned proper WinAPI later as an University course, but then again I switched to Linux, which is a best IDE there is.

UPD: meaningLESS</comment>


How Evan McMullin Could Win Utah and the Presidency - <AUTHOR> http://fivethirtyeight.com/features/how-evan-mcmullin-could-win-utah-and-the-presidency/ <comment><USER2> This has been posted a couple of times before; see earlier discussion here: [https://news.ycombinator.com/item?id=12708344](https://news.ycombinator.com/item?id=12708344)

</comment><comment><USER3> Based on latest 538 model--

Electoral College deadlock no candidate gets 270 electoral votes: 0.6%

And that's only the first step in the process.

</comment><comment><USER4> Help me Obi Wan Kenobi -- you're my only hope.</comment>


Cache Attacks on CTR_DRBG - <AUTHOR> https://security.cohney.info/blackswans/ <comment><USER2> With all these side channel attacks, I am suspecting that there may be a SPS theorem.

Given shared CPU, performance, and security, you can at best get 2 out of the three.

</comment><comment><USER3> What systems use this PRNG? While Googling around I found it surprisingly hard to figure out what algorithm is used for random number generation on e.g. Linux getrandom or the Chrome implementation of the Web Crypto API. Am I looking at the wrong layer of the stack?

<comment><USER4> CTR_DRBG is basically the simplest reasonable CSPRNG, and a formalization/standardization of what other CSPRNGs do. As such, it's a good stationary "target" for research work. It's probably not a great idea to freak out about its presence in a design, since other designs will have similar flaws: if you have untrusted cotenant applications on the same hardware, side- channel attacks against your CSPRNG are going to be an issue.

In particular: these attacks all appear to rely on classic cache-timing attacks against software AES. The "vulnerability" in these systems, then, isn't so much the CSPRNG construction so much as the use of a faulty vulnerable software AES primitive. Even FIPS-mode OpenSSL uses a hardware AES, and so the paper has to target an older version.

<comment><USER5> As someone who has worked for a decade and a half with various asymmetric and symmetric ciphers and hashes in my field, I am embarrassed to admit that the inner-workings of a RNG/CSPRNG are still a bit cryptic to me.

Slightly off-topic: Would it be near-impossible to have a hardware-level RNG generator that spits out bits at a sufficient enough rate to avoid software- based RNG schemes? My thought is to have a very-very-vetted hardware RNG, and use that as an anchor to build off of.

<comment><USER4> You mean like RDRAND? They exist, but if they're built into COTS platforms, you have to trust then, and if they're not, you have to do extra work to assure the joinery and handle failure modes.

To break the attack in this paper, you don't even need a hardware RNG; you just need hardware AES, like most modern platforms have (and like most mainstream operating systems use by default).

<comment><USER5> Yeah like RDRAND, but not compromised :P.

Suddenly after I read what you typed about RDRAND it clicked to me - you must never fully trust the hardware. Even if you TRUST the HW RNG, what is the harm of combining it into a broader RNG (assuming you know what you are doing).

Thanks for your time.

<comment><USER6> seed the whole system with live bitstream of a video feed trained on a wall full of lava lamps

</comment></comment></comment></comment></comment></comment><comment><USER7> Complete aside, but "black swan" is a terribly bad metaphor. 5 minutes drive and I can see _hundreds_ of black swans, and not a single white one...

<comment><USER7> Edit: not sure why the downvotes - because factually incorrect opinion or off- topic?I don't live far from here: [https://www.christchurchdailyphoto.com/2011/09/29/black- swan...](https://www.christchurchdailyphoto.com/2011/09/29/black-swans-on-the- estuary/)

Edit 2: looked up the metaphor, it really fails when I'm only surrounded by black swans. There are occasional white swans too - I have always presumed swans were migratory like plenty of the water foul over here!</comment></comment>


Python 3.3 reintroduces explicit Unicode literals to ease porting - <AUTHOR> http://www.python.org/dev/peps/pep-0414/

<comment><AUTHOR> TL;DR: In Python 3.3, the string 'hello, world!' is synonymous with the string u'hello, world!' to more easily conform to the Python 2.X paradigm. It is not intended for use with new code. It is possible/expected that this feature will be deprecated and dropped in future releases of Python.

<comment><USER3> so we'll have to change our massive amount of python 3 code?

yeah okay sure

(j/k nobody uses python 3)

<comment><USER4> I know, don't feed the troll and all, but for the benefit of interested readers, here are two recent HN threads which largely discussed the current status of the migration:

<http://news.ycombinator.com/item?id=3696451>

<http://news.ycombinator.com/item?id=3666361>

TL;DR: The tone of such conversations has changed _a lot_ since last year, IMHO. Python 3 is seeing real use now, those who made the switch seem to often be happy they did, and many who haven't yet can at least see the light at the end of the tunnel now. Generally there's a lot more optimism to be found.

<comment><USER5> Not to mention that Python3 has some awesome features, especially the concurrent.futures module.

</comment></comment></comment></comment><comment><USER6> from __past__ import unicode_literals

</comment><comment><USER7> this is great news, but will it be backported?

i had to jump through hoops to support 2+3 in a single code base because of this (in case people don't understand u"abc" is a _syntax_ error in python 3.0-2, which makes writing portable code that uses unicode tricky, since that's what it a unicode literal looks like in python 2).

if it's not backported to 3.0-2 then we'll have the strange state of libraries that run on 2 and 3.3, but not inbetween.

<comment><AUTHOR> Won't be backported (which would be sort of weird in any case... if you were going to actually go to the trouble of upgrading your copy of 3.2 by a minor version, you might as well just upgrade to 3.3), but they do address this in the PEP:

      There are many existing Python communities that are prepared to put
      up with the constraints imposed by the existing suite of porting
      tools, or to update their Python 2 code bases sufficiently that the
      problems are minimised.

      This PEP is not for those communities. Instead, it is designed
      specifically to help people that don't want to put up with those
      difficulties.

      However, since the proposal is for a comparatively small tweak to
      the language syntax with no semantic changes, it is feasible to
      support it as a third party import hook. While such an import hook
      imposes some import time overhead, and requires additional steps
      from each application that needs it to get the hook in place, it
      allows applications that target Python 3.2 to use libraries and
      frameworks that would otherwise only run on Python 3.3+ due to their
      use of unicode literal prefixes.

      One such import hook project is Vinay Sajip's uprefix [4].

      For those that prefer to translate their code in advance rather than
      converting on the fly at import time, Armin Ronacher is working on a
      hook that runs at install time rather than during import [5].

      Combining the two approaches is of course also possible. For
      example, the import hook could be used for rapid edit-test cycles
      during local development, but the install hook for continuous
      integration tasks and deployment on Python 3.2.

      The approaches described in this section may prove useful, for
      example, for applications that wish to target Python 3 on the Ubuntu
      12.04 LTS release, which will ship with Python 2.7 and 3.2 as
      officially supported Python versions.

<comment><USER8> It's not so simple. As mentioned in the last paragraph, for example, Ubuntu LTS will release with Python 3.2. Backporting this feature to 3.2 will make it available to (updated and patched) Ubuntu LTS installs. _NOT_ backporting this PEP could result in further delays in Python 3 adoption as people wait for Ubuntu 14.04 LTS.

<comment><AUTHOR> A good point. I do wonder what proportion of Ubuntu users take advantage of the LTS releases rather than, say, just outright using Debian. I also intuitively want to say that anyone deciding to go with a LTS release would, if given the choice between a 2.7 library and a 3.2 library, choose the more "mature" option anyway.

I agree that it would have been smart to backport such a seemingly small and unobtrusive change to 3.2 (and who knows, maybe they still will).

<comment><AUTHOR> Actually, no, after contemplation I realize that it would be _much worse_ to split the compatibility of 3.2 and force library authors to qualify their compatibility targets by the minor version. After all, if the hypothetical 3.2.new didn't require any porting effort to support 3.3-style unicode literals, then library authors would have even less incentive to port their libraries to 3.2.old for all the people who can't upgrade, or won't upgrade, or who don't realize that their version doesn't feature a critical language addition.

<comment><USER7> in my experience, people (and distros) will update minor versions in mid-life patches/updates. so backporting gets this fix to "legacy" installs, where a new python version is not acceptable (i have clients with python 2.5 - 5 years from now the same kinds of people will be stuck on 3.1).

and i'm not sure why comparing three digits rather than two is so much more difficult. can you expand on your logic there?

<comment><AUTHOR>
      > and i'm not sure why comparing three digits rather than two is so much more difficult. can you expand on your logic there?

Really only because it defies what people are used to. I really shouldn't have referred to that third number as the "minor version number", perhaps "the bugfix version number" would have been more appropriate, as that's what people (broadly speaking) expect it to stand for.

I acknowledge that there are arguments to be made for both viewpoints. However, I don't think that the risk of slightly delaying adoption of Python 3k due to concerns of a "compatibility hole" with Python 3.2 are worth introducing even more version chaos into the Python ecosystem. (You could just as easily argue that this move would _prevent_ version chaos by eradicating the compatibility hole, but there will always those people who will forever be stuck on 3.2.old, for whatever reason.) I could be wrong! But regardless of what _I_ think, the fact that the preceding argument can even be raised seems to indicate that it would be politically untenable for the Python devteam to suggest such a course of action. As far as they're concerned, Py3k adoption is progressing at a reasonable pace (though clearly not as smoothly as they'd hoped).

</comment></comment></comment></comment></comment></comment></comment><comment><USER4> Michael Foord's mock lib also made it into the standard lib the other day, but I didn't manage to make the HN front page: <http://news.ycombinator.com/item?id=3705923>

(I'll never figure out what the trick is.)

<comment><USER9> A lot of it comes down to the title.

Your title was "Michael Foord's mock library added to Python 3.3 STL" - <USER2> are a couple of problems here. Firstly, most people won't know who Michael Foord is so using his name at the start of the title won't pull in any attention. Secondly, STL isn't a well known acronym for standard library.

Something like "Python standard library finally gains a mocking library in Python 3.3" might have worked better.

<comment><USER4> Good points, thanks. I intentionally lead with the name because to me, the news was which of the mocking libs around had been chosen for standard lib inclusion. But that limits the audience to those familiar with the field; your version works much better for a general interest audience indeed. I thought STL to be pretty common though.

<comment><USER10> No, the STL is the Standard Template Library, in C++, by STepanov and Lee at the HP Software Technology Laboratory. It doesn't mean "standard library", even though some inexperienced C++ programmers get confused between the STL and the rest of the standard library, now that the STL is part of the standard library.

</comment></comment></comment></comment><comment><USER11> Sorry for this harsh statement, but Guido should do an internship at Theo of OpenBSD. We can't just decide to move backward to support programmers stupidity.

<comment><USER12> I like OpenBSD. But, Python is not OpenBSD, it has a different set of core values. Pragmatism being high up that list. It is written by and for pragmatic programmers. Not purists, not idealists.

It is stupid to violate core values.</comment></comment>


Nullify NSA |Nullify NSA - <AUTHOR> http://offnow.org/ <comment><AUTHOR> The concept of shutting down data centers by shutting off water at a local level is both amusing and probably more practical than reform by Congress.</comment>


Modeling cyberattack deterrence on nuclear deterrence fails - <AUTHOR> http://arstechnica.com/science/news/2010/04/modeling-cyberattack-deterrence-on-nuclear-deterrence-fails.ars?utm_source=rss&utm_medium=rss&utm_campaign=rss

<comment><AUTHOR> What's really interesting about this is that, since cyber-attacks aren't as openly destructive or nearly as effective as nuclear weapons, they are actually more dangerous and threatening in practice!

</comment><comment><USER2> I think modeling it on the old 'black ops' intel/counter-intel activities is the right strategy. Sometimes, it's only a few people (or an individual), but the effect can be tremendous (see: Russian oil pipeline explosion).

I think much of the senior military leadership 'gets' it to the extent that they know to be worried. The middle management, however, ignores threats that are non-kinetic in most cases.

Great article!</comment>


Cryonics: A Theoretical Understanding (1992) - <AUTHOR> https://readtext.org/conspiracy/cryonics-theory/ <comment><USER2> For further reading on cryonics, bear in mind that a number of advances in vitrification and proof of maintained function / structure in tissue have occurred in the past few years, while tissue vitrification development is gaining much more attention and support with an eye to turning it into a tool for the organ transplant industry. A lot of the really good articles on cryonics predate all of that. There were sensible and detailed things written on cryonics in the 80s and 90s in connection with the developing ideas on molecular nanotechnology and molecular biology of memory, for example.

Scientists' Cryonics FAQ - [http://www.alcor.org/sciencefaq.htm](http://www.alcor.org/sciencefaq.htm)

Scientists' Open Letter on Cryonics - [http://www.evidencebasedcryonics.org/scientists-open- letter-...](http://www.evidencebasedcryonics.org/scientists-open-letter-on- cryonics/)

Persistence of Long-Term Memory in Vitrified and Revived Caenorhabditis elegans - [http://dx.doi.org/10.1089/rej.2014.1636](http://dx.doi.org/10.1089/rej.2014.1636)

Physical and biological aspects of renal vitrification - [http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2781097/](http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2781097/)

Newly invented Aldehyde-Stabilized Cryopreservation procedure wins Brain Preservation Prize -[http://www.brainpreservation.org/small-mammal- announcement/](http://www.brainpreservation.org/small-mammal-announcement/)

Alcor Position Statement on Brain Preservation Foundation Prize - [http://www.alcor.org/blog/alcor-position-statement-on- brain-...](http://www.alcor.org/blog/alcor-position-statement-on-brain- preservation-foundation-prize/)

"To Die in Order to Live": The Need for Legislation Governing Post-Mortem Cryonic Suspension - [http://papers.ssrn.com/sol3/papers.cfm?abstract_id=1608140](http://papers.ssrn.com/sol3/papers.cfm?abstract_id=1608140)

If you want to read around the field and the science (vitrification is the key part of that), you might start with the resources at the Alcor website, and the archived materials at the Institute for Evidence Based Cryonics.

<comment><USER3> The big problem is you have to be dead before you can be vitrified. Given that the last 24 hours of your life mashes you brain (basically everything above the brain stem is oxygen staved for at least 24 hours before you die), there is little information to preserved.</comment></comment>


The startup you want to work at the most is your own - <AUTHOR> http://techcrunch.com/2011/08/05/the-startup-you-want-to-work-at-the-most-is-your-own/

<comment><USER2> Why the heck would I want to work for "Milk Inc."? Should I be impressed by their homepage? Perks? What? Seems pretty hype-ish...

<comment><USER3> The article seems to hint Milk only took the lead after Kevin Rose tweeted a link to the poll.

<comment><USER2> Thanks. Had to google his name. OK, now I know he's a tea drinker. And manipulator.

<comment><USER4> The only thing I could think of was:

<http://www.youtube.com/watch?v=bW6PowAIAxg>

Bad name and a bad poll.

</comment></comment></comment></comment><comment><USER5> Facebook is not a startup.</comment>


MIT professor wins Turing Award - <AUTHOR> http://www.boston.com/business/technology/articles/2009/03/10/top_prize_in_computing_goes_to_mit_professor/?p1=Well_MostPop_Emailed7 <comment><USER2> Previously posted ..

<http://news.ycombinator.com/item?id=510520></comment>


Why Kashmir is a crisis for the world, not just India and Pakistan - <AUTHOR> https://thehill.com/opinion/international/458029-why-kashmir-is-a-crisis-for-the-world-not-just-india-and-pakistan <comment><USER2> It is India's internal matter. Let India deal with it.</comment>


The Media Is Always Wrong About the Value of a College Degree - <AUTHOR> http://www.tnr.com/print/article/economy/89675/bad-job-market-media-wrong-college-degree <comment><USER2> How do the historical snapshots related in the interesting submitted article compare to the analysis of Charles Murray

[http://www.openeducation.net/2008/08/20/charles- murray-%E2%8...](http://www.openeducation.net/2008/08/20/charles- murray-%E2%80%93-for-most-people-college-is-a-waste-of-time/)

that what employers need is a signal of competence, but a four-year college degree is a very costly signal for a job-seeker to obtain, and only an imperfect signal of competence to an employer?

Isn't it possible that college degree holders are at an advantage in seeking employment by comparison to persons without college degrees even if students are learning very little during their four years of college?

[http://www.mcclatchydc.com/2011/01/18/106949/study-many- coll...](http://www.mcclatchydc.com/2011/01/18/106949/study-many-college- students-not.html)

</comment><comment><USER3> Please do not link to the print version of pages. Most of us are not reading on printers. If we do want to print the article, we are capable of doing so without your help.

The print version formatting generally makes the article much harder to read on screens. For example, the column width is such that the text is very small on mobile devices and the lines are long enough that zooming makes ot so massive horizontal scrolling is required.

<comment><USER4> And I say the opposite. If we want the article split across multiple pages and riddled with ads, we're smart enough to find it on the site. (Or hand-edit the URL.)

<comment><USER3> If you are so smart, why can't you just hit the "print" link on the regular page?

How is it better to make those of us who want to actually READ the article go through multiple steps (dealing with the print dialog, then either finding a link to the regular page or hand editing the URL), as opposed to making you go though a single simple step of one extra click?

<comment><USER5> The same could be said for the other camp. Give it a rest; he chose one version to post that you didn't happen to like, many do.

</comment></comment></comment></comment><comment><USER6> Spoilers: the media is usually wrong about anything involving statistical data.</comment>


Show HN: mustwatch.it - I'm a To-do list for your Videos - <AUTHOR> http://www.mustwatch.it/ <comment><USER2> Oh. OH. You don't make me register an account. That's awesome.

And I actually need this. And it's going to be super useful. I'm putting this probationally in bookmarklet 3 position with Read Later and Share on Tumblr. Kudos!

<comment><AUTHOR> Also I notice you havn't added any videos yet ;) but when you do, if you encounter anything that warrents feedback, please dont hesitate to get in touch <email@example.com> or @mustwatchit on twitter

<comment><USER2> I'm currently sans Internet thanks to moving house so I haven't had chance to play, but I will!

</comment></comment></comment><comment><USER3> Nice idea - one thing I do is bookmark stuff but then actually forget to watch it - would ne nice if there was a reminder service for videos that have not been marked as watched yet

<comment><AUTHOR> Yeah that's the next part I'm working on. Optional weekly/monthly reminders of your unwatched videos.

</comment></comment><comment><AUTHOR> This is a (very) recent side project of mine, Scratching itches and learning to Ship, one project at a time. :) Some feedback would be awesome.

</comment><comment><USER4> As I normally just send an email to myself as a reminder to watch a video, I think this is a great idea.</comment>