Python has brought computer programming to a vast new audience - <AUTHOR> https://www.economist.com/science-and-technology/2018/07/21/python-has-brought-computer-programming-to-a-vast-new-audience <comment><USER3> The thing I love most about the language is its conciseness, on several levels.

It's syntactically concise because of its use of whitespace and indentation instead of curly braces.

Expressions are often concise because of things like list slicing and list expressions.

It can be linguistically concise, because it is so easy to fiddle with the data model of your classes, to customize their behavior at a deeper level. For example, it is so quick to design a suite of classes that have algebraic operators, which leads to elegant mathematical expressions of your custom GUI objects for example. But you can also change the way classes are instantiated by overriding Class.__new__ which I've used to make powerful libraries that are a joy to use.

Further elegance can be added through creative use of the flexible argument passing machinery, and the lovely way that functions are also objects.

Your application architecture tends to be concise because there are so many existing libraries, you can often design your application at a more interesting higher level. For example, you don't have to worry about the size of int's.

My big regret with Python 3.0 is that the scoping rules in list expressions changed to prohibit modification of variables in surrounding scope. This degraded the utility of list expressions. The work around is so long-winded.

Besides the odd gripe here and there, the language really gives me a warm glow.

<comment><USER4> _" Besides the odd gripe here and there, the language really gives me a warm glow."_

That's a perfect summary of my feeling towards it, too. If the PSF puts up a GoFundMe for sending Guido on a nice vacation of his choosing, I will be happy to chip in a few bucks. Same goes for Linus when he hands over the reins, and a few other maintainers who probably cannot be adequately compensated for the impact of their work.

<comment><USER5> I agree. I came to Python in 2000, after Perl (1996-1998), PHP (1999), Matlab (1992-1996), C++ (1990), Fortran (1989), C (1988), Pascal (1988), Assembly (1984-86) and Basic (1981-83).

After all those, I found Python, as the saying goes, really does "fit your brain" [1]. Since discovering Python 18 years ago, I have looked at Haskell, successfully avoided Java, and promised myself to "one day" do more JS. Still, Python remains 95% of what I do, and I don't see a problem with that :)

[1] "Python fits your brain" was the theme of the 9th International Python Convention in 2001.

<comment><USER6> > "Python fits your brain"

For me, I find using python is like touching both data and code with my hands.

As much as it's trendy to bash Object Oriented languages, the way python allows to lookup all variables and method on a class or an object makes it like using your hands:

dir(MyClass) help(MyClass) dir(my_object) help(my_object)

etc...

<comment><USER7> If you'd like to go further along that path, and I'd really recommend trying to learn a lisp. How to Design Programs[0] is good gentle introduction if you're new to the ideas of lisp or functional programming, and SICP[1][2] is the old classic.

