Tech industry layoffs rose 351 percent in 2019. Is a recession looming? - <AUTHOR> https://www.salon.com/2020/01/08/tech-industry-layoffs-rose-351-percent-in-2019-is-a-recession-starting/ <comment><USER2> Read the article and not once do they offer the data that would give this metric any real context. How much hiring was going on in that same period. For all we know 64K layoffs occurred in dying sectors of the industry while 100K jobs (made up hypothetical number) we created in new segments. Without context, 351% means nothing.

</comment><comment><USER3> A recession is always looming. If we are not in one, it is looming.

<comment><USER4> Economists have successfully predicted five of the last three recessions, after all.

</comment></comment><comment><USER5> No. Layoffs don't equate to recession. Quite the contrary they represent increase in efficiency.

<comment><AUTHOR> Wow, people during the Great Depression must have been _really_ efficient. If only we were that efficient now....

<comment><USER6> Funny, I didn't realize we saw an incredible number of jobs created during the Great Depression.

</comment></comment></comment><comment><USER7> Yes, a number of companies with unsustainable business models experienced layoffs. And old guard tech companies are in a constant state of layoffs and hiring at the same time. Meanwhile, the vast majority of tech is hiring with a voracious appetite and the big players are expanding around the country/world. Will there be an inevitable downturn at some point? Absolutely, but this article is grasping at straws and provides zero insight into what is actually happening in the industry.

</comment><comment><USER8> The first words of the article are "President Donald Trump".

The source is Salon.

That's all you need to know. The purpose of the article is clear.

<comment><USER9> I don't know why this is getting downvoted. U.S. politics have gotten so toxic that anytime someone's "team" is not in power, they're cheer-leading for a recession. Conservatives did this under Obama and now liberals are doing it under Trump. Pointing out this fact is germane to the discussion.

</comment></comment><comment><USER10> Why would tech layoffs cause a US-wide recession?

<comment><USER11> Why did bad mortgages in Nevada lead to a global financial crisis and the bankrupting of Icelandic banks? Things are pretty interconnected these days.

<comment><USER2> It wasn't just bad mortgages in Nevada...

