Ask HN: Typical work hours - <AUTHOR> As an engineer in the US what is a typical work day? Mine is 9 hours including an hour unpaid lunch. Is that normal or are there people that really get to work at 9 and leave at 5? <comment><USER3> When I was working for Google in MTV, I would get to the office around 6am and leave around 3:30pm. I worked early hours to avoid the chaos of the open office. I had ~3 hours of good concentration until most people arrived & the distractions started. As a bonus, I got to pick up my son from elementary school and spend quality time with him. I would often answer email in the evenings. So I ended up working ~9-10 hours a day.

Now that I work from home (for a different company), I probably work roughly 60 hrs per week. But my time is much more flexible, I typically work 8am->5pm most days, with one or two evenings of actual work (not just answering email) from 9pm to 1am, and often a few hours on the weekends. But somewhere in those 8-5 hours, I'll often take my son to school or pick him up, or take him to an athletic practice, or help him with homework, or have lunch with my wife, etc.

Given that my office is steps away, the line between home and work blurs. I find that it is hard to resist checking on things almost obsessively, and I often go into my office intending to just spend 2 minutes check the progress of something only to emerge 3 hours later.

<comment><USER4> I work for Google in MTV now. I typically get in around 9:30-10 and leave around 5 with half an hour of lunch and sometimes a trip to the gym in the middle. I never work or read email in the evenings, so I probably average slightly under 7 hours a day.

There's no pressure to work more, and I really value and appreciate that.

Still, I feel like admitting to enjoying your free time and working ~35 hour weeks is a scandalous taboo that would ruin your chances to get hired elsewhere, so I posted this on a throwaway.

<comment><USER5> I work for Google in MTV now. I usually get in around 8:30 and am out on the first bus, just before 4:00. I've worked 3 evenings in the past 5 years (2 were for hackathons, one of which translated into a transfer offer), and I spent two hours working on a weekend once, actually just a couple months ago. I usually play games on my phone on the bus.

I also feel no pressure to work more. I feel like I'm valued by the team, and frankly more time typing wouldn't make me more productive. I feel like the work/life balance team does a great job of advocating time off, so I don't feel guilty about my time off.

I've been at places that expected 60 hour weeks, and I've found that setting realistic expectations from day 1 were key to me doing my ~40 guilt free.

<comment><USER5> Also, FWIW I'm near my vacation cap. My plan is to start taking every other Friday off in order to not lose vacation. Teammates and manager were all like "nice" when I let them know.

</comment></comment></comment></comment><comment><USER6> I enjoy my job a lot. Web developer in Northwest Arkansas.

I usually come in at around 8:00, take maybe an hour lunch at around 11 or 12, and leave at 5. If I get called in the middle of the night, I'm always happy to help out.

When I worked for the government my hours were a strict 8:00 - 4:30 with a 1 hour lunch.

When I worked for Toshiba, it was 45 hour weeks; I hated that job so I would come in at 6:00 and leave at 3 without taking a lunch.

I think a big part of working a lot of hours is enjoying the work involved. I greatly disliked Toshiba and the government, so working less / more hours was just awful.

<comment><USER7> What sucked about Toshiba? I bought one of their laptops...

</comment></comment><comment><USER8> At my current contract job, I get to work just before nine and leave around 6:30, and have a quick lunch. I'm charging for nine hours a day.

The extra hour is making me both miserable and palpably less effective, but it's what I undertook, it's what they want, and the money's good.

I'm going to try and avoid jobs that expect more than 40 hours on an ongoing basis after this.

</comment><comment><USER9> I'm a math/software guy at NASA. I work 80 hours every two weeks, with flexible scheduling. A lot of folks will work over 8 hours a day to get one or two extra days off every pay period. Others (like me) tend to opt for a more traditional work schedule. I do a fair amount of telework though, usually at least 1-2 days a week.

</comment><comment><USER10> 8:30 - 12:30 / 2:00-5:30 I work in Paris, France so my lunch break (actually go to the gym and grab a sandwich afterwards) is paid. Some of my colleagues do 9:30 - 1:00 / 2:30 - 18:30 or alternative hours (some work remotely, some from the office).

</comment><comment><USER11> I have worked at a startup before and after acquisition. I am a morning person and have small kids so I normally worked 8-4. I got a little push-back for leaving early, but after a few days of telling my boss what I had already accomplished by the time he got in in the morning, it was pretty much ok.

Now, I work from home, so I usually work something like 8am-3 plus 8pm-9 so I can play with my kids after school. Highly recommended.

But if you're asking this question, then what you probably need is advice about how to talk about this with your boss.