[0] [http://www.ccs.neu.edu/home/matthias/HtDP2e/index.html](http://www.ccs.neu.edu/home/matthias/HtDP2e/index.html)

[1] [http://web.mit.edu/alexmv/6.037/sicp.pdf](http://web.mit.edu/alexmv/6.037/sicp.pdf)

[2][https://www.youtube.com/watch?v=2Op3QLzMgSY&list=PLE18841CAB...](https://www.youtube.com/watch?v=2Op3QLzMgSY&list=PLE18841CABEA24090)

<comment><USER6> Which one though?

I have looked at LISPs, but it's difficult to pick one to invest time in. Because I am so restricted on time I have to stick to languages which are used in the industry (so my fun has real-life ROI), which I think boils down to CL which is often touted as old-fashion and its market seems to shrink slowly, and Clojure which means the JVM and mainly Java libraries and high mem requirements.

For pure fun and practicality, Racket does seem up on the "list", but not used at all in the industry. A lot of languages (Python, Rust) are adopting the good parts of lisp (except for the minimal syntax, sadly), and I'm getting better mileage from spending time learning and becoming better at those than starting from scratch in a language that I won't be able to use during work hours.

<comment><USER7> So, I really like How To Design Programs, because the thing it got across for me is how to appropriately think in a functional way. It walks you through building data structures and full programs in a really nice method. I've now been going through SICP, and nothing has seemed out of place as the notation is almost identical, and the few places that it isn't are not hard to translate.

<comment><USER6> My question was more about which program language, which Lisp to choose in 2018?

<comment><USER7> Oh, so How To Design Programs uses "teaching" languages, which are sub- languages of Racket. Going from that book to learning the full features of Racket has been fun.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> > _But in the past 12 months Google users in America have searched for Python > more often than for Kim Kardashian, a reality-TV star._

This seemed so unlikely that I thought the Economist had incorrectly used the Google Trends comparison tool, but they are right:

[https://trends.google.com/trends/explore?geo=US&q=%2Fm%2F05z...](https://trends.google.com/trends/explore?geo=US&q=%2Fm%2F05z1_,%2Fm%2F0261x8t)

The gap is even bigger when you consider a worldwide audience (i.e. one less focused on American gossip):

[https://trends.google.com/trends/explore?q=%2Fm%2F05z1_,%2Fm...](https://trends.google.com/trends/explore?q=%2Fm%2F05z1_,%2Fm%2F0261x8t)

<comment><USER9> To be fair, a single python dev is going to search for queries about python dozens of times per day. Even the most ardent Kardashian fan is unlikely to search for Kardashians in any volume even close to that.

<comment><USER10> If we're using Google to approximate mind share them it's skewed way farther than that. Nobody who follows the then is sitting doing Google searches. They're already following them on Snapchat, Facebook, Insta, and Twitter.

You only get searches with breaking tmz news.

... I say this with detailed observations of my girlfriend's media habits.

</comment></comment></comment><comment><USER11> Someone else said this on HN: Python is the second best language in almost every field of computing.

That's why there's a library for everything in Python.

It's limitations are also not terrible for most people. If you want super fast, you will know how to do that some other way. If you just want simple and easy to read, you use Python.

<comment><USER12> > Someone else said this on HN: Python is the second best language in almost > every field of computing.

It isn't. Frankly, it isn't even top 3 in any "field of computing" depending on how you define "field of computing".

What python has going for it is the evangelists who do a great job of spreading the word and of course funding - they have lots of money backing the language. Also, being an interpreted language, it has a much lower barrier to entry.

I'm not much of a fan of python and its block syntax - I very much prefer braces or markers delineating the beginning and end of code blocks.

Also, python wants to be everything ( functional, OO, imperative, etc ) and hence is the worst language to learn programming language topics in my humble opinion.

My hope is that python will serve as a "gateway drug" to other languages like ruby, ML, C/C++, SQL, etc. So that people will learn what programming and languages are rather using python as a glorified calculator which I'm sure many are doing.

<comment><USER13> "My hope is that python will serve as a "gateway drug" to other languages like ruby, ML, C/C++, SQL"

Your inclusion of SQL in that list really shows you have no idea what you're talking about.

<comment><USER14> SQL is immensely successful.

<comment><USER15> Yea, so is HTML, but if someones list of useful programming languages went C#, HTML, ruby, SQL. You would have to admit too that you would consider that person very inexperianced. It't like listing a blender in a list of your favorite power tools. It's not that it's not useful for what it does, it just doesn't belong in that particular comparison.

<comment><USER16> SQL stands for standardized query language.

<comment><USER17> It was originally SEQUEL (Structured English Query Language) and then changed to SQL (Structured Query Language) due to acronym conflict with Hawker Siddeley's trademark.

[https://en.wikipedia.org/wiki/SQL#History](https://en.wikipedia.org/wiki/SQL#History)

</comment></comment></comment></comment></comment></comment></comment><comment><USER18> Read the comments here. Look at the diversity of opinions and the number of them that, while professing love for Python, directly contradict each other. Python is verbose|concise, simple|advanced, disciplined|experimental, modern|classical.

It goes to show: something doesn't need to be actually-better. It doesn't need to be actually-simpler. It doesn't need to make your job easier or better. It needs to make people _think_ it does that.

Python is not, in any way, revolutionary. Several contemporaries exist with similar design constraints. But Python persists because it's created a community that considers itself hygienic for avoiding any other aspect of programming. And by doing this, it can be superlative in any aspect it wants to be. It simply conjures the worst example from any given competitor and those are, by proxy, pushed onto all of them.

Did we see a glowing review of how Javascript did this? No. Javascript, despite being the most deployed programming environment family in human history, didn't do this. Python did. Because it says so, over and over.

Even if you disagree with that assessment, I think Python has had a lot less to do with pushing python to new audiences. Its community has projected it outward with an impressive degree of vigor over the years, forcing it on more and more people.

<comment><USER19> I believe SQL is "the most deployed programming environment family in human history". SQLite is seemingly everywhere.

Your second paragraph does not follow from the first. It could instead be that HN commenters are poor at this sort of analysis, or that people in general are poor at this sort of analysis.

What were the contemporaries with similar design constraints? I started looking at Python in 1995, and the major alternatives were Perl and Tcl. I don't remember anything close than those to Python.

I agree that Python is not revolutionary. I don't agree with your statement "avoiding any other aspect of programming". Van Rossum's ABC experience strongly influenced his ideas in how programming should be accessible to non- professional programmers, and that type of design is certainly an aspect of programming, though often overlooked.

I really don't understand "forcing it on more and more people." In some sense it's true - Python is a widely used teaching language, and as such the teachers are forcing ever more students to learn it; Python is the de facto required language for a number of fields, so again people are 'forced' to use it because their tools are often in Python.

But I don't think that's the type of force you mean?

<comment><USER18> > I believe SQL is "the most deployed programming environment family in human > history". SQLite is seemingly everywhere.

How many computers have a browser on them vs an interactive and instructable version of an SQL server?

<comment><USER19> You'll need to define some terms here. What is a "programming environment family"? Does BASIC in its various forms count? That includes Visual Basic and VBA.

Do people need to use it, or could it just be sitting there, like BASICA.EXE on an old MS-DOS distribution?

For that matter, the DOS shell is still hanging on, and it's a programming environment.

Most people use browsers on a smart phone or pad, with (as I understand it) no access to a programming environment.

SQLite is not a server.

<comment><USER18> I think that BASIC might actually be the dark horse I haven't considered here! Nice! I wonder if the fact that it isn't shipped on the other platforms evens that out though.

I just pulled out my surface book and Basic doesn't seem to be on my command line. I wonder if that's unique.

> SQLite is not a server.

Did I imply it was? SQLite is not a programming environment when shipped, either. An SQL server with a sufficiently large editor buffer might be able to squeak by as one.

</comment></comment></comment></comment></comment><comment><USER4> I remember _hating_ the whitespace thing so much when I started with Python circa 2.4, but have really come to love the language in a lot of domains since then.

A huge, huge "thank you" to Mr. van Rossum for creating this quirky language that I've become so fond of and for the countless hours of his life he's given to the project.

<comment><USER20> from __future__ import braces

I hated the white-space thing until I discovered that. For whatever reason this made me get over myself and learn to love the tab/space argument that is somewhat akin to the vi/emacs argument.

<comment><USER21> Oh, I see. I use spaces and vim (I do, but who cares). Let's start a flamewar. /s

Every time I think about tabs/spaces, I think about that episode in Silicon Valley [1]. Hilariously accurate, I have the exact same feeling when somebody uses the mouse to copy something or navigate. The cringe makes me feel alive (I guess this is the ultimate reason for those flamewars. And neurotic tendencies, of course).

[1]: [https://youtu.be/SsoOG6ZeyUI](https://youtu.be/SsoOG6ZeyUI)

<comment><USER22>
      :set ts=8 sts=0 sw=8 expandtab

I have secrets.

<comment><USER10> Thank you for this. I've been typing out:

:set tabstop=4

:set shiftwidth=4

:set expandtab

Like a pleb for years. What's sts?

<comment><USER23> Put them in your .vimrc, and put your dotfiles in git.

Hint: searching GitHub for "dotfiles" can be a fun and productive way to spend a Friday afternoon :-)

<comment><USER10> I mean locally yes, but I'm poking around on servers frequently enough and writing python there (Hey, I'm no saint) that it gets committed to memory eventually.

</comment></comment></comment></comment></comment></comment></comment><comment><USER24> There seems to be a sentiment that Python is a kids language - but I think of Python as a language that scales with your experience. You can do some really interesting and complex things and I'm really appreciative of my deep understanding of the language through a decade of heavy use, open source contribution, and project ownership.

Recently I released a package which allows you to dynamically create or change function signatures and went deep into `typing` and `inspect`, and found the experience rewarding.

[https://pypi.org/project/python-forge/](https://pypi.org/project/python- forge/)

<comment><USER25> > There seems to be a sentiment that Python is a kids language

I only hear this from developers that have never used Python or work in problem domains where the language is genuinely not better (e.g. low-latency distributed services, embedded devices/IoT sensors).

I've scaled Python & PHP web apps to a hundred million monthly visitors on Top 20 US destinations on very limited hardware (6-10 machines). It's surprising how much you can get out of the language if you know how to take advantage of the strengths.

<comment><USER26> Even IoT sensors are easier to program with micropython.

What I find worrying is the the language is changing to suit those people, e.g. type hints, rather than teaching them learning to use the language. You don't complain you can't use a hammer as a screw driver, you just don't use a hammer.

<comment><USER27> I agree that sensors are easier with Micropython and will use that if I can (unfortunately the C++/Arduino ecosystem is much, much larger). However, type hints are a fantastic feature and I can't recommend them enough to anyone who writes software for a living. It makes maintenance at least an order of magnitude easier.

<comment><USER26> 1). C++/Arduino for micro controllers ends up using more memory than micropython. I've managed to get the binary sizes to 1/4 by doing cross compiles and linking things my self.

2). Types hints are a terrible non-pythonic kludge to solve a people problem in code. People who want to write java with whitespace and no curly brackets love them. CPython has made a number of bad decisions lately that make the language less usable. I've moved quite a bit of my everyday code to PyPy. Since they eat their own dog food they are keeping their dialect sane.

<comment><USER27> Type hints are optional, why not just not use them?

How are you going to know the type of an object that gets passed to a function? Why is it better to go around the codebase looking for things instead of glancing at the function signature?

<comment><USER26> The type (class really) of an object tells you nothing about how it will behave. What you need to do is check the methods attached to the object, not class, at runtime:

1) Exist.

2) Behave how you want them to behave.

I've written plenty of code that got that done by using an assert just after the docstring.

People will monkey patch, if not in your code base, than in a library you're importing.

</comment></comment></comment></comment></comment></comment></comment><comment><USER28> For some reason, I never liked Python. I don't know... its classes look weird with all those self, __init__, etc. The __init__.py for packages is also a strange choice to me. It has classes, but no interfaces. The language is even slower than PHP. Does Python have type hinting? What all the hype is about? I just don't get it.

<comment><USER29> Agree. I can't understand people praising the lightness and readability while at the same time stuffing their code with underscores. Also it seems often inconsistent. Like some functions are used as prefix (len(x)) while other are suffix (x.clear()), I assume for historical reasons. Or like the "b if a else c" which reverse the logical order (you evaluate the condition then you can tell if you go one way or another). Same for [x for x in list], the Linq approach is more logical (for x in list select x).

I understand why people like it. And I like scripting languages, it's nice to find a piece of script somewhere and being able to edit it directly having to find the correct source code and recompiling. But it has lots of shortfalls and quirks too (multi-threading, dependencies management, deployment, no refactoring/static checking, python 2 vs 3, 50 different kinds of strings, APIs full of abbreviations which probably meant something to their creators 20 years ago, etc).

It's a nice language, among others. Not an "ultimate" language by any means in my opinion.

<comment><USER30> Those are all valid gripes, but for most use-cases (where performance isn't critical), I haven't found anything better than Python yet. Ruby is an aesthetically nicer language and doesn't have those issues you mentioned in the first paragraph, but the Python ecosystem is amazing and better than Ruby's IMO. And compared to most other languages Python still feels very clean, terse, and pretty to me.

>multi-threading

Most interpreted languages have a GIL, sadly. But yes, this is annoying.

>dependencies management

Annoying, but resolved in part with new projects like pipenv, and also still a big issue for other popular languages.

>deployment

Also helped by pipenv, and Facebook's xar ([https://github.com/facebookincubator/xar](https://github.com/facebookincubator/xar)) is new but looks promising.

>no refactoring/static checking

It's a dynamic language. But this is now possible to some extent with type hints.

>python 2 vs 3

They did screw this up, yeah. Python 3 fixes a ton of issues and is a better language, but the backwards incompatibility created way too many problems.

>50 different kinds of strings

There are 2 kinds: bytes and unicode.

>APIs full of abbreviations which probably meant something to their creators 20 years ago

Can you give some examples? This is an issue in a few of the old standard libraries, but even then it's not too common. This is way, way more prevalent in PHP and C than in Python.

<comment><USER29> > There are 2 kinds: bytes and unicode.

No I mean single quote, double quote, triple double quotes, r prefix, u prefix, f prefix, combinations, etc

> Can you give some examples

The one I have in mind is the os library, which I use a lot (like why st_mtime?).

<comment><USER30> >No I mean single quote, double quote, triple double quotes, r prefix, u prefix, f prefix, combinations, etc

These are all extremely helpful, though. All of those quote combinations are equivalent, and can be used to prevent having to escape quotes within the string. The u prefix is gone from Python 3, r is a raw string (which many other languages have, like C#'s @ prefix), and f is a new feature which generated a lot of debate but basically allows interpolation similar to Ruby and ES6.

>The one I have in mind is the os library, which I use a lot (like why st_mtime?).

That's the one I thought you were going to bring up. I agree the naming conventions in the os module have a lot of warts. The function names could use a refresh.

<comment><USER19> You wrote "These are all extremely helpful".

I disagree, in that I think they are only somewhat helpful. If we only had double-quoted strings, and not single-quoted strings, then I think there would be little difference to the language or its quality of use.

Going back to the question of "why st_mtime?" \- that's because os.stat() is a wrapper around the POSIX stat(2) system call. My FreeBSD man page defines it as:

       st_mtim   Time when file data last modified.  Changed by the mkdir(2),
                 mkfifo(2), mknod(2), utimes(2), write(2) and writev(2) sys-
                 tem calls.

The Python implementation of stat for MS Windows is basically doing its own emulation layer for POSIX compatibility.

</comment></comment></comment></comment></comment></comment><comment><USER31> For me it's somewhat strange that it is universally presented as a beginner's language. Python would be hugely confusing to me if I didn't keep the underlying C model -- dynamically allocated objects with reference counts -- in mind at all time. Together with a lot of protocol that is largely arbitrary.

<comment><USER8> When teaching Python to beginners, I struggle with the concept of mutability -- e.g. `sorted(mylist) vs mylist.sort()` without being able to refer to the concepts of memory and references. But it's not a terrible obstacle if you drill in extra adherence to logic and testing and jumping into REPL. After enough trial-and-error with `x is y` `x == y` and `id(x)`, the abstract concept comes through without having to acknowledge the existence of reference count.

<comment><USER32> Hardly a beginner at programming, but I also struggled with this when I picked up Python recently. The documentation doesn't make it obvious when functions have this sort of side effect, so like your students I play with the REPL to establish exactly what a function will do. Even then an unexpected side effect was the source of the single most perplexing bug in my program. I imagine that in complex programs this philosophy of sometimes-mutability-sometimes-not must lie at the root of a huge amount of programming error.

</comment></comment></comment><comment><USER21> Am I the only who thinks that "90% of American parents want their kids to be computer scientists" is rather unsettling?

The market is currently full of people who are in for the money and will continue to be. It will be filled with people until supply meets demand. That the salaries will drop significantly is a natural result of this.

We had this pork cycle for teachers, doctors and other highly trained people. No one is benefitting from too many people who drive the prices down (although I'm not gonna say something as an employer, companies are happy about it - <USER2> profit margin will shrink but this can be compensated for using scaling). Those that are in for the money will leave (or continue to suffer in an unfulfilling job) and those that have passion can't sustain themselves (we can see this trend in indie game development today).

<comment><USER33> Maybe it makes sense to encourage your kids to go into blue collar jobs. In a future teeming with code monkeys, plumbers and electricians are going to be highly valuable.

As for the current career programmers, maybe we should unionize before our jobs are being taken by kids coming out of 2 week bootcamps (who have been taking programming classes since kindergarten).

<comment><USER34> _In a future teeming with code monkeys, plumbers and electricians are going to be highly valuable._

As a person who repaired quite a few toilets in their life

 _As for the current career programmers, maybe we should unionize before our jobs are being taken by kids coming out of 2 week bootcamps (who have been taking programming classes since kindergarten)._

I've seen such people(well, they started learning in primary school, not in kindergarten, but nevertheless) and two things stand in the way of this scenario:

1\. Barely anybody likes this line of work. I've had people who would really use some extra cash outright refuse to learn our trade because they found it boring. Apparently Our unique skill in the job market is an immunity to boredom.

2\. There's more to this job than programming. There's also working in teams which, despite the focus of pretty much every western education system on this, is something that people seem to learn only after a good few years of full-time work.

Also people fresh out of college/bootcamps tend to fall for the typical "nerd traps" like trying to build beautiful abstractions where there is no time nor need for that.

<comment><USER21> > Apparently Our unique skill in the job market is an immunity to boredom.

This is about right IMO. Most of the work is seriously boring. I was in meetings talking with software developers about API interfaces of legacy systems (with monologues about the intriguing question: "Why is the <insert stupid decision> a thing we have to stick with?" \- answer is always backwards support, btw) and I couldn't understand _why are they sitting here and why do they think their life is well spent doing that_? Anything is better - and they earn €3500-4500/month, so it isn't even that much for their 5-10 y/o careers.

Everything is better than this. I love programming, I've started when I was 10-11y/o, but I hate most things in the software industry. I love to program my own little tools, but I've become so fast building CRUD applications and apps that I have 200-300% efficiency (and thus a very high hourly rate) but I'm simultaneously so seriously bored that I have a hard time focussing on work because it's always the same.

\- - -

> I've seen such people

Me too: I've seen a kid (maybe 15-16) that has no A-level and dropped out of the 9th grade to work in a startup. Without any shares. I think he makes €10/hour maximum. I was 2 years older than him at that time and worked as a freelancer and had much more experience. Even 2 years earlier I had more skill than him. And I would never have considered to drop out of school back then because it's hilariously naïve. I can't understand how the startup could support it without any moral conflicts. Exploiting 15y/o and encouraging them to drop out is something I don't want to be involved in. But I guess this will happen a lot more in the next few years which is sad.

> Maybe it makes sense to encourage your kids to go into blue collar jobs.

Yeah, don't expect anything like a developer salary. Not even half of it.

My grandfather and my uncle have a blue collar company. They're operating with a 10% profit margin - sounds good, right? Wrong - if one of their employees is sick, they get into money problems really quick. Normally every employee needs to earn the company 2-3x of his salary to compensate for random events. They can't do that because the market doesn't allow them to - other people would do it for less than them and the quality is the same. Supply and demand will eventually lead to diminishing returns in all sectors. And if plumbing is too damn expensive, we have better incentives to automate the whole job.

</comment></comment></comment></comment><comment><USER35> Not only is Python easy to learn for beginners, it allows for some deeply expressive constructs and patterns that are difficult or impossible in other languages. This is why even though I started with C/C++ and Java pays the bills, Python is where my heart is. Thanks Guido.

<comment><USER36> Well yes, if you come from C/C++/Java, Python is going to feel that way ;)

</comment></comment><comment><USER37> Very appropriate timing. My son wanted to learn programming, so we started yesterday with python, using Jupyter notebooks on Azure (notebooks.azure.com). No setup, easy to create little code snippets, and he can do it all from his Chromebook. Python is intuitive, simple, useful; best first language in my opinion.

</comment><comment><USER38> In case anyone else was confused by the literary reference, "one with Nineveh and Tyre" is from Kipling's "Recessional":

[https://en.wikipedia.org/wiki/Recessional_(poem)](https://en.wikipedia.org/wiki/Recessional_\(poem\))

Which, I think, is the poem that made "lest we forget" a well-known phrase (though the original is from the Bible).

Nineveh (now Mosul, Iraq) and Tyre (in Lebanon) were great cities of their time, but now mostly known for their ruins. In Britain, they're commonly used as symbols of foregone empires.

</comment><comment><USER39> Python is a great language to start programming in. My biggest frustration with traditional programming languages (well, C/Java mostly) was just how much upfront effort and understand is required to do useful stuff. Whereas with python it is pretty easy to whip up a script, read input and transform it into output in real time etc.

That said, I think its also important for Python programmers to dabble at least a little bit with Java to really understand how OOP works. Python does have OOP but it has certain quirks which can confuse newcomers. Java helped to clarify my understanding of OOP a lot, even though I've only used it marginally.

<comment><USER30> Other than interfaces and generics (which would make no sense to add in Python, since it's dynamically typed), can you name some OOP features Java has that Python doesn't have?

<comment><USER39> This may sound super n00b but I really like that Java is explicit about everything. So for instance, you explicitly specify variables, methods as private with the keyword 'private'. In python you have to use an underscore, and its still not really private, its obfuscated. That's just one example, but in general I really like that kind of by-the-book verbosity, instead of having to mentally map it into the OOP concepts.

<comment><USER40> Why would you want to actually enforce privacy? That makes it harder for the user to patch. Better to provide a mild discouragement via "_name".

<comment><USER41> Because in traditional object-oriented design you would extend rather than patch. It's the open-closed principle.

There are many benefits to enforcing privacy, and one of the biggest ones is that you can make changes to the internals of your library without breaking your users' code, because they never had access to the internals.

<comment><USER40> You can get that benefit with Python. Name mangling helps. It gets the benefits of `final` without the annoying enforcement.

Don't stop me from patching your buggy code. If writing an extension is more efficient, that's how I'd solve the problem.

</comment></comment></comment></comment></comment></comment><comment><USER42> I think this comparison [1] in particular explains a lot of Python's continued success over the past 5-10 years. For a very long time, CRUD back-end programming was one of the biggest draws of new users to Python. In the last couple of years, interactive data analysis has completely overtaken it.

[1] [https://trends.google.com/trends/explore?date=all&geo=US&q=%...](https://trends.google.com/trends/explore?date=all&geo=US&q=%2Fm%2F06y_qx,%2Fm%2F0rphppq)

</comment><comment><USER43> The great advantage of Python is the vast amount of libraries out there for pretty much anything you can think of. As a C# developer that's the one thing, and probably the only, that I envy from Python.

<comment><USER44> I really dislike converting Python to a different language. What type is this? Go 5 libraries down to find out ;)

<comment><USER45> That's a common misunderstanding. Python's type system is in the unit tests necessary to ensure the code is doing what it should. This is a boon because all of the behavioral rules are co-located for efficient reference. ;)

<comment><USER40> It's more a traits system than a type system. Who cares if it's a list so long as I can append to it?

</comment></comment></comment></comment><comment><USER46> This seems misspoken. Python hasn't necessarily brought computer programming to a new audience. A new audience is being brought to computer programming. They just happen to be given python as their first steps.

There is nothing intrinsic to python that is helping these use cases. Some people like it. Some people don't. I have not seen studies showing any real advantage or disadvantage to it. Do those exist, and I've just missed them?

<comment><USER40> Perhaps. Or perhaps programming instructors like Python better. When I taught statistics, R was more popular and featureful for the task than Python, yet I chose to teach my students Python.

<comment><USER46> If the competition is R, I can see how python is a pretty language. I think R still has prettier charts, with ggplot. However, there can be little argument that it is a peculiar language.

That said, I don't see much that python really has going for it in the pretty scenario, either. Most of the examples that make it worth looking at get ugly as quickly as most any other programming language. And the error messages are no more helpful than any of a myriad other languages.

None of which is to say I think it is bad. Just I suspect it is getting credit for some intrinsic quality that doesn't really exist. It is getting used because it is the language people know is getting used.

<comment><USER40> Not as _any_ other language, but as any recently designed language. They (almost) all have good REPLs and a decent variety of data structures.

It's easy to compare Python against C or Java and say how great it is, but against Rust or Dart, maybe not so great. However, popularity has its own benefits.

Still, compare against Go. There's a major difference in philosophy of deployment. Python's modularity causes dev ops problems, but it also means that any user can monkey patch whatever they need. With Go you need access to the original source, which isn't necessarily provided.

<comment><USER46> Fair, I meant as any comparable language. Though, I confess I suspect people could make more progress with C and the like than the advocates of python would like to acknowledge.

And I'm quite fond of lisp nowadays.

</comment></comment></comment></comment></comment><comment> oh-kumudo Python's core strength, among the half dozen of language I used in daily work, is that it is simple and focus on easy human expressiveness.

It is the best example of 'simple is hard' when done right. Its core abstractions are carefully selected and weaved in a way, using them to organize/orchestrate your thoughts is just natural and fluid.

Huge thanks to Guido for presenting the world such a meticulously crafted work.

</comment><comment><USER47> The Brian analogy was a surprisingly apt way to explain the PEP 572 kerfuffle

</comment><comment><USER48> It's really interesting. I am a beginner to python an just read the above article. it's really interesting and I too enjoy coding with python.

</comment><comment><USER49> I just love Python. It's my favorite programming language for many reasons but one of them is writing python never feels like the language is working against you. Python always feels like it's helping you.

</comment><comment><USER50> Python is certainly way better for a layman trying to do small things than C++

<comment><USER51> True, but for me that python was my 4th CL (after fortran, c, c++), there were lots of gotchas, specially with implicit type conversions, mutable classes, and passing by value / reference which all seemed quite arbitrary in my first steps.

Maybe for a complete beginner these are no-issues.

<comment><USER52> Can you explain implicit type conversions problems in python?

<comment><USER51> It is not a problem, it was just non expected behavior for someone trained in strong typed languages.

For example, you want to calculate the performance of your ML algorithm by counting the correct predictions / total. My expectation was that the result of a division of integers, would be a float, specially if the modulo is not 0.

<comment><USER53> In what strongly typed language does the division of two integers result in a float?

<comment><USER54> Many languages are not strongly typed (where "strongly typed" means "variables must be predeclared with their types (though they may be inferred)"). If your only experience is with strongly-typed languages, then _MANY_ things about Python will be different, because Python is one of many languages that is not strongly typed.

For example, in Scheme (a Lisp), a division (/) presented with exact input values and a non-zero denominator will produce an exact value (an integer or rational). E.g., (/ 1 2) produces the exact fraction 1 divided by 2, and not 0.

In addition, both Scheme and Python have different ideas of what an "integer" is, e.g., both are happy to compute the exact value of 2 to the 9999 power. There's no requirement that "integer" correspond to the underlying machine integer.

<comment><USER10> Double check me on this, but I'm pretty sure your definition of strong types is wrong; that's static typing.

Python is strongly typed but not staticly. Weak typing is more like 1 == "1" is true. Aka implicit parsing or casting.

<comment><USER47> Weak vs strong typing doesn't have a standard mathematical definition but you are correct that it is usually has to do with implicit type conversions.

<comment><USER55> Decades ago, the Pascal camp hijacked the term for the requirement of explicit conversions in a static language.

Pascal would be strongly typed because for instance, characters and integers will not inter-operate without _chr_ and _ord_ , and also floating and integer conversions must be explicit. This is in contrast with something weakly typed like C. The weakness in C can be a problem. For instance, a floating to integer conversion that is out of range of the target type invokes undefined behavior. Also, when in range, it can produce a value not equal to the original integer, due to lack of precision. So an innocuous statement like f = i; that passes static type checks without any required diagnostics can go wrong. If a cast were required to make the diagnostic go away, then that at least creates a visible record in the program text that a dangerous conversion is taking place.

Another use of "strongly typed" in the realm of Pascal is that it refers to name equivalence for type alias definitions. The C typedef mechanism is weakly typed because "typedef int user_id_t" doens't create a new type; user_id_t is the same thing as int, such that a pointer to user_id_t is compatible with pointer to int and so on.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> Nice reference to Karel Čapek's "R.U.R." ([https://en.wikipedia.org/wiki/R.U.R.](https://en.wikipedia.org/wiki/R.U.R.)).

</comment><comment><USER56> To me, Python has represented the nice friendly face one can put on the mean nasty stuff written in C++

</comment><comment><USER57>
      python -c "import this"

</comment><comment><USER58> Archive link for losers like me who can't get past the paywall: [http://archive.is/8mRZ0](http://archive.is/8mRZ0)

</comment><comment><USER59> Meh.. try Perl.

<comment><USER60> Why?

<comment><USER59> Peel makes me happy, Python makes me want to go to sleep.</comment></comment></comment>


Joel Spolsky: Does Slow Growth Equal Slow Death? (2009) - <AUTHOR> https://web.archive.org/web/20120202115945/https://www.inc.com/magazine/20091101/does-slow-growth-equal-slow-death.html <comment><AUTHOR> interesting thread from ~10y ago [https://news.ycombinator.com/item?id=920668](https://news.ycombinator.com/item?id=920668)</comment>


Servant.io brings cloud management and web farm support to Windows web servers - <AUTHOR> https://www.servant.io

<comment><USER2> I've been using this for some months now and it really makes my daily job with IIS site management a whole lot easier! Better yet it's in active development and they listen to peoples ideas and integrate the best of them. Try it!

</comment><comment><USER3> Really nice product! Been beta tester on it for a while now and i must say I've become a bit dependent on it.</comment>


Growth hacking lessons: Turning new users into loyal ones - <AUTHOR> http://blog.sidelinesapp.com/post/53324262965/growth-hacking-lessons-turning-new-users-into-loyal

<comment><USER2> Really like the ask-to-reply feature, first saw it on Quibb though.

<comment><AUTHOR> johnjones, we took inspiration from Quibb whose founder told us that the feature has worked well for her. There's something inherently cool about someone valuing your opinion so much that they ask you to come in and join their conversation, especially if that conversation is about something you're very passionate about, like your favorite sports team.</comment></comment>


Amazon Launchpad - <AUTHOR> http://www.amazon.com/gp/launchpad <comment><USER2> > You enroll in the program as an Amazon vendor, which means you sell your > product to Amazon on wholesale terms and Amazon sells the product to > consumers at the retail price. The value of the program to you is reflected > in the net wholesale price Amazon pays you for your product.

Seems like a nice symbiosis.</comment>


Macbook Air or Macbook Pro 15" - <AUTHOR>

I know this question has been asked a million times, but I do need the opinion of people who have used either of the 2 before. I currently use an aging 13" Hp laptop which is overdue for a replacement. I have been eyeing the macbook and the macbook air for quite some time now. I am now so used to staring at a 13" screen so the size of the macbook air wont be an issue, the only questions I have are: 1. Will I be missing something by not upgrading to a larger screen estate if I go for the macbook air? 2. Will I miss the DVD burner? 3. Can it handle expensive CPU operations? i.e. the air? thanks <comment><USER2> That's funny, a friend of mine just made the same decision last night: she ended up getting the MBP while the in-machine burner is still available. The next MBP design is alleged to have that eliminated.

I have a 2009 MBP (17", personal) and a 2011 Air (13", from work). I like the larger screen and better graphics card (relative to release date) on my machine, but the Air is super light and nice to lug around. However, the Air tends to stay attached to a 27" Apple display (also from work), so the display issue isn't really a big one (Terminal on small screen, everything else on big screen).

The Air performs like a champ but seems to have its fans ramped up often, even when running iTunes or a YT video.

<comment><AUTHOR> from rumours making the rounds, how soon are we going to see the 15" macbook air?

<comment><USER3> I'm more excited by the Ivy Bridge processor thats supposed to show up in the new Airs. I for one am waiting for the new Air to be announced (the rumor mills say Q1/Q2 of this year), whereupon it will replace my aging Mac Pro (which, being almost 6 years old, is still a champ as long as you have an SSD in it).

<comment><USER4> Ivy Bridge got pushed back according to Intel until at least June supposedly. If the Air is to be released during its regular update cycle, it might actually not have it but otherwise I would look to a mid-summer launch for both the Air and Pro with Ivy Bridge.

</comment></comment></comment></comment><comment><USER5> I had the 15 inch MacBook Pro with the biggest/fastest CPU Apple sold at the time. Sold it and bought the 11 inch MacBook Air.

1\. Screen size has not bothered me.

2\. Lack of a DVD drive has not bothered me. The one time I needed one I did the share thing with my iMac. Worked fine.

3\. CPU operations may be a problem for you, but I've been happy with the MacBook Air.

4\. Once you carry around the Air you will Swear a Mighty Oath to never carry anything heavier again. I cannot imagine ever owning a MacBook Pro (or anything like it) again.

5\. The lack of an ethernet port hasn't bothered me.

6\. If you travel, the 11 inch MacBook Air is a delight in cramped coach seats on a plane.

<comment><USER6> I am regretting not getting the 11 inch. I have the 13 and it is a delight. I travel by coach bus to work and it is a delight to work with.

The small screen size does not bother me. The only bother is when something starts eating CPU, battery starts draining fast. So GitXL = kill often. CPU is good enough. I am not playing video games here. SSD is f-ing awsome. No DVD drive is a mitzvah since I never use it (I have no DVDs anymore even for purchased software).

The only downer is the lack of ethernet plug, but can be remedied by a purchase from apple. I need it from time to time for network admin purposes.

Edit: The AIR's physical form makes it very comfortable to type on. 99.9% of the time I am using it with no mouse, no keyboard, no external monitor. In fact I got so used to it I do most of my development on my recliner.

</comment></comment><comment><USER7> I do development work on the 11" MBA (4GB RAM, i7). We run VMs all day long, and you can definitely feel the lack of RAM in this scenario. For day to day use it's fantastic and I love the portability, but I _really_ wish it were available with 8GB or more of memory - the SSD does _not_ make up for the fact that it's constantly swapping (I currently have a 6GB swapfile with 3 million pageouts with less than two weeks uptime and three days of actual usage). CPU has not been a problem. I haven't used physical media in any real capacity since around 2007, so the lack of DVD burner is a welcome addition (less weight/bigger battery/slimmer profile/whatever else it entails).

Before you ask - yes, I also use an external display. I'm not insane. But at the same time, the 11" screen does not feel cramped unless I'm doing heavy work away from the office.

Would I get it again, over the Pro? Hard to say, given the amount of time it spends doing dev work. If they offer an 8GB option, it's an easy yes. Truth be told I'd prefer to just work off an iMac (or Mac Pro tower) and have a locked- down laptop that's really just for VPN stuff out of the office.

</comment><comment><USER8> I'm happy with my 2011 Air (4gb ram, 128 SSD). I'm purchasing a thunderbolt display adapter to try and use dual screen. You can get a 3 way adapter (dvi, hdmi, display port?) from dealextreme.com for really cheap.

Although I only do iOS development on it so I haven't pushed performance to the limit.

</comment><comment><USER9> I have modded 15" pro

1) I have a 128gb SSD for the OS etc where the optical drive was and a 750gb SATA drive replacing the stock one

2) 8GB ram if you use parallels or eclipse etc this a no brainer for the price/ease

3)the hires matt screen (1680x1050) means you can use outside

So whilst not as portable as the airs, it never lacks power and is user upgradeable, my slight fear of the air is you would always be waiting on Apple for an upgrade and it might not quite fit your requirements (large disk or ram)

I also use a backpack anyway so really apart from when I ram it full,to avoid having to check a bag on a plane, the air wouldn't really make that much difference personally, that said its a tough choice especially if you don't need the ram

</comment><comment><USER4> I own a 15" 2010 MBP and a 13" 2011 MBA. The specs on the MBP are significantly better since the MBA has limits on how much I can upgrade to. Both were maxed out relative to the time they were purchased.

That said...

1\. I never use the optical drive so that's never been a problem.

2\. The MBP is noticeably heavier but that never bothered me. If you prefer a lightweight travel laptop, go MBA.

3\. I use Parallels (rather than VirtualBox) to run Win 7 and Ubuntu (and others) and it runs like a champ on the MBP but can lag on the MBA at times. The lag isn't horrible but certainly noticeable. Aside from this, MBA runs like a champ otherwise.

4\. I continue to use the MBP as my primary between the two.

</comment><comment><USER10> I've just (about 6 hours ago) bought a Macbook Air 13" i7.

I've been using Ubuntu with a 1920x1080 monitor so the screen size _is_ a concern for me. However, the Macbook Air can easily power the external monitor so hopefully things should work out okay there.

The reason I chose the Air over the Pro was cost vs performance vs size. As you started to get into the higher spec'd Pro's the cost started to get far too high for me.

The Air is fast enough (especially with the i7 processor and SSD drive) that I'm comfortable using it as my main development machine and still has the benefit of being (almost) an ultra portable. (I'll be biking around with it a lot).

</comment><comment><USER11> I have a macbook air, and my wife has a Pro 15". We use both daily :)

I much prefer the air, mainly due to the performance gain from an SSD. If you do choose the Pro, I'd recommend the SSD upgrade.

1) No. I don't miss more screen estate.

2) Absolutely no.

3) Yes, the Air handles expensive CPU operations just fine :) By way of example, I have no trouble running windows under VMWare Fusion on the Air, alongside OS X apps.