<comment><USER7> It was bad mortgages in [lyrics to Johnny Cash's "I've Been Everywhere"]</comment></comment></comment></comment>


Ask HN: I got rejected because i don't know number theory, is that fair? - <AUTHOR> <comment><USER3> It depends - you've told us nothing. Who rejected you and why do you think they think number theory is relevant?

A few years ago when we were hiring we took enormous efforts to be welcoming and to put interviewees at ease. We know that going for an interview is stressful, so we honestly did everything we could to make the candidates perform well enough to show us what they could do.

After a couple of weeks we got a call from the agency saying "What are you doing to these people?"

The agency debriefed the candidates after they were interviewed by us, and every one of them was saying "Holy F* - those guys are _scary!_ "

But we're not, honest we're not, we just needed to know what the candidates knew, what they could _do,_ and how we could build on their abilities to help them become useful.

So, what were you applying for, and why do you think they rejected you for not knowing Number Theory? Why would Number Theory be relevant?

Speculate.

<comment><AUTHOR> It was a "Software Engineer, Backend" position, mostly working with Golang and Java, the requirements was:

\- B.S. or M.S. degree in a technical field such as Engineering, Computer Science or equivalent experience

\- Experience in at least one modern, object-oriented programming language, such as Golang, Java, C++, Python, Ruby, etc.

\- Experience working with distributed systems and Web services

\- Experience with Git and continuous integration, with a passion for benchmarking and optimisation

\- Excellent communication skills in English

\- Demonstrated ability to work independently

So no mentioning for special knowledge in Math or anything like that

I applied and was asked to go through a test on HackerRank, it was two problems, i solved the first one, and the second was this one > [https://goo.gl/E6XZR8](https://goo.gl/E6XZR8), i didn't solve it and was rejected because of it

They told me that the other candidates got a better score (which means they solved the second problem). I sent a feedback telling them that this is not relevant, and you could actually search for the solutions. They said sorry, the other candidates is more fit to the position.

So i don't get it, should i have just search for the solution and submitted it to get a better score?

<comment><USER3> What makes you think the other candidates didn't simply program a search? Given that you know it's possible silly to do a search, why did you not do that?

Out do you mean search for the solutions on the web? Ok, now I don't know what you mean.

It seems easy enough to write a program that just searches for the solution. I guess my question is: why didn't you write a program to solve the problem?

Maybe I'm just missing something - it's very late here, and I'm tired. I'll look again at your comment and the link tomorrow.

<comment><AUTHOR> I tried to solve it, but i felt it needs some kind of Math knowledge. any attempt to solve it without that knowledge, just produce a stupid solution. you could see here [https://www.hackerrank.com/challenges/a-very-special- multipl...](https://www.hackerrank.com/challenges/a-very-special-multiple) that it is categorized under Number Theory.

The point is, i love math, if i was asked to deal with a project that require math knowledge, and i was given some time, i would be happy to learn the theory, and i am pretty sure that i will.

So this kind of tests, just check if i have that knowledge right now or not, not if i am able to acquire it or not, and they didn't mention anything about it in the job description, it got me crazy, and i even regret the time i spend applying for the position.

<comment><USER3> OK, I've looked more at it, and while it might be classed as being under Number Theory it really is just looking at the question of divisibility. You're given X, you need to find a Z of a particular form (one or more 4's followed by zero or more 0's) such that Z is divisible by X.

It looks plausible to do small examples by a brute-force search, but having done that you start to see a pattern in the larger solutions, and realise that you need to look at prime factors. That lets you know what you then have to research to find how to do this. Note: I may yet be missing something - <USER2> haven't gone on to code up a complete solution.

But maybe your potential employer felt that exploring things like this, spotting patterns, starting to explore the underlying principles, researching the relevant underlying theory, and then coding up what you find is the kind of thing you'd have to do in the job. Maybe it's not a case of having learned how to do stuff and then apply it over and over, but the willingness to hunt for solutions in situations you haven't met before.

But at the end of the day, if they are the kind of company to reject you for reasons you think are unfair and unreasonable, do you really want to work for them? Maybe you're well out of it.

</comment></comment></comment></comment></comment><comment><USER4> Rejected for _what_? A job? A date? University admissions? Visa? Nightclub entrance?

I mean, if you're applying for a job in cryptography research, then yeah, it's quite possibly fair (or at least reasonable) to reject someone who doesn't know number theory. If the guy/girl of your dreams rejected you for the same reason, then no, arguably it's not "fair" but then "fair" doesn't really enter into it, does it?

<comment><AUTHOR> It is a "software enginner - backend" for [https://www.centralway.com/uk/](https://www.centralway.com/uk/)

I am aware that the app called "numbrs" but that doesn't mean i should know number theory, it looks like a simple app to me (with a simple Backend)

and the job description didn't mention anything about Math</comment></comment>


A tour of the open standards used by Google Buzz - <AUTHOR> http://blog.jclark.com/2010/02/tour-of-open-standards-used-by-google.html <comment><USER2> Google Buzz may have had some privacy issues, but at least they're trying to be more open than Twitter is.

</comment><comment><USER3> Can someone explain what exactly is XRD and what it is useful for? I'm not being sarcastic, just trying to figure this out.

<comment><USER4> Besides the examples James Clark gives here (e.g., the likes relation on users and items, associating public keys with email addresses [1]), Google gives some examples at their webfinger page [2]: your office hours, your profile page, etc.

[1] [http://salmon-protocol.googlecode.com/svn/trunk/draft- panzer...](http://salmon-protocol.googlecode.com/svn/trunk/draft-panzer- magicsig-00.html) [2] <http://code.google.com/p/webfinger/>

</comment></comment><comment><USER5> XML is mentioned way too much on that page :(

Open standards are great, if they don't suck.

<comment><USER6> To be fair, the author is the James Clark who wrote expat and designed Relax- NG (a decidedly non-sucky XML schema tool).</comment></comment>


Ask HN: Why use Python? - <AUTHOR> <comment> git-pull Scales small-to-medium codebases well. Modules and packages work well. PEP8. Linting tools like flake8.

Documentation is top tier. Docutils + Sphinx + ReadTheDocs. Autodoc and intersphinx (linking across python projects) are just wonderfully implemented.

Contrib Library quality. Mature and well documented. Permissively licensed. Django, SQLAlachemy, Requests, Flask, Werkzeug, Boto, Jupyter, Numpy, Pandas, Scipy, fabric, ansible, saltstack, pytest (a new favorite of mine).

Standard library quality. Well documented and just the right amount of features in many cases. In some situations you may find more elegant API's in the contrib community.

OOP is implemented nicely. It scales well. It's easy to traverse large codebases and get situational orientation fast.

Language consistency. Python 3 is generally a consistent language. There are warts in _every_ language, but nothing in python is insurmountable. Python 2.7 with __future__ imports and a compat module eliminates a lot of problems.

Debugging: Tracebacks are human friendly. ptpython/ptpdb and ipython/ipdb are a delight to work with.

C API integration. Well documented and well supported. Also see Cython, CFFI. Also C++ with boost python and pybind11

Editor integration. Jedi, pycharm

Stability. CPython (the main implementation) doesn't break. Clear distinction between 2 and 3 and easy enough to code to both versions. Contrib libraries generally follow semver and have consistent API's

Community. Friendly and great support on IRC and so on.

</comment><comment><USER2> Short answer: Python is the best high-level, _general purpose_ language. It's got a good following in web apps and APIs, data processing and research, and many other fields, as well as being the language of choice for many glue code projects and as a modern alternative to bash scripts.

I wrote a post that was popular on HN a few years ago thinking out loud about what Python is good at which received several comments on areas I missed too. The link in the HN thread [1] is dead but you can find the post at [2].

[1]: [https://news.ycombinator.com/item?id=9524607](https://news.ycombinator.com/item?id=9524607)

[2]: [http://web.archive.org/web/20161101070610/http://lisnr.com/b...](http://web.archive.org/web/20161101070610/http://lisnr.com/blog/pycon-2015-are- we-still-changing-the-world/)

</comment><comment><USER3> It's mature. The community is mature (in multiple senses of the word). The ecosystem is mature. The package management is solid. There are drivers or SDKs for basically every tool or service I would want to interface with.

The syntax is rich but concise. It doesn't require compilation of binaries. It does OOP pretty well. It does procedural pretty well. It does web pretty well. It does throwaway command line scripts pretty well. It does performance well enough for the things I do with it. It's portable.

Python isn't perfect, but 99.99% of the time it gets out of my way. I must, can, and do work with other languages. I constantly find them frustrating me in small ways. Python generally doesn't do that.

</comment><comment><USER4> Good readable syntax, strong built-in data structures, good libraries for just about everything, less "magic" than other similar languages, moves at a deliberate pace and values backwards compatibility (minus the 2->3 thing).

</comment><comment><USER5> Lots of great answers here, but I think that there is an underlying cause of most of the benefits described, and that there is "one obvious way" to think about this question, and it's this:

* Python lives outside the control of any single corporate or government entity. Yes, three of the biggest players work at Dropbox, but clearly Dropbox doesn't have the kind of control over Python that Oracle has over Java, SalesForce with Ruby, or Google with Go.

Because of this, Python is more a community than a single programming language. Being at PyCon fills one with the sense that, after the fall of the state (or at least the US government), very little will change within Python - we'll still be there to support each other in code and in spirit.

There will still be a space for data science and web trends to share air with multimedia hacking and sacred geometry. There will still be story telling, acro-yoga, robotics, and unit tests under one roof.

I can actually imagine Rust or Go (and Gophercon) becoming such a haven, but to my knowledge, it isn't yet. Python has the unique combination of a rich, diverse, radical, accepting culture with technical maturity and reliability.

Python makes me feel safe and brings out the best of who I am.

That's why I use Python.

</comment><comment><USER6> It's a top-tier language due to the amazing support it receives from companies and the community. The PSF is well organized and the language releases are stable. There aren't a massive number of releases (or security issues) to try and keep up with but enough where new features are being added. It's usually one of the first languages to receive love when a new service is rolled out in terms of a library or offering. Tooling is good, using Visual Studio Code.

It's on an uptrend on usage which is always good for your career. I use it for web apps and API's and many larger companies also use it like Uber, Rackspace, Twillio, etc. The scientific field is becomming larger and it seems to be growing extremely quick with a new momentum in AI. Great option for building a CLI tool out. Overall it can handle a lot.

It's a language I really enjoy using on a daily basis at work. It feels like it has been the result of lots of hard work from some really smart people. Our team was at a crossroads and tried a variety of languages, we all agreed on Python. Clarity of what's happening with code is important to us and Python excels in this area.

</comment><comment><USER7> It fits in my head. Its concepts are simple but orthogonal and extremely powerful. It doesn't ask me to take up complicated abstractions in order to do complicated things.

There's a library for everything out there.

I have never seen a language with greater uniformity of styles and idioms, with those style choices being right the vast majority of the time. You generally know what to expect, and I spend little time fighting with bugs or surprising behaviors.

For the things where its performance is unsatisfactory, it offers escape hatches. The tooling is good; there's better out there but I rarely find myself yearning for more than ipdb.

For scientific computing, it's simply top notch. I can't see myself using anything else for doing my data analysis until you're pushing the limits of performance.

Tracebacks are clear. Unlike JS, I know exactly where a piece of code is failing.

It lets you break rules when you need it to but it makes it obvious and the cultural pressure to not do it is high. Out of all the dynamically typed languages I know it'd the one I feel most comfortable pushing until the point where you need stronger validation.

</comment><comment><USER8> I use Python because of the people who made it what it is today. The community is what I like most about Python.

I'm bootstrapping, taking a one-man army approach to creating a new service. I chose a mature language with features and open source projects I may possibly want or need along the way. I am working alone -- not by preference but rather necessity -- and knew I would need help along the way (started very green, 4 years ago). The Python standard library and open source ecosystem offers everything and more than I may ever need to create my vision. The Python community is really strong. It's a global movement. I've gotten so much help on IRC! Stack overflow always has an answer or a legion ready to answer practically anything Python related. Years of Python related blog posts are a google search away from access. PSF-supported Python conferences release or at least _try_ to release video recordings of talks (cough.. ehem..). As for conferences? PyCon has been the ooey gooey salted caramel center of the perfect vanilla pint.

</comment><comment><USER9> It looks like a general pseudocode, even someone unfamiliar with the language can read it and usually understand what's going on.

</comment><comment><USER10> Because I'm told to for school.

</comment><comment><USER11> For me, entirely because of python's large, referenced, and well-documented numerical libraries (e.g. scipy and numpy).

<comment><USER12> +1 I just discovered SciPy/NumPy. This library is brilliant, now I can forget all the matlab knowledge I had and just focus on Python.

</comment></comment><comment><USER13> I use Python because:

\- it's a well designed language

\- it has a great ecosystem and community

\- it runs fast (enough for my purposes)

\- it looks enough like pseudo-code that translating what I wrote on paper into a program is that much simpler.

The fact that it can be used both for teaching computer science in colleges and children how to code speaks volumes about its versatility and approachability.

I use it mostly for web apps, APIs and miscellaneous scripts. Python has been a great addition to my tool-belt. There are some languages I hope I never have to write again; Python on the other hand is something I'm going to always keep in mind, even if I spend most of my days writing another language.

</comment><comment><USER14> For business automation it's spectacular. Pandas dataframes make database queries and dynamic reporting easy. There are rich API examples for most services. It's free. It's portable between osx, Linux and windows.

</comment><comment><USER15> Easy to read, easy to write, great high-quality libraries for pretty much everything.

</comment><comment><USER16> It works well,is not handicapped by verbose idioms, works on most platforms and environments, can glue together other technologies, and the community is pretty good.

I just wish it supported the functional paradigm.

</comment><comment><USER17> The wide number of things it enables: data science & machine learning, web apps & APIs, simple scripts, and it doesn't trip beginners up with extra syntax.

</comment><comment><USER18> Customers want it. I like Java myself, but the Python ecosystem is similar in scope and quality. There is nothing really wrong with Python.

</comment><comment><USER19> jupyter. nothing beats a repl in a web page for instant feedback and iteration.

</comment><comment><USER20> Scipy, numpy, pandas. And it is easy to think in Python.

</comment><comment><USER21> CiPy. Simply the best option if you want to plot and manipulate your data in whatever way possible without any assle(most of the time).

</comment><comment><USER22> It's clear, easy to read and junior developers can pick it up easily and contribute code sooner.

</comment><comment><USER23> "The encoding is done using a function from the urllib library not from urllib2."

I love python. An ancient mess.

</comment><comment><USER24> Because people hire for it. I use whatever I can get a job with easily.

</comment><comment><USER25> Better question is why you wouldn't

</comment><comment><USER26> pandas. it's a killer library.

</comment><comment><USER27> I try to avoid it for new programs though, as the life of the sane language version (Python 2) is going to end at some point.

<comment><USER28> > _as the life of the sane language version (Python 2) is going to end at some > point._

Don't hold your breath for that. There are tens (hundreds?) of millions of Python code in production that's nobody ever gonna port, and that people will still support well into 2040.

<comment><USER29> So better job expectancy for Python programmers? :D

</comment></comment></comment><comment><USER30> Because it is elegant.

</comment><comment><USER31> simple but just as powerful as other OOP languages

</comment><comment><USER32> Inertia.

</comment><comment><USER33> I don't because it doesn't live up to its promises. Some of the most unreadable code I have seen was Python. Pure line noise.

<comment><USER28> I've never seen unreadable code in Python.

Care to post a sample?

And even if it actually was unreadable, just consider how the equivalent would look in Perl, or C (or APL...).

<comment><USER33> My point was that Python written by someone that don't know how to write readable code is just as unreadable as "sysadmin" Perl. Well written Perl is actually very readable.</comment></comment></comment>


Ask HN: Too kool for school, but nowhere else to go - <AUTHOR>

Dear Hacker News,
I'm a university student who is interested in leaving school early.  I feel that I can learn most of the material more easily on my own, and the high cost is sending me into a lot of debt.  But I'm hesitant to just leave for a number of reasons.  I'm not sure of my chances of getting the kind of job I'm looking for without a Bachelor's degree.  I'd like to do a startup, but I don't have much cash and I would have student loans to pay back.  And on top of that, my schooling has been somewhat abnormal, which could complicate things.  Any advice?
About me: I'm currently 18 years old, with a couple of thousand dollars in the bank, but with nothing but a laptop to my name (not even a car).  I left high school at 15 to attend Bard College at Simon's Rock (http://www.simons-rock.edu/), a liberal arts school specifically for early college students.  I did well there; I took a lot of CS courses, kept a 3.8, and was the founding president of the Turing Club.  At Simon's Rock, you typically either go for two years, get an AA, then transfer, or you stay for the full four years and write a thesis.  I opted to transfer, since I thought a degree from somewhere more well-known would be more useful.
So this year I'm at the University of Edinburgh.  I was admitted as a 2nd year student, which was somewhat disappointing, but partially made up for by the school's one-extra-year Master's program.  The school has an excellent curriculum, which is the main reason I chose it, but it's expensive for non-EU students, and I've found the actual classes to be mostly useless as I can learn the material on my own more easily.
As for my qualifications/experience:  Probably most significantly, I've been programming for ten years now.  I've mostly done small projects and stuff on my own, so there's not much work on the internet that I can point at for examples, unfortunately, but I do have some things I'm in the midst of cleaning up to post online.
I've got experience in a fair number of languages and paradigms.  My go-to language is Python, but I'm comfortable in Haskell, C, Java, Javascript (plus HTML/CSS), and Scheme (as well as MIPS assembly).  I also have some experience with Ruby, C++, Io, Smalltalk, Lua, and Forth.  I've coded a bunch of stuff over the years, including toy VMs, programming languages, games, web stuff, various "system" prototypes (user interfaces and the like), higher-order programming libraries, one-off math stuff, and the occasional script.
As for school courses, I've done data structures and algorithms, theory of computation, formal and natural languages, functional programming, software engineering, and computer organization and systems (twice, actually, due to transfer weirdness).  Outside of CS, I've done math through linear algebra, discrete math and counting, a few years of writing/philosophy/literature courses, as well as physics, German, linguistics, Buddhism, electronic music, political ideologies, and economics & technology.  Plus probably a few more I'm forgetting.
My favorite parts of computer science are models of computation and human-computer interaction.  You can probably tell I'm a language nut from the list above; this is of course closely related to my interest in models of computation.  While the "pure" models like the lambda calculus et al are cool/useful, what I'm really interested in is ways of coherently combining different models in an effort to make expressing complex computational ideas more naturally.
And that obviously ties into human-computer interaction.  But beyond languages and models of computation, I'm also interested in  system and interface design.  The two are, again, closely related; while system design incorporates more non-human components, both are about creating useful, efficient, and complex interactions while maximizing ease-of-use and minimizing bloat.  I think we're witnessing a revolution on the human level of interface design, with new input modes (touch, motion-sensitive input, etc.) and new form factors (especially portable, location-aware devices).  And I think that there is an overhaul of large-systems design coming as well; we've moved further and further away from modular designs like those in Unix and Smalltalk, but we're going to have to reinvent them in order to really draw the potential out of our many-devices always-connected world.
Hopefully that gives you a picture of the sort of things I'm interested in and of my situation.  In general, I'm really just interested in working on a useful product which makes peoples' lives easier, from webapps to system code; but the more of the above stuff it included the more I'd be interested, and the better I'd probably be at it.
So I guess I'm not looking for a single answer, so much as some advice.  But if it helps: How would I go about getting a job that suits me, especially without a Bachelor's and with frustratingly few connections?  Would it be a just terrible idea to quit school at this point?  Obviously it's hard to judge whether I could handle a startup, but assuming I could, how could I make it work with minimal cash and student loans to pay? <comment><USER2> If you're still at Edinburgh, I'd recommend discussing this with your DoS, especially if they're an Informatics person. You might be able to find projects being run by AIAI (<http://www.aiai.ed.ac.uk/>) or other institutes inside Informatics that are interesting to you and you can contribute to. If nothing else, this will help make contacts and looks good on your CV.

There's also the Entrepreneurial Club (<http://www.edinburgh- entrepreneur.man.ed.ac.uk/>), which again will help you make contacts and give you a place to discuss ideas and ways of achieving them. There's also <http://techmeetup.co.uk/>, the local $LANGUAGE user groups (I've found <http://scotrug.org/> really useful) - there's a huge number of tech/web meet ups in Edinburgh that offer really good opportunities to make connections.

If you can afford it at all, I'd definitely recommend finishing your BSc/BEng at Edinburgh - if you're intending to stay in Europe it's a very well respected university, and there's a pretty good geek/tech culture in Edinburgh. I think maybe you just need to push beyond the lectures a bit and make contact with it?

</comment><comment><USER3> I took two years off after my second year. I was doing terrible in school upto that point and prayed everyday that one of my ideas will kind of mature and give me a genuine reason to leave. I got that chance and left for two years.

During the two year break, I learned a TONNE...about everything I didn't know. It was pretty humbling. But even more educational!

I returned to school last year. And it's been AWESOME. Nothing like the first two years.

Before taking time off: I signed up for random classes.

After taking time off: I nitpick each class

Before: I didn't care if a class I signed up for sucked(for any reason)

Now: I drop it the second I feel I won't enjoy the class

Before: I didn't think I could learn much in class

Now: I _know_ areas that I outrightly suck at. Each semester I load myself with courses in one area(last semester was strategy; the semester before was marketing; this semester is going to be interpersonal communication).

Lesson: Take time off! Best case you won't need to come back. Worst case you'll come back knowing what you gotta learn.

</comment><comment><USER4> I pretty much in the same situation as you and have a similar background (currently studying software engineering). Actually I did quit school for one year and worked as a web developer. I liked it, good salary and all, but I chose to go back to school for a few reasons.

1) School is a great place to make connections.

2) My parents are supporting me while I'm still studying.

3) Most of all, I'm an entrepreneur and school is a great time to start a company (see 2 reasons above + [http://answers.onstartups.com/questions/2059/founding-a- star...](http://answers.onstartups.com/questions/2059/founding-a-startup- while-at-school)).

4) Although I also learn better on my own (didn't learn much at school), bachelor opens the door to post-graduate studies and gives some credibility when looking for VC funding.

Finally, nowadays, you can launch a startup with minimal capital investment, so don't worry about money.

</comment><comment><USER5> This is coming from a high-school dropout, so it's typical do as I say do not do as I do advice: Learn to finish at least something.

After reading your story it sounds like you are very good at starting stuff but not very good at staying until the job is done, that could turn in to a real liability in the long run.

If you get lucky doing a start-up (the chances of which for a first-timer are relatively small) then you should definitely count your blessings, for everybody else there is always the job scene.

edit: Oh, and nothing precludes you from doing both, if your start-up takes off you can always drop out. If it doesn't you'll have at least some marketable skills with a piece of paper to help you along and one failure notch on your belt.

</comment><comment><USER6> Advice you don't want to hear: finish school, pile up that debt, kick ass in those classes whose material you could "pick up on your own more easily."

The best kind of debt is school debt. If you leave school, you'll be piling up debt anyway, but not that kind that is easily forgivable. And those connections you're looking for? You get them _at_ school - either by meeting classmates or professors, or showing future employers that diploma.

Like someone else mentions on here, the important thing is to learn to finish _something_. Your list of cool and interesting stuff you've studied is only cool and interesting to us here, not to your potential employers, even if any of us here were your potential employers.

Unless you've got somewhere else to go, school is the best place to be. And if you had somewhere else to go, you wouldn't be asking about it online.

<comment><USER7> In the USA at least, school debt is not forgivable at all, not even under bankruptcy.

<comment><USER2> Perhaps 'understandable' rather than 'forgivable' in the financial sense?

People are less likely to question why you have thousands of dollars of debt if it's for something obvious, like your mortgage for your house or your undergraduate degree.

</comment></comment></comment><comment><USER8> It seems to me that you are experience that "lostness" sensation every teenager feels. I reiterate zaidf's advice. Take a year off or so, travel the world, enjoy your life. Having 18 is a great time to travel or do other stuff that you probably won't have the guts to do again.

In due time, you will probably feel the need to come back to get an education. Just don't let the education completely out of your life, in my experience having a degree is great both personally (you acquire alot of skills, meet interesting people, etc) and professionally (I would almost always prefer the guy with a good CS major AND some programming experience over the guy with 10+ years programming but no CS major).

</comment><comment><USER7> Are your parents willing to pay for anything? If they aren't paying anything, my advice is to go to school somewhere where you don't have to rack up as much in student loans, unless it's a university that really has something special to offer (Stanford, MIT, etc.).

If you want to work for a year or two or start a startup before you transfer, go for it. To show potential employers you are good at what you do, build something cool.</comment>


Innovation's Dependence on Regulation - <AUTHOR> http://www.wired.com/2015/05/silicon-valley-letting-go-techie-island-fantasies/ <comment><USER2> The article focuses heavily on government regulation which makes me feel like it subconsciously paints a picture of "those evil capitalists trying to escape regulation...haha fail". In the light of recent mass surveillance revelations I think less government is still very much a valuable goal to strive for.

The counterexamples regarding infrastructure are a bit too tongue in cheek for me, too. The point about the legal system makes sense on the surface but only if contrasted with no legal system at all. Pretty much all "freedom utopias" I'm aware of are heavily based on a strong belief in property rights and private contracts.

<comment><USER3> How can you enforce property rights and private contracts without a state? You have a contract with the richest person in the local area (aka the man with the largest army / aka the local warlord). How do you ensure he pays when he is liable to pay? Moreover, how do you ensure he doesn't just kidnap you, and force you to work for him for free?

<comment><USER4> While states dominate history, private law has proven successful. You could see the Law Merchant throughout Europe as one example or medieval Iceland, where civil order was maintained for longer than the US has existed so far, as another.

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

[https://mises.org/library/medieval-iceland-and-absence- gover...](https://mises.org/library/medieval-iceland-and-absence-government)

Regarding your other concerns see points 8 & 6 here:

[http://c4ss.org/content/13612](http://c4ss.org/content/13612)

While I have some differences with this author, you could consider this video as well:

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

<comment><USER3> > You could see the Law Merchant throughout Europe as one example

That is not an example of justice in the absence of the state. All the principal trading cities were governed, whether as city states (Venice), as quasi-independent city states within a federated league (Lubeck, Hamburg, and the other Hanseatic States) or as cities within national kingdoms (London, Ipswich and other cities under the English crown). It is an example of states agreeing to standardized laws to attract traders and provide a solid basis for ongoing trade.

From the Merchant of Venice:

 _The duke cannot deny the course of law._

 _For the commodity that strangers have_

 _With us in Venice, if it be denied,_

 _Will much impeach the justice of his state._

 _Since that the trade and profit of the city_

 _Consisteth of all nations._

The presence of common merchant law does not mean the absense of a state.

<comment><USER4> I said private law, not purely anarchic examples. I could give more anarchic ones if you liked but it's revisionist history so you'd have to do a good bit of reading to really discuss it.

Iceland is an example of polycentric law fairly close to what anarcho- capitalists advocate. You didn't really address that or the other points.

The first big difference between the Lex Mercatoria and present-day law is the source being jurisprudence and not bureaucratic legislation. The second would be cases being torts with an identifiable victim versus today's with victimless "crimes against society".

For why legislation is awful and for a hint at solutions under an eminently human system of law in a free society see these:

[https://www.mises.org/sites/default/files/11_2_5_0.pdf](https://www.mises.org/sites/default/files/11_2_5_0.pdf)

[http://www.walterblock.com/wp- content/uploads/publications/b...](http://www.walterblock.com/wp- content/uploads/publications/block_radical-libertarianism-rp.pdf)

</comment></comment></comment></comment></comment><comment><USER5> > Some of the most explosive tech companies today benefit intensely from > various pockets of regulation: Spotify and Netflix[...]; Lyft and Uber > [...]; Stripe, Square, and even much of Mr. Thiel's early success at PayPal > [...]. And don't forget the Internet itself [...]

All his examples are bogus/fallacies.

> without copyright law, for instance, no one would pay for those services

If copyright law did not exist and people did not pay for the artists, artists would have no incentive to compose/perform/record/distribute their work. That would create the incentive for people to pay for those services. As lawl pointed out, people already pay for these services for their convenience.

> ever been to a country without paved roads?

The private sector would happily pave the entire world. Road pavement is not something only the government can do. We have numerous examples of roads built by the private sector (private toll roads, anyone?).

> without SEC regulations to limit our financial losses on identity theft, who > would so freely hand out their credit card information?

The same people who would use a credit card in the first place.

> And don't forget the Internet itself, which began as a scientific > communications network started by the government.

Really? How can you predict it would not be created in some other form by the private sector?

<comment><USER6> All of human history contradicts you. Music has been and will be made irrespective of 20th century notions of copyright.

</comment></comment><comment><USER7> As I pointed out the last time this came up, it's been tried at least four times, with projects that got far enough to have people on an offshore construct.[1] All failed.

There is, of course, one huge success - Hong Kong. It's a collection of islands and a peninsula that run under a much more liberal set of rules than its parent nation.

There are various "special economic zones" around the world, in about 25 countries.[2] They're usually intended for export-oriented industries. India has had the most success with this concept.

The closest thing the US has to this is the Reedy Creek Improvement District, which is the legal arrangement which makes Disney almost a government around Disney World in Florida.

Note that neither Uber nor Airbnb would benefit from being on an island.

[1] [http://en.wikipedia.org/wiki/Micronation](http://en.wikipedia.org/wiki/Micronation) [2] [https://en.wikipedia.org/wiki/Special_economic_zone](https://en.wikipedia.org/wiki/Special_economic_zone)

</comment><comment><USER8> > "Why do people feel perfectly comfortable forming a startup when they know > that 90 percent of them fail? Because they know that corporate laws and > bankruptcy laws protect them from personal liability. They know that they > won't lose their house if the company goes bust."

This is a intellectually dishonest statement. Even if you had no laws you would still be able to find investors willing to invest in an company, with the understanding that it could fail. The very concept of "personal liability" only makes sense inside a regulated society.

Hypothetically speaking, living in a everything-goes society, it's true you might get killed or have your house burned down - but that's only if you are bad at PR, communicating expectations, or self-defense.

In fact, a lot of people did just this earlier in history. The main reason startups are more successful now is because of the leverage technology provides. That and the fact that, for the most part, government/bandits don't take the money you get for creating wealth. Stability plays some role too, but there has been plenty of stable societies that didn't have anything resembling startups, and a lot of startups thrive in macro-economically unstable climates.

EDIT: Of course, the above hypothetical scenario is not prescriptive, i.e. it's not desirable. It's simply an extreme example that illustrates why Mr. Regulator's statements are wrong and intellectually dishonest.

<comment><USER9> "that's only if you are bad at PR and communicating expectations, or self- defense."

Without the stability of rule of law in a reasonably regulated state, self- defense is incredibly difficult in the modern world, with modern technology allowing for sniper shots at greater than a kilometer. The illusion of security is simple, but actual security is not. Most normal people would rather live in a society where they didn't have to worry about PR, communicating expectation, and careful security with the knowledge that the more they had the greater the risk of mortal peril. Not that I wouldn't mind some people trying it somewhere to illustrate the failings of simple-minded idealism graphically as Marxists did, so long as it was a small-scale human failure.

</comment></comment><comment><USER10> > _Spotify and Netflix (without copyright law, for instance, no one would pay > for those services);_

Really? People already decide to pay for it instead of pirating it, because it's more convinient, not because they're scared of breaking the law.

<comment><USER11> However, in the absence of copyright, presumably it would be much easier to download quality content (assuming for the purposes of the hypothetical that all the content had been made in the first place) given that, for example, Napster v1 would be perfectly legal. Storage and bandwidth still need to be paid for of course and there might be a market for services that curated and served up free music and movies but the price would presumably have to be less than a subscription for Spotify or Netflix.

<comment><USER5> In that hypothetical scenario, why would starving artists continue distributing their work? They would simply look for another job that paid the bills.

I for one choose to believe that people mostly want to support the artists, hence the popularity of said services.

<comment><USER11> Most wouldn't. And the vast majority of films certainly wouldn't be made if they had to depend on donations.

>I for one choose to believe that people mostly want to support the artists, hence the popularity of said services.

I think that's very optimistic of you. In a world where you had a Netflix and a "Cheapflix" that was a quarter the monthly price because it (legally) didn't pay for any of its content but was otherwise identical to the Netflix of that world, I'm pretty sure the vast majority of people would go with the less expensive option.

<comment><USER5> You might be right. However, anedoctally, most of my friends are paying for Spotify Premium and Netflix even when torrent downloads are just around the corner. And these are not rich people with money to spare; these are grad students or a few recent graduates on a budget like myself.

So I still believe that people would rather go legal and support the artists when they have the option.

</comment></comment></comment></comment></comment><comment><USER12> > Dempsey argues there should be greater recognition of the extent to which > startups benefit from government infrastructure. "I can guarantee that if > you don't have a legal structure you will not have innovation," he says. > "Instead you will have chaos."

I'd say that one doesn't necessarily imply the other. It's possible to agree on a legal framework (code of conduct, how contracts are enforced etc.) without government infrastructure. Government infrastructure on the other hand doesn't necessarily imply a well-structured, consistent legal system. Just ask any entrepreneur in any country about the intricacies and inconsistencies of local tax laws. Common law by its very nature is complex and often contradictory.

</comment><comment><USER13> Interestingly, the software industry is the least regulated industry I can think of, and the most rapidly evolving. I wouldn't be quick to dismiss the correlation.

The D programming language tools are also developed under the Boost license, which is pretty much a rejection of copyright protection.

</comment><comment><USER14> The first thing that came to my mind when I saw this man made island in international waters was that someone can just get a boat and a few armed men and rob the place. I agree with all the complaints about government surveillance, intrusion and so on, but the one thing that they do provide that would be sort of important for a place like that is protection. So then they would have to raise money for an army to protect themselves... next thing you know you are paying taxes for the military...and so on and son, you get the idea, you are right back where you started.

<comment><USER15> That doesn't need to be a slippery slope. It's possible to _stop_ after constructing the amount of government needed to solve that problem.

<comment><USER16> In several thousand years' history, can you list examples where this has occurred?

<comment><USER15> Stopping? Not for all of history, but for significant periods of time during the formation of a new government, before it eventually grows out of control.

But sadly, yes, it was meant more as a theoretical possibility rather than one anyone has actually pulled off.

</comment></comment></comment></comment><comment><USER17> I'm sorry to say (as someone who has worked at Wired two different times) that this is not one of Wired's most convincing pieces.

First, the pro-seasteading folks are not "letting go" \-- as far as I can tell, they're in it for the long haul and have said for the better part of a decade that they intend to take small steps to learn about the engineering requirements for a blue-water seastead. Here are articles I wrote on the topic when they were saying that back in 2009: [http://www.cbsnews.com/news/next- frontier-seasteading-the-oc...](http://www.cbsnews.com/news/next-frontier- seasteading-the-oceans/) [http://www.cbsnews.com/news/seasteaders-take-first- step-towa...](http://www.cbsnews.com/news/seasteaders-take-first-step-toward- colonizing-the-oceans/)

Second, the reporter talks about startups "benefit[ing]" from regulation. But it doesn't mention how government agencies have targeted drones, genetic tests (23andMe), 3D printing (DD), Uber and Lyft (in some states), Tesla (dealer sales), Airbnb (in some cities), Bitcoin (FinCEN), etc. The reporter mentions Spotify and Netflix as companies that benefit from regulation, which is false; they benefit from _copyright law_. The thing is you can have copyright law without FCC/SEC-style top-down rate-setting regulation (US copyright law predated the FCC/SEC by over a century).

Third, the reporter mentions Balaji Srinivasan of Andreessen Horowitz, but neglects to say whether he changed his mind and is "letting go." I heard Srinivasan speak three days ago in Palo Alto, and I suspect he hasn't. The reporter quotes YC's own Sam Altman as speaking dismissively about seasteading, but never said he's changed his mind (as far as I know Altman always held that opinion). You might as well quote Democrats talking about Hillary Clinton one day and Republicans the next and claim Americans are "letting go" of that presidential candidate.

Maybe seasteads will never happen, maybe the darknet will never be robust, maybe we'll never get to Mars, and maybe there's a case to be made that Silicon Valley is "letting go" of these dreams. But this article failed to make it.

</comment><comment><USER18> Nice resort model. Where are the gun emplacements to fend off the pirates?

The article also neglected to mention another difference between, say, California and Texas: employers don't own your every stray thought in California. Hard to get smart people to work for you under dumb conditions.

What, you don't want to come work in Petopia??? (or whatever it was in the "Family Guy" episode where the dad finds out he has the right to make his house into its own country)

</comment><comment><USER19> Building a nation is hard, much like building a software stack; you have to stand on tons of infrastructure to be able to make it work, and the underpinnings often aren't pretty and/or efficient. Look at the mess that most TCP/IP stacks are, and at some of the more baroque forms of administration you find out there, like those old livestock rights they have in the City of London.

</comment><comment><USER16> Fake title. Actual title is "Silicon Valley Is Letting Go of Its Techie Island Fantasies".

</comment><comment><USER20> A bit off topic, but that image looks a bit like the board game Carcassonne.</comment>


Why Neo-Conservative Pundits Love Jon Stewart - <AUTHOR> http://nymag.com/daily/intel/2009/08/why_conservative_pundits_love.html

<comment><AUTHOR> I am well aware of the taboo surrounding political pieces on HN, but be sure to read this before you write it off completely. I think it's HN worthy because ( _spoiler alert_ ) the conclusion is, ultimately, that Jon Stewart is willing to have an intelligent debate. Politics aside, why does it take a comedian to have the sort of intelligent debates that an entire news media industry can't?</comment>


DOJ demands Facebook information from 'anti-administration activists' - <AUTHOR> https://www.cnn.com/2017/09/28/politics/facebook-anti-administration-activists/index.html <comment><USER2> "...government attorneys have issued a similar search warrant..."

Flat lie. Search warrants are issued by _courts_ and signed by _judges_ upon finding probable cause.

</comment><comment><AUTHOR> Warning: auto-play video, with audio. Alternate link:

[https://outline.com/3TKY5M](https://outline.com/3TKY5M)</comment>


Ask HN: Why does GitHub have a black bar? - <AUTHOR> Is this their new design or did something bad happen? If it's the former, I am lost for words. Why such a depressing color? <comment><USER2> I thought someone important had died...

<comment><USER3> That one gave me a good laugh ;-)

</comment></comment><comment><USER4> "Dark header has arrived on [http://GitHub.com](http://GitHub.com) for desktop and mobile! First of many iterative design changes coming"

[https://twitter.com/mdo/status/830138373230653440](https://twitter.com/mdo/status/830138373230653440)

</comment><comment><USER5> I thought it was browser rendering error but I was wrong.

I thought it was CSS error but I was wrong.

I thought it was about Trump's act but I was wrong.

How can it be the new design? The title bar should never be the focus of the layout but now it is. It catches our attention before the content which is more important.

</comment><comment><USER6> OMG, please tell me they will roll that back, it's stupid but i can't focus anymore on the code, I just see a black bar with a lot of contrast in my screen... It's funny that so many people got the same impression than me, that something was going very very wrong

</comment><comment> rr- I don't understand why they're changing anything, I always looked up to GitHub's design as one of the best looking and consistent designs on the Internet. The new black bar looks very bland, out of place and definitely worse than previous one. This feels like a change for the sake of it...

</comment><comment><USER7> Part of design upgrades. A responsive mobile design also coming the way [https://twitter.com/mdo/status/830505943800573952](https://twitter.com/mdo/status/830505943800573952)

</comment><comment><USER8> [https://medium.com/@cwodtke/users-dont-hate-change-they- hate...](https://medium.com/@cwodtke/users-dont-hate-change-they-hate- you-461772fbcac7#.84k2i2hrj)

</comment><comment><USER9> Hah! I felt so strongly about it I made a chrome extension to put it back to how it was.

<comment><USER10> Which is at [https://news.ycombinator.com/item?id=13619401](https://news.ycombinator.com/item?id=13619401)

</comment></comment><comment> victor-li If you also dislike the new black navigation bar: [https://github.com/victor- li/github-white-navbar](https://github.com/victor-li/github-white-navbar)

</comment><comment><USER11> The designers at github must be going through some pretty dour times...

</comment><comment><USER12> did it happen around the same time as Topics? I think topics are very useful. Much easier to find related repos than searching through a fork

</comment><comment><USER13> This needs to be optional, it looks terrible.

</comment><comment><USER14> I thought I'd been marked..

</comment><comment><USER15> It looks pretty odd to me too.

</comment><comment><USER16> GothHub..</comment>


I'm no longer a Scrum Master - <AUTHOR> http://www.yusufaytas.com/im-no-longer-scrum-master/ <comment><USER2> The link in the post is actually very good, agree with a lot of it. Agile seems to have devolved into lots of ceremony and overhead in most organizations.

Planning overhead is just the worse. Essentially project managers/scrum masters want to turn Agile into waterfall to somehow guarantee both delivery dates and feature sets.

And every organization should build their process around their unique needs. In our case delivery can't be done in less than a week given the multiple layers of management that demands review time. We can't fix the review requirements, so our process needs to be designed to best accommodate it while still delivering timely releases and not dragging down team velocity. 2 week sprints are basically impossible.</comment>


The Dickensian Conditions of Life in a For-Profit Lockup - <AUTHOR> https://www.nytimes.com/2018/10/01/books/review/shane-bauer-american-prison.html <comment><USER2> I hope someday that a large majority of Americans come to the belief that the love of money is not always the best motivator. Being profit driven does not magically make something more efficient or better. It only makes people try to maximize profit and usually at the expense of more important outcomes. The notion that government can't do anything right is a destructive one and it needs to die quickly. Privatization in industries that ought not be profit driven is a bad thing.

<comment><USER3> Being profit driven does make things magically better. Countries like India suffered for decades under central planning policies, and have been going through a huge boom in prosperity since the 1990s thanks to reforms that took power away from government planners and made room for the market.

At the same time, the government hasn't proven to be any more "humane." Most US prisons are public. Are prisoners treated humanely in Illinois, where private prisons have been banned since 1990? New York, another state that has long banned private prisons, is famous for the abuses in its _pre-trial_ system, where non-convicts are sometimes held for years.

<comment><USER2> You claim that being profit driven does make things magically better and provide a single example. Do you really think I can't find a single example of where being profit driven made things worse? You can't think of a single example in all the history of the world in which being profit driven made things worse? I guess you wrote in hyperbole but it seems like you actually believe it and to disprove your belief I merely need to come up with a single example. However, to prove your point you need much more than one example. Indeed, you need to prove it in all examples. Good luck!

Prisoners are generally not treated humanely in the U.S. They tend to be treated better in government run prisons than in for profit prisons. If your point is that since prisoners are not humanely treated in government run prisons then it is OK for them to be treated the way described in the article then I think your position is morally repugnant.

<comment><USER3> > They tend to be treated better in government run prisons than in for profit > prisons.

The article presents no evidence of that (much less the actual relevant comparison, which is whether government-run prisons in those same states would be better).

> If your point is that since prisoners are not humanely treated in government > run prisons then it is OK for them to be treated the way described in the > article then I think your position is morally repugnant.

The question in this sub-thread isn't whether prisoners should be treated humanely, but whether its the for-profit nature of prisons that makes then inhumane. The fact that government-run prisons in the U.S. also are inhumane is highly relevant to that question.

<comment><USER2> _The article presents no evidence of that (much less the actual relevant comparison, which is whether government-run prisons in those same states would be better)._

My evidence is not limited to the NYT article. Your original comment indicated that the profit motive always improves things. If true then for profit prisons ought to be an improvement to government run prisons. My belief based on working at prison and knowing some people who work at jails and having read a bit about the topic is that for profit prisons are not better than government prisons.

You further asked if prisoners are humanely treated in government run prisons in Illinois.

 _Are prisoners treated humanely in Illinois, where private prisons have been banned since 1990?_

Prisoners in the U.S. are not humanely treated by either government run prisons or for profit prisons. Prisons are generally better run and more humane when run by government. It appeared your argument was that since government run prisons are still inhumane then for profit prisons are OK. I think that logic is bad. But I gather from what you wrote above that to you the question is whether or not the profit motive is what makes for profit prisons bad. My answer is yes given that the voting public in general does not want to fund humane prisons and that a for profit enterprise ought to run it cheaper than what government run prisons cost.

To me the question is one of betterment. Which system is better? Both are bad but one is worse than the other. That is what is germane to me. Pointing out government run prisons are bad is not relevant to the discussion if despite them being bad they are better than for profit prisons.

</comment></comment></comment></comment></comment><comment><USER4> A woman gave birth in a CCA run prison because the guards didn't believe she was in labor. The baby died. The prison was eventually shut down.

[https://dfw.cbslocal.com/2012/07/10/premature-baby-born- at-d...](https://dfw.cbslocal.com/2012/07/10/premature-baby-born-at-dawson- jail-without-medically-trained-personnel/)

</comment><comment><USER5> No amount of cruelty will slake the barbaric craving of many Americans to see "criminals" harmed. When privately run prisons shirk the constraints that public institutions operate under, they are responding to a public demand for savagery.

<comment><USER6> Violence through revenge is deep within our core, and to deny it is to deny our humanity. Morality is only useful in times of civilized comfort.

Wanting to see criminals suffer horribly is exactly as wrong, or exactly as right, as wanting to see them locked up for years and eventually possibly rehabilitate and rejoin greater society.

In other words, it really doesn't matter.

<comment><USER5> > _Violence through revenge is deep within our core, and to deny it is to deny > our humanity._

I agree. Dehumanizing the "other" is profoundly human.

But rising above bloodthirst through rationality and empathy, and crafting institutions (such as laws) which better us all, together... is also profoundly human.

> _In other words, it really doesn 't matter._

The universe may be indifferent, but human actions are meaningful to other humans.

</comment></comment></comment><comment><USER7> Assuming he meant stuff like this, Kanye Kardashian was absolutely right about the 13th Amendment, which is what permits involuntary servitude as punishment [https://en.wikipedia.org/wiki/Thirteenth_Amendment_to_the_Un...](https://en.wikipedia.org/wiki/Thirteenth_Amendment_to_the_United_States_Constitution#Penal_labor_exemption)

As an aside, I will be happily posting away here then suddenly I will get a message "you're posting too fast, please slow down". I immediately know that one of my comments has been downvoted, because that's what triggers that.

<comment><USER8> Kanye's request was to make slavery more legal, not less legal.

The 13th didn't make prison slavery legal, it made non-prison slavery illegal.

<comment><USER7> _Kanye 's request was to make slavery more legal, not less legal._

That interpretation makes no sense, why would he want that?

<comment><USER9> Most of what Kanye says makes no sense.</comment></comment></comment></comment>


It is 2.5 minutes to midnight: Final 2017 Doomsday Clock Statement [pdf] - <AUTHOR> http://thebulletin.org/sites/default/files/Final%202017%20Clock%20Statement.pdf <comment><USER2> Dupe (though original source): [https://news.ycombinator.com/item?id=13493396](https://news.ycombinator.com/item?id=13493396)</comment>


How did Google monetize in the early days? - <AUTHOR> I'm curious how they made money in the beginning before they were huge. Was it always from ads from day one? <comment><USER2> It took Google a long time to monetize the search engine. They were financed by venture capital until they built and ran their advertising business. Once that got going the money started pouring in. Advertising for Google is still the primary money maker for them. People want to call Google a tech company but it's really an advertising company that needs tech to survive,</comment>


Twisted History of Python Packaging - <AUTHOR> https://speakerdeck.com/myusuf3/twisted-history-of-python-packaging?

<comment><USER2> I'm a relative newcomer to python. I've been successfully using pip, and more recently pip+virtualenv to install packages. There haven't been many speedbumps so far, though I'm not hitting the system that hard. I do miss the "Gemfile" type of abstraction that Ruby or CocoaPods provides.

That said, the other day I tried to figure out how to package a bit of code I wanted to make reusable. It was a complete clusterf __k. No two documents gave the same instructions, the instructions I did find were confusing and incomplete, and there was no obvious place to figure out what the "state of the art" of python packaging is.

I still want to package this module up, but it doesn't seem worth the effort so far.

<comment><USER3> well, since python is so much more readable than ruby you can just hand out a .py :P

I usually write python and just moved to ruby, and as much as I like python I don't think anyone brings DSLs into the conversation as much as it should be.

<comment><USER2> The whole advantage of packaging is `pip install mypackage`, which you don't get with a raw .py. and my module has a couple of non-.py resources contained.

I really really really really really really hate DSLs. That's part of why I like Python more than Ruby. I want to learn one consistent language, not dozens of magic keywords that apply only in certain situations. I recognize that there is a place for them, it's just that in my mind that place is called "Ruby". ;)

</comment></comment></comment><comment><USER4> Here's the video of the talk (PyCon Canada 2012): [https://www.youtube.com/watch?v=lpBaZKSODFA&feature=plcp](https://www.youtube.com/watch?v=lpBaZKSODFA&feature=plcp)

<comment><USER5> Thankyou.

I find it somewhat frustrating to follow a link that sounds interesting only to find a slide deck that makes little sense to me without the talk that goes with it.

</comment></comment><comment><USER6> In the Ruby world, a common heuristic for problems is:

1) Can the language do this for me? 2) If not, is there a gem that does it? 3) If not, can I make one?

The tools to make it easy to get and share gems and manage dependencies are a huge boost for all Rubyists.

Here's hoping that Python devs, who already have a very nice language to work with, can _unite_ around an equally set of package tools.

</comment><comment><USER7> Theres also Bento - <http://cournape.github.com/Bento/html/index.html> which is well designed. Disclaimer - David C is a friend.

</comment><comment><USER8> I did not see in the presentation the following code snippet:

" _from twisted.internet import protocol, reactor_ "

Somehow I feel cheated... ;) :P

</comment><comment><USER9> Here is the video from PyCon Canada 2012 (with download link and such): [http://pyvideo.org/video/1601/twisted-history-of-python- pack...](http://pyvideo.org/video/1601/twisted-history-of-python-packaging)

</comment><comment><USER10> It's hard to tell with just the slides (and no talk), but it seems like this isn't presenting the complete/correct picture. Pip can use distribute or setuptools - it's not exactly an alternative as slide 31 makes it seem from just the text.

On a higher level, while it's interesting to know the evolution that things have taken, it's really not that complicated anymore - I haven't run into issues with Python packaging with ages; since pip is essentially fully featured (even including uninstallation), and pip is capable of working from source, I don't run into any issues when I use virtualenv (as everyone should be doing - and as is integrated into CPython since 3.3 anyway).

Python packaging has experimented with several different approaches, but it seems to have found the magical combination - in fact, I often miss the virtualenv + pip approach when working with other packaging systems in other languages (such as Haskell's cabal).

<comment><USER4>
      >  it's really not that complicated anymore

Depends on your use-case. I wasn't at the talk (and haven't watched the video, yet), but apparently there was a bit of a 'heated' debate during the question portion of the talk. Apparently some people from the scientific Python community have given up waiting for their issues to be addressed and are working on their own packaging solution to meet their needs.

If most of your modules are pure-Python or maybe a little bit of C, then you might not be running into the warts that the current packaging systems have.

Also, running 'pip install package' hides what kind of lengths that developers/package maintainers have to go through to get things working correctly. That's also part of the discussion when talking about a decent packaging system.

      > I often miss the virtualenv + pip approach

Perl's "perlbrew + cpanm" approach is more fully featured. I miss having a 'requirements.txt' type capability, but perlbrew downloads/compiles Perl, so each environment can have a different version of Perl, which is a little more complex with virtualenv.

</comment></comment><comment><USER11> Python's not awesome packaging back in the easy_install days really put me off of using django as much as I could have. I liked python a lot, but I ended up in ruby more because gems were a much nicer way to go and bundler made it nice. Good to see python catching up a bit in that regard, but I enjoy ruby and Sinatra too much to switch back at this point.

<comment><USER12> So what exactly is the problem with easy_install? I just recently discovered it and it seems quite nice to me.

<comment><USER11> Package discovery was annoying. With Ruby, gems, and bundler I can define my project gems and install them with 'bundle install'. Any machine I move to it does that. It's fantastic.

With node and npm you can do more or less the same thing.

Maybe with easy_install you can now, but I remember having to manually download packages and easy_install them. No package management, no easy discovery, no project dependency management.</comment></comment></comment>


Male Fruit Flies, Spurned by Females Turn to Alcohol - <AUTHOR> http://www.nytimes.com/2012/03/16/health/male-fruit-flies-spurned-by-females-turn-to-alcohol.html

<comment><USER2> At least we have something in common with these guys.</comment>


Machine Learning/Deep Learning - <AUTHOR> How do I load my own dataset in list form into a neural network I keep hitting a brick of errors, regarding the list shape when trying to transpose the data or use the np.dot function. Most tutorials for various machine learning libraries use their own datasets like scikit-learn and keras <comment><USER2> check out pandas</comment>


Interruptions at Work: "Ban Keyboard Cat From The Bedroom" - <AUTHOR> http://47seagulls.com/ban-keyboard-cat-from-the-bedroom/ <comment><USER2> Tee-hee.</comment>


Apple fears Samsung tablet will 'seduce' customers, court told - <AUTHOR> http://www.smh.com.au/digital-life/tablets/apple-fears-samsung-tablet-will-seduce-customers-court-told-20110929-1kyl5.html

<comment><USER2> It must be nice having a legal monopoly upheld for you on a whole market segment. But by all means, lets ignore Apple banning competition en-masse. Lets discuss how Microsoft is leeching money of competing platforms instead. That's just so much better.

I'm seriously looking forward to a future without all this patent bullshit. Doing any real business in this climate seems borderline impossible. And doing any kind of innovation seems even harder.

</comment><comment><USER3> Wow. I am totally confused now.

"Apple is suing Samsung for patent infringement arguing the firm "slavishly" copied its iPad."

"Today in court Samsung clarified that the film is "not relied on as prior art because look and feel is not an issue [in this case] - it would be relevant to a design case"."

So... Are they suing because they copied the look and feel or not?

</comment><comment><USER4> Seriously, what the hell is going on with these lawsuits? Is Apple really on a mission to prove that with enough money you can win any legal battle?

</comment><comment><USER5> Asking because I do not know. Is Australian law so different that this kind of an argument is actually persuasive? "You should block our competitor from selling XYZ, because it is such a nice product that we might lose customers to them."

</comment><comment><USER6> Didn't Apple already lose this fight?

[http://en.wikipedia.org/wiki/Apple_Computer,_Inc._v._Microso...](http://en.wikipedia.org/wiki/Apple_Computer,_Inc._v._Microsoft_Corporation)

</comment><comment><USER7> These quotes are taken out of context. When displayed later in the piece they paint the full picture – Apple believes the Galaxy Tab 2 is infringing on its creative work in hopes to steal customers.

Boring article that relies on hyperbole for clicks. I feel used.</comment>


Things to Consider When Building a Website in China - <AUTHOR> http://www.labsterx.com/blog/things-to-consider-when-building-a-website-in-china-9.shtml <comment><USER2> Well this post is spot on. Everyone knows that these services are blocked but we still, due to our unconscious mind, add these code while building a website there.

This post provides us with a not-t0-do list while working in China.

</comment><comment><USER3> Nice article. Will keep in mind! Thanks!</comment>


The school that gives every student an iPad - <AUTHOR> http://www.techradar.com/news/computing/apple/the-school-that-gives-every-student-an-ipad-915539

<comment><USER2> This is a great case study for other school administrators looking to propose a similar setup. iPad's are less than a year old and they are already transforming many classrooms.</comment>


"Week of Scala" with Manning Publications - Scala books 50% off - <AUTHOR> http://blog.typesafe.com/week-of-scala-with-manning-publications

<comment><USER2> Scala is definitely worth the time to learn properly, in my opinion. The convenience features are pretty good, and its a lot more usable than other FP languages due to the fact that you can "opt into" java-style code when it feels necessary.

I can't quite vouch for Odersky's "Programming in Scala", however. For something presented much like the definitive source, it never went into the edge cases, and the chapters get smaller and smaller. The chapter on parsing is woefully incomplete, failing to explain how to use the base feature set apart from recognising a grammar (no info on usage). Explanations on certain things like implicits also left something to be desired.

These books might be good though.

</comment><comment><USER3> I love Scala but I'm sick and tired of all these MEAP books, they never seem to finish them (or maybe that's my imagination).</comment>


Ask HN: Django Deploy Recommendations - <AUTHOR> I have an app that uses Django Python and Postgresql.
Right now is running under Linux/Apache/mod_wsgi, how ever have read about Nginx and Gunicorn (also uwsgi and others) as a better option...
I would like to read your recommendations (advantages and disadvantages) about deploying django.
PS: I am mainly developer so I lack a lot of knowledge about sysadmin. <comment><USER2> I recommend nginx in front of gunicorn. This way nginx can sit up front and do what it does best: serve static media files and buffer requests and responses.

Set up gunicorn under some kind of process manager. I use daemontools, but runit, upstart, monit, and others can work very well too.

For updating code on the server, I'm a big fan of keeping it simple, and to me that means writing a small shell script that ssh's into your machine and runs the proper commands to update the code and send a HUP signal to gunicorn.

You can even set up this script as a git post-commit hook, so that every time you push, your code is updated. If you have a robust test suite, you can set up a Hudson instance to run this command when all tests pass.

If you plan to have long-lived connections (comet, many requests out to third party services), then make sure you set up gunicorn to use Eventlet workers. What that will do is transform your code into asynchronous evented code using coroutines. But you most likely won't have to worry about that.

<comment><USER3> Beautiful summary of a nice setup indeed. Although, I would run in a virtual environment, don't you think that's a good idea? By the way, Eventlet workers sounds nice - how does that compare to using Twisted for aIO?

<comment><USER2> Yeah virtualenv is incredible, I use it for everything. Eventlet is comparable to Twisted, but with a slightly different ideology. You really have to try them both and decide which one fits better to your brain.

</comment></comment></comment><comment><USER4> Another great tool that hasn't been mentioned yet is Fabric. Combined with a VCS it makes pushing changes to the server an absolute breeze. With the simple fabfile shown below I only need to do "fab update" to push all of the latest code to the server:

      #!/usr/bin/env python
      from fabric.api import *

      env.hosts = ['example.com']

      def update():
    	  local("./manage.py validate")
    	  local("./manage.py test core")
    	  with cd("/var/www/example"):
      		  sudo("git pull origin master", user="www-data")
    		  sudo("./manage.py migrate --all", user="www-data")
      		  sudo("touch apache/django.wsgi", user="www-data")

</comment><comment><USER5> Here's what I've found that helps tremendously:

-Keep your software in a DVCS of some sort. I find Git and Mercurial to be great.

-Use virtualenv to abstract away from your current environment's Python distribution. Start clean and download the packages you need.

-Create a requirements file listing the packages that you need for you program. Put it in the same format that the 'pip freeze' command outputs, so that installing a new environment is quick and easy.

-Set up a local configuration file (not managed by version control) and a base configuration file with all the settings that are immutable. Import the local config file within settings.py so as to avoid local setting conflicts.

-In production, set up an nginx frontend to serve static files, and route all the Django urls to an Apache backend (or Tornado, or whichever App server you may want to use).

-I haven't tried anything else, but WSGI is super intuitive and easy to use.

-If you need it, try using Django-South for versioning database schemas. Do take into account that it has a bit of a learning curve.

-You don't need to put your python files in /var/www, any directory will do.

<comment><USER6> These are some excellent points, the only things we do differently are:

\- We keep a local settings file for each environment, and those /are/ versioned. We have a /settings_local directory which contains each of the variants (localdev/dev/staging/df/live). The appropriate one is sym linked to /settings_local.py, which in turn is imported into settings.py.

\- We bypass Apache entirely and just plug Nginx FCGI into Django directly.

\- We have a separate pip requirements file for each environment (also kept in source control)

\- We use a Puppet to configure our systems. Perosonally though, I have found Puppet to have an exceptionally steep learning curve, so you may want to shop around.

I hope that helps!

<comment><USER7> I use fabric for deployment, testing, log maintenance, database backups. For almost everything on remote machines.

Learning curve is rather not steep.

<comment><USER8> +1 for fabric.

If you haven't used fabric, give it a try. It's an extremely simple API for performing remote management, deployment, etc.

I've tried numerous tools but nothing compares to fabric. It is just so easy and it always works. I can't imagine not seeing a fabfile.py in my project's deploy/ dir anymore, it just wouldn't be right.

</comment></comment></comment></comment><comment><USER9> I run nginx as a static file server and reverse proxy to uwsgi (via a local socket). I find the setup to be simpler than Apache/mod_wsgi, though both approaches meet my performance needs without any trouble. I run PostgreSQL as my database. (This is on a reasonably low traffic, but fairly data heavy site. It all runs comfortable on a Linode 512)

I'll just reiterate what Daishiman said regarding DVCS (like git or mercurial), virtualenv, and South. Use them! All three will make your life much easier 6 months from now.

</comment><comment><USER10> <http://www.djangy.com> \- in private beta, by wednesday we're hoping to invite several hundred more users.

if you're in a time crunch, email me (email@example.com)

EDIT: email

<comment><USER4> Having had a quick browse it looks like Heroku for Django, which would be absolutely awesome!

Are you using EC2 behind the scenes, or something else?

You mention database support, but I couldn't see anything about specific vendors. Will there be support for spatial extensions? I'm specifically thinking about Postgres and PostGIS.

Looks like a great project though - I've signed myself up for a beta invite!

<comment><USER10> Thanks, we've been getting GREAT feedback and iterating rapidly.

Yes, we're using EC2 on the backend, and it's distributed and scalable. We currently give each app a MySQL database, but we've been getting a ton of requests for other database support, so it's something we're looking into. Unfortunately there are quite a few other requirements to plow through before we get to that particular feature.

Look for updates this week.

</comment></comment></comment><comment><USER11> nginx in front of gunicorn is fast, simple, efficient with resources, and reasonably scalable. Today, there's nothing else I would recommend.

Of course, use [d]vcs, setup.py, virtualenv, pip, and south (and a reasonable test suite!). Using these along with gunicorn as mentioned above has streamlined my deployment to a "one-click" process that leverages all of these packages to create an isolated, repeatable, rock-solid [re-]deployment with nothing more than a generic Makefile.

I've been doing Django development and deployment for over four years now and it is the closest thing to a "silver bullet" I've found.

</comment><comment><USER12> I was in the same boat a few months ago and found this PyCon workshop by Jacob Kaplan-Moss extremely helpful

<http://blip.tv/file/3632436>

<http://github.com/jacobian/django-deployment-workshop>

</comment><comment><USER13> I usually deploy it is nginx => Django FastCGI via flup. Make sure to use prefork instead of threaded method. On top of that I run each Django project inside individual virtualenv's [1], where virtualenvwrapper [2] simplifies the process. Since all my servers are Debian-based, I use my own creation called flint [3] to automatically start/stop the FastCGI processes on boot/shutdown. For deploying code I use fabric [4] and then simply $ flint restart_all or $ flint restart myproject to reload the code.

[1] virtualenv - <http://virtualenv.openplans.org/>

[2] virtualenvwrapper - <http://www.doughellmann.com/projects/virtualenvwrapper/>

[3] flint - <http://igorpartola.com/projects/flint>

[4] fabric - <http://docs.fabfile.org/0.9.2/>

</comment><comment><USER14> <http://jacobian.org/writing/django-apps-with-buildout/>

Buildout. Like virtualenv but handles downloading correct required package versions too. gives you an isolated shell and django manager in your project directory. You can then distribute your project to different people and servers and ensure the correct version of python, django, etc. is used.

<comment><USER15> FWIW, I don't believe Jacob recommends zc.buildout any longer. virtualenv + pip is easier and more Pythonic instead of Zope-like.

<comment><USER14> He uses Buildout in conjunction with Fabric as recently as <http://github.com/jacobian/django-deployment-workshop> also linked on this page. I think a fair assessment is that buildout is much more powerful but also more complicated than using pip alone. It greatly reduces boilerplate for spinning up new sites for me now, but I could also see myself switching to creating some snapshots of pip only skeleton projects in the future.

</comment></comment></comment><comment><USER16> Maybe try <http://cloudsilverlining.org> (<http://cloudsilverlining.org/django-quickstart.html>)

Anyway, Apache/mod_wsgi is perfectly fine and I wouldn't bother tweaking out that part unless you have an issue with it.

I'd strongly recommend using a cloud provider so you can test your deployment process. You can do it without a cloud provider, but you probably won't because it won't be trivially easy to create new servers.

</comment><comment><USER17> Use varnish in front of apache. Why not nginx, lighttpd? Because apache has market share - there's modules for nearly everything. Going farther off the beaten path will just turn into a headache as you'll eventually want/need functionality offered by a application with a larger market share.

</comment><comment><USER18> We're running nginx proxying to Apache/mod_wsgi on RHEL. I've heard from the Parsely guys that they got their memory usage waaaay down by skipping Apache and just using the nginx equivalent of mod_python - I seem to remember that they weren't sure how well it would scale, though.

</comment><comment><USER19> Most of the recommendations here are good. Par for the course in Django deployments and administration is virtualenv, Fabric, pip, and per-server settings files.

On top of those, we use Apache, mod_wsgi, Fabric (in a slightly-weird way which I'll get into below), mod_xsendfile, Mercurial, and a home-grown migration library.

Serving static files via nginx or Apache is fine, but generally requires that you copy them out of your various pluggable apps and into some static docroot on every deploy. We use mod_xsendfile instead (with another Django helper app, which I'm hoping to get onto Bitbucket in the next week or two) to directly serve static assets out of the 'media' directory of each installed Django app.

Our use of Fabric is slightly non-standard, too, as I mentioned; instead of writing a single 'fabfile', we have a collection of development, testing, and deployment commands which use Fabric as a very high-level Python API for distributed command execution.

Regardless of the stack you choose, as a non-sysadmin, there are a few habits and practices I'd strongly recommend you keep in mind to avoid getting yourself into a painful place later:

First, set up a staging environment that looks as much like your production setup as possible. It can be on the same server, or in a local virtual machine, or (even better) on a spare server that can be pressed into duty if the primary ever goes down.

You should always have a recent dump of your production database loaded into this environment, and the ability to pull a more up-to-date snapshot in quickly. (This will help with recovering from major "whoopsies" in production, too, and force you to continually test your backups.)

Second, keep copious, detailed notes on _everything_ you do while deploying, updating, or troubleshooting production issues. I'm literally talking about stuff like this:

      Created uploads directory:
      mkdir /var/www/uploads
      chown www /var/www/uploads
      chmod -x /var/www/uploads

      Configured upload directory in Django settings:
      echo "UPLOAD_FILE_DIRECTORY = /var/www/uploads" >> /usr/local/deploy/myapp/src/myapp/settings.py

Some sysadmins I've worked with literally copy their entire .bash_history file for each session into a running log, though I find that tends to end up with a lot of noise ('cd ..; cd ..; pwd; ls; etc.') that doesn't help when you're trying to triage an issue.

I like to use simple text files (backed up in Dropbox, of course) for these notes, but a wiki is fine if that's your preference. It may seem like pointless duplication of effort at first, but grepping a directory full of notes to see what you changed is a much more reliable triage technique than counting on yourself to remember a bunch of details. This goes double when you're panicking in the middle of a production outage.

Beyond that, everything else is gravy. If you're using Apache/mod_wsgi now, I'd recommend you keep using it until you hit a real scaling limit, or have spare cycles to try out a secondary hosting setup post-launch.

(In case anyone's interested in that migration tool, it's on Bitbucket: <https://bitbucket.org/rcoder/finch/overview> )

</comment><comment><USER20> You really should use nginx to serve static files and route everything else to apache. The setup is dead simple.

<comment><USER21> Know of any tutorials appropriate for a Linux server noob (I'm comfortable with the Linux command line but haven't done much web deployment other than basic one-click xampp stuff)?

<comment><USER22> It's quite easy. Install nginx, update the config file, generally found in '/etc/nginx/sites-enabled/'

There are plenty of good nginx config examples out there, but to use it as a reverse proxy you want to do something like: location / { proxy_pass <http://127.0.0.1:8080/>; }

You also need to change your ports.conf file for apache to make it run on a different port if you want nginx running on port 80.

</comment></comment></comment><comment><USER23> use apache mod wsgi for django and nginx as a reverse proxy for serving static content.

this way you get the apache you know and love as well as a minimal memory footprint.</comment>