</comment><comment><USER12> 8:30-5 (I leave a bit early to beat traffic. Sometimes if I can't sleep I'll VPN in to work and do some code janitor tasks. A few times a year my work load gets heavy enough that I'll work extra at night or very early to get through it, but that's not my normal routine.

My lunch is anywhere from 0 to 90 minutes but I probably average about 30 minutes.

During the day I'll sometimes go for a 30 minute walk. I keep a guitar at work so if I get hung up on something I'll play for bit.

<comment><USER13> Presumably you have your own office, or do your work colleagues enjoy the impromptu performance?

<comment><USER12> Yeah, we each have an office with a door. My guitar is an electric that I either play through headphones or unamplified. Plus, I'm often just playing scales or something.

</comment></comment></comment><comment> jack-r-abbit Bay Area office for a SoCal based company with other offices scattered around the US. I work from home M-Th and go into the office on F.

While WFH, I usually start around 8:30 so I can get emails and stuff out of the way before our standing 9:00 sprint meeting. I have quite a bit of flexibility on when I take lunch (some times I eat at my desk while working, some times I eat in the living room watching tv). I wrap up my day around 6ish. Often I am multi-tasking between work and cooking dinner between 5-6.

On Fridays I usually try to get in before 8 because parking is cheaper if I enter before 8. Group lunch is usually about an hour (give or take... depending on how many people are there). I usually leave around 3-4. My boss understands my commute isn't great (neither is his) so he's cool with me cutting out a little early on Friday. He does too. He also works from home most days. If he isn't going to be in on Friday, then I usually don't go in either.

My boss is big on letting your work product show how much you're working. As long as I'm getting my crap done, he doesn't really care if I take a 3 hour lunch and then work at 9PM. Most of the team I work with is spread out, with only three in our office. So working from home is not much different than working from the office. Even at the office, meetings are online, taken at my desk. (Which is weird some times since my office is right next to my boss's office and I can usually hear him through the wall half a second before I hear him on the call.) But it is nice to get some face time with my boss (and coworkers from other teams I'm not on) once in awhile.

</comment><comment><USER14> Programmer, Missouri.

My first few years full time I worked from 7 - 3:30, with a half hour lunch. During this time this I was working to live. I had an overly active social life, and night classes at College.

My next few years I worked from 8:30 - 6:30, with a two hour lunch. This was nice because I could do all those little errands, that require banking hours. Most days I got to take a nap, surprise the wife with lunch, or eat somewhere where they actually cook the food.

For the last 9 months I have been working from 8 - 3, with an hour lunch, and 8pm - 10pm.

I have been working for the same company for 10 years. They have two rules:

1\. If I am working that day I need to be on the clock or reachable during "core hours". For us, core hours are from 10am-3pm.

2\. Keep a consistent schedule. I can't just show up whenever.

My lunch periods are always unpaid. Occasionally I go out to lunch with a coworker, and if we talk shop more than half the time we are encouraged to charge our meals to the company credit card. This happens about once every three or four of months.

</comment><comment><USER15> I work as a software engineer at a (primarily) communications firm in San Diego.

I leave the house at 6:45 or so to get to the office by 7, work til 11, take an hour long lunch, and then leave at 4:30 or so.

I also occasionally work a couple hours on the weekends. All this is so that I can take off super early (ideally, by like 2 PM) on Fridays. Gotta love that 40 hour work week.

My first 3 hours of the day are uninterrupted bliss until everyone else gets there. Then I generally alternate working alone and either pair programming or meetings about every hour I'm there til I leave.

My company allows for ridiculously flexible hours, the only rule is that you have to be in the office 10-2 at least 3 days a week so people can schedule to meet with you in person if necessary. Beyond that, so long as you work at least 40 hours and are properly supporting all your projects, you're golden.

</comment><comment><USER16> Typically something like 11:30 - 19:30, but with wild variations. I work in academia so I enjoy a lot of freedom in that respect.

It's not rare that I work in the evening, or during weekends, but I am never required to (although when paper deadlines are due, there is a strong expectation that you will in order to finish things up).

</comment><comment><USER17> I worked strict 8-4 with an hour paid lunch at my last job (so 35 hours ass in chair time). The office was generally empty around 4:30

Now I generally get close to 40 hours in a week, but rarely hit it. Hours are very flexible (today I'm in at 6am, yesterday 9).

Both jobs were smaller companies (<50) in Vancouver, Canada.

</comment><comment><USER18> I come in at varying times but officially I work 7.5 hrs a day with an unpaid lunch. Usually I come in ~10am and leave ~6pm. If something is broken on weekends or nights though I am fixing it, and when there is a large time sensitive project I will work more hours from time to time.

</comment><comment><USER19> UK here - typically 8:30ish to 4:45-5ish for me

Could easily go 9-5 but I am very much a "morning" person and my productivity usually nose-dives after about 2pm (so I choose to have a very short lunch or eat at my desk, but could easily take a full hour if I wanted)

</comment><comment><USER20> 10am until 3 or 4pm.

M/W/F I work from home and at the moment T/Th I drive to the office about 30-50 minutes away depending on traffic.

Edit: Work as Senior Software Engineer for a startup in the US.

</comment><comment><USER21> My last job I worked 10:30-5:30 and took an hour break for lunch/gym.

Just started a remote job, so now nobody cares about my hours, just my results. Too early to say what the typical day is.

</comment><comment><USER22> Current client's 'official' hours are 9:30 to 6:30 with an hour break.

In reality, I get in as early as I can (When somebody unlocks at ~8:30ish, has occasionally meant sitting outside waiting), and then go home after about 8.5 hours (not including lunch break).

Most other people get into the office when I do, and then leave sometime after.

They don't pay any more than 40 hours, and pay at the _very_ end of the statutory 30 day payment terms. If they want to be sticklers, I can be too.

</comment><comment><USER23> ~8 hours of work starting at somewhere between 7:30 and 8am (so i don't have to deal with rush hour). lunch is generally 1 hour but sometimes i take less and leave sooner, and other times i take more and leave later. if i'm in the middle of something, i generally stay until it's done, but some of my coworkers drop everything when they've done their ~8 hours.

(Silicon Valley/salaried)

</comment><comment><USER24> Mostly roughly 9 to 5, although lately I have been heading into the office at 7 - 8 am & leaving at 5, or sometimes later if I'm engrossed in a particular task. Lunch is whatever time I choose to have it, typically I'll do a half hour, sometimes a little longer.

I also have flexibility to leave when I want too - there have been days where I left at 3 pm to go running with friends.

</comment><comment><USER25> I typically work 8am-4pm, but most people in my office work 9:30am - 4pm. Our parking lot is empty at 9am and 5pm

<comment><USER26> This is me as well 8am-4pm... but most people in my office work 9-5 or 10-6pm, which often means answering emails when I get home. This schedule has held true for my previous two jobs as well. Exceptions are when servers and sites go down, but my current company gives me comp time when I get pulled away from my family on a weekend or a vacation so it all works out.

</comment></comment><comment><USER27> I work remotely on the west coast for a company in the Midwest.

8am-12/1pm-3pm

7pm-9pm

Leaving work at 3pm gives me time to hit the gym, make dinner, and hangout with my wife for a bit. I'll typically pick back up around 7pm and work for another hour or two depending on how busy we are.

My evenings after 9pm are then open for whatever, which is nice.

</comment><comment> punk-coder My typical workday is more like 9:30 - 4:30 or 5:00, although if needed I'll hang around until 6:00 or so. I work as an Application Architect in a large enterprise. We have some developer teams that work start-up hours, working 60+ hours a week, but most of us do an 8 hour day.

</comment><comment><USER28> Usually 7am to 8pm every day, including Saturdays (I only get Sundays off)

I'm a really hard worker and I'm really smart so I like the long work hours. When I see people coming in before me and leaving after me, its a nice reminder of what a good employee I am.

<comment><USER15> > I'm really smart

Oh you poor sweet summer child. I hope you're being sarcastic, or you're gonna get pulled down real soon. The professional world is rough :/

> a nice reminder of what a good employee I am

Remember, you are _much_ more than your job, and if you're staying late to please the company you're not doing yourself any favors. Do it to make extra cash, or to land a big promotion, or maybe to brown nose with your boss, but don't ever think that you staying late is going to so massively help the company that it'll come back to you. I'm not trying to be pessimistic, I just hear a lot of the same things I said my first few months as an engineer and they depressed the shit out of me for a while.

<comment><USER29> I thought it was a troll, but this account posted this a day ago: "About to turn 60, been a daily hardcore drug user for most of my life". So it seems like they're pretty used to this lifestyle.

</comment></comment></comment><comment><USER30> I'm a remote web developer who works for a company in Virginia. I'm in rural Texas. I usually work 10-5 central, taking an "unpaid" hour for lunch. But I will also push that around however I need to in order to get work or personal tasks done.

</comment><comment><USER31> I work at a Post Series B startup (so really medium size tech company). I typically work about 9:00am-6:30pm, with a decent break in the middle for lunch. Fridays are usually shorter.

This is busy season for us, in the winter, I'd probably leave around 5:30 instead of 6:30.

</comment><comment><USER32> 8.30-5:00 There's a few folks that do more than that but they're the more senior folks.

That's the thing I've seen about a hierarchical company structure, the further up the ladder you go the more that's expected of you and the less return you get.

</comment><comment><USER33> Germany, 7am-4pm, with half an hour of unpaid lunch time. Usually by the time I arrive at work I already did my workout (gym or running). Since I'm living close to my work place I also drive my bike from/to work which takes about 20 min.

</comment><comment><USER34> Mostly 8 hours depending on if I get caught up in code and then stay half the evening to get the damn thing working finally again after breaking something critical even though I was just going to change the stylesheet.

</comment><comment><USER35> France: 9am-5:30pm with 1:30 for lunch (typically from 12:30pm - 14pm)

</comment><comment><USER36> I'm working at a fin-techy start up outside NYC. Hours are normally 8:45 - 19:00 with an hourish paid lunch. Very flexible though - people leave early frequently

</comment><comment><USER37> Scotland UK, we work a 4 day week; 9:30–17:30/18:00

28 days paid holidays

I normally grab lunch at my desk except on Wednesdays were we have a staff lunch which normally takes an hour.

</comment><comment><USER38> Mine is 8 to 5 with one hour lunch break. That is the minimal expected. I hear about other developers regularly working 10-12 hour days though.

</comment><comment><USER39> Mostly 9-5 or 10-6. I don't usually eat lunch.

<comment><AUTHOR> I use the full hour about once a week, but you are expected to be around 9 hours regardless.

Thanks, I am glad to hear that at least someone works the schedule I expected though.

</comment></comment><comment><USER40> When I worked at Bloomberg, if you left after 12 hours in a given day, the other developers would mock you by saying:

"What--another half day?"

</comment><comment> Jean-Philipe 9-10 until 18-19, plus/minus one or two hours

</comment><comment><USER41> 7am - 7pm in office, plus 1 hour commute each way.

<comment><USER42> I hope you're writing lots of job applications.

<comment><USER41> Yeah, it's intellectually interesting work, but it takes its toll.

</comment></comment></comment><comment><USER43> Australia: 38 hours per week, fairly flexible as long as I am around for core hours. Can leave to go to shops for lunch.

</comment><comment><USER44> Bay area startup with 100+ employees. Expected hours are 10am to 9pm, plus a little less on Sundays.

<comment><USER45> You are expected to work 11 hours a day for 6 days a week, and then some more on Sunday? A 100+ employee company shouldn't be setting that expectation. No company should be asking that, regardless of size.

<comment><USER44> Perhaps I wasn't clear. The 10am-9pm is only on weekdays. Saturdays are off.

</comment></comment></comment><comment><USER46> UK here. I work 7.5 hour days with an hour unpaid for lunch. I usually work from 8am - 4:30pm.

</comment><comment><USER47> Varies, but generally between 8 and 6, with some email checking (~15min)at 6am and 10pm.

</comment><comment><USER48> required 7.5hrs/day + .5hr for lunch but i put in an additional 50mins - <USER2> per day and get every other Friday off. Vancouver, Canada (about 50 employees)...

btw, when school is off, i get to come in at 6am. on school days, i come in around 7:30

</comment><comment><USER49> UK rather than US, I typically work 10:30-19:00 with a half-hour unpaid lunch.

</comment><comment><USER50> 9/930 - 6/830; no lunch; run my own company based in NYC

</comment><comment><USER51> BLR: 9:00a-6:30p [includes 30m paid lunch] + 30m commute each way

</comment><comment><USER52> Working remote for me has been 9-5 with an hour for lunch.

</comment><comment><USER53> Poland. Internship in multinational company.

9am-5pm.

Time for lunch - not specified.

</comment><comment><USER54> Canada, 10am-6pm, 1 hour lunch (30 mins paid).

</comment><comment><USER55> 9-16:30 then 18-22 on private projects

</comment><comment><USER55> so much wasted time</comment>


Read It Later Raises $2.5 Million - <AUTHOR> http://techcrunch.com/2011/07/26/read-it-later-raises-2-5-million-wants-to-become-the-dropbox-of-content/

<comment><AUTHOR> Do you think this deal was before Safari's "Reading List"? I don't see bright future with ReadItLater, now that we have Safari's built in feature other browsers will follow.

</comment><comment><USER2> When I see a headline like this, I just think "bubble". How can that raise 2.5 bar?</comment>


I Hate Your Paper - Why peer review is broken - <AUTHOR> http://www.the-scientist.com/2010/8/1/36/1/ <comment><USER2> Although I do prefer the idea that all peer reviewers are transparent, anonymous peer review isn't the problem per se—it's really the lack of oversight of the anonymous reviewers by the journal editorial staff that's the real problem.

The editorial staff (which unfortunately is overworked and doesn't have the time to do this) needs to review the anonymous peer reviews and compare it to feedback from the original authors. If a particular anonymous peer reviewer that is consistently at odds, then they should no longer be used.

Of course, the above is much easier said than done.</comment>


Apple At Its Worst: It's Time to Stop Censoring Apps - <AUTHOR> http://www.readwriteweb.com/archives/apple-should-reinstate-drone-stop-censoring-apps.php While not as horrifyingly Orwellian as it could be, the fact that the biggest company in U.S. history makes decisions about which content is too "objectionable" for its customers is unsettling. <comment><USER2> The standard "they're a private company/Android is an alternative" reply to this argument remains shortsighted. I'm an actor in the economy as well, and and I can apply non-monetary pressure (like editorials) just as well as Apple can (like advertising) to try to get a product that I want and a policy that I want in the same place. "Accepting it" leads to non-optimal solutions. We can disagree on what is optimal, of course.

However, the argument in this article is weak. It's not an argument to stop censoring apps, it's just saying, "continue blocking speech, except when its speech that I like". The author seems perfectly OK with some of Apple's other fairly arbitrary standards because the experience is OK so far.

All curation is "censoring". Being absolutist here isn't that insightful -- obviously there are degrees of censorship and a significant difference between "censoring" political apps and "censoring" malware -- but it is an important point to keep in mind.

Personally, I believe the answer is to allow side loading, trading a bit of pain (especially for security reasons) to allow determination on your own of what is acceptable to run on your device beyond the curated apps. At that point, the curated app store as a good thing becomes a much stronger argument for me, because everything that particular curator disagrees with is still available somewhere, even if it turns out I almost always agree with the curator.

At least (AFAIK) Apple has been less hard on the jailbreakers in the last few years.

<comment><USER3> True.

Censorship counts even for "bad" things. The US has free speech, unless it is child porn, for instance.

</comment></comment><comment><USER4> Apple censoring apps in its own proprietary app-store isn't really a big deal to society as a whole.

Apple censoring what other devices are allowed to exist outside their production-lines and what competing products customers are allowed to choose is.

<comment><USER5> I know that this is a hopeless request but can we stop using the word "censor" when we are really talking about curation, or editorial policy, or private business decisions, etc?

Government imposed restrictions on speech and/or commerce is something entirely different from plain old business decisions and it would be nice if we didn't conflate the two things by overloading the meaning of "censorship".

<comment><USER6> IMHO, restrictions on speech and/or commerce do not need to be imposed by a government in order to count as censorship. Any controlling body will do.

If you control software distribution on a plaform, you directly or indirectly control every information that customers of that platform receive. I think this covers censorship.

Of course iOS does not have a dominant position in the market yet, so censorship is limited by the customers choice to switch to another device. But as I explained above, the moment to speak against the control is now, as long as there are still alternatives left.

I think this "plain old business decision" is a political issue of great importance.

<comment><USER5> Ok so now 'business' is the same as 'politics'?

The problem with tossing all these things into the same etymological barrel is that you lose the ability to communicate effectively about their differences.

Government restrictions imposed by force are not the same thing as market realities created by private decisions.

Business decisions are not the same thing as public policy crafted via the political process.

It is true that business decisions can have public policy implications and vice versa. That doesn't make them the same thing though.

</comment></comment></comment></comment><comment><USER7> Totally disagree, its a major part of why I brought an iPhone over anything else (as a consumer). Anything hooked to me financially I want locked down, and with the near field stuff creeping in day by day I'd prefer things to be getting tighter and tighter, not looser and looser.

<comment><USER8> You bought an iPhone because you _don't_ want the ability to be notified of drone strikes?

<comment><USER7> That is exactly what I mean ;) Pretty getting a notification that a drone is near is not going to save your life. For one thing any drone coming to kill you is unlikely to be spotted until its to late. And places where it could be useful I doubt there is useful cell coverage anyway.

So I'd wager that app is nothing more than a titalating tool to fill peoples morbid curiosities. And at which point this is a conversation about culture, taste, censorship.

At that point I expect Apples well documented self protection guidelines to kick in and distance themselves from the app... leaving it up to people use other options not associated with apple to view that content i.e. creating a pseudo app by book marking to the home screen.

</comment></comment></comment><comment><USER9> "25 Billion Apps Later, Things Have Changed"

I love how the App's store's success is used against it here. You've been so successful with your approach you need to totally turn your back on it and be more like these relatively unsuccessful stores!

Huh, or maybe that success is partly because they curate and decided not to turn their device's third party app economy over to pirates and spammers.

</comment><comment><USER10> If you don't like it buy an Android!

Honestly, I love how Apple protects the user experience. Whether from spam, or "inappropriate content". They have created a relatively spam-free app store with pretty reliably "clean" content.

I don't even think it is an issue of free speech. I'm all for the web being open and free, but Apple has a right to manage their market the way they see fit. Just because so many people use iPhones doesn't change anything. You are FREE to choose a different phone. If you don't like their app market, go use a phone that has a market you do like.

</comment><comment><USER8> "Apple at its worst" is the chicanery of not letting you own the device they sold you. App store censorship wouldn't be a problem if there were other ways to get the programs you want and/or need.

<comment><USER11> For $99/year, you can put any open source program on it you like. That's all it costs to be a developer.

<comment><USER6> But you can not distribute that program.

<comment> k-mcgrady You can distribute the source code and allow others who have paid $99 load it on to their device. Or distribute it via Ad hoc (limited to 100 per year), or purchase an Enterprise account which might give you more distribution options outside of the store.

</comment></comment></comment></comment><comment><USER12> I wonder what would happen if Apple allowed consumers to pay for the ability to sideload apps. It seems like this might address the concerns of the vocal minority of techies that truly care about this sort of thing, while still maintaining the sanctity of the walled garden for the masses. If you know what you're doing, signing up for the $99 dev program already effectively allows you to load whatever apps you want on your device. If Apple made this process a bit simpler and more accessible they might get a PR win & a (small?) incremental revenue stream. I don't expect that they'll do it, but it would at least be a new approach..maybe something for MSFT to consider to differentiate themselves.

<comment><USER13> "If you know what you're doing, signing up for the $99 dev program already effectively allows you to load whatever apps you want on your device."

Not even close, sadly. You still can't install any apps that do any system- level stuff, regardless of what you pay. Apple still exerts a good bit of control over what you can do even with your own device, your own code, and your own dev program membership.

</comment></comment><comment><USER14> Focusing on the wrong point.

It's not a matter of censoring anything, because the AppStore is theirs, and they can do whatever they want and not even have to explain their decision.

It's about defining who is the owner of the device, and who controls what goes or not in it. _This_ is the case you can take to court.

<comment><USER15> Are any of these articles criticizing Apple calling for the government to forcibly open the AppStore? No. We are making demands as Apple customers.

</comment></comment><comment><USER16> I was planning to replace my Android phone with an iPhone when my current contract ran out. Now I think I won't.

</comment><comment><USER17> People that keep writing articles like this should not buy Apple. Apple is going to do what they're going to do. Either accept it or buy Android. Those are your options.

But let's be serious, Apple risks "consumer trust"? Not in any way that is likely to be measurable.

<comment><USER18> >> "Still, it's a new kind of gatekeeper, and it holds the keys to a platform used by millions of people around the world. While not as horrifyingly Orwellian as it could be, the fact that the biggest company in U.S. history makes decisions about which content is too "objectionable" for its customers is unsettling."

I am forever bewildered by consumers that have this sense of entitlement around a company and "demand" this action or that action.

It's their company. They can do whatever they want. If you don't like it, that's great. Dissenting opinions are a foundation of this great country. But Apple also deserves the right to not care what you think, and not care if you go somewhere else. The majority of consumers have no problem with it.

If Apple wanted to wall of the entire platform, they could do that. But instead they have created the biggest app market for mobile devices (from what I understand, please correct me if this is not 100% accurate, but the point remains it's huge). Does it suck that a few apps are rejected for seemingly dubious reasons? Sure, I guess it does for those developers. But I've been hearing dire warnings about mass exoduses and public outcries since the inception of the app store. Hasn't really happened besides a few edge cases that we see on Hacker News every other month or so.

To be honest, I feel that this particular app's story is only popular because it has to do with the politics of the drone program.

>> "Some consumers are already beginning to grow uncomfortable with Facebook's privacy policies, Google's targeted advertising, and other cases in which, whether justified or not, technology starts to feel a little creepy. Twitter takes protecting privacy and free speech very seriously, and even if most users don't notice or care yet, that stance will serve the company well as social media continues to part and parcel of our daily lives."

Got it. FB and Google evil. Twitter good.

Except that's not really true either. Twitter has worked with several law enforcement offices, particularly when identifying Occupy Wall Street protestors that were accused of crimes.

So I just don't find this article very credible on the facts, or the opinions persuasive at all.

<comment><USER19> _It's their company. They can do whatever they want. If you don't like it, that's great. Dissenting opinions are a foundation of this great country. But Apple also deserves the right to not care what you think, and not care if you go somewhere else. The majority of consumers have no problem with it._

Too bad Bill Gates isn't looking for a lawyer or advocate now. <http://en.wikipedia.org/wiki/United_States_v._Microsoft>

<comment><USER18> Are you suggesting Apple is a monopoly?

<comment><USER19> No, not yet (~30% share) but what you said it's not true. They cannot do "whatever they want." Eventually the Feds will start asking questions.

<comment><USER18> What kinds of questions will Federal Agents be asking Apple? What kinds of illegal activity are you insinuating Apple has perpetrated?

(edit: Disclaimer I previously assumed was unnecessary: Apple can't "do whatever they want", you are correct. For instance, if Tim Cook killed a hooker, that would be bad.)</comment></comment></comment></comment></comment></comment>


How to price a new course? - <AUTHOR> http://grep101.com/blog

<comment><AUTHOR> Going against the grain of most advice to boot-strappers of course!</comment>


Ask HN: How (and with which tools) does the music/film industry fight piracy? - <AUTHOR>

I'm wondering what tools the labels, studios, RIAA, MPAA and whoever else fights piracy uses in order to remove File Hoster links, log bittorrent protocols etc. and how successful that is. What are the metrics here? Is it worth it for them? How much do they spend on this stuff?<p>Or do lawyers do that for them? Then what tools do they use? I'm just generally interested in the topic from an industry perspective.. <comment><USER2> How successful is it? Do a torrent search for any album you want and that will answer your question. I'm not sure the labels really have a solid strategy to combat piracy. So far their threats have seemed pretty arbitrary to me. I highly doubt that their lawyers are involved with any technical system they have, assuming they have a technical system at all. Look at it from a feasibility standpoint, how could a major label possibly prosecute, let alone distinguish, all the people pirating their music? They can't. So far, I think they've settled for making examples out of people. The theory being that if guy A gets hit with a 200,000 dollar fine for downloading a song, other people will be scared enough to think twice.

I think any reasonable person can reach the conclusion that suing all the people downloading your music is an exercise in futility. What will they do? Well, that's the exciting part... who knows? Furthermore, who really cares?

Artists are moving on to better models, the public is moving on to better models. The only thing I feel I can rest assured of is that the major labels need to figure out how they can maintain relevance in a market that doesn't value them as much anymore.

<comment><AUTHOR> Very good points. I especially second that it's about damn time for new business models..

Coming back to the question how they fight piracy, I know they do remove lots of links, my question is more directed to how and why they do it or don't.

Some artists/labels/studios still do the lawyer scheme in which they sue thousands of people and hope that a small percentage settles, which brings in a lot of additional revenue. And this is also where individuals get hit with out-of-space lawsuits..

But they did seem to learn from it and try hard not to make press by suing 11 year olds who just downloaded 3 songs over $27Mio anymore.., so they don't focus on the casual downloader or the streamer who doesn't even know if the site is legitimate because it looks professional, but rather on the uploaders..,

but still, I'm really interested if there's an industry out there for this, because in my mind, every 20-something could tell them how to deal with piracy better than probably most of their lawyers or advisors.

I'd love to get in a conversation with one of those guys though and hear their points of view, also the artist's point of views..

</comment></comment><comment><USER3> It has been said that they pretend to be a leecher, wanting parts from everyone in the group, then they give all these IPs to lawyers. The lawyers are meant to (ab)use the courts to translate an IP into an american citizen to be sued, but the courts are throwing these cases out generally.

It's successful, and it's not. Takedown requests aren't fought, so it goes down, but two more come back up in its place. You'd think the RIAA et al would be the Lernaean Hydra but technically the people responding to the DMCAs are (not that I disagree with them).</comment>


A Git protocol parser written in Go - <AUTHOR> https://github.com/google/gitprotocolio <comment><USER2> Given that [https://github.com/src-d/go-git](https://github.com/src-d/go-git) exists, this seems like a purely interest-driven learning project, as it says.

</comment><comment><USER3> I thought google had removed the 20% project program.

<comment><USER4> Perhaps it's more like 20% out of 120%.

<comment><USER3> In the 70's at HP (a very different company than the current HP) we had G-Jobs. A G-Job was working on personal development on HP time using HP parts. The term G-Job was a joke. If a manager asked you what you were working on you told them it was "government work". It was semi-officially approved of.

There was a catch though. If you wanted to sell your development you had to give HP first right of refusal. If HP didn't want it you could do whatever you wanted with it.

The Apple 1 was a G-Job. Wozniak offered it to HP and they refused. So he was able to sell it.

<comment><USER5> Ah! I didn't know it was HP that let Woz walk out the door with the Apple 1.

</comment></comment></comment></comment><comment><USER6> "How can we make git, that totally sucks, even worse?"

"I got it Edgar, let's write that shit in golang!"

<comment><USER7> Its more like "How can I better understand the git protocol?" "By implementing it myself".

This was clearly labeled a learning experience. I doubt this person even intended it to be found as fast as it was.</comment></comment>


Most Teachers Don't Teach Climate Change; 4 in 5 Parents Wish They Did - <AUTHOR> https://www.npr.org/2019/04/22/714262267/most-teachers-dont-teach-climate-change-4-in-5-parents-wish-they-did <comment><USER2> Terrible headline. My first thought was that most teachers don't teach math. Lo and behold, once you page through half the text, 65% of teacher don't teach climate change because it is irrelevant to their subject.

(Definitely we should be teaching climate change—in science classes. Maybe even history classes. But in >50% of all subjects? eh...)

<comment><USER3> It would be interesting to look at the Keeling curve in mathematics. Plenty of fun stuff there, you can see the seasons with a Fourier transform, see if the second derivative means we're all gonna die, etc.

One of the weaknesses of my mathematics education was not enough real world applications, so I never cared about what I was learning. In Calc II I was so bored by Taylor series because when am I ever going to use this? Fast forward two years to meteorology classes and it's Taylor series and numerical methods everywhere.

<comment><USER4> For a proper Fourier transform you need to wait until the first years of the university, perhaps the lasts year of secondary school in some places. Anyway, it doesn't look like a nice function for a Fourier transform, because the border effect will be huge.

In the middle of secondary school, if you are lucky you can try fitting the function line a polinomial plus a trigonometric function with Excel. You have to pick an initial value of the parameters that is close to the function, otherwise solver will never get a good fit.

I'm not sure how many math teacher are prepared for this. I have more faith in physics teachers that have a better training in dealing with noisy real word functions that have to be fitted to a model.

> _see if the second derivative means we 're all gonna die,_

I think that even the worst model don't predict the humanity extinction, perhaps a huge amount of displacement and the following wars, problem for crops and food production and the following hunger, change of rain pattern, sea level increase, and other very nasty stuff, but not extinction. Also, the timeframe of most of the catastrophes is more than a century, so there is plenty of time to dance on the Titanic.

</comment></comment></comment><comment><USER5> If you have 2 or more teachers, odds are very good you're being taught about it. I had 6+ teachers as a senior in high school. No need for my band, math, English, or even history teacher to teach it. This headline is not alarming.

</comment><comment><USER6> At my wife's elementary school, they taught climate change and what the kids could do to help (recycle, conserver water and energy, etc.). But you know what actually got the kids to start doing all those things and making their parents recycle and turn off lights?

The movie "Happy Feet". It scared the kids into thinking the planet will melt.

What we really need is more cartons about climate change. That's what will get kids concerned and their parents.

<comment><USER7> Yes but what to do about the adults who deny a problem exists and the news network that reinforces it?

<comment><USER8> Difficult one! How do you get people like Bengtsson, former director of the Max Planck Institute for Meteorology in Hamburg and winner of the 51st IMO Prize of the World Meteorological Organization for his pioneering work in numerical weather prediction, and Richard Lindzen, ex-Professor of Meteorology at MIT, Freeman Dyson plus a couple of physics Nobel prize winners and a score more, to see sense? If only they'd listen to Greta Thunberg!

</comment></comment></comment><comment><USER9> Strange...I remember learning about climate change in kindergarten in the 90s...

<comment><USER10> How is that strange, dude? 42% of teachers teach it. It's almost literally a coin flip whether you get it or not. Not exactly rare odds.

</comment></comment><comment><USER11> Interesting to see how high the percentage of people who want to be taught more about climate change in the US (among both Republicans and Democrats too!)

Here in New Zealand there isn't any standardised content/curriculum specifically focused on climate change as far as I know, but it is very much talked about in the classrooms of most schools.</comment>


Why Is the Migration to Python 3 Taking So Long? - <AUTHOR> https://stackoverflow.blog/2019/11/14/why-is-the-migration-to-python-3-taking-so-long/ <comment><USER3> The simple reason is that there was no compelling feature to reward you for upgrading. You'd spend a tremendous amount of effort for dubious return and (until recently) a smaller ecosystem.

1\. Unicode support was actually an anti-feature for most existing code. If you're writing a simple script you prefer 'garbage-in, garbage-out' unicode rather than scattering casts everywhere to watch it randomly explode when an invalid byte sneaks in. If you _did_ have a big user-facing application that cared about unicode, then the conversion was incredibly painful for you because you were a real user of the old style.

2\. Minor nice-to-haves like print-function, float division, and lazy ranges just hide landmines in the conversion while providing minimal benefit.

In the latest py3 versions we've finally gotten some sugar to tempt people over: asyncio, f-strings, dataclasses, and type annotations. Still not exactly compelling, but at least something to encourage the average Joe to put in all the effort.

<comment><USER4> > Unicode support was actually an anti-feature for most existing code. If > you're writing a simple script you prefer 'garbage-in, garbage-out' unicode > rather than scattering casts everywhere to watch it randomly explode when an > invalid byte sneaks in. If you did have a big user-facing application that > cared about unicode, then the conversion was incredibly painful for you > because you were a real user of the old style.

Actually that's the behavior of python 2, it works fine, until you send invalid characters then it blows up.

In python 3 it always blows up when you mix bytes with text so you can catch the issue early on.

> In the latest py3 versions we've finally gotten some sugar to tempt people > over: asyncio, f-strings, dataclasses, and type annotations. Still not > exactly compelling, but at least something to encourage the average Joe to > put in all the effort.

That's because until 2015 all python 2.7 features were from python 3. Python 2.7 was basically python 3 without the incompatible changes. After they stopped backporting features in 2015. Suddenly python 3 started looking more attractive.

<comment><USER5> > In python 3 it always blows up when you mix bytes with text so you can catch > the issue early on.

This is definitely the case. I've been wrestling with bytes and strings all the time during the port of a Django application to Python 3 for a costumer. I can see myself encoding and decoding response bodies and JSON for the time being. For reasons I didn't investigate I don't have to do that with projects in Ruby and Elixir. It seems everything is a string there and yet they work.

<comment><USER6> I've worked in a variety of Django codebases, and the last time I had trouble with string encoding/decoding was with Python 2. Since moving to Python 3, I have rarely needed to manually encode or decode, and I genuinely can't remember the last time I did.

Perhaps there's something about a port that requires encoding/decoding bytes/strings?

<comment><USER4> The encoding/decoding is heavy in codebases that have to run on Python 2 and Python 3 at the same time, and authors are worried about handling unicode correctly on python 2.

Ironically when your python 2 app doesn't care about unicode, the porting to python 3 is actually much easier.

</comment></comment></comment></comment></comment><comment><USER7> Because there's been not enough carrot and too much stick.

The only real killer feature of Python3 is the async programming model. Unfortunately, the standard library version is numbingly complex. (Curio is far easier to follow, but doesn't appear to have a future.)

On the down side, switching to Unicode strings is a major hurdle. It mostly "just works", but when it doesn't, it can be difficult to see what's going on. Probably most programmers don't really understand all of the ins and outs. And on top of that, you get weird bugs like this one, which apparently is simply never going to be fixed.

[https://github.com/pallets/click/issues/1212](https://github.com/pallets/click/issues/1212)

<comment><USER8> I wonder how many people feel that migrating to Python3 would have been worth doing in the absence of being forced to do so.

Dropbox invested three years of work, actually hired Python's creator, and are still not done. What are they getting out of it that they wouldn't have gotten if Python2 simply had been maintained?

<comment><USER9> This is backwards thinking.

Yes, it's expensive to upgrade from Python 2 to Python 3, but it's also expensive for the Python project to maintain 2 versions of Python indefinitely. If someone wanted other than the core Python team wants to step up and maintain Python 2, they are free to do so, it's open source. But failing that, expecting the Python team to support the older/ less functional version of the code indefinitely is unrealistic. Corporate owned languages have even shorter lifecycles for exactly this reason.

<comment><USER10> > _This is backwards thinking._

And the alternative is cargo cult "newer is better".

> _Yes, it 's expensive to upgrade from Python 2 to Python 3, but it's also > expensive for the Python project to maintain 2 versions of Python > indefinitely._

On the other hand, they could progressively enhance upon a backwards compatible single 2 version. JS manages to do that just fine, as does Java...

<comment><USER11> > On the other hand, they could progressively enhance upon a backwards > compatible single 2 version. JS manages to do that just fine, as does > Java...

Common Lisp has a backwards compatibility which goes into decades, and implementations like SBCL had no difficulties at all to absorb Unicode.

Racket even supports different language standards and completely different languages (such as Scheme and Algol) running on the same runtime. And both SBCL and Racket are compiled languages with a high-end GC which should make such things more difficult than CPython, which is purely interpreted and has a simpler GC.

But the incompatibility between Python 2 and Python 3 is perhap s only a symptom of a larger problem. The Python developers have decided that backwards compatibility is not that important any more. This is not a problem for companies like Dropbox, or small start-ups, from which 95 % will not even exist in five years on. It is, however, a huge problem for domains like scientific computing, where most code has no maintainers and even for very important code there is no budget or staff for maintenance:

[https://blog.khinsen.net/posts/2017/11/16/a-plea-for- stabili...](https://blog.khinsen.net/posts/2017/11/16/a-plea-for-stability-in- the-scipy-ecosystem/)

<comment><USER12> > But the incompatibility between Python 2 and Python 3 is perhap s only a > symptom of a larger problem. The Python developers have decided that > backwards compatibility is not that important any more.

Exactly: and that was a wrong decision for anybody but the developers of Python.

Everybody else prefers having something that works: "The improvements are welcome, but please allow us to to run our old programs too, thank you, and allow us to use that new feature only once we need it."

It's an obvious expectation. We would also _hate_ a new version of a word processor which wouldn't open our old documents. Or a new version of Photoshop which wouldn't open our old pictures. Or a new version of the browser where only the newest web pages are visible.

It follows that it was absolutely technically possible to have a new version of Python in which the old programs still work. It's the failure of the developers that they haven't made it.

Compare that decision of theirs with the policy of Linus Torvalds who insists that the old user programs should never break on newer kernels.

<comment><USER11> And the reason why I think there is a deeper problem is that the issue is clearly not solved with the python2/python3 transition:

Why do some python developers have to maintain installations of a whole handful of python versions just to ensure that their code is working? Why all the mess with pyenv, virtualenv, and so on? If the python developers, as well as the library developers would support backwards compatibility, this would not be necessary at all.

<comment><USER12> > the issue is clearly not solved with the python2/python3 transition

Exactly. The incompatibility mess continues when using different 3.x versions.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> I recently went through a fairly large upgrade from JDK8 to JDK 11 and it was a bit of a pain -- lots of dependencies to update, etc. But very few code changes were required, and the static type system made it pretty clear when the codebase was broken -- it just wouldn't build. It still took my team several weeks.

Migrating from Python 2 to Python 3 is way worse than that -- code changes are required, and because Python is a dynamic language you may not notice bugs until you actually run the code (or even worse, until after you release it to production and some code branch that is rarely invoked somehow gets called...). In other words, the tooling and the type system are not confidence-inspiring and it's really hard to verify that you migrated without breaking stuff.

<comment><USER14> Will this will make people less likely to use Python in future for some projects? I'm no developer or manager but I figure there'd be a thought in the back of my head thinking "what if we need to rewrite this all again for the next major release"

<comment><USER13> What I've been seeing is people using Python 3 for new projects but leaving their older projects on Python 2. As a result of that, Python 2 will continue to be supported internally at a lot of companies, even though it is "officially" end of life. Nobody wants to rewrite the stuff they finished years ago that is now in maintenance mode.

<comment><USER15> I considered doing this myself, but decided that I didn't want the hassle of having two versions of Python hanging around.

If/when the day comes that using Python 2 isn't realistic, I may go with 3, or I may choose a different language, depending on the project. I'll cross that bridge when I come to it.

</comment></comment></comment></comment><comment><USER16> First off. Python 2.6 and 2.7 supported Unicode just fine. I had a large all- Unicode system in Python 2.6. You had to write u'word" to get a Unicode constant, and use a "unicode(s)" function here and there. Also, the part that remained "compatible" was that "str" remained an array of bytes, even though there was also a type "bytes" and a "bytearray".

Early Python 3 was hell for conversion. The syntax was changed for no good reason. u'word" became illegal. (That later went back in.) The "2 to 3 converter" was a joke. I didn't have the "print statement problem" because my code called a logging function for all debug output.

Many of the P3 libraries didn't work. (The all-Python MySQL connector failed the first time I tried to do a bulk load bigger than a megabyte, indicating that nobody was using it.) It took _years_ before the libraries were cleaned up.

Python 3 got some really weird features, such as type declarations that don't do anything. I can see having type declarations, especially for parameters, but they need to be used both for checking and optimization. CPython boxes everything, which is terrible for numerics and is why most serious math has to be done in C libraries. My comment on that was "Stop him before he kills again."

<comment><USER17> > Python 2.6 and 2.7 supported Unicode just fine

It did, but in a way that chainsaws support sculpting just fine. Technically possible. Very advanced people will know how to handle it. Everybody else is just going to injure themselves randomly.

Most people writing py2 got the text/binary processing working on accident. Things appear to work until you throw actual Unicode into parameters and then nobody knows what happens. There's a number of "what does this decoding exception mean" questions on stackoverflow every day. They're often actual bugs people could ignore before. Now they're told immediately and I believe that's better.

<comment><USER18> Pictures of chainsaw sculptures for reference: [https://www.google.com/search?q=chainsaw+sculptures&tbm=isch](https://www.google.com/search?q=chainsaw+sculptures&tbm=isch)

Some are quite good and finely detailed in my opinion. It's really nothing like what you'd expect after hearing _chainsaw_. There actually are small chainsaw, maybe even one-handed ones, to do that.

<comment><USER19> I think ice sculpting on the other hand is usually done with a normal sized chainsaw.

</comment></comment></comment></comment><comment><USER20> Any non-trivial piece of code will probably be a pain in the ass to port for a more recent version of the language, and the level of PITA depends on the size of the project X size of the changes in the language.

Case in point, I worked in a project using Ruby. When we migrated from Ruby 2.4.0 to 2.4.6 (yeah, a minor upgrade), it broke spectacularly. Trying multiple Ruby versions, the change was actually introduced in Ruby 2.4.1. After some investigation, a change in Net::HTTP library from stdlib had a change that broke a dependency from a dependency. The fix was just a line of code (we just need to change the adapter used for HTTP communication), however it was two days of work for a minor upgrade.

My current job tried to migrate from Java 8 to Java 11. It also broke multiple services. This one is still in progress, months later.

Python 2 to Python 3 is bigger than both of those version changes (however it is equivalent to Ruby 1.8 to 1.9 changes), so yeah, it does take more time. And like some projects that are forever running Ruby 1.8 or Java 8 (or even worse, Java 6), we will have projects forever running Python 2 too.

</comment><comment><USER21> Another data point:

According to my highly unscientific survey of the packages in Gentoo's package repo, there are roughly:

\- 2500 packages that work with Python 2 or 3

\- 1350 packages that work with Python 2 only

\- 350 that work with Python 3 only

My methodology:

[http://dpaste.com/1M0TCV7](http://dpaste.com/1M0TCV7)

<comment><USER22> I bet many of the Py2-only ones are old legacy packages that have been superceded by newer better options.

</comment></comment><comment><USER23> >Why Is the Migration to Python 3 Taking So Long?

For the same reason why migration to IPv6 is taking so long.

Both technologies don't solve immediate problems end users are facing. Instead they solve 'nice to fix' problems that few people care about.

</comment><comment><USER24> In my current job, I can point out something that might be a contributing factor:

I work in an industry where there is basically one 800lb gorilla of a vendor. They update rarely, because their product is a mission-critical, life-or-death sort of thing. Their current product is heavily, heavily integrated with x.y.z version of software from a different vendor in a different segment, but also weighing in at 800lb. Yes, they specify x.y.z, not just x or even x.y. That software comes bundled with a Python 2.7.5 distribution.

Imagine my woes trying to get pip running, which unhelpfully suggests I upgrade Python. Cannot seem to find any other path to even get pip going because of what I call the "lol just upgrade n00b" factor. Perhaps that information once existed but I cannot find it.

So, I am stuck on this version because of some pretty tight integration, at a couple of removes. I think the vendor-linkage can cause some "drag" that folks who work in a greenfield environment might not be thinking about. It can be unfortunate but there it is.

<comment><USER18> Surprised it's including pip, if it's really this old or tightly coupled, it's common to not have pip at all, or the old pip version simply can't run.

If it can help you. The trick I use is to install a normal python 2.7 interpreter with pip. Then you can use it to install software to any directory, including the one from the other application. There are flags to specify what to install, from where to where, internet or not, something like

        pip install packagename --target=/to/app/lib

<comment><USER25> I came across a system where pip had broken the other day. easy_install to the rescue!

</comment></comment></comment><comment><USER26> Py3 is for all practical purposes a language fork of Py2. So it doesn't really make sense to talk of a "migration". If Py2 becomes unworkable somehow then people will rewrite stuff. Some of it might even be in Py3.

Considering all the stuff that is written in Py2 I really don't see it being out and out abandoned. That wouldn't really make any sense. With computer languages stuff never goes away.

<comment><USER27> Py2 is the new Fortran, I like to say.

<comment><USER28> And they both use actual Fortran :)

      $ python3
      Python 3.7.4 (default, Sep  7 2019, 18:27:02)
      [Clang 10.0.1 (clang-1001.0.46.4)] on darwin
      Type "help", "copyright", "credits" or "license" for more information.
      >>> import numpy
      >>>
      [2]+  Stopped                 python3
      $ lsof -c Python | sed -n "/fortran/s/$USER/<redacted>/gp"
      Python  35190 <redacted>  txt    REG    1,4  1550456 12887664541 /Users/<redacted>/Library/Python/3.7/lib/python/site-packages/numpy/.dylibs/libgfortran.3.dylib

</comment></comment></comment><comment><USER29> What do you mean taking so long? The original target date, proposed by Guido, was Jan 1, 3000. Looks like we're 980 years ahead of schedule! :-)

I say this in part because comedy, but also because it was anticipated to be a long project. It was originally called "Python 3000".

</comment><comment><USER30> Because it's not just syntactic changes, it's implied-semantic changes too. You can't mechanically transform a project and know that it'll work.

And you can't do it gradually, so it's all-or-nothing. (yes, "six" exists, but you still execute one way or another)

And you'll have to change the versions of all your libraries, which is not usually a smooth experience in the Python ecosystem. (this is another place where it's "all or nothing", since six can't help you if your dependencies don't all use it + use it correctly)

\---

It's a _huge_ risk with _huge_ cost for already-working, running code. For new stuff, sure, write it in 3, but 2.7 works fine and has the added benefit of being _very_ well understood by this point.

<comment><USER31> You can definitely do it gradually with a few bumps but there are categories of large apps that are more difficult than average.

</comment></comment><comment><USER32> In the academic data science-y world, the transition has passed the hump. In other words, where I was reluctant to switch a few years ago because some of my basic tooling was still in the 2 land, today the critical mass of important libraries has been ported and updated. Most of the cutting-edge docs and tutorials (Google's GPT2 for example) default to python3.

</comment><comment><USER33> Because they broke backward compatibility in very annoying ways without providing a fallback mechanism.

I still haven't forgiven them for killing the print statement, which could have peacefully coexisted with a print() function.

<comment><USER31> Bugged me for a while five years ago. Then I moved everything to logging and use an editor snippet: pr<TAB> —> print('foo:', %cursor%)

</comment></comment><comment><USER34> Management wants new features not porting. They will only port when they absolutely have to.

<comment><USER35> Even if management wanted porting, the python 2 -> 3 migration path is very painful in the details, while on the surface not having a lot to offer at the other end in terms of new capability.

<comment><USER34> Roger that.

</comment></comment></comment><comment><USER36> Simple answer. Updating legacy code. If it works now why upgrade? Stability is more important than some new features of the language. Granted that has its downfalls via security issues but stability wins

If you have a hole it's hard to dig yourself out of it. This is why I prefer modular apps instead of monolithic codebases. You can upgrade piece by piece. Otherwise it's all or nothing and dangerous

</comment><comment><USER15> I haven't migrated to Python 3 simply because I see no reason to go the the pain and hassle of porting my existing Python code. Python 3 doesn't give me anything that I want or need badly enough to put that much work into it.

</comment><comment><USER37> I never knew if this was a cynic's answer or truthful, but I was told by my manager at one point that RedHat's OS is superglued to python2 and spends a lot of money to keep python2 in good working order. I highly expect it's a cynic's response and please read it as such until someone in-the-know can retort my post.

<comment><USER38> Red Hat has long support contracts for their server OSes that shipped with Python 2 when it was still kosher to do so.

That means they'll patch Python 2 should vulnerabilities be found on their OS.

<comment><USER39> It's a pain from the outside looking into their business. Their contracts, though, are their business.

<comment><USER40> Those support contracts aren't cheap, though. I don't think they're getting the short end of the stick here. If anything, the companies that run lots of Python 2 code in the house that haven't migrated yet - which is not uncommon in the enterprise - have the incentive to run that code on RedHat, if they aren't doing so already.

I wouldn't even be surprised if they provide support contracts specifically for Python 2 on their newer OSes. ActiveState announced that they'll continue providing paid support for Python 2 on all platforms, so some people at least feel like there's a business model there...

[https://www.activestate.com/company/press/press- releases/act...](https://www.activestate.com/company/press/press- releases/activestate-offers-extended-support-for-python-2-beyond-eol/)

</comment></comment></comment></comment><comment><USER41> I now work on a python 3.6 codebase. Something like 100k lines of code. in practice 80% of the code was written for 3.5.

However, barring speed improvements, there isn't much to offer, apart from unicode, f strings and annotations.

If python 3 had proper multithreading, that might have been worth breaking backwards compatibility for.

</comment><comment><USER42> The key inflection point was around Python 3.3 when enough bridging technologies and tools came along to either migrate code or else write code that supported both languages. Things like adding the u'string' syntax to Python 2, the creation of six.py, all the various features in the future package. That gave a much smoother transition path and enabled crucial libraries to work in Python 3, which then let everyone else migrate too.

</comment><comment><USER43> The upward migration is imminent for ALL CONNECTED applications and not just Python 2 to 3. An issue I've seen with PIP (that must be relevant to other platforms as well) is that version-locked packages are for software that can no longer communicate with the actual SaaS/API because THAT layer has changed. It's really THIS that is forcing conversion of Python 2.7 to 3 because API vendors will stop supporting old software while they continue breaking their own interfaces. The alternative is the end user or FOSS picking up the slack but that's only going to happen for SOME of the API's. In the end it will be cheaper (albeit still painful) for companies to upgrade their code to Python 3.

I have a lot of Python 2.7 code that I wrote years ago which has been running smoothly and my team is generally going to rewrite rather than "convert" because I really don't trust conversions. I'd rather see all bugs upfront rather than hidden in the fog.

</comment><comment><USER44> The thing is python3 IS a better language. Unicode is very important for me, as i deal with a multitude of languages. For a good comparison, see how PHP failed unicode with PHP6 and we still deal with an insanity that is the mb_ functions. In python this is a non issue, and its a very nice language to work with.

</comment><comment><USER45> In my experience, the biggest issue that I face is "what do you mean by Python 3?" I count 4 minor versions which aren't fundamentally broken, and I encounter them all on a regular basis.

A lot of my code is performance critical, and, for example, I'm still salty about dictionary operations taking O(log(n)). But the proliferation of active minor versions makes it very difficult to write portable, performant code.

It's become a sticky wicket. I want to migrate to Python 3 (and, by and large, I have in most of my projects). But what version do I target? Will my dependencies make the same choice? Or does "migration" turn into a sisyphean task? It's becoming burdensome enough that I'm contemplating abandoning the language for something more stable.

<comment><USER18> If it helps you, you can consider that no version below 3.5 is worth thinking of. It's the edge when python added back enough features to ease the migration and many libraries started being ported.

Current version is 3.7. If you expect your migration work to take a year, you should consider going for 3.7 and above only, because the previous minor versions will be dropped by the time you're done.

<comment><USER45> Thank you (and it's good to say so if another reader doesn't know), but yeah, the 4 versions I was referring to were 3.5-3.8... but my point is that it's now a perpetually moving target.

And fwiw "3.7 is the current version" doesn't help my users.

<comment><USER18> I think pip can select the version automatically as long as you provide the right metadata with the package. Shouldn't matter much really.

Maybe write in the README that the package is only tested on 3.7 and above so users can be aware of that and check. Bet they struggle to figure out what version to upgrade to as well.

<comment><USER45> > I think pip can select the version automatically as long as you provide the > right metadata with the package. Shouldn't matter much really.

I don't think pip can install new versions of python. This becomes burdensome, especially for novices.

> Maybe write in the README that the package is only tested on 3.7 and above > so users can be aware of that and check. Bet they struggle to figure out > what version to upgrade to as well.

I must disagree with this philosophy. As a package maintainer, I think it's my responsibility to "struggle" so that my users don't need to. And fwiw, my employer also thinks that this is part of my job.

</comment></comment></comment></comment></comment><comment><USER46> About 10 years ago I started learning Python. I double-timed across both versions. I decided to land on v3 for good. I haven't looked back. Granted that Big Corp cannot have such flexible actions. I reserve sympathy.

</comment><comment><USER47> The same reason there is still a ton of legacy PHP 5.6 code.

Migration in interpreted languages that implement major breaking changes is really tedious.

</comment><comment><USER48> > most large organizations, outside of the hype cycle of technical news posts, > move much more slowly than the press or blogs would have you think

That's the reason I am so upset with today's JavaScript ecosystem - <USER2> move so fast that good technology is being deprecated and changed constantly which breaks all kinds of things in other places.

</comment><comment><USER49> As somebody who only occasionally uses Python, the fact that the default `python` binary on my system resolves to Python 2.x and I need to specify `python3` to invoke 3.x, means I am quite often mistakenly using Python 2 instead of 3.

How can we expect Python 3 to become the default if Python 2 still asserts such dominance?

<comment><USER50> That's not a python thing- that most likely has to do with your package manager.

In my archlinux installation, python resolves to 3, and I have to use python2 if I want 2

<comment><USER49> Well, PEP 394 suggested it be this way, so Python is also a bit complicit.

<comment><USER51> As the history section of that PEP notes, it was actually written in part as a response to distributions like Arch changing the default Python to Python3. Although it's true that the PEP originally said that python should point to Python2 (it doesn't any more), it also said that code requiring a specific version of Python shouldn't assume anything about the system default Python, instead using either python2 or python3 - and requests that distributors of Python provide these commands.

This suggestion was adopted by nearly everyone, including Arch Linux. If you're writing a script that calls Python, you probably still want python3 as your command for compatibility across all current distributions.

In other words, the intention of the PEP was not to ingrain Python 2 as the "default" Python, it was to get people to stop making assumptions about what Python version they would get and use the python2 and python3 commands instead. I do agree that it has had that effect.

<comment><USER40> The original recommendation had to be made, because at the time, there was a lot of software from pre-Py3 days that would have #!/usr/bin/env python, and that was broken badly if it was pointing at Python 3. They have changed the PEP now that Python 2 is reaching EOL, since it wouldn't make sense to demand "python" to be an alias for an unsupported version.

</comment></comment></comment></comment></comment><comment><USER52> Or, in the case of my employer (and new ecosystem for me), we are using Jython which AFAIK has no clear plans or path to support Python 3 at this time. Iron Python has started work to support 3 but it's still in development and seems to be a ways off.

</comment><comment><USER53> We're still waiting for Maya to switch. It's still using Python 2, and Autodesk keeps putting off the transition, partially because it'll break the scripts of all their downstream users.

<comment><USER54> I think that's partially correct. If you follow [https://vfxplatform.com/](https://vfxplatform.com/) it says Python3 was pushed from 2019 to 2020 to allow everyone to upgrade Qt and PySide (which are prerequisites). The reason it was deprioritized in previous years were similar transitions like C++14, gcc, etc.

I've been meaning to dig into Maya, Houdini, Nuke's Python 3 transition plans. I know Houdini will offer a Python 3 option with Houdini 18 (shipping in the next month or so).

I don't think the reason was because of downstream users. Python 3 was an inevitable change. Previously, they swapped out PyQt for PySide which wasn't a forced change, but required everyone to update their Python scripts.

</comment></comment><comment><USER55> Personally, I don't see the need to migrate entire code bases if there is no need. I think that much is obvious. Perhaps the focus should be put onto pivoting instead. That way it doesn't leave your dev team on the hook to go back and change existing code bases in python 2.

</comment><comment><USER56> In my organization, business needs overrule technical details. Management didn't want to spend the resources until forced to do so, rather focus on revenue-generating work. Can see it both ways I guess. We have recently started upgrading our codebase to support 3.X

</comment><comment><USER57> Find a few remote code executions in Python 2 after Jan 1 2020, and migration will be faster.

</comment><comment><USER58> The 2to3 tool should add .decode('utf-8') to every string manipulation, even better Python 3 should have a flag to make that the behaviour and _even better_ that should default to on.

So much effort wasted doing this in a large codebase. And what do you get for it? It's just not worth it. Nobody actually needs Python 3, it was foisted on them by the developers. What everyone really wanted was Python 2.8.

<comment><USER59> Please no! Text is text. Bytes is bytes. Convert to the correct form on input boundaries, and that's it. Don't switch back and forth internally, it's overly complicated, error prone, and slower.

<comment><USER60> unix pipes (stdin, stdout) are bytes, files are bytes, filenames are bytes. yet, for some reason python3 thinks al of those are text. its not the coders that are wrong, it is the language.

<comment><USER61> No, it's Python 2 that thinks those are all text. Python 3 makes you explicitly say "convert this stream of bytes into a text encoded string", and from then on it's a str object.

Python 2 was happy to (try to) let you call text methods on a JPEG. Python 3 draws an appropriate distinction between the two.

<comment><USER60> Python 2's "str" is a bytestring. All of those are bytestrings in Python 2 as they should be. Python 3 makes them text and suddenly i can not output data over stdout anymore without extra steps of switching the mode of stdout from some arbitrary text default.

</comment></comment></comment></comment></comment><comment><USER62> What are some Python 2 features that make it hard to transpile to Python 3 automatically?

</comment><comment><USER28> Are there any examples of rewrites of large code bases from one language to another?

<comment> yjftsjthsd-h Mercurial, perhaps?

</comment></comment><comment><USER63> For me, it was that python on macos was 2.7

</comment><comment><USER64> This is like why are hedge funds still using excel to model. Also why is SAS stilll used

</comment><comment><USER65> [copying comment from an older HN thread, not speaking on behalf of any employer, opinions my own]

I think many people underestimate the challenge that the 2 to 3 migration presents for large enterprises. The core issue is that even though the migration for any given module is normally really easy, the total effort required to migrate is still essentially O(n) in module count/file count, because even with current tooling you still need to have an engineer look at every module to do the change safely. Even if it only takes ~5 minutes per module to make the changes and validate that it works correctly, this becomes a giant undertaking when you have tens of thousands of files to migrate.

The fact that it takes a long time also creates other problems. Your business isn't going to hit "pause" on other development, so there will be changes constantly introduced into modules you've already "swept". It's going to be hard to make sure 100% of your engineers and code reviewers are knowledgeable about the specific requirements to make sure the code works in both 2 and 3, so you would really like some automated safeguards to make sure they don't introduce anything that won't work in 3. Pylint helps with this, but won't catch everything. Unit tests are obviously essential, but:

1\. Even a well-tested project won't have tests that cover 100% of code paths and behavior.

2\. You're stuck running the tests on both python2 and python3 for the duration of the migration, which doubles the resource (compute, memory, etc.) cost of your Python CI and regression testing infrastructure for the duration of the migration.

Most big companies have passionate Python advocates who really want to be on Python 3, but the scale of the problem and the lack of tooling to tackle it with a sub-O(n) amount of effort make the overall project risky and expensive for the business.

<comment><USER66> The way to start a migration is to first get the 2.7 code as forward compatible as possible. Bring in the future imports. Make sure equivalent iterators are used where 3.x mandates them (xrange, iterkeys, etc.). Make sure Unicode is managed correctly on I/O. Explicitly call out truncating division.

This doesn't require parallel testing. These all improve the quality of 2.x code even if you never make the leap to 3.x.

Once this is done you can use 2to3 to mechanically fix the remaining differences. Anything else that remains broken can be special-cased in the 2.7 code until 2to3 works without intervention.

<comment><USER10> 2to3 never worked and will never work "without intervention".

That's why six and manual changes are always needed...

<comment><USER66> Using six is intervention. You end up with code that has one foot stuck in the past.

</comment></comment></comment></comment><comment><USER67> I honestly don't care as long as I don't have to deal with Python 2 code bases anymore. The important point is that all of the popular open source libraries and frameworks are ported.

</comment><comment><USER68> Simple. Python 3 is theoretically better but not in fact better, at least for most applications of Python.

<comment><USER69> In terms of feature-richness, I'd choose Python 3 over 2.7. Pre-3.6 it was slower, but at this point it's more memory efficient and generally faster, so it is in fact better in basically all applications.

The problem we have where I work is some very clever 2.7 code that isn't easy to redo in Python 3. For any new project I do, I use Python 3.

</comment></comment><comment><USER70> It _is_ happening, but moaning about it won't make it happen any more quickly.

<comment><USER71> I think the intent is less moaning about it - and more learning about the blocking points so they can be better surmounted. At the very least, perhaps the blocking points can be avoided in the future. Those who do not learn from history... etc etc.

</comment></comment><comment><USER72> Python, unlike a C executable, could hypothetically stop working tomorrow. Researchers who have code that works/businesses don't give a shit about the esoteric differences between py2 and py3, they just want their stuff to keep working. This is similar to the banks still running Cobal backends, I don't know why everyone cares, I guarantee multiple servers out there are running executables that couldn't be rebuilt, but those don't curse you out on terminal every time I turn one on

<comment><USER73> Because software that isn't protected by walls of legislation value features and the end user UX. i.e. "evergreen". Your Nokia N900 running Meego may be sufficient for certain subsets of HN readers but your average user wants Material Design and cannot care less about ideological purity or "if it ain't broke don't fix it".

<comment><USER74> "average user wants Material Design" \- is that a fact or just a wishful thinking from people trying to push said design?

EDIT: Personally for me while I find for example older windows interfaces ugly they were very consistent and functional. In modern designs I sometimes could hardly find what is clickable/actionable. It is not interface working for me but the other way around</comment></comment></comment>


Telescope built with off the shelf parts searching for oldest stars in universe - <AUTHOR> https://www.supercluster.com/editorial/studying-the-cosmic-dark-ages-with-parts-from-your-hardware-store <comment><AUTHOR> HERA, in South Africa, could find the oldest stars in the universe, from a period known as the Cosmic Dark Ages. And it's built from parts you could pick up at your local hardware store. "This is the beauty of low frequency radio astronomy … 'precision' for us is a few centimeters."</comment>


Report Gives Hope To Fla. Man's Cancer Killing Machine - <AUTHOR> http://www.msnbc.msn.com/id/21568150/ <comment><USER2> This is really interesting stuff. But I wonder, how much did this guy do? The 'machine' they talk about emits radiofrequency waves of a certin wavelength and strength, something that can be bought from a catalogue. Did he make the nanoparticles? Probably not, you can buy these nanoparticles from stores found via a simple online search. Did he find the radio frequency himself, or did he look up other studies that have been doing this since 2002, and just copy their procedures? Maybe I'm wrong, but I do not see anything novel from this article.

There is a lot of promise from respected academic institutions for using gold nanorods and nanoparticles for cancer therapeutics. On the other hand, few treatments ever get through clinical trials and are approved for use in mass populations.

For those interested, other universities that have been doing similar things include UCSF, Georgia Tech, and Purdue University.

</comment><comment><USER3> From the article, this led to the saltwater being lit on fire that got so much press coverage a month or so ago. There might be something here, but it would be many, many years before it become real.

</comment><comment><USER4> repeat after me people: do not get your science/medical info from the media. they're mostly idiots - wait for the peer reviewed literature.</comment>


Letter to Steve Jobs - <AUTHOR> http://probablyinteractive.com/2010/4/11/letter-to-steve-jobs.html

<comment><USER2> While I appreciate his letter, I think he needs to realize that quality of apps is an incidental reason.

As John Gruber stated, the real reason behind the band is to prevent someone from establishing cross platform development tools that will trivialize the choice between getting an iphone and another phone/OS.

<comment><USER3> It's all well and good to say such and such is the reason, but that's not what the license actually says.

What's to stop a tool developer producing an Objective C library and compiler that can target both iPhone and Android? The original source would still be in Objective C. If it was developed specifically for the iPhone, and only later for Android, it wouldn't be a compatibility layer - only the Android port would count as the compatibility layer, with the iPhone original being the native one.

<comment><USER4> If it comes to that, Apple will ban it's use. No biggie. As long as Apple thinks they have no competition to fear they can limit developers as they wish.

So let's all hope Android (or any other mobile platform) is very successful. Yes, you iPhone-Developers, too should wish for Androids success!

<comment><USER5> I don't think Apple would, or even could ban anything of the sort. I think they want people to develop for iPhone first, and if you want to automatically convert that code to Android and get the cross-platform inferior experience there, then so be it.

<comment><USER6> I agree with this as well... I'm sure Apple wants more apps for the Mac, and if someone were to create a 3D modeling tool targeted for iPhone apps that could produce cross platform Android apps, they'd welcome it into their Mac family.

</comment></comment></comment></comment></comment><comment><USER7> Disclaimer -- I am not an iPhone developer, why? Two reasons: 1.) I don't own a Mac and 2.) I don't know objective-c.

Even though I can't build iPhone applications, to me this ban makes sense for the following reasons:

1.) Limits the total number of applications. Apple knows that the "100,000+ apps" is just marketing. How many unit conversion applications do you need or does Apple want clogging up their approval process.

2.) Reduces the velocity of the application submissions. Having a more controlled ecosystem means that everything isn't done at once. This is core to Apples strategy. Roll things out in phases; build features that people want over time. Cut&Paste, Multi-tasking...

3.) Forces people develop iPhone applications on Mac hardware.

4.) The more layers between you and the developers building the applications increases compatibility issues, which are out of your control.

5.) The more layers between you and the developers building the applications decreases the speed at which applications can take advantage of new features. Apple releases a new api now any developer using a 3rd party framework needs to wait for that framework to support the new API. This impacts the significance of the new feature.

<comment><USER8> #5 makes a lot of sense and is often overlooked. The argument often is that it is not the tools that determine the quality, of the app, but let's see: Adobe CS5 Flash2iPhone is developed without iPhone OS 4 in sight. The main target users for it are those who are not familiar with iPhone OS and frameworks and would enjoy just pushing a button and letting the tool to do the rest. The timing is such, that a flood of apps developed this way would arrive just in time iPhone OS 4 comes out. End user does not know and does not care which tools the App was developed in. No surprise this does not look pretty in Apple's eyes. I and cannot imagine Flash2iPhone style of app producing anything about mediocre. If it targets Android too — even more so. This way all you can get is unisex, unisize sportswear. Apple wants tailor suits and designer dresses.

<comment><USER9> What if my app doesn't need all the latest features? I don't see how this argument makes sense. After all, competing SDKs don't force their users to stick to them. If somebody has already written a couple of Flash apps for iPhone, but now wants to program a 3d shooter, nobody is stopping him from switching to Objective-C.

<comment><USER10> The needs of the many outweigh the needs of the few, or the one.

<comment><USER9> I don't understand the logical step here, I am afraid?

</comment></comment></comment></comment></comment><comment><USER11> This is a good example of approaching the subject like a non-idealogue that people can take seriously. The Salem remark was probably a bit much but at least it's near the end. Ending with a jab is always very tempting.

<comment><USER12> So, should Steve Jobs respond, "Well, I didn't expect the Spanish Inquisition..."? I think the author ruined his letter at that point.

</comment></comment><comment><USER13> In general it is transition time in business world. I doubt that future ventures will be able to "successfully" act in a similar way.

The only reason Apple is welcomed/accepted to do so by many (developers _and_ users) is the excellence in their execution. Apple is not an "open" company - it never has been.

 _Especially_ as a developer one should have understood from the beginning that using their tools might possibly be somewhat of a Faustian bargain.

Sometimes I myself feel quite guilty for having chosen this path (trying to become an iPhone/iPad indie) but then I remember myself that the benevolence of this "dictator" is not really targeted at me as a developer but the users.

I admire that approach and that is why I am not sure if users will really benefit from these particular kind of policies/politics. I was planning to partially use iPhone WAX not only because I really like Lua (and it's highly embeddable scripting capabilities) but because of productivity reasons as a one-man team. In spite of introducing additional layers of abstraction I think it wouldn't have significantly impacted performance (Lua is _fast_ ).

I never cared about Flash nor any Adobe tools though and I am still among the ones who don't care that much if they have to use C/ObjC because I like to use that set of technology but I see myself for the first time to become more than a little wary.

</comment><comment><USER14> I doubt that section 3.1.1 means that you can't embed Lua anymore. People have been doing this for a long time, specially in games, and Apple has never seen that as a problem.

This is all about using C# and Flash to create complete apps.

</comment><comment><USER15> I've seen it stated a few times that "EA uses Lua on the iPhone" - but my googling hasn't revealed any evidence to support this. Does anyone have a cite for this?

</comment><comment><USER16> I think the extension of the ban can result in a pretty big deal. I think the bigger issue is that now, Lua itself seems to be entirely banned for use in any app for the iPhone OS product family, even if the app itself is written in Obj/C/++ and just using the Lua engine for internal stuff - a perfect example would be Lua's popular use for "scripting" NPC actions and game events in f.e. World of Warcraft and many, many other online games; World of Warcraft is not written in Lua, it's written in C/++, but uses Lua as a component for "internal" stuff. By this new decision, all apps building on similar functionality would be rejected.

I still maintain my stance regarding the main culprit in this debate, being that Flash should be set fire to and urinated on for the shitty product it is, but I definitely feel that the collateral Apple is causing here is a potentially much larger problem than the Flash problem they solved by the ban.

</comment><comment><USER17> A letter to "a letter to Steve Jobs" letters

Yeah new policy sucks, Steve won't change it even if you send thousand of letters, sometime he might bother to answer, but it'll be the same thing.

Although if he answers, that's great, because then you can publish it again and HN can be flooded with more "letters to Steve" and "Apple stole my teddy bear" stories.

<comment><USER18> I have written a letter about specific techniques that I suspect are covered under the ban that should not be. I don't intend to publish either it, or if I get a response, the response. Frankly, one shouldn't be publishing these notes without permission from Steve Jobs; this is no different than publishing other email.

I'm hopeful that my letter causes change, but I haven't asked for an outright removal of the ban, but a clarification on these techniques.

</comment></comment><comment><USER19> Odds that Steve Jobs will read or care one whit about this letter: 0% (with a margin of error of ±0%)

</comment><comment><USER20> This is probably the only open letter that'll get a reply...

... saying you and your apps are banned.

</comment><comment><USER21> For crying out loud people... The sun's still shining, the beer's still cold, in some parts of the world people are still dying due to lack of clean drinking water, to go short... in the big scheme of things; Apple's recent decision DOES NOT MEAN A DAMN THING. Get some perspective, perhaps cry like a baby for 30 minutes or so and get on with your life... You'll be OK!

</comment><comment><USER22> SERIOUSLY people, stop all the freaking letter to steve jobs post.. It's really overdone and doesn't get you much other than this response, sorry I just had to, go ahead and down vote me.

<comment><USER23> It's quite ironic that, in the week after the release of the iPad, this here is the only subject with a buzz among computer geeks on the internet.</comment></comment>


Bath Salts: An Alarming New Stimulant - <AUTHOR> http://www.nytimes.com/2011/07/17/us/17salts.html

<comment><USER2> "The cases are jarring and similar to those involving PCP in the 1970s."

Well, there's your answer! It's another one of those "moral panics" about some "newfangled drugs those long-haired young-uns are a-smokin'!" Seriously, that's all this is. If I weren't such a dinosaur, I wouldn't know this, but I've seen a huge string of illegal drugs get exactly the same treatment: LSD, Heroin, PCP/Angel dust, Crack, Ecstatsy, and now "bath salts". This is the second most aburd moral panic, right after "jenkem" or "butthash".</comment>


Seedcamp: thoughts on the evolution of a European startup - <AUTHOR> http://localglobe.blogspot.com/2009/11/seedcamp-thoughts-on-evolution-of.html <comment><USER2> I love the idea of Europe as a "distributed" version of Silicon Valley. Not a single cluster where everything is put together, but where actors are spread out -- but is nonetheless as effective as Silicon Valley at pumping out great entrepreneurs and technology. You start to see the beginnings of it.

Most big EU VCs are in London but they invest all over the continent. Skype was started on the shores of the Baltic, but is headquartered in Luxembourg, has programmers in Eastern Europe and offices in London.

Saul is right, it would take a very long time to have Europe be a "distributed Silicon Valley", and maybe it's impossible, but it's still a very encouraging thought (dream?).

<comment><USER3> It's a big task, but so far Saul, Reshma, et. al. have done an amazing job of approaching that goal.

When we participated in SC week we got over 10 hours' mentoring from entrepreneurs, VCs, angels, marketing people from all over Europe and some from the US. The benefits of being plugged into the network are immense.

The region is still fragmented, but at least now there is a focal point.

</comment></comment><comment><USER4> Why startups condense in America?

<http://www.paulgraham.com/america.html></comment>


Kill Flappy Bird (Game) - <AUTHOR> http://regedanzter.com/flappysmash/ <comment><USER2> Suggestions:

\- Add a delay for clicking/chomping. Simply clicking all the time is a viable strategy, which means there is no decision making on the part of the player.

\- Add a character you aren't supposed to chomp.

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

Bonus:

\- add a link to your main site

\- ublock blocks your main website because of something to do with download.cnet.com</comment>


Linux Apps on Chrome OS to Support Android-Based VPN - <AUTHOR> https://9to5google.com/2019/03/22/linux-apps-chrome-os-android-vpn/ <comment><AUTHOR> FYI Wireguard vpn protocol already works on ChromeOS!</comment>


OpenMath - <AUTHOR> https://www.openmath.org/about/ <comment><USER2> As someone who has worked on a computer algebra system and knows what a pain it is to extract semantic meaning from e.g. LaTeX, I absolutely agree that a better format is needed to encode mathematics semantically. I just don't understand why they had to use a representation that is borderline unreadable and showcases XML's worst excesses.

<comment><USER3> More than that: this is (just) semantic-web applied to the topic of maths. I personally hate semantic-web stuff and don't understand how it can possibly still be a research subject (with university departments dedicated to that). They talk about languages and semantics but keep ignoring the actual recent (i'm talking second-half 20th c.) research in programming language, type systems and formal maths. Some web focused project to "write formal maths with semantics", how more ridiculous can we get? Someone needs to get them to look at theorem provers.

Sorry for the rant, i'm just not gonna write a blog post here.

<comment><USER2> I wish you did though ;)

</comment></comment></comment><comment><AUTHOR> Why so little interest and activities?</comment>


PHP 5.5.0 Alpha is now available - <AUTHOR> http://downloads.php.net/dsp/

<comment><USER2> This is a good article for the differences: [http://nikic.github.com/2012/07/10/What-PHP-5-5-might- look-l...](http://nikic.github.com/2012/07/10/What-PHP-5-5-might-look- like.html)

* New finally keyword * Support For list In foreach Construct * Password Hashing API * Generators * Scalar typehinting * Getters and Setters</comment>