Some other things about the Air that I didn't appreciate until using one:

\- The weight and form factor drastically improve convenience when resting the machine in your lap.

\- The battery life is pretty stupendous.

</comment><comment><USER12> I would actually suggest a third alternative, the Macbook Pro 13". I have had all three laptops:

1\. Macbook 15": Awesome specs, but it is pretty heavy and is not the most convenient if you want to code on the plane. 2\. Macbook 13": Middling specs with a DVD drive. It is almost as small and almost as light as the Air. 3\. Macbook Air: It is extremely light but I find the fact that I can't upgrade the RAM annoying. The battery life is pretty good but my main gripe against the Air is the fact that the keyboard is subtly more cramped as compared to the Pros. (This becomes an issue when you press the power button instead of the delete).

</comment><comment><USER13> Biggest drawback that I didn't notice until I was going to buy one - 4gig's max ram. Might not be an issue for you, but if you need to run VMWare Fusion for example, yeah tough on only 4gigs of ram with Win7 for example.

<comment><AUTHOR> How is the performance of virtualbox running win7 or ubuntu on OSX? I definitely would be running virtualbox and Ubuntu on my macbook Air/pro

<comment><USER13> On a Pro, it smokes (both win7 and Ubuntu). You'd probably be able to run Ubuntu without issues on an Air (vm'd) as well, I think I usually only give that VM 2gigs and it runs fine. I haven't tried running Win7 vm'd with less than 4gigs so I can't say. Probably rough though.

