How many reversible integer operations do you know? - <AUTHOR> https://lemire.me/blog/2016/08/09/how-many-reversible-integer-operations-do-you-know/ <comment><USER2> Since the domain and range of any integer operation are the same, the only way for such an operation to be reversible is if it maps every input to a different output. That means that the set of reversible integer operations is exactly the set of permutations on the integers (for a specified number of bits). So how many unique permutations are there for the set of 32-bit integers, which is a set of size 2^32? That would be (2^32)!, a very large number indeed.

Incidentally, multiplying by an odd integer works because when working in mod N space, multiplying by any number that is coprime with N yields a permutation, and since for 32-bit integers N = 2^32, the only prime factor of N is 2, which means that N is coprime with all odd integers. (I'm assuming unsigned integers and wrap-around behavior on over/underflow.)

</comment><comment><USER3> As others have pointed out, there are (2^32)! such operations on 32-bit ints. However, I think it can be shown that the Kolmogorov complexity of most of these has to be

O(lg((2^32)!))

which I think is rougly 32*2^32.

In other words, you'd need about 16GB just to store the program to compute the permutation! Of course, that is not the case for the operations shown here.

So maybe implicitly the real question is, "How many reversible integer operations do you know with small Kolmogorov complexity?" Or in more practical terms, "How many reversible integer operations do you know which don't require too many lines of code?"

<comment><USER4> I suspect he's also implicitly assuming "the inverse is easy to compute", so both the operation and its inverse have small K complexity.

<comment><USER5> If f has small K complexity, then f^-1 has small K complexity.

<comment><USER6> Is there a formal theorem making this precise?

<comment><USER7> I'm not familiar with the formal definition of Kolmogorov complexity, nor its related theorems, but informally, it appears to be about the _length_ of the specifying program, not the time it takes to run.

Given that we have a finite domain, and 1:1 functions, we should be able to specify f^-1 with some constant overhead and embedding f.

Something along the lines of:

      //embed the definition of f.
      f^-1(x) = for a in Domain:
        if f(a) = x
          return a

Formalizing this would involve specifying what description language you are using and how you encode functions.

</comment></comment></comment></comment></comment><comment><AUTHOR> Scott Aaronson, Daniel Grier, and Luke Schaeffer did a paper on this a few years back...

The Classification of Reversible Bit Operations [https://www.scottaaronson.com/papers/gates.pdf](https://www.scottaaronson.com/papers/gates.pdf)

Grier's ITCS presentation on it [https://www.youtube.com/watch?v=egU5JLbpmkA](https://www.youtube.com/watch?v=egU5JLbpmkA)

BTW see Lehmer codes for permutation sequences [https://en.wikipedia.org/wiki/Lehmer_code](https://en.wikipedia.org/wiki/Lehmer_code) (no relation to Lemire ;)

</comment><comment><USER8> That's really a strange question to ask, a bit like: "What is the largest integer you know?"

You can start with a reversible gate (such as [https://en.wikipedia.org/wiki/Toffoli_gate](https://en.wikipedia.org/wiki/Toffoli_gate) or [https://en.wikipedia.org/wiki/Fredkin_gate](https://en.wikipedia.org/wiki/Fredkin_gate)) and combine these.

<comment><USER9> Not explicit in the title is "efficiently on a modern CPU". They tend to be 1 to 4 opcodes each. I think the list might serve as a jumping off point if you are looking at an algorithm which depends on an integer permutation and want to consider how it would change if you used a different permutation.

And missing from the list—the identity function! Very fast to compute and universally (not)implemented on all CPUs.

<comment><USER10> The identity function is not an interesting opcode because there's already the NOOP code and because compilers are expected to be able to identify the identity transform with great accuracy.

</comment></comment></comment><comment><USER11> Fun fact: compositions of the two operations

x -> x + 1

and

x -> (x==0) ? 1 : (x == 1) ? 0 : x

generate all possible operations.

<comment><USER12> Well, this is just a roundabout way of stating that the symmetric group S_n is generated by (1, 2) and (1, 2, ..., n) for all n. :)

</comment></comment><comment><USER13> I'm thinking there should be n! possible reversible operations on an integer bounded by n.

</comment><comment><USER14> I don't really get the point of this. Why does it matter if it's reversible?

<comment><USER15> It is a pretty interesting question in fundamental physics (but we are quite far from considering it in practice, except in some quantum computing architectures).

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

One of the main points is that it would permit significantly lower waste heat generation.

<comment><USER16> You are discussing a very different use of the word "reversible". This blog post is discussing mathematical operations on 32-bit integers where the original number can be recovered through an inverse operation. You are talking about the concept of physical reversibility, which refers to processes in which the change in entropy is (close to) zero. The first is a mathematical concept relating to operations over the field of 32-bit integers, while the latter is a physical concept related to second law of thermodynamics. I guarantee that XORing a 32-bit integer with a fixed value is _not_ a thermodynamically reversible process on any known architecture.

<comment><USER15> This was my point when I said "far from considering it in practice". An operation has to be (a) logically reversible (thermodynamically reversible in theory, like XOR) before you can make (b) real reversible hardware with it (thermodynamically reversible hardware implementation). Most operations we use in typical hardware are obviously not (b), but they are also not even (a).

</comment></comment></comment></comment><comment><USER17> For folks confused that the blog post doesn't just say "2^INT_BITS factorial", I think the idea is that you want _efficient_ reversible operations on modern CPUs. These can be useful in, for example, cryptography and non-cryptographic checksums and RNGs. Even if you don't actually ever run the inverse function, using an invertible op ensures that no information from the input is dropped and every output is possible. Of course, you also need the invertible function to have whatever other properties you want for your particular use, like diffusion or nonlinearity. The XOR-three-rotations operation, for example, is used in the "sigma" functions providing diffusion in SHA-2, though you never use the inverse.

With a block of >1 integer, there are some additional fun ones:

\- XOR an even number of integers together, then XOR the resulting value, or any function of it, into all of them. (It's its own inverse, since the XOR of an even number integers isn't changed by XORing the same value into all of them.)

\- Bitslicing S-boxes, a potentially _nonlinear_ operation. You can represent S-boxes (esp. small ones) as a network of gates, and you can turn those into AND/OR/XOR/NOT instructions and have your CPU do them on registers at a time. This was core to the AES candidate Serpent using 32-bit registers; now you have larger regs to do it with.

\- Some matrix multiplications (including in fields). Thinking of AES's use of MDS matrices.

\- Generalized Feistel-like operations: run some function--not necessarily reversible--on part of the input, and use the result to munge another part of the input. a ^= f(b) or (some of the generalizations) a += f(b) or a ^= f(b, c, d). Used tons of places, of course. Then you can easily build an invertible function (on the larger block) from a non-invertible round function, and repeat for a zillion rounds (a ^= f(b, k1); b ^= f(a, k2); a ^= f(b, k3)...). With a loose enough definition of "Feistel-like", even lots of ARX ciphers could qualify.

(You could, of course, do some of these things within a single integer by thinking of it as two, four, etc. narrower ints, or you could call a whole block a very large int. Mostly thinking of register-sized integers when I say integers, FWIW.)

Keccak (SHA-3) has some steps where, like with the XOR-three-rotatations thing, an inverse exists but looks a bit different from the original operation, which is neat! There's a reference ([https://keccak.team/files/Keccak- reference-3.0.pdf](https://keccak.team/files/Keccak-reference-3.0.pdf)) describing the operations using math notation, and lots of C implementations ([https://github.com/rhash/RHash/blob/master/librhash/sha3.c](https://github.com/rhash/RHash/blob/master/librhash/sha3.c)). It looks like the team published code for the inverses too; see [https://github.com/gvanas/KeccakTools/blob/master/Sources/Ke...](https://github.com/gvanas/KeccakTools/blob/master/Sources/Keccak-f.h)</comment>


Show HN: Placebo Button for android - <AUTHOR> https://play.google.com/store/apps/details?id=it.nadolski.placebobutton

<comment><AUTHOR> I created this app inspired by placebobutton.com website (see [https://news.ycombinator.com/item?id=9686357](https://news.ycombinator.com/item?id=9686357)). It somehow motivated me to do it after I pushed button titled "I will create placebo button android app today" :)

The app allows to share buttons and saves history of all buttons created. If you have any suggestions for this app - please let me know. I hope you will enjoy it and the button will bring you many benefits :)</comment>


BTC has just hit $490 - <AUTHOR> https://www.bitstamp.net/ <comment><USER2> Chinese speculators making quick bucks before it crashes in the shadows of Ether!</comment>


Old Family Photos – Why do people always seem to look angry in old photos? - <AUTHOR> http://www.tracgene.com/old-family-photos-why-do-people-always-seem-to-look-angry-in-old-photos/ <comment><USER2> Because they didn't have as good dentistry as we have now.</comment>


Pay after delivery of your package? What do you think about what they propose? - <AUTHOR> http://moner.strikingly.com/ <comment><USER2> Is that much different than [https://en.wikipedia.org/wiki/Cash_on_delivery](https://en.wikipedia.org/wiki/Cash_on_delivery) or paying an invoice?

<comment><AUTHOR> It looks like different because they use virtual money</comment></comment>


Social Networking Sites Are Now More Popular Than Porn - <AUTHOR> http://www.guardian.co.uk/commentisfree/cifamerica/2008/oct/23/internet-social-networking-facebook

<comment><USER2> That fact is right just half right. Coz social networking sites itself have this porn content creeped in. And the recent adultfriendfinder valuation too shows that.

IMO, Social networking sites are popular than porn. And porn is popular in social networking sites too.

"since sex is both a basic animal (and human) instinct and also something we frown on and obsess over to the extent"

Just wondering when people will chuck these junk and remain happy with code or stepper motors & microcontroller boards(or what you like to work on) and a girlfriend. You don't have to change the world and make a million dollars to be happy. You can still make a million dollars and be happy by changing with the world.

<comment><USER3> "sex is both a basic animal (and human) instinct and also something we frown on and obsess over to the extent that it's frightening."

That sentence stood out to me too. Yeah, wouldn't want to acknowledge that humans are animals, especially when talking about sex.

</comment></comment><comment><USER4> The headline seems to imply that the two are mutually exclusive.

<comment><USER5> Networking porn?

<comment><USER6> Rule #34, my friend, rule #34.

Speaking of which, what's this octopus doing to my car?

</comment></comment></comment><comment><USER7> That's because social networking sites addict like crack.</comment>


Peter Thiel on Failure - <AUTHOR> In responding to the question "How important is failure in business?".<p>"I think failure is massively overrated. Most businesses fail for more than one reason. So when a business fails, you often don't learn anything at all because the failure was overdetermined. You will think it failed for reason 1, but it failed for reasons 2 through 5. And so the next business you start will fail for reason 2, and then for 3 and so on."<p>-Peter Thiel on Tim Ferris podcast (http://fourhourworkweek.com/2014/09/09/peter-thiel/), grabbed from his recent book, Tools of Titans<p>Definition of overdetermined: "To determine, account for, or cause something in more than one way or with more conditions than are necessary." <comment><USER2> In well-funded or established businesses that's entirely right, but for seed- funded and bootstrapped businesses I'm not sure Thiel is right. If you've only got a few months money in the bank you don't get to make mistakes 2 through 5 because mistake 1 is enough to shut down the company. That's one of the reasons why seed funding raises have been going up. When I started my business (which failed due to a single very obvious mistake[1]) a typical seed round was $100k. Now it's upwards of $250k. That extra money gives you room to make more than one bad call.

[1] We spent so long making the product "perfect" we ran out of money before we had any customers.

</comment><comment><USER3> * Failure: The Secret to Success - A Honda Documentary - YouTube || [https://www.youtube.com/watch?v=xOVig5H7UbM](https://www.youtube.com/watch?v=xOVig5H7UbM)</comment>


Ask HN: Would I be of value to a startup... remotely? - <AUTHOR>

After a few bad freelancing experiences I find myself flat broke and reconsidering a lot of things in my life. I'm not quite at the stage of giving up yet, but I was wondering if there is room for someone like me to work for one of these up & coming startups. I guess it would have to be remotely as I'm in the UK.
The outside impression I get is that $TYPICAL_STARTUP goes for 20-something superstar college graduates - of which I am clearly not! I know that' a generalisation but how true is it? I'm sure I could of value to a company but would that matter in the end?
As for me, I'm one of those 'unicorns' apparently. I can knock out a swish design, code up all the HTML, CSS, Javascript and make everything work backend too. My experience covers everything from Wordpress to custom e-commerce stores, CRM, MRP, vehcile tracking, intranet work and iOS apps. I'm even quite handy at SEO. You could say I'm a generalist, but I do have some depth in these areas too!
I don't claim to the best or some rockstar but I do think I am pretty good and my breadth of experience gives me some advantages. I'm also a quick learner.
I can code HTML 5, CSS 3, Javascript (jQuery or not!), I've used SASS and the likes, AngularJS etc, PHP - I use mainly Codeigniter lately but also have experience in Zend, Cake etc. Wordpress is a given. I've also worked in Perl for a couple of years (with something called Interchange www.icdevgroup.org). More recently I'm building apps for iOS and Android.
As I mentioned, I'm totally broke now and I'm also in my early 30's. This is possibly a red flag to some people out there, as surely I should've made it by now?! However, it is what it is.
To be clear, I'm not looking for untold riches, I'd just like to be able to enjoy life and not dread a knock at the door!
So, TL;DR: Could a startup use someone like me? <comment><USER2> I'm going to give you my best advice, because I've been where you are now and got out of it and I feel for you because there is nothing more soul sucking than lacking cash to move your ambitions forward.

I put everything into bootstrapping a startup that had decent traction ( ~ 1 million visits in a month). The problem was that advertising revenue was very low per user. merch was selling, but revenue per sale was low.

At the end I sold it for a small amount and was at the same place I was at the start, but with greater knowledge and experience.

I know you feel really low right now, but you can beat this.

You could definitely be valuable for a startup. I find though that its faster to find clients to consult for and get paid by them than it is to be hired.

Just this month I posted to the monthly Freelancer thread here on HN. Someone from across the country called me, I modified my contract and they signed it and the next day paid me via pay pal. The cash was in my bank three days from first contact. In the first three billable hours I understood their system, set up test servers and had the basic functionality they needed done. I automated a task that was key to their core business thus saving a lot of their employees time.

So if you need money fast I recommend consulting.

 __ __MOST IMPORTANT __ __

Forget that you are broke. It is irrelevant to your clients. It is not their problem. You are being hired to help them. Communicating that you are broke will lower their confidence in you, lower the amount they will pay you and cause general animosity. You must be professional at all times.

You must have a solid but simple contract and a professional accounting system. Freshbooks is amazing in this regard.

There is a certain kind of client that you are perfect for. You need to find companies with revenue that need technical help for their core business. If you can solve these problems for them quickly, communicate well and be responsive and professional you will find plenty of work.

You are low on one kind of resource (cash), but have a wealth of very valuable knowledge and skills. Do not forget that you are a wizard of the modern era, capable of creating incredible wonders that are impenetrably complex and confusing for the uninitiated.

Here are my actions steps for you:

1) Set up Freshbooks accounting for online invoicing and online payment

2) Draft a simple contract. Only bill for materials and time. I have clients pre-pay for anywhere from 5 hours to one weeks worth of time. This way the risk is low for both of you and you can avoid lengthy negotiation. They pay a high rate for the flexibility and no long term commitment. You are like an on- demand EC2 instance and thus are worth the highest rate per hour.

3) Work efficiently and be organized with records. Shell aliases, master an editor like vim, set up git repos for skeleton projects in your stack of choice, use git smartly, reuse existing code etc... Your clients will be paying you a high hourly rate and you need to show results for them.

Treat every pre-paid block of time as a job interview. You must impress them every time. Avoid unnecessary overhead like complex time estimation. Work for at least somewhat tech savvy clients. Avoid small businesses that are cash strapped. Don't charge flat rates for projects.

Even if it takes you a few extra hours to get something working for them in the first block of time do it and don't ask for more money until you show them something working.

It only takes one good client to change your outlook 100%. Follow these steps and you will succeed and life will get easier. I went from being desperate to having more work than I have time for and needing to turn people down.

Good luck and godspeed.

<comment><USER3> I love your site Will, it's a really nicely designed, to the point resume page!

Just out of interest how do you find these types of clients you mention? I guess you're looking for medium sized "real world" non-tech companies that you can come into an sprinkle your wizardy tech magic over, to either save, or make them more, money...

I'm thinking about going roughly the same route after I have some contracting money built up to give me a buffer.

<comment><USER2> Thank you! Building the site was easy with a template from wrapbootstrap.com that I customized. It only took ~2-3 hours from inception to launch.

I love the picture of the Triborough bridge because its just a short walk from where I am and gives the viewer an instant location for me which is important because one of my advantages is that I am a quick subway ride to Manhattan.

I have gotten good clients from referrals from family and from people I meet at parties and in bars. Sometimes you have to do it Ricky Roma style, but with ethics.

Here in NYC there exists a cornucopia of entrepreneurs with revenue that absolutely need someone who can guide them through a world of technology that they desperately need but do not understand.

Watch Glengarry GlenRoss, internalize the essence of Al Pacino and Alec Baldwin's characters, then throw out all of their manipulation and abuse and apply idealistic hacker ethics. Be a good person, but realize that this business is for closers only.

Some of my best clients though are from Hacker News Freelancer threads, but theres nothing like the thrill of closing a contract with someone you just met at a bar.

My best advice to you if you go this way is to have multiple clients that need ~10 hours per week of work, or always have short projects in the pipeline. This way you are less needy for the client and your income is diversified. I believe that there are a lot more businesses that would benefit from ~10 solid hours of a smart developers time per week than there are that need something brand new built from scratch. This also makes you more affordable.

Clients are running businesses and are busy and this way when they get caught up with stuff and can't get back to you for a couple days you just work on another clients stuff or your own side projects.

I love working this way, but I might be taking a short term on-site contract soon because it's a chance to work with very cool, very smart people in a great environment and collaborate.

</comment></comment></comment><comment><USER4> Maaaaan, What is wrong with you? I mean... I'm Polish so please excuse me going straight to the point without English politeness :-)

I don't know the quality of your code and how fast you can build stuff, but to me your skillset looks exactly like a technical (co)founder. The world is full of broke 30somethings who are yet to figure out what they want to do with their life (including me)

In a startup world it's you who defines the terms - If they don't want to hire you, you build your own startup or hire them.

I'm currently working on two projects and there is always room for more (smart/handy) people. Let's have a chat and talk about opportunities we have.

<comment><USER5> Where are you from in Poland? I have been there 2 weeks in June (paddling down the Vistula from Krakow to Gdansk). Very interesting country, I really liked Krakow(I live in Munich).

On which projects are you working on? I am coding a group purchasing/ecommerce platform in flask, foodtypically, the site will be up soon (hopefully).

<comment><USER4> Glad you liked it! I'm from Ełk (Lyck) and love this town - it's small but not too small and very scenic. We've had German tourists coming since 15th century :-)

Poland is... a 'special' country in so many ways - ppl taking pride in outsmarting the officials by exploiting all possible loopholes.

Currently working on two (not so sexy) projects: 1\. an application for moneylenders to manage their customers and contracts (which looks like a hugely underserved and quite rich market) [http://dkpro.azurewebsites.net/demo](http://dkpro.azurewebsites.net/demo) (google translate should help)

2\. quick & dirty app for filling out monthly contracts. [http://smieciowki.azurewebsites.net/](http://smieciowki.azurewebsites.net/) Aimed at small business. Alternative to messy MS Word forms). Ideal target: ~8-12 contracts monthly where it's already a headache to keep all the paperwork organized but not too big to hire a payroll professional. I did that process myself at my last company: it was at least 3hrs/month wasted in frustration, chasing ppl to correctly fill out and sign the form. So the pain is real.

IMPORTANT: Looking for someone to help me with 1. (coding and marketing) I'm very close to finish and I would LOVE to adapt and sell it in other countries! I'm willing to give a generous share of revenue!

</comment></comment></comment><comment><USER6> To echo some of the sentiments here, I don't know why you even question your potential value to startups. Assuming you self-assessed properly, your skill set falls directly in line with what many companies are seeking (JS, HTML, CSS are all relevant, as is iOS/Android). Being in your early 30's is certainly not going to exclude you from being hired, and having some experience should be a positive for you. I don't think people are yet to see early 30's as some red flag (but I'm over 40 so what do I know?).

Why do you feel you would be restricted to only working remotely? It appears you are not aware of any startup scene in the UK. In talking to some recruiters in the UK, I assure you that there is a vibrant tech scene in at least certain parts of the UK.

Dedicate some time to finding a job. Take it seriously, get a portfolio of code together and be able to demonstrate what you are able to do. I don't think your age is a factor at all, but the ability to write good code trumps (almost) all.

</comment><comment><USER7> Why wouldn't you? Your skills fit the technology stack of many web-centric companies out there.

If it's your age you are concerned about: Being far away from Silicon Valley myself I can't tell you if age is that important there. Given that there seems to be a shortage of skilled hackers I doubt it. Besides: I read somewhere that the average age of YC founders is around 28.

Regarding work from remote: I don't know if it has to be a startup, but if not you might also consider applying at Mozilla or Canonical, both of which offer a range of remote work opportunities for tech people.

</comment><comment><USER8> Yes. Ask them. You can find start-ups pretty much anywhere (maybe try [http://www.crunchbase.com/](http://www.crunchbase.com/)), they don't exactly try to stay invisible (especially if they have funding). I'm willing to bet if you sent in emails to 10 of them (personalised, pointing out how you know their stack) one of them will have stuff you can work on.

All that crap about 20-year old rockstars is just that - crap.

</comment><comment><USER9> I am thinking about starting a start up. No funding or anything. Its in the initial phase. If I had the funding you would be the kind of guy that I would want to hire. Its not age, but the skills that you have that is important. However, your location can also factor into you being hired. We should talk?</comment>


Ask HN: When do you think? - <AUTHOR> By think, I mean the process by which you form new opinions about the things you read in a book or an article in a newspaper.
I have come to realize that most of stuff I read, I am just passively consuming it. I do understand a fair bit of the concepts but never really bother to analyze or critically think about it.
Do you take a pause after reading stuff and think about it, forming your opinions or may be building analogies to understand the concepts at a deeper level ? Or do you take breaks and devote some time to think about an interesting topic you might have come across during preceding days or weeks ? <comment><USER2> Going for a walk around the block

In the shower

Sitting around quietly at night

Try to keep a notepad around

</comment><comment><USER3> During walks, bike trips, etc. Outside, mild intensity, that's perfect for thinking.

Particularly intersting reads take me a long time because I research what I read, I would say that's part of thinking too. (Which for me means; if I'm not looking stuff up while reading, the material isn't really making me think).

Also, while discussing matters with my wife, mother or father. (And nowadays sometimes also my son, kids ask 'weird' questions that make you think as hell.)

</comment><comment><USER4> Trying to tell / explain to somebody (or even an imaginary someone) what I've read or studied. Most good insights or opinions happen at that moment for me.

<comment><USER5> My son is reading a book about conquerors and came across the portion on taxation, how the conquerors would tax the conquered and send the profits back home. We talk about what he is reading on our daily walks.

He said "there are no more people to conquer, so we tax ourselves"

I said "maybe we are the conquered"

Both of our minds were simultaneously blown.

</comment></comment><comment><USER6> What's interesting for me is if the subject is coding the "thinking" is the gaining real world experience, and then I judge what people say through that lens. But I also accept that my real world experience might be bias. Because of the old you need experience in X to get a job in X paradox. So I keep an open mind on any discussion eg is Haskell "better" than say Python or if not having static types is a good thing. I don't keep opinions on these things just keep the pros and cons in a state of quantum flux in my head.

So it's complicated and I realise how unable I am to be critical of something in have not done the 10k hours in. Say government policy for example. I also like HN when knowledge people weigh in on such things but then I need to judge how good their thinking is! It's a tough problem.

</comment><comment><USER7> I regard all books as a conversation between the author and the reader. If the author is the only one saying anything, you are passively consuming it. To have a proper "conversation", you have to criticize the content and compare what you know with what the author knows.

HN is actually a nice product that does this - someone can share an article and other people can compare notes (and even have a conversation with the author!)

I also make sure to take notes. If there are no notes worth taking, maybe the book wasn't worth reading in the first place? Some information dense work needs you to even write a kind of glossary, comparing the author's terms as she defines them, instead of using terms you're familiar with. This is especially the case with technical/academic work.

</comment><comment><USER8> I mostly do when sleeping, staring just before fall asleep and when a wake up everithing seems much clear

</comment><comment><USER9> With kids, I am always short of time to do things like reading. What I have done is taken a different approach. I only seek knowledge that I can act on to achieve an short term goal. This gets around the issue of only passively consuming information.

I think I have heard others call this just in time learning.

</comment><comment><USER10> It seems to happen approximately like an exercise training cycle for me: a ramp to intensity and then a rest period. In the intense period, I will tend to write and ruminate about the idea. Then it trails off and progress comes to a near halt for a bit. But if I wait patiently for a day or two then I can ramp up again.

</comment><comment><USER11> I tend to process as I read, which makes me a slower reader. I will also reflect on it at the end of the book/article/show as well.

</comment><comment><USER12> Mostly while running or sitting by window and staring outside.

</comment><comment><USER13> For me, synthesis is a mode of cognition that is often paywalled by the endless trivia of everyday life. So, as you say, I'll often read something quite passively and just not have the time to think deeply on it.

I do think we all approach knowledge and creativity quite differently. I've got lots of friends that are very logical, deductive, and first principles. Whereas any nuanced opinion I form generally comes from daydreaming or spacing out in the shower.

</comment><comment><USER14> I write.</comment>


Tiangong-1 Dashboard, reentry predicted 20180402T00:30 UTC +/- 1.7h - <AUTHOR> http://www.aerospace.org/CORDSuploads/TiangongStoryboard.png <comment><AUTHOR> Possibly now entered its last orbit. It's been losing altitude somewhat more slowly than predicted, so I don't envision it falling immediately W of Chile at the predicted time. [Update at 00:12 UTC -- definitely not crashing there, may have kept enough altitude to keep going another orbit!? China has a new prediction of 00:52 UTC +/\- 41 minutes, that would be centered just W of Southern Africa.]

Here is an excellent overview. [1]

And here is fantastic footage from the 2008 reentry of Europe's space freighter ATV Jules Verne burning up over an uninhabited area of the Pacific Ocean at the end of its mission. Similar size to the falling Chinese space station. [2]

[1] [https://www.space.com/40164-chinese-space-station-crash- last...](https://www.space.com/40164-chinese-space-station-crash-last- day.html)

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

</comment><comment><AUTHOR> The current uncertainty path travels West to East; it passes three times over Southern South America; and twice over Africa, the Middle East, and Asia.

</comment><comment><AUTHOR> Oh, looks like their calculations and dashboard crashed past their predicted reentry time. It was reentry theater, on par with security theater.

</comment><comment><AUTHOR> Turns out we have a confirmed reentry at 00:16 UTC, over the Southern Pacific, and this is not a good platform or format for live-tracking.</comment>


The Guru Meditation - <AUTHOR> https://www.youtube.com/channel/UCYt9E2d_GCrPzquW-5MZwmQ/featured <comment><AUTHOR> These are videos about Commodore, retro computing, and related topics.</comment>


Ask HN: What is your preferred Python stack for high traffic webservices? - <AUTHOR> There's a large project on our roadmap to rework a big ole chunk of legacy code into something that is actually an asset for the company instead of an anchor.
I'm considering giving it a run with a base of gunicorn/gevent/nginix/pyramid.  Seems that gunicorn/gevent give us the ability to use threads where best, but without having to make everything callbacks.  And Pyramid gives us a flexible framework to run our web service through (currently the main focus).  Kicked around the idea of using M2/0MQ as a way to implement a SOA of sorts, but it feels like a bit to much.
So, if you were starting from scratch and wanted to build a robust high traffic web service (site, app, api, etc), what would you use? <comment><USER11>
      * haproxy - frontline proxy
      * varnish - app server cache
      * nginx - static files
      * uwsgi - app server
      * flask - primary framework
      * tornado - async/comet connections
      * bulbflow - graph database toolkit
      * rabbitmq - queue/messaging
      * redis - caching & sessions
      * neo4j - high performance graph database
      * hadoop - data processing

<comment><USER12> Why Varnish in front of Nginx? AFAIK Nginx can pretty much handle the role of Varnish.

<comment><USER11> Varnish connects directly to the app servers -- it's not in front of nginx (nginx is to the side serving other content).

</comment></comment></comment><comment><USER13> I'm a fan of Django, so my ideal stack looks something like this:

      * puppet - managing server packages / infrastructure
      * monit - monitoring server processes / fixing things
      * django - primary web framework and ORM
      * amazon mysql - it's hosted, and works via plug-ins with Django
      * amazon s3 - storing static assets (images, css, javascript, etc.)
      * amazon elastic load balancer - for scaling incoming HTTP requests across multiple web app servers
      * amazon autoscale - for spinning up new web app servers to handle spikes in traffic
      * rabbitmq - message queueing
      * celery - processing async tasks in a robust fashion. must have
      * memcahed - no explanation necessary
      * git
      * fabric for deploying software
      * jenkins for testing / building software
      * nginx for buffering elastic load balancing requests to web app servers

<comment><USER14> how many EC2 servers do you have running for all this?

</comment></comment><comment><USER15> I am considering this stack off the shelf in my next big project:

\- uWSGI - performs better than gunicorn and has support for async apps using gevent

\- nginix - front end server

\- pyramid - web framework

\- mongodb - <USER10>

\- mongoengine - mongodb and python mapper

\- zeromq - messaging and communication

\- jinja2 - for template engine

\- gevent - for async processing

\- gevent-zeromq - to make zeromq non-blocking and gevent compatible

\- socket-io - JS lib for realtime communication

I still need to develop robust session management. I considered various options and came to conclusion if I want something fast, truly distributed and not using sticky session I should come up with my own session manager demon hosted on each node. I would use ZeroMQ to communicate to it.

<comment><AUTHOR> is the uWSGI choice a purely based on performance? I like gunicorn for the simplicity, uWSGI has tons of options thought I wonder if they make management more difficult.

<comment><USER15> Yes, it was primarily because of the performance. According to these benchmarks, unicorn totally choked: "... At the bottom we have Twisted and Gunicorn ..."

<http://nichol.as/benchmark-of-python-web-servers>

<comment><USER16> Look at the comment, the twisted code is wrong. By default the twisted reactor is multiplatform, but you can imporve performance for your specific platform. It's in the doc. If you run Twisted under linux and you should, use the epoll reactor.

</comment></comment></comment></comment><comment><USER17> Its not a high traffic site, but I'm running a app that served average of 5 req/s with Mongrel2 + wsgid + MySQL + django and thats working pretty well.

Also, the benchmark of Python web servers that gets linked everywhere (<http://nichol.as/benchmark-of-python-web-servers>) is getting old. I'm planning on doing a new benchmark, probably this coming weekend. As of now, I'm planning to test gunicorn, uWSGI, tornado, bjoern, eventlet, and gevent over HTTP, flup over FCGI, and uWSGI and wsgid over zeroMQ (behind Mongrel2). Thinking of it, I probably need to put all of the HTTP servers behind nginx for a more fair comparison. Am I forgetting any servers that people would like to see benchmarked?

<comment><USER15> Could you also try benchmarking uWSGI in async mode? Preferably with gevent?

Looking forward, thanks!

</comment></comment><comment><USER18> This is what I am using currently:

      * haproxy - frontline proxy
      * nginx - static files and back proxy
      * supervisord - service uptime
      * gevent/meinheld - <USER3>
      * django
      * gevent/eventlet - websockets/comet
      * postgresql - Database obviously
      * memcached - caching for django
      * rabbitmq - message queuing
      * celery - message processing
      * fabric - <USER4>
      * hudson - <USER5>

<comment><USER19> Just described the stack that I use to a "T".

The only things I would add are "solr" for search, and "redis" for miscellaneous speed improvements, such as statistics tracking and counting.

</comment></comment><comment><USER20> Surprised at the low number of CherryPy posts in this thread. Not only is it a great framework, it supports Python3 out of the box. My stack:

\- ubuntu/debian - apt ftw

\- python 3

\- haproxy - <USER6>

\- nginx - w/ uwsgi

\- cherrypy - framework that supports PY3

\- sqlalchemy - orm and sql

\- postgres - relational storage

\- mongodb - "mandatory" NoSQL

\- 0MQ - <USER7>

</comment><comment><USER21> You should find Simon Willison's talk about Building Lanyrd very relevant.

Slides and video here: <http://lanyrd.com/2011/brightonpy-building-lanyrd/>

</comment><comment><USER22> * nginx * gunicorn * Django * PostgreSQL * memcached * Whatever else I need to implement the logic of the site (redis, celery, etc.)

</comment><comment><USER23> I am newbie to using python for web services. Will django be better to start with or should I consider pyramid/flask/uWSGI as suggested here?

<comment><USER11> Flask is great for beginners because it's well documented and easy to understand. You can become familiar with Flask in a weekend -- start with the Quickstart and then go through the tutorial (<http://flask.pocoo.org/docs/>).

You won't have to spend much time learning it or fighting with it -- you won't find yourself asking, "Will I be able to do what I want in the framework without hacking it?" Flask let's you program in Python rather than writing to the framework like you typically have to in larger, opinionated framework's like Django and Rails.

Ironically, this also makes Flask an ideal choice for advanced Python programmers because it gives you flexibility rather than always wondering "will the framework allow me to easily do...?"

BTW uwsgi is a production app server. For example nginx has a built-in uwsgi connector and you use uwsgi to serve Flask apps (see <http://flask.pocoo.org/docs/deploying/>), but it's not a framework like Django/Pyramid/Flask.

</comment></comment><comment><USER24> uWSGI, nginx, pyramid, sqlalchemy, postgresql, mako, beaker and fabric to deploy

My preferred setup that works for most cases. All reliable and fast.

<comment><AUTHOR> That does sound lovely. Have you played with any of the evented/thread options of uWSGI?

<comment><USER24> Not really. I haven't had a need to yet, but it is on my list to check out.

</comment></comment></comment><comment><USER25> _Varnish / Frontline server sends static media to nginx, and other request to uwsgi cluster._ Nginx / static media servign _UWSGI / app servers_ Django / Web Framework _PGSQL / Relational Database_ Redis / NoSQL / cache / sessions *RabbitMQ / messaging queue

we use varnosh as a frontend server it handles the load balancing betwen our UWSGI servers, and if the request is a static file its send to our nginx server. we them use redis to store all of our cache and sessions, we cache everything so everytime there is a read from our database via the django ORM our api grabs the whole object returned and stores it in redis so next time we need to retrieve it we just hit redis.

</comment><comment><USER26> At my job, we are running tornado w/ gunicorn and membase w/ haproxy to load balance (and not much else) and handling quite a bit of traffic. If I were to write my own from scratch I'd want to learn some erlang first ;)

</comment><comment><USER27> nginx + gunicorn + pgbouncer + postgres, S3/CloudFront for -all- media. The gunicorn app server sit behind one of Amazon's Elastic Load Balancers, but could just as easily be HAProxy.

</comment><comment><USER28> nginx - frontline proxy, static files

tornado - <USER8>

memcache - <USER9>

mysql - <USER10>

</comment><comment><USER29> Does anyone have any opinions on web.py? I played around with this and it seemed pretty easy to use.

<comment><USER30> Tornado has a very similar feel to web.py, yet can do much more when you are ready for it. If you like web.py you might as well use tornado.

<comment><USER11> Tornado is a different animal -- it's asynchronous so when you write code for it you have to program using callbacks rather than in a traditional style.

My current project requires real-time/always-on connections so I started to develop it using Tornado and then decided to switch to the Quora model -- use a traditional Web framework like Flask for most things, and connect back to Tornado for the real-time stuff.

When I switched to this model, the development process sped up considerably. In addition to just being really-well designed, Flask has an amazing debugger that makes me more productive, and it's easier to write unittests for Flask because you can write them in a traditional way and don't have to contend with Tornado's IOLoop.

For real-time stuff, you could forgo Tornado all together and instead use gevent to deploy your Flask app (<http://flask.pocoo.org/docs/deploying/others/#gevent>), like some have done with Django and Pyramid, but I haven't tried this yet.

<comment><USER30> You don't need to write tornado in an async fashion. You can use it like you would Flask, but its got a more similar feel to web.py than Flask.

</comment></comment></comment></comment><comment><USER31> eventlet!

<comment><USER32> Seriously, it's amazing. It's like gevent, but with better documentation.

<comment><AUTHOR> I was under the impression that gevent was like a new version of eventlet. Other than the docs (which isn't insignificant), why choose one over the other?

<comment><USER32> They're pretty similar. The main difference is that Eventlet supports more event loops, has a messier basic architecture, is slightly slower, and lets you defer blocking tasks to threads. Since I'm connecting to MySQL, which happens through blocking C code in libmysql, that's pretty important to me. Eventlet's db_pool module is _very_ nice.

Personally, I'm happy with eventlet and can't see why I would want to go to gevent. Does anybody using gevent want to chime in on what's better about it?

<comment><USER33> gevent has utilities to turn Python blocking calls into non-blocking ones.

In your case you could switch to a pure Python MySQL driver and gevent will turn all your mySQL calls into async.

Actually there're also gevent non-blocking MySQL drivers that are written in C.

</comment></comment></comment></comment></comment><comment><USER34> Twisted/Twisted/Twisted/Twisted. >:3

More seriously, Twisted/Flask/SQLAlchemy has been the formula for the past two deployments I've done, and I'm happy with it.

<comment><AUTHOR> Why Twisted over Tornado or other threaded solutions? I'm curious about the specific strengths that you enjoy.

<comment><USER16> Twisted is a tcp/udp[/ssl] framework, Tornado is an http one.

In other word, with Twisted, you can write http, ftp, smtp, ... and your are free to write your own protocol.

<comment><USER35> Well, twisted is an _async_ framework, and that's the important thing. Back in the day I actually wrote a Twisted protocol to send/receive SMS messages from a modem over serial. In total the code was like 100 LOC. That's how flexible, well-organized it is.

</comment></comment></comment></comment><comment><USER36> PHP 4 running on IIS.

<comment><USER37> Did you miss Python in the title?</comment></comment>


Project Revives Nazi Atrocities in Striking Color - <AUTHOR> https://thevalemagazine.com/2018/06/26/project-revives-nazi-atrocities-in-striking-color/ <comment><USER2> I thought I recognised the name on the main gallery site. Witold Pilecki[0] was an astonishingly brave Polish cavalry officer who volunteered to be incarcerated in Auschwitz[1]. They wanted to get intelligence out and if possible organise resistance in the camp. He escaped after over 2 years, and volunteered to fight during the Warsaw uprising.

Edit: He survived that but was executed after the war by the Poles after a show trial and conviction for espionage. He'd been collecting evidence of Soviet atrocities in Poland.

[0] [https://facesofauschwitz.com/gallery/witold- pilecki/](https://facesofauschwitz.com/gallery/witold-pilecki/) [1] [https://en.wikipedia.org/wiki/Witold_Pilecki#Auschwitz](https://en.wikipedia.org/wiki/Witold_Pilecki#Auschwitz)

</comment><comment><USER3> Anyone know where you can find the other photos?

<comment><USER4> [https://facesofauschwitz.com/gallery/](https://facesofauschwitz.com/gallery/)

</comment></comment><comment><USER5> what's the silver/metal thing on peoples' heads in the left side photo?

<comment><USER6> It looks like just a peg in the wall where people were told to stand to center their head in front of the camera.

<comment><USER7> I suspect it was used as a mark to help take measurements from the images.

</comment></comment></comment><comment><USER8> > Photo of 14-year-old Auschwitz inmate Czesława Kwoka. The girl was murdered > with a phenol injection into the heart in 1943

There were not "very fine people on both sides".

</comment><comment><USER9> This will be very controversial but lately I've been wondering why is it that Germany's atrocities are still talked about however similar atrocities committed by the Allies are ignored.

Let's take Britains rule in India, particularly the Bengal famine of 1943 that killed 2-3 million people (as it happened around the same time as concentration camps).

[https://yourstory.com/2014/08/bengal-famine- genocide/](https://yourstory.com/2014/08/bengal-famine-genocide/)

Let's not even get into Belgium rule in Congo.

Is this just a "History is Written By the Victors"? I'm not trying to vindicate Hitler, but what's up with this?

<comment><USER10> The Nazis established a massive, systemic and vicious program for the complete annihilation of any "enemy" of the aryan race, and by "enemy" we are talking about innocent jews, Romani and many more (although, the _complete_ annihilation of the jewish people was it's main target). You may know this as the "Final Solution". I'm not aware of any event in modern human history that resembles the scale, the intent, the execution level and the pure evil that makes the final solution program.

This does not mean that other atrocities done by any other group of people (including the "allies") are not horrific and should not be condemned or remembered. But, the final solution should always be remembered as an extreme, unique and singular event in modern human history.

<comment><USER11> > I'm not aware of any event in modern human history that resembles the scale, > the intent, the execution level and the pure evil that makes the final > solution program.

Read the history of Indian subcontinent from around 1000 AD to 1947 AD. Events of the same magnitude as the holocast (or worse) happend again and again. Read about the 'conquests' of the likes of Mahmood Ghaznavi, Muhammad of Ghor, Taimur the Lame, Ahmad Shah Durrani, Nader Shah, Mughals and countless others. Read about the atrocities committed by them to the people they conquered and tell me that the Nazi holocast was a singular event.

<comment><USER9> > Read the history of Indian subcontinent from around 1000 AD to 1947 AD.

Can you recommend any books?

<comment><USER11> You can start with Wikipedia[1]. I've read more then a few books over the years — I'll find some for you.

[1] I know Wikipedia is not the best source, but it should give you some idea of what I am talking about. Here are some links:

[https://en.m.wikipedia.org/wiki/Indian_campaign_of_Ahmad_Sha...](https://en.m.wikipedia.org/wiki/Indian_campaign_of_Ahmad_Shah_Durrani)

[https://en.m.wikipedia.org/wiki/Nader_Shah%27s_invasion_of_t...](https://en.m.wikipedia.org/wiki/Nader_Shah%27s_invasion_of_the_Mughal_Empire)

[https://en.m.wikipedia.org/wiki/Mahmud_of_Ghazni#Ghaznavid_c...](https://en.m.wikipedia.org/wiki/Mahmud_of_Ghazni#Ghaznavid_campaigns_in_Indian_Subcontinent)

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

<comment><USER9> I was aware of some of this but will check it out further.</comment></comment></comment></comment></comment></comment>


Trump Unveils His Plan to Weaken Car Pollution Rules - <AUTHOR> https://www.nytimes.com/2018/08/02/climate/trump-auto-emissions-california.html <comment><USER2> It's incredibly hard to stay calm and reasonable in a discussion if someone is actively moving the entirety of mankind to the brink of destruction.

</comment><comment><USER3> This is "the argument" against fuel efficient cars. Although I think we all know what this is _really_ about:

"First, people who buy fuel-efficient vehicles will end up driving more, increasing the odds that they will get into a crash. Second, the fuel- efficient vehicles will themselves will be more expensive, slowing the rate at which people buy newer vehicles with advanced safety features. Third, automakers will have to make their cars lighter in response to rising standards, slightly hurting safety."

<comment><USER4> I don't really understand why people of a certain political leaning take comfort in burning as much fossil fuel as possible and find all kinds of excuses to justify burning more fuel. I really don't get it.

<comment><USER5> A huge chunk of the American electorate has given up on principles and is now in a sports mentality where the only goal is to beat the opposing team. This has been driven to extremes by eight years of a non-white President from that team. The opposing team is against pollution and favors fuel efficiency, thus they are for pollution and against fuel efficiency. That's really all there is to it. Look up "rolling coal" for the purest expression of this sentiment.

<comment><USER6> The "wining" team, this time, didn't really win, now did they? They lost by 3 million votes. Without going into what Russia did to tip this elections, which were won by mere 70,000 votes in the 3 key states.

This is for sure not your usual right vs left style of governing. It's the right not accepting that they've lost. It's the self righteousness of people who think they have the right to govern, no matter what.

<comment><USER5> They won according to the rules of the game. Normal politics might say that they ought to govern from the middle given how narrowly they won. But with a team mentality, that makes no sense. It's like saying the Super Bowl winners should share the trophy because they only won by one point and the other team ran the ball more yards. Does not compute.

<comment><USER6> Rules of the game, really? You mean colluding with a foreign government against your own people is playing by th "rules of the game"? Isn't it exactly the oppsite?

Whichever is the case with this narrow "win" they for sure did not get manadate to foundentally change the USA. And this is without getting into trump's a non existing ideology of plan for governing. It's not a government. A government does not work against the interests of its people.

<comment><USER5> You were talking about losing the popular vote and explicitly disclaimed the rest, and I was following along.

<comment><USER6> Yet down voting me not making you sound very confident in your arguments.

<comment><USER7> _I 'm_ downvoting you. (Others are also.)

If you want to know why, I'll explain. You made a bad initial argument, which seemed to be motivated by having a political axe to grind. Since then, your replies have looked like someone who just wants to argue, but isn't actually listening to what they're replying to. That's a "dialog" that isn't going to contribute anything useful. All it adds is noise.

We try to avoid that kind of thing on HN. Hence the downvotes.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> >The Trump administration contends that, by promoting the manufacture and sale of lighter cars, the Obama standards could lead to nearly 13,000 more auto fatalities.

What is this madness‽ Light does not automatically equate to being unsafe.

Edit:

From: [https://www.nytimes.com/2018/08/02/climate/trump-fuel- econom...](https://www.nytimes.com/2018/08/02/climate/trump-fuel-economy.html)

""This can potentially affect road safety in two big ways: On average, smaller, lighter vehicles can be worse at protecting their occupants in an accident. But lighter vehicles also cause less damage to other cars on the road. The big question is which effect dominates.

Experts who have looked at this question have developed a rule of thumb: If automakers are mainly reducing the weight of their largest vehicles, like S.U.V.s and pickup trucks, then that makes the roads safer overall. But if manufacturers were to focus more on reducing the weight of their smallest passenger cars, that could be worse for overall auto safety, since those cars would be more vulnerable in crashes with bigger vehicles.""

<comment><USER9> It does not, but in the past the calculations to derive these numbers take into account what happens when a small light car impacts a larger, heavier car as well as the probability of this kind of crash happening. Numbers like this are easily fungible too, the worst kind of statistics.

</comment></comment><comment><USER10> Question: if they succeed in stopping California from having more stringent pollution rules, could California partly work around that by making the annual registration fee for cars depend on their emissions so that high pollution cars would be penalized?

</comment><comment><USER11> It isnt as bad as a had thought. I had expected them to enforce a maximum, to insist that the average be kept lower and penalties applied to cars that didnt burn enough fuel. Those voices are out there.

</comment><comment><USER12> This was a good link in the article as well.

[https://www.nytimes.com/interactive/2017/climate/what-is- cli...](https://www.nytimes.com/interactive/2017/climate/what-is-climate- change.html)

</comment><comment><USER9> It is great news for the US car industry, as all of the big three are highly dependent upon the sale of trucks, SUVs, and larger cars. Glad to see this the 2012 rules were ridiculously stringent and burdensome and could ultimately put larger vehicles out of the consumers reach. A lot of people's jobs are at stake and the rust belt can't afford much more pain.

<comment><USER8> Good! We don't need those monstrosities on the road threatening everyone else, and pumping more pollution into our air.</comment></comment>


Detroit Bankruptcy: What Congress must do to prevent future disasters - <AUTHOR> http://www.slate.com/blogs/business_insider/2013/07/20/detroit_bankruptcy_what_congress_must_do_to_prevent_future_disasters.html <comment><USER2> An ERISA like system would just put major impetus for the movement from defined benefit to defined contribution for state and local governments. Which trend has already happened in the private sector.

I'm sure a lot of people are wondering WTF I'm talking about, and why it matters.

A defined benefit pension says, "You will get this much per year when you retire." A defined contribution plan says, "We will put this much into your retirement fund."

The problem with a defined benefit plan is that to do it properly, you need to set aside money today for that purpose. And then you need to invest it. However the most effective long-term investments are risky asset classes like stocks. But the downside of those is that there will be years where your pension fund loses money..a lot of money. If you are under pressure to guarantee that your plan is fully funded at all times, in those years you'll have an insanely huge obligation.

How big a deal is this? Consider well that governments around the country all have large pension plans that they have decreed should make about 6.5%. Which, of course, can't be done with safe asset classes. So they are pushed into risky asset classes, but not just any risky one, risky ones with a track record of stable returns. Like private equity. When private equity went belly up in the 1980s it caused the S&L crisis. If it happens again, the numbers now are 10x as large, and it is largely government pension funds that wind up underfunded to the tune of something like a trillion dollars.

By contrast a defined contribution plan just requires that you pay a defined amount into an investment plan, which is then free to be invested in the most sensible asset classes.

</comment><comment><USER3> What Congress needs to do is get out of retirement entirely (including 401k's, etc) except to maintain and protect Social Security as the last-ditch retirement system.

<comment><USER4> "...except to maintain and protect Social Security as the last-ditch retirement system..."

I suspect that's the rub. I don't have ALL of the information on Social Security, but the system is probably a good deal more difficult to fix than it seems. From both a fiscal and political perspective.

<comment><USER3> Social Security's unfunded liability over the infinite future horizon is equal to 4% of future taxable payroll, or 1.4% of future GDP: [http://cnsnews.com/news/article/social-security- faces-96t-un...](http://cnsnews.com/news/article/social-security- faces-96t-unfunded-liabilities-83894-household). A 4% increase in FICA taxes would be hard to swallow for many families, but let's face it, it's not going to make or break anyone and it would permanently fix Social Security.

<comment><USER2> Alternately Social Security is projected to be solvent for decades if the US federal government simply pays back the treasury bonds which are invested in Social Security. I know, actually paying bonds that are owed to Social Security is a radical notion. As would be raising taxes for that purpose.

</comment></comment></comment></comment><comment><USER5> _Congress should extend ERISA or a similar set of rules to municipal and state governments. This would force governments to manage their pension systems in a safe way_

But then the politicians couldn't use the pension programs as personal slush funds. Won't happen.</comment>


How my school rejected an app made for students - <AUTHOR> http://theiostream.tumblr.com/post/87830445451/portoapp-a-story <comment><USER3> "In the real world I'd be sued"

Well, maybe, in the real world, if anyone even noticed, you might get sued. It would be baseless, but you wouldn't have the resources for a court battle, so you'd just tuck your tail and run.

The lesson here is that institutions can be pointlessly authoritative assholes. Between the offended IT schmucks who were churning out their own, awful app, and the administrative types who are seeking to cover their own asses, legally speaking, it really couldn't work out any other way.

Oh, and since they can just kick you out of school, with no meaningful recourse, you're _really_ getting a lesson in what it's like to be the little innovator.

<comment><USER4> I agree ..and if you graduate soon, re-release the app lol. They wont be able to do anything and they won't bother to sue lol. Like someone else said, it's baseless. Guess what? Google scrapes the entire web and profits from it. But in your case, you happen to go to the school, so unless you want to be kicked out, that changes everything.

It doesn't make it a moral issue though. Tell em: "look, first off, I will remove it, but don't fool yourself: this in no way is a moral/ethical issue. You simply have control because if I don't follow your desires or rules, I get disciplined in one way or another. So there's nothing ethical to it. It's an agreement between me and you that I can be apart of your school if I follow your rules. It's too bad you're so shortsighted here and arbitrarily inventing this rule that before didn't exist."

Anyway, you've been at this school for 8 years and you're programming great stuff--aren't you due to graduate some time soon. Like I said, release it again then. ..But also leave school. You don't need school to be a big success. You'll have way more time to devote towards what you really love. email me at firstname.lastname@example.com for a paying remote job right now. I got work for you doing stuff you will love.

</comment></comment><comment><USER5> "This goes to show that as much as schools attempt to mask the image of a great environment for students to thrive, learn enterpreneurism and so on (mine does that a lot), they're traditionalists to the point that it doesn't make any sense. What do they have to lose with my app? How is that classification as copyright infringement even pertinent? They apparently just must have control of anything that has anything to do with the school."

Biggest problem with education. It is not about learning how to learn, enterpreneurism or any other fun thing you could think of. Is about learning how to obey, and letting those in charge take care of things (even if they're done terribly by people who actually don't like/care for it).

edit to add something else: I think more schools should allow for software to be made by the students. They understand the needs of the other students better.

<comment><USER6> To the point of your edit, I'm actually working on something along those lines - [http://openSourceSchool.co](http://openSourceSchool.co)

The code isn't on Github yet, but I've developed an open source website framework and mobile app framework for schools and other educational institutions, because ed tech kinda sucks from what I've experienced. Hopefully I'll be working on larger aspects if schools would allow non-trivial software to be developed by students who could do it better than the school.

</comment></comment><comment><USER7> To the OP, I feel for you.

Your app made someone over at the IT dept feel inadequate. Remember, some older IT person is trying to protect their job, no matter how crappy they're doing it. Your app, as you had mentioned, was much better than the one that they made.

This, unfortunately, is the way the world is. Think about patent trolls, incumbents suing start ups that threaten to shake up the industry, etc.

The way they all sat you down (quite literally like going to the principal's office) was simply bullying.

Keep your chin up and look beyond this. This app is not the fight worth expending energy fighting for.

<comment><USER8> I don't know where you live, but here in the US, you violated no copyright laws (or any laws or ethical clauses for the matter) by simply providing access to pre-existing works, ie. the schools website data.

If the school's website is publicly accessibly, as-in anyone can find it online, then it's public information and you can use it at your will so long as you state where the information came from (ie. not your original writing, etc).

if you are in the US, check your schools student handbook/policies... closely... if you found there is nothing restricting you, I would argue to pursue your app (and be prepared for pushback from the school).

<comment><USER9> He is charging for the app, of course he is violating copyright laws.

<comment><USER10> So if you view the site in a web browser that you pay for, the developer of the web browser is infringing the website's copyright?

This app is just an HTTP user agent, as far as I can tell.

</comment></comment></comment></comment><comment><USER11> OP, consider this episode a badge of honor. You're doing the right thing. Learning valuable technology and skills for a successful future - not just in tech but in whatever you want to do. Finding a problem and doggedly pursuing a solution is what you need to do in "real life." Chalk this episode up to life experience. You have won a moral victory but as you said, don't expect them to change their minds. Graduate and move on to bigger and better things and leave these luddites in your rearview.

<comment><USER12> Don't you think you're contradicting yourself a bit you encourage him to be persistent in fixing problems and never giving up but on the other hand you tell him to give up and let the school have its way.

The hacker mentality doesn't just abruptly stop once we're not dealing with programming issues.

Being relentless and constantly pushing to get what you want is a way of life.

</comment></comment><comment><USER13> if you weren't aware, many school districts partner with a private firms for technical services... which include things like selling the school a web site.

looking into this a bit more it would seem these services are provided by [http://www.educacional.com.br/home/home.asp](http://www.educacional.com.br/home/home.asp)

what i'm saying is no, the school didn't reject this app... their partner – your competition – did.

edit: oh wow, i've realized i had missed half the article (i stopped reading at the first screenshot)... you're _charging_ for an app that stores passwords, scrapes 3rd party content, practically bragging about how you removed the company and school's branding... and _you 're_ upset?

<comment><AUTHOR> Educacional is their provider for some online content (mainly games and similar stuff for young kids to have IT lessons). The grades db, memos and so on are managed by the school itself, and the news as well. Educacional, as far as my app is concerned, is simply a gateway for getting authentication tokens to /those/ services which I actually use.

And, the app that I mentioned in the article (which could be considered as a competitor of sorts) is also being developed by the school itself.

<comment><USER14> > And, the app that I mentioned in the article (which could be considered as a > competitor of sorts) is also being developed by the school itself.

Which is probably why the school shut you down.

<comment><AUTHOR> Their app's feature set consists of contact information, maps to the school, a gallery of static photos about the school, and webviews that display their website's content directly. It doesn't even comprise grades, memos and so on, which is what my product's focus is. That's why I don't think that's the reason.

<comment><USER15> So, you requested written permission... didn't get it... charged for your app... and now they are just a bunch of luddite meanies turning you into an evil villain instead of fawning all over you?

You are serving as a proxy for credentials into a system where the school is legally liable to protect the privacy of the students, families, and staff. Yeah. You get shut down NOW. It doesn't matter where your code is or how great your work is. you are taking control of something that they are required to protect.

If someone can hack iOS or your app and steal credentials, who's ass is on the line for discovering, disclosing, remediating, rebuilding trust, resigning, etc.? All those people have enough work without your app. They are responsible for what they create. They can't be responsible for your work. If they knowingly let it exist, they will have to take responsibility for any fallout that may come from it.

Who is going to be handling all the calls when people change their passwords at the site, but your app locks their accounts out by trying to use the cached credentials?

They have plenty to lose with your app. You are learning many things.

<comment><USER16> But it sounds like the app isn't doing anything a web browser couldn't do. This is a recurring theme among authoritarians now: take something that a web browser does, and argue that because it's being done outside of a web browser, somehow that's wrong. Look at weev; that's exactly what he did (there are certainly other aspects, but it was one used to scare the court and the aspect that the prosecutor willfully failed to understand).

"All those people" are responsible for a public API; in this case, it is a text-based api over HTTP only, meant for human consumption, but it's an API nonetheless. This app does not bypass that API. If they don't like how the API is being used, they need to change it; but of course you can't close it completely. This is the analog hole of the Internet.

Web browsers are just a client for that particular kind of API. It's ridiculous to limit which clients can access an API, as long as they do so correctly. Of course, you can make it difficult or impossible for unapproved clients to access the API, that will achieve the goal; that's what DRM does. But by not putting those controls on the API you're allowing new competing clients to connect with it.

<comment><USER15> You can try to recontextualize it to suit some internal need of yours to feel OK or good about something being bent to suit another purpose. That doesn't change the copyright in spirit or in law.

It's not a public API meant for human consumption. It's a viewstate object, which is meant for currying data back and forth inside controls, etc. in an ASP.Net application. It's not an API. He had to hack that format which is feasibly a DMCA violation as well.

Weev would be a horrible example to bring up.

I'm not sure we're going to close a gap here if you feel all copyright is stripped the moment data can be presented in an anonymous user's browser.

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> > "I found out they were developing an app for themselves"

This is the reason, no need to look into it further. They probably sunk a lot of money in what turned out to be a crappy app. Knowing how these things work in Brazil, I wouldn't be surprised if the company developing it had ties with the school's administration. If so, a crappy app wouldn't usually be a problem... until this guy's app appeared. Then, the development costs will have to be justified.

Notice how they didn't complain that the student was making money. They don't care about that. All they care about is not looking bad, while furthering their agenda.

</comment><comment><USER18> Sorry to hear it. You're completely right, there's nothing unethical about what you did, and if you did get sued for it in "real world", any competent judge would laugh the plaintiff out of the room.

If you really want to fight for it, perhaps you can get support from the student body and the teachers that have liked the app before?

If not, well, at least you learned a lot by completing it, congratulations on that!

<comment><USER19> IANAL, but websites are allowed to control (via their terms of service) whether you can scrape them and use their data. There is a difference between accessing a website via chrome and via a native app that uses the website as a service.

<comment><USER20> There is an even bigger difference between accessing a website via Chrome and via a native app which costs 99c.

<comment><USER21> The app doesn't aggregate content, it displays it. This notion of authorized clients you seem to have doesn't exist. If they put their HTTP port out there, they don't get to say access by Chrome/IE/FF is ok, but curl or your custom app is not. If you then _republish_ the data from your site, that's a wholly separate issue, but displaying it on a viewer directly after requesting it from their site is not aggregation.

<comment><USER19> You can say whatever you want in your terms of service. Enforceable or not, good-actors just follow the rules of the service -- because if the service wanted to block you, they could probably easily do it.

</comment></comment></comment></comment></comment><comment><USER22> So, what you're saying is that since it's open source.... I should publish a version myself and see if the school is ballsy enough to try to bluff a random company in a random part of the USA?

<comment><USER8> There is nothing they could do, even in their own country. No laws have been violated here.

(maybe we should all publish the app to prove the point)

<comment><USER23> They'd probably still harass the student, as the original author. I don't think you'd be doing him any favors.

<comment><USER8> Fair point.

It boils my blood to see a school administration so blatantly and wrongly take advantage of a student that they claim to be educating and preparing for the future. If anything, the administration should be in full support of the OP. If the OP can tolerate the pushback, and there is nothing in his school's policies forbidding, he should pursue the app. Let the administration spin their wheels. They can't sue him. And if they tried, they would lose. It's just absurd.

</comment></comment></comment></comment><comment><USER24> You are right, your school is wrong.

They should be thinking, "We should be also serving this data in a parsible format such as JSON or XML so apps like this are easier to create and to avoid breaking things if we change our HTML"

Also, facts such as grades or sports results cannot be copyright at all.

<comment><USER8> Even if it were subject to copyright, you violate no laws (in any country I know of) by simply re-posting the information and providing attribution to the original author/creators of the content. If true, any news aggregator and most websites would be getting sued every day for regurgitating information.

<comment><USER25> You've posted this further up as well, but it is simply not true. The whole point of copyright is that no-one can re-publish ('copy') a copyrighted work without permission. News sites pay for the right to republish Associated Press reports, for example, as 'hueving' points out.

Aggregators like Hacker News and Reddit don't copy content as a whole, they just provide links. Providing a preview of the content, as Facebook does, might be considered either fair use or citation—but in neither case they're copying and republishing the entire content.

Attribution does not magically remove copyright.

<comment> luka-birsa I agree.

If I'm not mistaken, Google got sued for providing short excerpts of news from various news outlets and decided to settle out of court.

</comment></comment></comment></comment><comment><USER26> As a former student who created an iOS app for my school district - I really feel for you.

Creating the application & working with the district was a great learning experience for me - perhaps the most useful thing I did in high school. I'm sure you learned a good bit by creating the app - those skills will certainly help you in the future.

Luckily for me the staff/administrators we talked to really embraced the idea and brought me on and made it into the official iOS application for the school district and then open-sourced it. We pitched the ability to check grades, get push notifications, and check documents. It's important to note, however, that I went to school in Silicon Valley - so that's probably a factor.

You've already demonstrated a lot of skill by creating the app. (It looks a whole lot better than my v1)! - Chalk this up as a good learning experience - Keep it up!

</comment><comment><USER27> Hahhahaa this is a hilarious. I went to a school like this that was super paranoid and also had a counselor person. People put into these roles always came across as psycho and condescending to me. What a better way to bring young minds into the world than to fail to bargain or negotiate with them about their behavior, instead just waffling into that "in the real world" BS.

Ditch the proprietary soft when possible if you want to get as far away from BS as you can. FOSS is one of the few refuges where you can believe in humanity as much as you might. You have the "challenge" to think about how unethical your choice of platforms is ;-D

</comment><comment><USER28> Isn't a key part of copyright lawsuits damages? Let's say, for example, that the school did sue him for copyright infringement. Then let's say they win the lawsuit. It is in fact copyright. Now what? I believe he'd have to take it down and then pay damages. What, exactly, would the financial damages to a public institution be? Hell, even if it was a private school what type of damages could you possibly argue for this type of app?

Now he is selling the app so profiting off of someone else's copyrighted work is pretty much a no go. But what if he gave it away for free? What the result of a copyright lawsuit be exactly?

<comment><USER8> No copyright law (in any country that I'm aware of, even if the OP sold the app) has been violated.

The OP may be subject to some school policy... but that's it. The administration is plain wrong and the OP should pursue his app if he can withstand the administrations push-back/threats.

You can always link-to and/or provide access to existing work (copyrighted or not) so long as you provide proper attribution (state the original content authors/creators)

<comment> luka-birsa I'm not certain that linking and providing access is the same. Let's take a copyrighted work which we can relate to more easily than web pages - TV Shows on Hulu.

Now, you can always link to Hulu in your browser and direct your visitors to Hulu. Hulu as the (C) holder can then decide if you're geographically suitable to recieve this content.

How about building a proxy webpage that provides access to Hulu (let's call it EU-Hulu)? We'll build a complete Hulu clone that works in EU by tunneling video streams via VPN to our page and stream them from our web video players.

I don't think that adding attribuition (ie providing a "THIS CONTENT IS FROM HULU" and their logo) to the page would solve our legal problems. If anybody can confirm that this is in fact legal, I know what I'll be developing in the near future: EU-HULU, EU-Spotify, EU-...

Copyright law is very very very strict. If it's not explicitely stated it's forbidden. Even by taking code from a pastie repository, where it's clearly made public, you're braking the authors Copyright unless he specifies Licensing terms that allows you to copy paste it into your app. Source code for all closed source software could be made public and that doesn't mean you're allowed to use it in any way.

To go even further - Hulu, while it openly shares video content to US citizens is unavailable to the rest of the world. We all know that you can bypass the limitation by employing VPN, but you're breaking the Copyright law nontheless. It's their choice if they want to limit access to their copyrighted materials.

If OP built a Web browser clone, he would be in the clear. He instead took data from the webpage, mangled it into his own app and sold it for 0.99$. Now while I do not agree with the tactics employed by the school (they should embrace it instead), image we would be talking about Wikipedia and 6.99$ BestEncyclopedia app, developed by Apple, which downloads the data and presents it a very nice way (they'd call it Cylopedia-Flow with huge images and Helvetica all the way).

Right now you'd be very pissed at Apple.

<comment><USER29> > How about building a proxy webpage that provides access to Hulu (let's call > it EU-Hulu)? We'll build a complete Hulu clone that works in EU by tunneling > video streams via VPN to our page and stream them from our web video > players.

This is not at all comparable to the OP's app, which (if I've understood the post correctly) is a special purpose HTTP client. If its user can use that app to get the data he wants, then he can also use a normal browser. It's using the user's credentials. There is no middle man tapping into a restricted stream and republishing that to the world.

> image we would be talking about Wikipedia and 6.99$ BestEncyclopedia app, > developed by Apple, which downloads the data and presents it a very nice way > (they'd call it Cylopedia-Flow with huge images and Helvetica all the way).

> Right now you'd be very pissed at Apple.

Nope. There are many wikipedia clones already. There is nothing wrong with them. And there are many special purpose http clients to show specific sites in a user friendly way. Nothing wrong with them.

</comment></comment></comment></comment><comment><USER30> Good lesson. To be creative and avoid lawyers you need to be anonymous. That nicely reinforces uselessness of copyright.

</comment><comment><USER31> What was the "ASP.net view state parser"?

<comment><USER32> Blog post: [http://theiostream.tumblr.com/post/73637206523/parsing- asp-n...](http://theiostream.tumblr.com/post/73637206523/parsing-asp-net-new- view-state)

And accompanying source code: [https://github.com/theiostream/viewstate](https://github.com/theiostream/viewstate)

<comment><USER33> It's been a while since I last had to parse ASP.NET pages, but AFAIK, the viewstate isn't meant to be parsed by clients, you just have to re-send it during postbacks. It's more like a cookie, or Rails' authenticity_token [1].

[1] [http://stackoverflow.com/questions/941594/understand- rails-a...](http://stackoverflow.com/questions/941594/understand-rails- authenticity-token)

EDIT: Oh, ok. Re-reading the article, he was parsing the ViewState because there was some data hidden in there (a serious flaw actually), instead of scraping the site normally! Clever!

</comment></comment></comment><comment><USER34> In the US, "Copyright does not protect facts, ideas, systems, or methods of operation, although it may protect the way these things are expressed[1]." This means that in the US you can take the phone book, digitize it, and as long as you present it in a distinct way you can publish that. It is clear that you wouldn't be in the wrong there.

In Brazil, copyright law is slightly different (emphasis mine):

"The current body of Brazilian copyright exceptions and limitations may be divided into three groups, relating to: 1) partial or full reproduction; 2) derivative works; and 3) performing rights. The three tables in the following sections provide an exhaustive list of the limitations present in Brazilian copyright legislation.[2] _The dominant view in Brazilian literature is that exceptions and limitations lists are to be strictly construed, with no credence given to implied limitations._ This is a primary tenet of Brazilian legal scholarship with respect to copyright; it is taken as dogma in academic writing and, as a result, often by courts as well[3]."

What I understand is that unless it is explicitly laid out as an exception, court houses would look at it as infringement.

"The reproduction of small excerpts of preexisting works of any nature, or of an entire work of visual art, is allowed within the context of a larger work. The reproduction itself must not be the main object of the larger work, and must not interfere with the normal exploitation of the work or cause unjustified harm to the legitimate interests of the author[3]."

Your app is doing quite a lot with the screen-scraped data. You're not just presenting it unadulterated, but you're transforming it to present it in a way easier to consume. Don't know if that constitutes enough for the scraped data to "not be the main object of the larger work".

"To integrate any given computer program into others, be it at application or operating system level, is permitted if done for personal use and unavoidable considering the user's needs. Integration must be done for the exclusive use of the person who carries it out[3]."

You could argue that your application is doing nothing more than displaying available information to people that already have access to it in a way that answers the user's needs, but I don't think it would fly here because integration is not "done for the exclusive use of the person who carries it out".

"Higher-education institutions in Brazil usually do not provide clear policy guidance on course readers and textbook copying. _In practice, the unlicensed reproduction of copyrighted material is essential to academic life._ Course readers, copies of book chapters and even entire books can be found in files hosted by copy shops, ready for on-demand reproduction. Professors usually keep personal files as well, in which they include all of their courses' required and complementary reading material. Students are frequently seen carrying spiral-bound photocopied textbooks to class. This is all done without prior authorization from rightsholders[3]."

I find it extremely ironical that an "industry" that thrives (IMO correctly) on copyright infringement, would go against a screen scraper for copyright infringement of _facts_.

[1]: [http://www.copyright.gov/help/faq/faq- protect.html](http://www.copyright.gov/help/faq/faq-protect.html)

[2]: [http://www.bloomsburyacademic.com/view/AcctoKnowledgeinBrazi...](http://www.bloomsburyacademic.com/view/AcctoKnowledgeinBrazil_9781849660785/chapter- ba-9781849660785-chapter-0003.xml#10)

[3]: [http://www.bloomsburyacademic.com/view/AcctoKnowledgeinBrazi...](http://www.bloomsburyacademic.com/view/AcctoKnowledgeinBrazil_9781849660785/chapter- ba-9781849660785-chapter-0003.xml)

<comment><USER35> Assuming [1] to be a proper rendering of the current law then I see problems with the school's claim that this activity is infringing:

Article 7(2) states, quite clearly, that the information in compilations and databases is not protected. Article 47 says that paraphrases aren't infringing - but no need to rely on that as Art.7 is so very clear. FWIW Art.8 says that calendars and diaries are also excluded from copyright protection (but be careful, as I understand, it Brazilian law doesn't treat lists as examples but as strictly complete).

The school's claims seem to be unfounded. Perhaps the OP could ask them - <USER2> view of their education(!) - if the school can show how the app is infringing the school's copyright in view of the Articles saying that information is not protected.

But as other's have noted it may be that you need to simply accept their position in order to protect yourself from expulsion or other negative actions the school could take.

You _could_ seek a copyright attorney/lawyer who will act for you _pro bono_!? Especially if you wanted to take this to the newspapers.

One issue that is unclear to me is the authorisation process. Does the app somehow scrape the users data centrally or do the users use the app as the interface to access the data that is on the web pages.

It's possible that the website terms of use state that scraping is not allowed. But I don't know with certainty how that one would pan out in my own country nevermind in Brazil. Either way that wouldn't be "copyright infringement".

\- - -

[1]: [http://entertainmentlawbrazil.com.br/brazilian-copyright- act...](http://entertainmentlawbrazil.com.br/brazilian-copyright-act-law- no-961098/)

</comment></comment><comment><USER36> I am particularly impressed by the viewstate workaround. That demonstrates an unusual mindset and ability to solve interesting problems.

Mention this post in any job interview in Silicon Valley and you will likely get hired.

As for the school, just remember that you are interacting with low paid government employees who will never taste success.

In my opinion, you've done nothing wrong.

Media would love this story, but it may make your life miserable. How long until you are out of that school?

</comment><comment><USER37> This reminds me of when I asked for permission to make an iOS app for my school and was denied with similar arguments. I guess it sucks more when you've already put in so much effort and it gets shot down in one meeting.

I did learn that the school stored user/password information from Active Directory in a flat file for one of the legacy applications...that was scary.

</comment><comment><USER38> I was rooting for the OP up to the point when he said he was charging for the app. I know there wasn't some huge profit to be made there unless it's really huge school, but still. If he wanted to do something good for the school and fellow students shouldn't the app be free?

<comment><USER39> Profit = Sales - Apple's cut - Apple Developer Account annual fee - iTunes App Store annual fee.

What makes you think he will be making a profit on a $0.99 app ?

Likely he was not making any profit at all. Are you suggesting he shouldn't try to claw back some of his costs ?

And now they reject his app; he takes it down and definitely won't claw back anything. Now he is down $200 + time and effort. Yeah, screw him for trying to make money off the backs of anyone.

<comment><USER38> Either way, IMO, students shouldn't be the ones paying (yes, I know it's only 1$). Maybe he should have made an arrangement with the school so they cover the Apple fees or fund it through donations.

<comment><USER39> The information was on the web. Students didn't have to pay the $1 to get to the information; they would have paid it because he made a nice, convenient app. Or they could go in via the website and dig through it themselves.

Did you read the story ? He tried to talk to the school but after several school employees told him they liked his app they changed their tune and decided he was ripping them off. T hey could have worked to understand what he had done and offered him his costs to open up the app but they decided not to.

</comment></comment></comment></comment><comment><USER40> Well, you never got their permission so I don't see what the problem is.

Does it suck? Yeah, sure. That's irrelevant.

</comment><comment><USER41> Amazing article from a young kid, bright, smart keep it up!

Let them take it to the appstore and see if they can really get it down due to copyrights. I don't think they can sue you about anything, you'r just using public data...

Also something else, take it up with your parents or whoever has you at that school, and consider changing schools. Make it a scandal for them. School trying to sue defendless student after having a bright idea for an app using public data...

</comment><comment><USER9> Ah, you charge for theapp. Then they are correct, you are profiting of their work.

If somebody was making money of my work, I too would be pissed.

<comment><USER42> So if a browser vendor charges for the browser (like Opera did, lets say) can I sue opera for displaying my website?</comment></comment>


Ask HN: Dumb question from a beginner - <AUTHOR>

Hi Hacker News,
Background: I am a Computer Science student from Costa Rica interested in Python and startups. I am by no means a genius of programming or logic or management, but I love programming and I would like to create something. Given my circumstances I can only study a little because most of my time is spent in my job. I am also a CCNA, but that does not matter to my question. In my college I have studied Java, .NET and Oracle as far as languages, but I am interested in open source technologies too.
Question: this could be dumb because I am starting to learn Python, but I would like to know of examples of a website deployed in Python, if that exists. I mean, I know people use Python and Ruby to enable websites like Twitter and many others, but for me it is difficult to see those programming languages in action. I would like to use Python to do something for a website, but I can't think of anything as it is difficult for me to see an example of the way it is used in a website.
Sorry for my ignorance,
dperezc
It is important to note that in my country and culture the technologies that rule are the ones I study: Oracle, .NET, Fox and Visual Basic. So it is uncommon to find people interested in other things. We are taught to be mainly users of applications, not creators (humble opinion). <comment><USER2> Have you gone through the Django tutorial?

There's a lot of existing code that may inspire you, like: [http://programmers.stackexchange.com/questions/126965/learni...](http://programmers.stackexchange.com/questions/126965/learning- django-by-example) <http://www.jjude.com/a-simple-twitter-clone-in-django/>

<comment><AUTHOR> Thanks! I have (tried the Django tutorial), but it was very difficult to follow at first, so I am trying "Learn to code the hard way" and the Google Tutorial for Python by Nick Parlante. I mean, I am not yet at the level of using Github or things like that, it's just too far away for me :(.

I think the problem is that it is still too abstract for me.</comment></comment>


Facebook.com compromised by Syrian hackers - <AUTHOR> https://whois.domaintools.com/facebook.com

<comment><USER2> Seems the problem is coming from MarkMonitor. Paypal and EBay UK have been breached recently by the same hacker group through MarkMonitor.

</comment><comment><AUTHOR> Apparently they wanted to change the name servers: [https://twitter.com/Official_SEA16/status/431210310003724288](https://twitter.com/Official_SEA16/status/431210310003724288)

</comment><comment><USER3> A screenshot of the whois output since it has been changed back now: [https://pbs.twimg.com/media/Bfv1bFoCMAAlMmX.png](https://pbs.twimg.com/media/Bfv1bFoCMAAlMmX.png)

</comment><comment><USER4> and... it's back to email@example.com, that was interesting</comment>


Show HN: Spreadsheet Security – when password is not enough - <AUTHOR> http://appsilon.github.io/spreadsheet-security/

<comment><USER2> It's a sound idea, and a genuine problem. I'm not 100% sure I'd be comfortable with those spreadsheets sitting on someone else's servers though - even if well encrypted. You presumably have the key too?</comment>


How Necking Shaped the Giraffe - <AUTHOR> http://nautil.us/issue/24/error/how-necking-shaped-the-giraffe

<comment><USER2> Very interesting info on how the heart and blood vessels can keep up with such an exaggerated animal.

The first episode of BBC's "Africa"[1] (Kalahari) features a stunning scene of two males rutting.

The behind the lens clip at the end also covers the giraffe scene.

1\. [https://en.wikipedia.org/wiki/Africa_(TV_series)](https://en.wikipedia.org/wiki/Africa_\(TV_series\))</comment>


Startups Offer New Ways to Buy and Sell Used Cars - <AUTHOR> http://money.usnews.com/money/personal-finance/articles/2015/06/09/startups-offer-new-ways-to-buy-and-sell-used-cars

<comment><USER2> checked out beepi which seemed cool, but the others don't seem to be as 'new' as the title claims</comment>


Why I Hired Mt. Gox Ex-CEO Mark Karpeles as CTO of London Trust Media - <AUTHOR> https://www.privateinternetaccess.com/blog/2018/04/why-i-hired-mt-gox-ex-ceo-mark-karpeles-as-cto-of-london-trust-media/ <comment><USER2> You're comparing Mark to Bill gates, Michael Jordan, and Steve Jobs. WTF! Mark is a proven liar, that has stolen money from many people and went to jail for it. Are you mentally unstable?

[https://www.ibtimes.co.uk/bitcoin-exchange-mtgox-ceo-mark- ka...](https://www.ibtimes.co.uk/bitcoin-exchange-mtgox-ceo-mark-karpeles- spent-embezzled-funds-prostitutes-1526196)

</comment><comment><USER3> thanks, i needed a good laugh to brighten my day.</comment>