<comment><AUTHOR> your term "it smokes" that would mean fast or slow? sorry, but I am not american

<comment><USER13> Haha, sorry my bad, I should have been more careful on my choice of wording.

Smokes in this context means very fast.

</comment></comment></comment></comment></comment><comment><USER14> I currently have a 17" MBP. I've been waiting for some sort of announcement about the next generation Macbook Air, but once it's out, I'm going to switch to a Macbook Air. My ideal setup right now would be a Macbook Air with the 27" external monitor.

</comment><comment><USER15> 11 inch MBA owner - I don't mind the screen size but occasionally wish I had a bigger screen. When that happens and if I'm at home I'll use the Air Display app (available for iOS and android) to turn my tablet into a 2nd screen.</comment>


The 99% Rule (nsfw) - <AUTHOR> http://www.whattofix.com/blog/archives/2010/08/the-99-rule-nsf.php <comment><AUTHOR> Hey guys,

I apologize that I got punked with the image. It is a known fake.

Having said that, the technology really does take naked pictures of folks. The only question is how much image manipulation the software performs (and how easily it can be hacked)

From <http://en.wikipedia.org/wiki/Backscatter_X-ray> \- " it performs a virtual strip search, easily penetrating clothing to reveal concealed weapons; however, it raises privacy concerns in that it appears to screeners essentially as a nude picture of the subject, and may allow screeners to gain access to otherwise confidential medical information, such as the fact a passenger uses a colostomy bag, has a missing limb or wears a prosthesis, or is transsexual."

From <http://science.howstuffworks.com/innovation/backscatter.htm> \- "And yes, it's possible for backscatter X-raying to produce photo-quality images of what's going on beneath our clothes. But because of privacy concerns, for the time being, the peep show has been distorted: "

I would also direct you to [http://www.prisonplanet.com/exposed-naked-body- scanner-image...](http://www.prisonplanet.com/exposed-naked-body-scanner- images-of-film-star-printed-circulated.html) and [http://oklahoma.watchdog.org/1053/naked-machines-do-store- an...](http://oklahoma.watchdog.org/1053/naked-machines-do-store-and-transmit- images-feds-admit/)

Very sorry about the slip-up. I'm also sorry that this was taken as a political rant. This same thing happens in large organizations when dealing with other things that cause political risk, and for the same reason. And it's just as upsetting. I simply used the security business as a theme. It's what upsets the most folks, and it seemed to be easily understandable by the largest audience.

I've updated the blog to remove the naked picture and make the correction.

<comment><USER2> Is the source image a fake? You can see it inverted back by hitting "command+option+control+8" on your mac.

<comment><USER3> Yes. First image is fake too.

</comment></comment></comment><comment><USER4> In a functioning constitutional republic we would not first be asking what Amendments prohibit government power, but rather by what constitutionally- delegated power does the government assert its authority to act. Alas we've spent the better part of two centuries carving out an ever-widening reading of Federal power.

There are those who are perfectly willing to read into the Interstate Commerce Clause the power to mandate individuals purchase health insurance. There are those who are perfectly willing to read into the Interstate Commerce Clause the power to forbid purely _intra_ state sale of otherwise legal drugs. How sadly humorous that these two groups, likely opposed in most political issues, can agree on near-limitless Federal power, and in so doing they have left us with only "penumbras and emanations" as defense.

</comment><comment><USER5> I don't mean to detract from the article but it's worth pointing out that those are absolutely fake/photoshopped images and not at all actual scans.

<comment><USER6> Here's a link showing that the images are almost certainly fake: [http://trueslant.com/KashmirHill/2010/01/27/tsa-scanner- porn...](http://trueslant.com/KashmirHill/2010/01/27/tsa-scanner-porn-hoax- fools-gizmodo-drudge-report/)

</comment></comment><comment><USER3> The image used in article is a known hoax (it's a stock image, not a real scanner result). <http://www.tatumba.com/blog/archives/1369>

Compare with: [http://www.kelowna.com/2010/04/08/kelowna-airport-using- full...](http://www.kelowna.com/2010/04/08/kelowna-airport-using-full-body- scanner/)

<comment><USER7> Your "compare with" link is a millimeter wave image, not a back-scatter x-ray image. The later really is much more detailed...

<http://www.naturalnews.com/gallery/articles/WaveScanners.jpg>

...though not quite as detailed-looking as the hoax.

<comment><USER3> Thanks for the correction! I thought those two were the same.

</comment></comment></comment><comment><USER8> A "99% accurate" paedophilia test would quite possibly falsely accuse as many innocents as catch positive people (given that only a tiny fraction of people are paedophiles) and being wrongly accused of being a paedophile has a pretty substantial negative impact on your welfare.

I'm not sure the airport scanner argument is really connected: it causes mild embarrassment to 100% of people asked to use it. The real question is whether having the mild embarrassment of being subject to certain security procedures (voluntarily; you bought the ticket) is worth a reduced chance of a fiery death in mid-air. Personally I'd say yes even though the chances of the latter occurring are vanishingly small. If anything the "99% rule" is the defending the opposite argument: >99% of the time it reveals nothing or throws up false positives, same with passport control and with the delay-inducing regular maintenance checks on the aircraft and the costly OEM approvals required for each and every component fitted on the aircraft and the extra hours spent by the pilot getting type-rated on the newer variant and the slight adjustments to the flight path to take into account the remote possibility of bad weather and extra airspace assigned to that particular aircraft because of mildly reduced visibility and the minute corrections of altitude shortly before and the possibility of deploying the autopilot.... and actually, I quite like the way having all these seemingly easily-dispensed-with checks ensures that an aluminium tube travelling at several hundred mph thousands of feet above the ground is the safest mode of transport.

<comment><USER9> Let the market decided! Those who want the "added protection" of naked pictures, can fly the naked picture airlines!

<comment><USER8> Not everyone affected by lax airline security/safety chooses to buy tickets... [http://www.kinomaniak.pl/film/world_trade_center/world_trade...](http://www.kinomaniak.pl/film/world_trade_center/world_trade_center6b.jpg) <http://www.twf.org/News/Y2003/0815-Lockerbie.jpg>

</comment></comment></comment><comment><USER10> I missed absolute numbers.

Talk for example about false positives in airport security. An error rate of 'only 0.01%' looks pretty good at first. But if you put in the actual numbers, you see a very different image.

Airport Frankfurt had about 50 million passengers in 2009. An false positive rate of 0.01% would cause trouble for 5000 people. Each day about 13 people would be falsely accused.

<comment><USER11> To be honest, I don't think that's a big deal - 'false positives', whatever those might be in the case of backscatter machines, can be easily caught at the second stage - a pat-down. The bigger issue is blindly forcing everyone to effectively strip naked for the authorities before they are allowed to board a plane.

<comment><USER10> Agree, but actually I was not thinking about backscatter machines. I had biometric passports in mind while writing... and people missing flights as a consequence.

</comment></comment></comment><comment><USER12> "Look. I don't like running naked pictures of people on my blog. This is a family deal and the kids read it."

Hmmmm, what's wrong with kids seeing people naked? I'm sorry but I can't understand, I'm not American.

Satellites are only available for short periods of time, and are so expensive, SUAVs are going to be way more used than satellites.

</comment><comment><USER13> Ben Franklin put it well:

"They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety."

<comment><USER14> Each time I read this quote, I can only think of the Patriot Act.

<comment><USER15> When I think of the Pariot Act I think of what V said in V for Vendetta: The government should fear its people, never the other way around.

<comment><USER16> Or Thomas Jefferson: "When the people fear their government, there is tyranny; when the government fears the people, there is liberty."

<comment><USER15> Also an excellent quote, and entirely appropriate.

</comment></comment></comment></comment></comment><comment><USER13> Of course the arguments for governments doing full backscatter body image scans are fundamentally the same as the arguments for getting access to encrypted mail and voice calls.

As India is doing in this other currently popular story here on HN: [http://www.globalpost.com/dispatch/india/100831/blackberry-r...](http://www.globalpost.com/dispatch/india/100831/blackberry- research-in-motion-ban)

If we're happy to have government agents inspect our private parts to board a plane, why shouldn't we be happy for them to inspect our emails and phone calls to be able to communicate with each other?

Email and phone calls aren't any more of a right than freedom of movement are they?

Technology should be increasing not decreasing the effectiveness of our freedoms. And us folks who make it should have liberty on our brains as we hack away.

</comment><comment><USER17> Can someone with a scientific knowledge tell me if we'll one day have technology to package the full body scanner into glasses? That will open a massive can of worms for humanity :/ What happens when everyone can see everyone else naked...

<comment><USER18> Of course. Your body radiates waves of various types through your clothes, or waves can be bounced off your body, that are not visible to the human eye. The waves can be recorded through various methods and converted to an image that we can see on a video screen. Once we have augmented reality glasses which is inevitable, this will certainly be on the market somewhere. Google for "night vision see through clothes" and "infra red see through clothes".

<comment><USER19> I think the grandparent was asking if the X-ray machines themselves could be miniaturized enough to fit in the glasses. In case you wanted to use them when a giant machine wasn't around.

<comment><USER20> You can generate X-ray's from a device the size of a flashlight.

</comment></comment></comment></comment><comment><USER21> I'm surprised image filtering technology doesn't have a way to just view a silhouette of the skin. I.e., establish the skin color gradients and then remove them...

<comment><USER22> I work in image processing / computer vision (albeit in completely different applications), and the technology is not very good at doing that, at least yet.

On the other hand, whenever you mention 'skin color' in a research proposal, that does not have an easy route either, even when it has nothing to do with racism.

</comment></comment><comment><USER23> A few years ago I was on a school trip, and we were flying back to the US from London. The security at the airport asked me if I minded going through a new type of scanner with a shorter line. The airport was doing a test run of the same kind of backscatter machine. Everyone likes short lines, so I agreed. After the scan was over, the security showed me the scan of my backside. It was literally an inverted naked picture of my ass. They looked at the scan of the frontside, but didn't show it to me. I wasn't expecting anything like this, because the technology was so new and it hadn't been widely publicized. It was really embarrassing to think that I had just been practically strip searched.

That image is a fake, but it's not very far from the truth.

</comment><comment><USER24> Is anyone else more worried about radiation exposure from these things than their privacy?

</comment><comment><USER25> I'm at work. Can someone at least tell me why I shouldn't click?

<comment><USER26> Basically it includes some screenshots of the supposed effectiveness of the Airport scanner... e.g. a nude woman, then has the images inverted. I didn't read the article too closely, I'm not sure that the author understands those images are from an image catalog that has nothing to do with the airport scanner, but have been misrepresented as being so. Can't provide citation, but saw that on an earlier article from HN about a month ago.

<comment><USER27> Reminds me of Hearst: "You furnish the images, I'll furnish the war!" He got images like this one of a woman being strip-searched NSFW [http://en.wikipedia.org/wiki/File:Spaniards_search_women_189...](http://en.wikipedia.org/wiki/File:Spaniards_search_women_1898.jpg) which (he knew) was totally fabricated, and published them to rally pro-war sentiment.

</comment></comment></comment><comment><USER28> Quick nitpick: The Court that issued the judgment on the GPS case was the 9th circuit (not district). Otherwise, I do agree. The right to privacy is something that is not explicitly guaranteed in the Constitution. It only exists because it was read in by Justice Douglas as a side product of "penumbras and emanations" of the Bill of Rights. The balance between freedom and government protection has always been tenuous. After 9/11 we have certainly seen a tipping toward the latter. Only time will tell if this trend continues, but in a world in which technology can reveal even our naked bodies, I certainly hope not.

<comment><USER29> > The balance between freedom and government protection has always been > tenuous. After 9/11 we have certainly seen a tipping toward the latter.

Have we? All I've seen is a reduction in freedom.

<comment><USER28> Thats exactly what I meant. Sorry if it wasn't clear. I was trying to say that we are leaning toward government protection over personal freedoms. So, yes I agree.

</comment></comment></comment><comment><USER30> Interesting how a nsfw link makes it to the top of HN between 9:30 and 10:30 AM :-)

<comment><USER31> When you work for yourself, you decide what's safe for work.

</comment></comment><comment><USER32> > There is no doubt in my mind that if every person in the United States were > relieved of their guns, we would have no gun violence

Uh... there's a whole lot of doubt in MY mind.

</comment><comment><USER33> That picture is a fake. That's how the scans actually look.

</comment><comment><USER34> There are airport scanner photos of a naked woman.

This isn't really a 99% case is it? He's saying that someone making fun of a scanned persons genitalia is part of the 1% where it doesn't work. I would argue that 100% of the time this practice is demeaning. I think that using spy satellites on American Citizens (I'm Canadian) is a bad idea 99% of the time. It's the other way around. You're catching the bad guys maybe 1% of the time or less, not the other way around.

Where is even the 1% of crimes prevented by taking naked pictures of women and children? What is the benefit if the bomb won't be in underwear anymore, but an orifice.

"Sometimes the people in charge of tracking you have ulterior motives -- which are very easy to have when there's no warrant involved. That pesky 1%"

Yeah, _my tracker_ is always calling me out when I'm off my diet.

<comment><USER35> The argument is not about whether the method is 99% effective. The argument is about whether the method works as intended 99% of the time, which means that 99% of the time, nobody is bothered by it and it _may_ have the positive effect of catching a terrorist if one happens to pass by.

Incidentally, lets suppose the method was 99% effective and that one in a million passengers is a terrorist. That would mean that 10K innocent passengers would be suspected of being a terrorist for every real terrorist. There would be a 99% chance of catching the terrorist and a 100% certainty of harassing ~10K innocent folks, which gets them stripsearched, put on no-fly lists and demeaned in other ways. All under the guise of making air travel safer, which is complete BS, because the examples of journalists still making it through security with unchecked devices are numerous.

<comment><USER36> > a 100% certainty of harassing ~10K innocent folks, which gets them > stripsearched, put on no-fly lists and demeaned in other ways.

Actually you don't have to do anything demeaning or persistent to someone who trips the filter.</comment></comment></comment>


Safari to join "Do Not Track" crowd, leaving Google behind - <AUTHOR> http://arstechnica.com/apple/news/2011/04/safari-to-gain-do-not-track-support-in-lion.ars <comment><USER2> Oh, the irony!

Ghostery reports 3 tracker javascript frameworks in the link refered by this post: Lotame, Comscore Beacon and (guess what?) Google Analytics.

For those interested in privacy I'd recommend: <http://www.ghostery.com/>. It has protection for a lot of trackers in most web-browsers.

<comment><USER3> "Irony" is not what you think it is.

<comment><USER4> How about Ghostery themselves providing services to the advertisement industry? [0]

[0] <http://www.ghostery.com/faq> (Last paragraph)

<comment><USER5> Interesting. So Ghostery users appear to opt-in to being tracked, then Ghostery shares that information with others.

[http://news.ghostery.com/2011/03/04/ghostery-helps-the- bbb-t...](http://news.ghostery.com/2011/03/04/ghostery-helps-the-bbb-track- the-trackers/)

</comment></comment></comment></comment><comment><USER6> DNT seems like a pretty crappy solution.

I think a lot of people will enable DNT not realizing they'll get exactly the same number of ads, just less relevant. And the web marketing companies who are doing evil things will just ignore the header.

<comment><USER7> DNT is not about blocking ads. It's about signaling that you don't want to be profiled for advertising purposes. If you don't mind being profiled for targeted ads, then don't flip the switch.

<comment><USER6> I know, that's what I said.

But if you really don't want to be tracked, can you trust marketers to respect this header? If not, what's the point?

<comment><USER8> The point is that some marketers are still honest and some also realize that it's smart to not piss off people, but there's no easy to use flagging mechanism that would signal your disapproval without user-experience suffering badly.

Also, some marketers might be honest, but that data may end-up in the wrong hands eventually. So if you care about privacy, any period of time in which you aren't tracked is a net win for your privacy.

Not to mention that this flag may end up being a useful argument in case of a lawsuit.

<comment><USER9> _The point is that some marketers are still honest_

So DNT is a mechanism for blocking the honest marketers that we trust to respect our communicated wishes, while still permitting the dishonest marketers to do what they will? As far as I can tell, DNT requires enforcement legislation to be effective.

 _some also realize that it's smart to not piss off people_

How would someone tell that an advertiser is not respecting DNT and therefore be pissed off? Looking for suspicious cookies from third-party sites? The ads seem too personalized?

</comment></comment></comment></comment></comment><comment><USER10> I need this. I never really cared about ads and them showing up on websites, I dont mind if that is the way that the site makes its money. However, about two months ago I got a flyer in the mail for a local dentist, so I went to their website. Now every site that I go to has that dentist as the ad and I cannot figure out how to clear cookies/cache whatever to change it (it only happens on my laptop in a certain browser). Anyway, I welcome "do not track" and will definitely use it.

<comment><USER11> It's common now for ad networks to use "Flash cookies" -- meaning if you clear your cookies, they will just recreate them next time you hit their server using a cookie stored by Flash.

Remove them here: [http://www.macromedia.com/support/documentation/en/flashplay...](http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager07.html)

Be sure to delete both Flash and normal cookies at the same time, since if one is present and the other is not, they will recreate each other. Better yet, use FlashBlock.

<comment><USER12> That's a start, but there are many other potential vectors for cookie data. See: <http://samy.pl/evercookie/>

</comment></comment></comment><comment><USER13> What I'd like is an implementation which simply allows each browser window/tab to be absolutely segregated from each other one + a "clear all cookies" button/menu-option.

What's so hard about that?

<comment><USER14> What browser these days doesn't have a "clear all cookies" option? You can even browse in private mode and have your cookies cleared automatically. Chrome is working on multiple profile support: <http://www.chromium.org/user- experience/multi-profiles>

<comment><USER15> That's good to know (you can manage currently by changing where one version stores its data - I run stable, beta, and dev simultaneously this way). But it looks like that's not per-window / per-tab, but instead an application-wide setting. Or, the screenshots imply that to me (OSX especially). And multiple _profiles_ , even at the same time, isn't the same as multiple _sessions_.

</comment></comment></comment><comment><USER16> Some of the webserver log analysis tools I use, Analog and Visitors among them, show huge, huge discrepancies in numbers culled from the actual logs vs. what Google Analytics shows me. By that token I have concluded that people are already pretty successful at evading GA tracking to a large degree, though probably not to supercookie levels.

<comment><USER17> If you mean the raw server requests, a lot of that will come from bots/etc without a javascript engine. Blocking GA is probably a growing thing, but it doesn't yet seem to be huge.

<comment><USER16> Analog tracks the rawest, sure, but Visitors and others, for all their relative flaws, do track crawlers and related. They seem to me to track enough noise that the discrepancy isn't so easily attributable.

</comment></comment></comment><comment><USER18> They say "84% of the browser market" now supports the DNT headers, but that's quite clearly a lie, as the article previously says that only IE9 supports DNT, not IE6-8.

Using the browser usage data they link to you can see it's actually only about 29% of the browser market that supports DNT headers.

This difference in stats may seem insignificant, but if it actually were 84% a lot more advertisers might pay attention to DNT, where as at 29% they're a lot more likely to be ignored. Even if Google Chrome got on board, it would still only be about 41%.

</comment><comment><USER19> Safari will be the first browser to auto-block google ads. Jobs will send a one-liner "99% of people don't click on that crap."

Watch.

</comment><comment><USER20> Would there be any practical difference between DNT baked into the browser and the cookie method from something like Beef Taco? [https://addons.mozilla.org/en-US/firefox/addon/beef-taco- tar...](https://addons.mozilla.org/en-US/firefox/addon/beef-taco-targeted- advertising/)

</comment><comment><USER21> There is a Chrome extension "Keep My Opt-Outs" by Google. Is it different from the DNT and how?

<comment><USER22> It is an example of the "active" cookie based approach to this same thing mentioned in the article. The "Keep My Opt-Outs" extension is linked at the bottom of the article.

</comment></comment><comment><USER23> Are there differences between the "Do Not Track" implementations?

<comment><USER23> From TFA:

 _Mozilla made the first step in building broad browser support for "Do Not Track" in Firefox 4. Instead of the cookie-based mechanism suggested by the FTC, however, Firefox sends a specially formatted HTTP header to Web servers noting that the user does not want to be tracked. Microsoft added support for the headers in the recently released IE9, and now Apple appears set to add it to Safari once Lion is released._

</comment></comment><comment><USER24> Bah, this article is trash. The Chrome browser is free software which means that this feature _will_ be added into the code, whether it is officially released as Chrome is another matter. I'm fairly certain that the non-Google version, Chromium or whatever they're calling it, will include this feature.</comment>


When big startup launches a direct competitor your new product - <AUTHOR> https://medium.com/@bclark8923/when-big-startup-launches-a-direct-competitor-your-new-product-153804973e69

<comment><USER2> So sorry, Brian - that's a rough one :/

<comment><AUTHOR> Thanks, gotta keep pushing :)

</comment></comment><comment><USER3> gg, same name and timing</comment>


Tell HN: A script to download your saved story links - <AUTHOR>

I posted this about 12 hours ago[0], but it got very few upvotes, so I'm posting it again for the different audience.
In response to a question asked recently[1] I've re-implemented my scripts to retrieve my saved stories. The scripts are fragile and not pretty - I just hacked them together quickly to get the job done.  The question has come up before, so if anyone wants them, let me know.  If enough people ask then I'll stick them on GitHub or something and make them open.
My concern is that it is scripted access to HN, so it might be regarded as "unkind", and I'd be interested to now what the HN crown thinks.
Thoughts?
[0] http://news.ycombinator.com/item?id=5094367
[1] http://news.ycombinator.com/item?id=5060631 <comment><AUTHOR> Clickables:

[0] <http://news.ycombinator.com/item?id=5094367>

[1] <http://news.ycombinator.com/item?id=5060631></comment>


Bradley Horowitz on Google+ naming policy - <AUTHOR> https://plus.google.com/113116318008017777871/posts/VJoZMS8zVqU

<comment><USER2> Several commenters on this post claim this is an issue of safety:

"The ability to add nicknames/maiden names etc is of no use to people who actually need to keep their identity secret for their own or their family's safety."

"There are plenty of perfectly legitimate reasons for someone to need, not just want, to use pseudonym."

I'm sorry, but you don't need to use Google+. And for the love of Peter please don't if you'll endanger yourself or your family.

Wanting to remain anonymous on Google+ is like going to a dinner party and insisting on wearing a mask. Yes, you'll reduce the chance that people will know who you are—but you're also super freakin' creepy. If you don't want to be recognized...stay home or go to another party!

And if you don't want to share your real identity online, I'd recommend not using social networks altogether.

<comment><USER3> I just don't understand why people are so against _Google_ over this, when _Facebook_ has always been doing it.

I know it's a delicate issue and it deserves debate, but at least I'd like the issue being discussed in a more general setting.

That being said, I think it would be another advantage of Google+ over Facebook to allow people to use pseudonyms, because it's yet another thing Facebook would never change.

<comment><USER4> _I just don't understand why people are so against Google over this, when Facebook has always been doing it._

Because we wouldn't be interested in Google+ if we thought it would just be another Facebook?

I mean, if the fresh launch of a beta product to an audience of mainly tech- savvy users is not the time to complain loudly about what you don't you like, what is?

<comment><USER5> Yes,

I'd been rooting for Google, against Facebook on this. Till now..

But now... The thing is that Facebook so far mostly has just made noise about not allowing pseudonyms - I've only seen them ban obvious organizations from using individual accounts and then only when someone complains. If you're locked out of your Facebook account, you have to show state ID. But it's a lot easier to just another "fake" account (which is not really particular fake if it is you representing you).

I'm in a somewhat "special" neck of the woods on Facebook but I'd say more than half my friends use pseudonyms on there. If all of those got banned, we'd move elsewhere. That might be a good thing. But we sure wouldn't move to G+.

</comment></comment></comment></comment><comment><AUTHOR> The funny thing is, none of this would have been an issue if their initial real-name enforcement had been to temporarily suspend a profile, prompting users to change their name in order to turn them back on.

It's the lack of recourse that gets everyone up in arms more than the name policy

</comment><comment><USER6> My rant, commented that over at G+ as well. Not sure if that counts as cross- posting, I'd love to hear some opinions here though:

People complaining about pseudonyms, with weird statements like 'Don't turn this into MySpace' or 'Leave those on Twitter': Are you serious? You are asking for a global policy, because you like to see full names? Chances are, your circles/contacts are already on the same page. No issues here, with or without the naming rule. IF some of your best friends would like to be 'PinkUnicorn' from today on, would you just cease reading his/her news? Do you really want to forcefully (go by your real name or leave the service) make them change? That's about the most egocentric thing I've ever heard or read. This is a social network - or tries to become one. You can choose with whom you are in contact, you can ignore people. But you cannot make people behave according to your own preferences.

You sound like someone that complains from his front lawn that everyone should wear ties, to look more professional. If you would rule, ties would be a requirement to leave the house. No more unprofessional Jeans & T-Shirts on the street, right?

Stay over at LinkedIn please and stop debating about other peoples wishes and needs for their own frikkin' account. If you don't get the reasons: Fine, nobody's perfect. But in that case here's a newsflash: It's not about you. You want yourself to go by your real name: Works as intended and no one wants to take that right away from you. You have not the slightest right to ask Google to force your personal believe down everyone's throat, however.

</comment><comment><USER7> tl;dr "we believe our naming policy was right, but the way we enforced it was wrong"

</comment><comment><USER8> I found this a interesting comment, from Danny Sullivan - it's not always straightforward to define what a "common name" is:

"What are the best ways for people to prove their 'common name' status. Unless +50 Cent has a government ID with that name, it's pretty clear that Google made the sensible decision to let him use his stage name, which he's commonly known by, here rather than a legal name. But if you're not as well known as him, asking for things like government IDs to prove your 'common name' -- which you do allow -- seems difficult."

</comment><comment><USER9> They may give on this in the end, but it still shows the problem of consolidating too much power in one place. I have no problem with FB disabling my account, because it's not a necessity. But if G+ decided it was OK to disable my Gmail because of a change in policy, or a rogue automated profile checker then that's an entirely different story.

<comment><USER10> In the post he says your Gmail will not be disabled if you used a fake name.

<comment><USER11> From the article:

 _(Of course there are other Google-wide policies (e.g. egregious spamming, illegal activity, etc) that do apply to all Google products, and violations of these policies could in fact lead to a Google-wide suspension.)_

So don't post about your favorite torrents site that violates copyright law. Or if you're like me and live in Illinois, video tape a police officer because that violates wire tapping laws. Yes, I know I would be in violation of this policy if I sent an email from gmail about these things, but I'm guessing I'm more likely to get caught if it's on g+.

Keeping my gmail account active is worth far more to me than any potential benefits of google+ at this point.

In any event, the down votes on the grandparent were uncalled for.

</comment></comment></comment><comment><USER12> Glad to know that gmail and other google products won't be lost if this happens to you. It's still a ludicrous policy, though; something I'd expect from microsoft of facebook. I'm not sure why google is so hell-bent on enforcing it.

<comment><USER13> They're taking an _opinionated_ stance on creating a community. That's generally a good thing, and in order to provide what they believe is a better experience for the kinds of people who interact with each other based on a conventional "real" name, they are willing to forgo that portion of the market that want to use a handle for some or all of their online interaction.

As I tweeted, I have no use for "circles" if I can't be "raganwald" to those people who know me through my writing and "Reg Braithwaite" to those people who know me face to face, but I have zero problem with choosing not to use Google+, so why should I have a problem with Google choosing not to cater to me?

</comment></comment><comment><USER14> i think ALL bhorowitz blog posts should start with rap lyrics.

</comment><comment><USER15> I think this matter highlights the absurdity of being offended by issues discovered during beta-testing. I suppose it's beta testing for the masses so people start assuming it's the finished product.

<comment><USER16> Given history, it's going to be beta for a long time.</comment></comment>


Microsoft's robot editor confuses mixed-race Little Mix singers - <AUTHOR> https://www.theguardian.com/technology/2020/jun/09/microsofts-robot-journalist-confused-by-mixed-race-little-mix-singers <comment> dynamite-ready Thank God this was merely a mistake in an entertainment article editor program, and not, can you imagine, an application tasked with identifying suspects in a criminal investigation...

This is a somewhat innocuous example of the kind of thing that people fear, when we speak of replacing human functions (also know as 'Jobs'), with AI agents.

Makes me wonder about how the medical industry is coping with the lurch towards automated systems. Especially in the field of pathology.</comment>


Fuck the Android Build Process - <AUTHOR> http://www.bonobolabs.com/fuck-the-android-build-process/ <comment><USER2> This doesn't sound so bad. After reading the paragraph that ended with "Confused? Yeah I was too..." I wasn't confused at all, actually your explanation was good and basically makes sense to me. Maybe not ideal, but that being said, the fact that you were able to come up with what looks like a pretty decent work around is really a credit to the process. The command line Ant tools enable all kinds of customized stuff as well as supporting using tools other than Eclipse. (at my last job we heavily customized it to support building "branded" apps that were released to the market with different package names and images) I'm pretty glad that they based the build system on it, even though Ant itself is terrifying.

I guess after working on BlackBerry apps, I'm spoiled by Android's tools. (to build a BB app of even moderate complexity and deploy it to a device, you have to contact a RIM server. Every. single. time. That and the Eclipse plugin was straight up broken for a long time)

<comment><AUTHOR> Agree it's not so bad. Just took 2 days to figure out how to do it. 2 days I'd rather have spent making the app more awesome. If on average other developers - I like to think I'm at least average :) - spent this long then that's like a million hours that they've spent on their build config instead of making their apps more awesome.

<comment><USER3> No matter what's happened to date, I'd hope that future developers will find your rant pretty quickly and end up saving the 2 days.

</comment></comment></comment><comment><USER4> I wasn't, at all, confused by the solution derived in the article. Ant is fairly common to Java builds I've worked with. But why not have VCS hooks to fix per-dev, testing, staging, and release configurations? I know of dozens exotic build processes, and this seems rather tame.

</comment><comment><USER5> Not able to try this out right now but:

1\. You can select a custom debug key in eclipse and have multiple devs sign with the same debug key.

2\. You _should_ be able to instantiate the MapView in the code at runtime (don't have a dev set up to try this on right now but check out MapView(android.content.Context context, java.lang.String apiKey)). Just provide the API key based off a debug/release flag set in your code.

<comment><AUTHOR> Thanks Zambo. I couldn't find a way to set a custom debug key in Eclipse - I'm using IntelliJ but this frustrated me so much I was considering migrating to Eclipse.

I was also using a debug/release flag previously but kept forgetting to change it when I sent the release build out for testing.

<comment><USER6> Great post, I'm working on my build tonight and this'll come in handy. I usually end up just changing the Maps API key locally and never committing it which kinda sucks.

For Eclipse you can set the debug key here: Window > Preferences > Android > Build > Custom debug keystore. That's for the normal Eclipse/android build process.

Comes in handy when developing on multiple machines as you can't update an app that was signed with a different debug key (must uninstall first).

<comment><AUTHOR> Handy to know that setting exists. Thanks dude.

</comment></comment></comment></comment><comment><USER7> Resource overlays might have solved the problem a bit More gracefully. They allow you to specify additional resource directories that take precedence over the default one. I don't have a link at the moment, but google should be able to tell you something. You'd still have to hack around with the build file a bit, but if you're a java/android programmer you should know about ant anyway.

As long as you're learning about java build tools, take a look at the android maven plugin. It can be useful once you outgrow the confines of the default android build process.

</comment><comment><USER8> "Ant? Why do I know Ant now? I didn't know Ant 2 days ago. Is it really necessary to have to learn a build tool to perform such a common task?"

Ant is the backstop to the build the IDE makes automatically, in cases, like this one, where there isn't a parameter you can set in the build options dialog.

You might not like ant, or having to learn it. But it's not an unusual choice for Java builds. There are many cases in more-complex Android project builds where ant is necessary.

</comment><comment><USER9> Why can't you just use a config file?

</comment><comment><USER10> Do you guys think that the frustrating for building on Android has made more developers switch over the just developing on iOS?

<comment><USER11> It is even more frustrating if you are new to the iOS development - need to deal with the code sign, provisioning profiles, certificates, device ID, XCodeConfig, upgrading XCode 3 project to XCode 4 etc..

But I agree the Eclipse / Android SDK should have a better way to support the debug/release build.

<comment> X-Istence I created a brand new iOS project, didn't have to deal with code signing, didn't have to deal with provisioning profiles, certificates, device ID, XcodeConfig, or upgrading from Xcode 3 to Xcode 4.

Then again, I have yet to submit my app to the App Store, or run it on a physical device. Getting started with iOS is a LOT less trouble compared to starting with Android development. I can't even begin to compare the two when started out anew.

<comment><USER11> I agree it is less trouble to make you first iOS app running in the simulator than Android app.

But after that, for Android app, what you all need is to export the APK file from Eclipse (sign with a keystore) for upload or copy the device; for iOS app, you have much things to do ..

</comment></comment></comment></comment><comment><USER12> If only there were a tool to help automate some of the finer details of Java application development

</comment><comment><USER13> Someone hasn't tried to do Azure development with Visual Studio if they think this Release/Debug type management is a nightmare. Oh let me name the number of inconsistent ways of transforming config files depending on environments.

<comment><USER14> ... or tried doing iOS development.

Granted, given all the complex permutations and needs the iOS development team and XCode and Apple App Store has to support, there's probably a lot of method to the madness, a lot of "necessary" complexity. The problem is that if you zoom out a bit, much of the complexity one originally thinks is necessary, is not actually necessary, if you change one or more of your premises.

<comment><AUTHOR> Oh I love the way Xcode handles this. Just setup multiple targets and use a preprocessor macro to switch between configurations. A nice drop down to select from when you're building. It's bliss! Learning the iOS way took me way less time than figuring it out for Android and it was a nicer solution.

<comment><USER13> I think people view this as too techy of a solution and I think people rely on their IDEs for this sort of thing too much, but after trying to automate my Azure deployments (local web, dev emulator, prod), I finally gave up and just resorted to having to manually comment/uncomment things in files and flex dropdown boxes across Visual Studio everytime I wanted to change environments. And I paid the 45-minute deploy time tax every time I forgot to change one of them when I deployed.

I'd have killed for a simple macro syntax to use within my config files. Hell, at one point I was actually (stupidly, one of the more futile tasks I've ever tried) editting the MSBUILD files by hand.</comment></comment></comment></comment>


Every Book Is a Startup - <AUTHOR> http://oreilly.com/catalog/0636920021261/ <comment><USER2> A bit meta, no?

I like that they're practicing what they're preaching with the product they're using to preach it. There's so much room for change in the publishing world. Pretty exciting to see that shift happening.</comment>


Ask HN: Should I Apply Anyway? - <AUTHOR>

As a newbie software developer with little formal training I have come across countless entry-level job postings requiring "1 to 3" years experience, a "functional" or "knowledgeable" grasp of language/skill X, or similar. I never know whether I should apply to such postings as it can be difficult to quantify such terminology (e.g. I have -almost- one year of experience). Given the many postings discussing the talent shortage, should I apply anyway? Or am I, and newbie devs like me, wasting our time? <comment><USER2> Go for it, the worst they can do is say no. Don't limit yourself to the box of only having "<1 year of experience with Language X", think about what skills you bring to the table other than experience in that language. Have you built an open source project, even a tiny one? Can you learn new languages and technologies fast?

Emphasize the other things you bring to the table other than your ability to sling code in a specific programming language! In the long run, possessing the ability to critically think and solve problems will carry you much further along than possessing mad skills in Languages X,Y, or Z when you first apply. You can learn 'em all as needed. ;)

Best of luck!

</comment><comment><USER3> I would apply to any jobs that ask for 5 or less years experience. Don't get caught up on all the cruff they put in job postings, they say they want this and that but really what they want is someone who is competent and can help their company in the specific role for which they are hiring. Whoever posts the ad doesn't usually understand much about sofware development, hence ads where you see things like "Java J2EE developer needed, ruby, python, php, javascript experience a plus", they really don't need someone who knows all these languages, they just figure it would be nice to have someone who did

</comment><comment><USER4> I think you should. You cannot quantify how well you know a programming language X. I have come across such questions in many interviews, and I was like "How can I say - how I rate myself in Java in scale of 1 - 10?". I now avoid that question diplomatically. Some interviewers say, the gauge your confidence level with that but you take that as it is. Like if you tell me I rate myself 3 in C and you wow me with a perfect binary tree traversal algorithm code. I give a s __t about you the score "3" you are a good programmer to me.

Anyway, you apply to the companies and land yourself a job. You will learn a lot once you start working on something.

Very best for your job search.

</comment><comment><USER5> It is worth trying at least. In the meantime make some personal projects that prove what you can do. It can be a simple game, or a solution to help a small business.

Don't forget that networking can also help you bypass such requirements if you have an internal referral.

<comment><USER6> Good advice. A friend of mine dropped out of his Computer Science course but still went for a job at a games company Rare. He sent them his code for a rotating 3D light sourced car written in GW Basic, and got the job!

<comment><USER7> test

</comment></comment></comment><comment><USER8> Go for it. The cost of failure is your time. Don't forget to keep becoming a morr awesome coder :)</comment>


Victim Who Died in Tesla Crash Had Complained About Auto-Pilot - <AUTHOR> http://abc7news.com/automotive/i-team-exclusive-victim-who-died-in-tesla-crash-had-complained-about-auto-pilot/3275600/ <comment><USER2>
      7-10 times the car would swivel toward that same exact barrier during auto-pilot

I think I would have stopped using autopilot during that particular stretch after the second such event.

<comment><USER3> Indeed. Intellectual curiosity?

<comment><USER2> Well, I like diagnosing and isolating problems like that, too... but I'm not risking my life over somebody else's suspect code.

When I have a choice, anyway.</comment></comment></comment>