Why I'm making my family German (2017) - <AUTHOR> https://www.theguardian.com/lifeandstyle/2017/jun/03/why-im-making-my-family-german <comment><AUTHOR> Article 116 Grundgesetz, paragraph 2:

"Former German citizens who between 30 January 1933 and 8 May 1945 were deprived of their citizenship on political, racial or religious grounds, and their descendants, shall on application have their citizenship restored. They shall be deemed never to have been deprived of their citizenship if they have established their domicile in Germany after 8 May 1945 and have not expressed a contrary intention."

So, if you were denaturalized, you aren't automatically a German citizen again, because that would obviously be insulting to those who were persecuted, fled Germany, and never wanted to have anything to do with Germany ever again.

If you apply for citizenship, it will be granted. If you live in Germany again, the reasoning above doesn't hold anymore, and you are spared the formality of a full application for citizenship.

<comment><USER3> I was considering doing one of those but there's quite a lot of paperwork and it looks quite likely us Brits will keep our EU citizenships.

<comment><USER4> I don't think it's very likely. Rather, it's more likely that UK citizens will have a fair degree of privilege with respect to mobility etc on the Continent vis-a-vis arbitrary foreigners.

The article is in fact loaded and a little misrepresentative, implying that somehow UK citizens won't have any rights to reside or work in the UK which is not fair.

I'm not a citizen of any European country and I've lived and worked in Europe without a whole lot of trouble.

Obviously, there's nuance to these issues, always lost in the fog of 'word wars'.

<comment><USER5> > implying that somehow UK citizens won't have any rights to reside or work in > the UK which is not fair.

I'm assuming that one of those is a typo? But if you think EU citizens will be entirely safe and comfortable in the UK after a hypothetical Brexit, you've not been paying attention to the "hostile environment" and the deportation of actual Brits in the _Windrush_ fiasco.

<comment><USER4> "But if you think EU citizens will be entirely safe and comfortable in the UK after a hypothetical Brexit, you've not been paying attention to the "hostile environment" and the deportation of actual Brits in the Windrush fiasco."

It's a little populist and inflammatory to suggest that the UK is a 'hostile environment' for EU citizens.

Literally _millions_ of EU citizens and other naturalized immigrants from EU countries - and others around the world, live in UK, and they don't 'live in fear'.

There are obviously many ambiguities, and people caught up in immigration snafus.

 _Neither of these issues are new_.

As treaties are realigned (and they have been forever and will continue to evolve), citizenship status will be adjust, but neither the UK or the EU are going to start mass deportations.

And to indicate an individual getting caught up in the system as evidence of much is not fair; have you considered the problems right now in Germany, Poland, Greece, Italy? Just to start the list?

Sadly, even the most modern nations have loopholes in their systems and outcomes are not always just, but overall, most modern nations have lawful, well regulated and reasonable policies, for the most part.

<comment><USER5> "Hostile environment" is literally what the policy is called by its supporters. [https://en.wikipedia.org/wiki/Home_Office_hostile_environmen...](https://en.wikipedia.org/wiki/Home_Office_hostile_environment_policy)

The intention was to make the system as unreasonable as possible in order to reduce overall immigration numbers.

> have you considered the problems right now in Germany, Poland, Greece, > Italy?

Which problems are you referring to?

</comment></comment></comment></comment></comment></comment><comment><USER6> > "My children will now always have the right to study, work, live and love > abroad. That can't be taken away from them. I am incredibly proud I have > given that to them. And now that I have the personal, individual right to do > the same – a right that no politician can take away from me – I find my > horizons widening too."

I share her happiness and enthusiasm, and commend her for acting on her beliefs. But this quote from the very end of the article is what many Brits believed to be the truth, up until Brexit. One important lesson here - <USER2> is forever. A wave of xenophobia and nationalism is sweeping the world and separatism is back in fashion. Freedom is under threat.

<comment><USER7> I know this is hard to belive for some people but you don't need to be a xenophobe/nastionalist to have voted for "leave". The insults really don't help anyone.

<comment><USER8> Not all the people who voted leave are xenophobe/nationalist/racist, but all the xenophobes/nationalists/racists voted to leave.

<comment><USER9> Not all people who voted remain want to exploit immigrants to keep wages down. But all people who want to exploit immigrants to keep wages down voted for remain.

<comment><USER10> I think that someone wishing to exploit immigrants and keeping wages down would actually vote for Brexit.

With Brexit, a "race to the bottom" and bonfire of EU work regulations is more likely.

<comment><USER8> Agreed, above commenter is a bloody loon.

</comment></comment></comment></comment></comment></comment><comment><USER11> As a descendant of Danube Swabians who re-immigrated to their original village after 6 generations in Serbia, I can only say: Willkommen zurück!

However:

> We are no longer prisoners of a country whose politicians do not and will > not, likely for a generation or more, reflect me in any shape or form.

Given her family's experience with Germany, I find it heartbreakingly naive that she obviously thinks that this will not be the case here, not now and not in 25 or 50 or 75 years.

<comment><USER12> The 'prisoners' part refers to how citizens are captive to their government, and if their government does something they truly do not agree with, they have no recourse and must go along with the law of the land.

With multiple citizenship you at least can emigrate somewhere and, while not as integrated as native citizens, at least will never be ejected as unwanted immigrants.

<comment><USER11> I understood that part. However, there is no guarantee that Germany will still accept dual citizenship in 50 years. There is no guarantee that Germany will not (again) become a dictatorship where people are interned in camps if the ruling class finds it politically useful. There is no guarantee that Germany will even allow you to leave the country in 50 years, even if you have dual citizenship.

This is all seems improbable, of course, even ridiculous. But I don't think anyone in Germany could've seriously imagined the situation of 1939-45 30 years earlier.

</comment></comment></comment><comment><USER13> This article reinforces my suspicion that the British, even the ones who supported the Remain vote in the referendum, simply have no idea what the EU is about. For the author, for example, it is a matter of "identity". For the Remain campaign, the argument was that Brexit would be bad for business and industry.

The British can just not comprehend the need for a united Europe in the modern world, where European countries are beset on all sides by many times more powerful rivals (Russia, China and now even the US is turning against us). To think that the little nation-states of Europe can survive and prosper on their own like they did back in the days of Napoleon and Queen Victoria ignores reality for the warm fuzzy feeling of epic fantasy.

The EU's goal is to promote peace an the well-being of its people (Treaty of the European Union, article 3, par. 1). The British either ignore this, or, if they know it, they don't believe it. Therefore, the public conversation about the EU revolves either around irrelevancies, like bendy bananas and fast-track airport lanes, or around issues that most people cannot really connnect with, like the benefits to industry (as if there is anyone left in the UK who believes that what is good for industry is good for everyone).

No wonder the Leave side carried the referendum vote. Their message was simple and to the point: "us versus them" (all of them - the EU, those krauts and frogs and those PIGS countires, Poles, Romanians... everyone). You cannot argue against nationalistic slogans and battle buses with "Brexit is bad for business". Nor with "I want my kids to be able to travel to the EU cheaply and without a visa". A powerful message is needed and it needs to make it clear to everyone what awaits us if we divide up and withdraw each in our little borders.

But, nobody has done that for the British- so, it's all identity, bendy bananas and travel privileges.

<comment><USER3> >To think that the little nation-states of Europe can survive and prosper on their own... fantasy...

I'm a remainer but I think little nation states that are non EU like Switzerland or Singapore survive and prosper quite well.

I admit I don't know that much about the EU - I think of it mostly as an admin for free trade and travel between the countries mostly. Which I quite like.

One of the troubles with the 2016 leave/remain referendum was remain is clear enough but no one really knew what leave would consist of. When you clarify it none of the options are very popular for instance the polls on remain/May's deal are about 60:40 to remain. Even remain/no deal polls about 56-44 towards remain so to leave politicians will have to force it through against the wishes of the majority of the people and of their parliament. Which is kind of a mess.

<comment><USER14> > I admit I don't know that much about the EU - I think of it mostly as an > admin for free trade and travel between the countries mostly. Which I quite > like.

That has not been true since the Lisbon treaty. Now, it's an EU-wide government supreme over the EU national governments. In key respects, the EU is even more powerful compared to the EU national governments than the US federal government is compared to the US state governments. For example, the federal government cannot pass laws then force the state governments to enforce them. The EU can.

If the EU stayed on its pre-Brexit track, all the stuff that renders US politics intractable would be coming to the EU faster than anyone would think. You're already seeing it—for example, with Sweden and Finland having to strengthen gun control to accommodate the sensibilities of the rest of Europe.

<comment><USER15> The us federal government via Congress can certainly pass laws that supersede state laws. That's the purpose of the 9th amendment and the commerce Clause in the us Constitution.

<comment><USER14> Under the Supremacy Clause, the federal government can pass laws that preempt state laws. What it cannot do is coerce states into enforcing federal laws. (That's the whole premise behind sanctuary cities--states cannot be compelled to enforce federal immigration laws.) The EU can do both--it can pass laws that override national laws, and it can enforce member states to enforce EU laws, or to pass national laws to comply with EU directives.

</comment></comment></comment></comment></comment><comment><USER16> Living in America, this is the same way I feel about my EU passport. It's more precious than anything I own or will ever own. Being able to leave the insanity here is such a lifeline, extremely similar to being able to leave the insanity in Britain. One can tell these two nations, America and Britain, share the same roots and they're both going to shit at the same time in similar ways.

</comment><comment><USER17> Around the time that Donald Trump appeared to be a serious contender for the presidential race, I finished up my German dual citizenship application. When I was at the consulate, the person that I met with mentioned that they were absolutely swamped with applications for citizenship and proof of citizenship.

Anecdotally, I know two other people who are working on acquiring their Italian citizenship, one other who acquired their German (dual) citizenship (and moved to Europe), and several who are applying for citizenship in non-EU countries. I don't think the US and Britain (and those who would like to follow their lead) appreciate the energy and means of the people who they are pushing out. We all talk about immigration as the onslaught of poor people (degrading some cherished way of life or needing shelter from persecution etc.) without seeing the full picture. To be clear, I'm not saying that these immigrants are unimportant, just that there is a bigger picture. The person at the consulate said that they had _thousands_ of pending applications for citizenship documents. This is for one country (Germany).

Friends of friends in the Philippines are not interested in coming to the US any more. They want to go to Canada. Filipino immigrants run the US health care system. This relationship is genuinely helpful to the US. US needs more nurses, the Philippines trains them and sends them (not so good for the Philippines, but I'm not looking through that lens in this comment). Why cut off that labor force? Limiting supply (by telling immigrants that they are not welcome) causes real and direct harm to people who need to be taken care of in the US.

The damage of xenophobia and nationalism takes longer than one (US) political term to appear, but the cultural shift is hugely negative for the future. I believe that there are failure modes in globalization, and we are experiencing one now, but scrapping the whole idea is an overreaction. If you want to be part of the solution, find ways to tell people around the world that the US (or the UK) is better than what its politicians say and do.</comment>


The CEO of pogo stick-sharing startup Cangoroo insists his company isn't a hoax - <AUTHOR> https://thenextweb.com/tech/2019/05/22/the-ceo-of-pogo-stick-sharing-startup-cangaroo-insists-his-company-isnt-a-hoax/ <comment><USER2> Pretty elaborate if it is a hoax. More like a longshot in the "last mile" space.

It rents for $18/hr and a good adult stick is about $100-200. If this was smart last mile method, why doesn't everyone have one, carry onto the subway, and hang on a pogo rack at your destination, next to the umbrellas?

Also there's no insurance ("in the unlikely event" yada yada) event though this is not a universal skill and you really are likely to fall while you're learning how to pogo. Watch some youtubes.

I hope this "takes off", but...

</comment><comment><USER3> It looks like it might be a lot more physically strenuous than walking, and in that case, I can jog for free.</comment>


On the VanderMeer's 'Big Book of Classic Fantasy' - <AUTHOR> https://lareviewofbooks.org/article/a-new-view-of-the-fey-things-on-the-big-book-of-classic-fantasy/ <comment><USER2> Sounds like a great book if you're more interested in the ethnicity of the author than whether it's a good story or not.

<comment><USER3> Could you please stop posting unsubstantive comments and flamebait to HN? It's not what this site is for, and we're trying for better than that here: [https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html).</comment></comment>


Exploiting Misuse of Python's "Pickle" - <AUTHOR> https://blog.nelhage.com/2011/03/exploiting-pickle/ <comment><USER2> I'd argue that any use of pickle is a misuse of pickle. Language-specific binary serialization formats should not exist, much less be used.

<comment><USER3> What should I rely on if I want to serialize a function ?

<comment><USER4> Mu. Unask the question. Serializing a function is itself the security hole, because who knows what that function does? A function is just as possibly malicious code as whatever else you think you're using it for.

<comment><USER5> Being connected to the internet is a security hole. I'll balance security with practicality.

<comment><USER6> The GP's point is if you're doing code deserialization, the definition of security is different. The data format having RCE bugs won't be as much of a concern, while trusting the data source will be much more of a concern.

<comment><USER5> We redefine security for every project. Some projects can (de)serialize code and be secure. Others can't.

</comment></comment></comment></comment></comment></comment><comment><USER7> If you want a more efficient version of pickle, take a look at feather [1]

It's not a drop in replacement but it's very effective

1 - [https://github.com/wesm/feather](https://github.com/wesm/feather)</comment>


Compatibility between the iPhone App Store and the LGPL - <AUTHOR> http://multinc.com/2009/08/24/compatibility-between-the-iphone-app-store-and-the-lgpl/

<comment><USER2> _…want to release/sell your application through Ad Hoc Distribution…_

Note: This isn't actually an option to do, not unless you want to limit yourself to 100 customers per year.

<comment><USER3> The limit is 100 customers per year per _account_. As far as I know you can sign up for more accounts.

In fact some developers are selling exclusively through Ad Hoc distribution <http://iphone.stackswap.net/scummvm.html></comment></comment>


How to Build a Million Dollar Business - <AUTHOR> http://www.crewlab.net/how-to-build-a-million-dollar-business/

<comment><USER2> The market size breakdown is pretty insightful--looking at these numbers, they seem really attainable when broken down into their component parts.

</comment><comment><AUTHOR> This formula really changed the way I thought about business and particularly the joys of the subscription revenue model.

</comment><comment><USER3> A million dollars isn't cool. Know what's cool? A billion dollars.</comment>


SpaceX launches another 60 Starlink satellites while setting two reuse records - <AUTHOR> https://www.cnbc.com/2019/11/11/watch-spacex-livestream-launching-second-starlink-internet-mission.html <comment><USER2> Can't wait to see every Tesla become a wifi hotspot hooked up to Starlink.

Traditional ISPs are in trouble if the Starlink latency is really in the sub 100ms due to the LEO distance advantage.

Global coverage with decent latency!

I wonder if that's why google dipped out on rolling out fiber infrastructure.

Physical infrastructure is about to become obsolete as more advancements in wireless tech and satellite internet become available to the masses.

<comment><USER3> > Can't wait to see every Tesla become a wifi hotspot hooked up to Starlink.

The Starlink receiver is the size of a pizza box (and cannot get smaller, since that is the size of the necessary antenna) - and doesn't work while moving.

So it's impractical to use on cars.

What Tesla probably could do is put a receiver at every Supercharger and broadcast wifi there. It would be especially useful at the more rural locations.

<comment><USER4> With the USAF, SpaceX has demonstrated 610mbps[0] to the cockpit of an aircraft in flight.

[0]: [https://spacenews.com/spacex-plans-to-start-offering- starlin...](https://spacenews.com/spacex-plans-to-start-offering-starlink- broadband-services-in-2020/)

<comment><USER5> It would be great for the military, future warfare will be all about having the best signal through all of the jamming from the other side.

</comment></comment></comment></comment><comment><AUTHOR> TLDR:

* 4th landing for this first stage booster. Estimated first stage service life is ten launches prior to inspection, one hundred flights total

* Fairings were reused from a previous launch, unable to be recovered due to rough seas this launch

* 360-400 satellites required in the constellation to transition from "bent pipe" to intra-constellation data routing

* 1200 satellites provides global coverage

* Starlink satellites have a five year service life

* SpaceX board recognized in 2012 that satellite comms has a much higher margin than satellite launch services

</comment><comment><USER6> One off the satellites where apparently already dead and would not respond to commands when they got it mounted on the rocket.

But they launched it anyway.

<comment><USER7> I've been having this hard to articulate notion that humanity hasn't really begun to fathom the changes that will come with "cheap" launch vehicles.

We have better than half a _century_ where space launch was so expensive, and so rare, that this had an impact on the payloads themselves. Perversely it caused the payloads to become so highly engineered (for a variety of reasons) that they also became ultra-expensive in-line with the launch vehicle and launch opportunity cost.

This also created a negative feedback loop that because the payload was expensive, the launch vehicle had to be extra reliable and thus cost more.

Think of the entire lifetime program expense (R&D, launch, repair, etc.) for the Hubble program, billions upon billions of dollars to basically put a large 1 MP sensor at the end of a tube with a digital radio for communications.

What would happen if this program cost went into hundred of launches, every month, for decades? We could launch not only an equivalent, but technologically improving payload every month? Why not make the device cheaper? Experiment a bit? Who cares if one fails? Maybe launch 2, 3, 4 at a time? Have constellations of Hubbles spread throughout the system? What if Hubble was 300 telescopes with massive 20MP sensors clustered into a distributed virtual telescope the size of the orbit of Mars?

When the launch costs, and cadence drop so low, it doesn't really matter if your satellite doesn't work because you didn't spend 15 years of R&D, and a billion dollars putting up as technologically "perfect" a device as possible, you fab another one, maybe with better parts, and put it up next month instead and write-off the couple hundred thousand as cost of doing business. It's all still cheaper than the alternative.

Smallsats were a kind of way to try to squeeze costs down by simply cutting capability, size, and power. But the cost of a smallsat in orbit was still dominated by the cost of the launch. What if you could launch a fully capable space platform (not a compromised small sat) for less than the cost of a shared-ride smallsat.

With the tonnage going up comes more capability as a by-product. The ISS took over 40 flights to get ultra expensive space hab parts into orbit. A SpaceX Starship might be able to life equivalent mass in 5 launches, at a fraction of the cost. What if, instead of one space station every 20 years, we get two per year?

We have no idea what's about to happen in the next decade.

<comment><USER8> > billions upon billions of dollars to basically put a large 1 MP sensor at > the end of a tube with a digital radio for communications.

That's such a gross over-simplification of what the Hubble platform is and what it is capable of that it annoys me.

First, there are _six_ scientific sensor packages on the Hubble craft. These have been swapped out and upgraded several times during its life with a process that allowed us to bring the failed instruments back to surface and study them.

Second, it's not just scientific instruments.. the Hubble is one of the few satellites to have a fine guidance system, that allows it to lock onto and then _track_ with extreme precision exceptionally distant objects. The newer JWST is the only other telescope with similar capabilities.

This system has also been upgraded during the several servicing missions that were a planned part of the entire mission, which is another reason the initial costs were so high. This is an exceptionally advanced program to launch one of the most advanced scientific instruments we created up to that point.

Finally, I think it's also worth pointing out that Hubble was launched into orbit over 29 years ago and it's still working.. which is incredibly impressive considering it has to transit between Earth's shadow and direct sunlight every 47 minutes.

This thing is as _far_ from "a 1MP sensor at the end of a can attached to a radio" as you can possibly get. By the way, we could have made it larger.. but congress wanted to keep the price under $100 million. (Or about $201 million in Today's dollars).

> We could launch not only an equivalent, but technologically improving > payload every month?

If all you're doing is making phone calls and routing packets, sure. If you're trying to do legitimate astrophysical science it seems almost an entirely worthless attribute.

> We have no idea what's about to happen in the next decade.

I think your reasoning is exactly backwards. We only launched highly specific and purpose built scientific instruments because it was the only thing _worth_ doing with our previous limited and highly government subsidized launch activities.

There was simply no way to commercialize those launches, and now that we entering an era where you easily can see long term value in them, you're simply going to see typical commercial activities and value realization behavior when they utilize this destination. It's absurdly predictable.

<comment><USER7> I think your response almost perfectly exemplifies the kind of luddism that's going to get washed away in the tsunami of stuff heading north up the gravity well.

We know today that the Hubble instrument cost about $4.7 billion, and lifetime costs as of 2010 are around $10 billion [1] which doesn't appear to have included launch costs (1 initial launch and I believe 5 servicing missions) which at around $450 million per launch is quite a bill of around $2.7 billion in total program launch costs.

One might try to make the argument that shuttle missions involved multiple mission objectives for each launch (and thus the total cost shouldn't be borne by the HST alone). However, HST servicing missions were designed around the shuttle, making it mandatory for the servicing mission and thus the entire cost is a minimum regardless of other shuttle duties.

For example, STS-61, the mission to repair the HST (plus a few other odds and ends) required one of the most complex mission profiles in history. I can't find solid figures on how much the mission cost, but I'm guessing it was on the order of around $1 billion dollars, launch costs included. I think it could be argued that such a complex mission was worth the cost in terms of maybe crew and mission planning experience, but my central argument is, in a cheap launch future, such a mission (and all servicing missions) would be entirely pointless -- which not only would be cheaper, but allow more advanced sensing packages to be put up over time with less of a risk to the lives of the astronaut crews.

Suppose Falcon-9 Heavy technology existed when the Hubble was launched. Here might be a take on an entirely different program:

1 - Separate satellites for each orthogonal sensing package. Say maybe, 1x FOC/FOS, 1x GHRS/HRS, 1x HSP, and 1x WFPC. So a constellation of 4 satellites to start with.

2 - Let's build all missions off of a single designed "things in a can" platform so we can realize cheaper costs over time. Let's assume an expected life-span of 4 years (the time between STS-61 and STS-82). So we can reduce the per device cost from $4.7 billion/per to probably something more in line with reality. Maybe $250 million/per so we can at least gold plate it a bit, but keep it within the original budget per instrument.

3 - Launch mass of the original HST was about 11.1 metric tonnes. Since we're getting rid of stuff, we can shave that down to probably <11 tonnes per satellite.

4 - A F9Heavy can shove 63,800 kg to LEO, which is about where the HST sits (with periodic reboosts during servicing missions). That means we can put the entire constellation up in one launch with room to spare.

5 - So no we're now in program year 5 and total cost (minus ground station and staff and such) is $1.09 billion. Even with a complete failure of one of the satellites, the replacement cost is $300 million ($250 for another satellite + $50 for an F9 launch). At 5 years in, with an equivalent optics failure as the HST, we're at $1.39 billion for a program of greater capability and one failed device.

6 - Over the years, the HST servicing missions added the ACS, COS, NICMOS, STIS, and the WFPC2 and WFC3 instruments. The COSTAR was never needed, and never needed to be replaced by the COS. That's two servicing missions that never had to happen at all! We've just shaved off almost another billion dollars from the program. For that cost, we can almost repeat the entire first launch and shove another 4 satellites of the the same capability in the air. So we do that and we're extend the life of the HSP and the WFPC missions beyond what actually happened and we're at a total cost of around $2.5 billion.

7 - We go ahead and do two more F9Heavy launches to clear out the mission backlog and now we have 14 satellites conducting mission, _in orbit_ , for almost exactly the cost of just the original HST device, and no lives risked on servicing missions. With the remaining funds, we can deorbit failed satellites, engineer better/different sensing packages, and put _another_ 14 satellites in orbit. Hell, there's enough spare launch capacity in the flight plan to put a couple JWSTs, CXOs, and roadsters up as well.

8 - We don't know what Starship launch costs might be, but they could significantly expand these kinds of mission profiles. Musk's crazy claim is $2 million per, and could shove maybe 6-8 HST-class satellites up in one go.

9 - For $2 million per launch, why the hell are we putting up $250 million dollar devices? Why not get crazy, set up an assembly line for "things in a can" space sensing devices and crank them out at $500,000 per can and radio setup with a "bring your own sensor" policy? Who the fuck cares if the STIS mission didn't pan out? Deorbit the sucker and put two more up next month!

At the scale of nation states and large corporations, it means space platforms become as disposable as they de facto actually are.

[1] [https://www.nasa.gov/pdf/499224main_JWST-ICRP_Report- FINAL.p...](https://www.nasa.gov/pdf/499224main_JWST-ICRP_Report-FINAL.pdf)

</comment></comment></comment></comment><comment><USER9> Are there photos of just the Starlink satellites? I know the impressiveness of the stack of them, but I can't tell what I'm looking at without seeing one outside of the stack. It's like showing a photo of a geologic specimen without a scale reference.

<comment><USER10> It's not a photo, but there's a render (originally from SpaceX's Starlink website): [https://techcrunch.com/wp- content/uploads/2019/05/satellite_...](https://techcrunch.com/wp- content/uploads/2019/05/satellite__ANTENNA.jpg)

The red arrows indicate the phased-array antennas.

</comment></comment><comment><USER11> 4th reuse. Wow didn't realise they were that deep in already. Thought reuse was still conceptual

<comment><USER12> Also first re-use of a faring as well, which is awesome because they're apparently not that cheap to make.

<comment><USER13> I do wonder if that fairing endeavor will come out net positive over the lifetime of Falcon. They paid for a specialized boat to catch the things, and iterated on the boat design several times.

Starship is the real reusability project; Falcon is now just holding on to revenue while they get Starship ready to take over the entire launch market (including their own).

The fairing is passive, I really wonder if it would have been more cost effective to try and reduce the fairing cost to a (few) hundred thousand bucks or so instead of going to all the trouble of catching it.

Although maybe this is best seen as R&D cost for the eventual Starship architecture?

<comment><USER14> I've been thinking about this, and it seems doubtful. The fairings are under a million dollars apparently, so they'd have to recover many dozens if not hundreds to pay back the investment into all the catching technologies. It's not clear that they'll ever use that many fairings before switching over entirely to BFR.

<comment><USER15> Fairings cost upwards of $5M per launch. The technology for the boat basically consists of some arms (with shock absorbers) welded to the deck and a big net strung between them. The boat itself is chartered, not owned by SpaceX as far as I know. The only real tech development is in the parachute systems for the fairings, which also aren't particularly advanced.

I can't imagine positive ROI requiring more than 4 or 5 recoveries. Personally, I'm kind of disappointed they didn't go with a skyhook concept, but getting that system to work with something the size and drag of a half- fairing would probably be a nightmare.

<comment><USER16> I remember reading that the fairing build time is also fairly long (months? but I can't find the reference, it might've been a comment on /r/spacex), so it's trying to minimize the cost + build time.

</comment></comment></comment></comment></comment></comment><comment><USER17> How easy will star-link be to block, for example in Russia say or China?

<comment><USER18> Not easy to block with technical means over a large area. But easy to block with legal means. The way Starlink works the system needs to know exactly where each terminal is, so SpaceX doesn't have plausible deniability about serving customers in areas that prohibit it.

It would make much more sense for them as a business to try to provide censored service to China so that they could openly sell to the Chinese. Elon has business ties in China now with Tesla and I don't see him trying to be a rebel with SpaceX now. He needs that Chinese revenue to fund his Mars mission.

<comment><USER19> > Not easy to block with technical means over a large area. But easy to block > with legal means. The way Starlink works the system needs to know exactly > where each terminal is, so SpaceX doesn't have plausible deniability about > serving customers in areas that prohibit it.

That is incorrect. SpaceX doesn't need to know where a terminal is for it to work. The Terminal itself though will know where it is, as it needs that information to calculate the pointing angles of the phased array to the satellite orbits.

<comment><USER20> But you can proximate where the clients are based on where the satellite is. Since they're flying low, there can't be that much deviation in ground location between the client and the satellite. You could get plausible deniability if the satellite is flying over border regions, but there's very little excuse to not enforce chinese censorship regulations when flying over the middle of china.

</comment></comment></comment></comment><comment><USER21> Are they recovering the fairing again?

<comment> lachlan-sneff Not this time, apparently the weather was too bad for the ships to go out.

<comment><USER22> Yeah, but the sea was calm and the weather looked fine on the booster landing video from the platform.

</comment></comment></comment><comment><USER23> The money quote imo, I haven't read this explicitly stated before:

 _Shotwell said the company's board of directors in 2012 realized the profit margins from the commercial satellites it was launching for customers were "much higher" than SpaceX's launch business. Musk estimates Starlink could generate more than $30 billion per year – at least 10 times what SpaceX could bring in at best from its launch business._

What other customers businesses will they seek to cannibalize next?

<comment><USER24> Iridium isn't really a direct competitor to Starlink. The Iridium ground station can be much smaller (like a cell phone) and it's intended for a different set of customers with much lower data bandwidth requirements.

<comment><USER25> Is there any reason future starlink satellites couldn't have similar functionality? If 1% of the planned starlink satellites also supported the 1.6GHz band which I believe iridium uses, you could blanket the earth in a similar manner with this low bandwidth service.

</comment></comment></comment><comment><USER26> When is Twitter going to ban that spammy Elon bot?

</comment><comment><USER27> The final cage match to settle dominance between Musk and Bezos is going to be so epic.

<comment><USER28> All hyperbole aside, I am looking forward to seeing Blue Origin's offerings actually operational.

Having said that, my understanding is that BO has nothing even planned for full re-use. They are going for 1st stage re-use only, similar to what Falcon 9 is doing right now.

SpaceX Starship, which is well under development, and has had two very short test hops, is fully re-usable. Musk said that each Starship flight to orbit and back costs a TOTAL of $2m, including fuel and operational overhead. The currently expendable 2nd stage on Falcon 9 costs several times more than that, and Blue Origin's 2nd stage should be in the same cost category.

</comment></comment><comment><USER29> Will there be a Starlink train again and where?

</comment><comment><USER30> Goodbye amateur astronomy [https://spaceweathergallery.com/indiv_upload.php?upload_id=1...](https://spaceweathergallery.com/indiv_upload.php?upload_id=153933)

<comment><USER31> If you don't mind me asking, What time of night was that image taken? That looks like sunlight reflected off the satellites, so it must have been just after sunset or just prior to dawn (where the satellites are illuminated but it is dark on the ground) -- or am I mistaken? And is that still an issue after the satellites were raised to their target orbit?

Also, this being a composite image, I'm assuming it is from multiple exposures. Can the software that merges the images together also filter out the satellites? And how is it that just 60 satellites do this, but the 2000 or so currently in orbit don't exhibit this behavior?

<comment><USER32> There was definitely a _huge_ amount of controversy over this after the first Starlink launch. If I'm remembering correctly, the problems got significantly better after the satellites moved to their final orbits and oriented their solar panels correctly.

Additionally, SpaceX promised to do their best to lower the albedo of this second set of sats, which, based on side-by-side pictures of the two stacks of sats, they seem to have done.

In my opinion, there's definitely reason to be afraid of the effects of Starlink on astronomy, but SpaceX also seems reasonably receptive to making changes in order to lessen the impact.

</comment></comment></comment><comment><USER33> I'm not sure that Starlink is supposed to make money. I think it's another part of the get Musk to Mars plan. If you are going to a planet with unknown resources what is the easiest way to bootstrap communications. Is it bury 100k of km of wire? Or just plug a bunch of "cheap" satellites into a low Mars orbit? Makes total sense in that light to try it here. I'm not convinced these plans and products are designed to make money as much as bootstrap humans living on another planet.

<comment><USER19> Starlink very clearly is supposed to make money and has been stated many times... It's there to provide revenue for Mars vehicle development.

Communications development for Mars before even having a launch vehicle for Mars payload delivery is putting the cart before the horse. You don't need a global network of satellites to communicate with Mars.</comment></comment>


Ask HN: How to deep fake making Bon Scott singing Hells Bells? - <AUTHOR> <comment><USER2> It's tricky. Singing voice synthesis is something entirely different from ordinary voice synthesis.</comment>


What's Functional Programming All About? - <AUTHOR> http://www.lihaoyi.com/post/WhatsFunctionalProgrammingAllAbout.html <comment><USER2> Functional programming means, that your program is composed out of functions. A function only depends on its input parameters and the effect of applying a function is the returned function result. By this definition, functions don't have side effects.

Why do functions and functional programming matter?

\- Functions are a very nice abstraction. Looking at the input and output values gives you the complete information about the data flow. This makes functions very easy to reason about.

\- With the absence of side effects, you also have no unintended side effects, which plague all code which modifies state.

\- Functions are easily testable, they do not depend on an environment but just the function parameters.

\- For the same input a function necessarily always returns the same result, this also makes reasoning about a programs behavior easier.

\- As a consequence that they only depend on their inputs, functions usually are very composeable.

While for certain tasks, modifying a global state can be the most efficient way of performing a computation, functional programming does not have to be slow, and in many cases the resulting program might even be faster. There are several reasons for this:

\- With the lack of side-effects, functional programs can be relatively easy parallelized.

\- With only local state involved, compilers can optimize the code inside functions more aggressively.

There are pure functional languages, but most modern languages allow you to write your program in a functional style. So it is possible to mix functional with object oriented programming.

<comment><USER3> >>> functions usually are very composeable

This plus the fact that the "function" is also the most basic way to describe operation on data means that you can build any kind of operations, data structure, program construct as you please like lego.

This is at the same time, imho, the weakness of the paradigm when used in industry : it gives so much freedom that two programmers will solve the same problem in different ways, making it harder to share code. Not everyone has the desire/patience to understand the many flavors of solutions proposed by the colleagues.

<comment><USER4> What do you think the solution is? Not being snarky here; I'm genuinely interested in the problem you've described, because this unbounded freedom bothers me too.

<comment><USER5> My immediate thought is specifying the requirements for the input and output desired. This is something I thought a small bit about when learning Haskell. It's easy enough to search on Hoogle[0] by type signature to at least narrow it down, but then you have to look through all sorts of functions to see if the semantics are correct. Then, one may think, perhaps having search functionality to pass a collection of inputs and outputs and run any relevant functions that have a valid type for the inputs and outputs. However, that could take longer to compute than just writing the function in the first place. It also gets complicated because perhaps what you need is a composition of functions (map reduce, filter map, etc.), so now how do you know when to stop composing functions to get the desired output? I'm not smart enough to know if there's a general solution to this (other than simpler cases of cycles).

I would also really like more insights into this. I'm working on a toy project dealing with bytecode and being able to interpret the semantics of a series of instructions reliably would be very handy. I believe if the above has any practicality then it would help my problem.

[0]: [https://www.haskell.org/hoogle/](https://www.haskell.org/hoogle/)

</comment></comment></comment></comment><comment><USER6> > The core of Functional Programming is thinking about data-flow rather than > control-flow

I've spent a small amount of time trying to convince people that FP is a byproduct of immutability and not much else. But I like this description better than that. I like that it captures the idea of dependencies. Data flow, and FP, are about explicitly passing all the required dependencies into any step in the process, and getting back all the results - as opposed to having any implicit inputs or output. Making all dependencies explicit will force you into writing immutable code, and likewise writing exclusively with immutable data and functions that dont have side-effects will automatically make you spit out code with explicit dependencies as a byproduct. These are two sides of the data-flow coin.

I also like that the focus on data-flow makes it clear you can do FP in any language. Some languages definitely help you, but you absolutely can practice data-flow over control-flow in C and assembly almost as easily as python. It's just tempting not to when you don't have to, being more strict about FP takes more self control.

<comment><USER7> _Data flow, and FP, are about explicitly passing all the required dependencies into any step in the process, and getting back all the results_

I always knew there was some relationship between FP and dataflow. There is something profound here. However, I'm not so sure that current FP languages are capturing this something in the best possible way. To me this:

[http://www.lihaoyi.com/post/BasicFunctionalProgramming/CodeG...](http://www.lihaoyi.com/post/BasicFunctionalProgramming/CodeGraph.png)

Somehow seems far inferior to this:

[http://www.lihaoyi.com/post/BasicFunctionalProgramming/Diagr...](http://www.lihaoyi.com/post/BasicFunctionalProgramming/DiagramGraph.png)

<comment><USER8> Some syntactic sugar can help with this a bit; here's the same code rewritten using the pipe operator in Elixir:

        def make_tiramisu(eggs, sugar1, wine, cheese, cream, fingers, espresso, sugar2, cocoa)
          beat(eggs)
          |> beat(sugar1, wine)
          |> whisk
          |> beat(beat(cheese))
          |> fold(whip(cream))
          |> assemble(
            soak2seconds(fingers, disolve(sugar2, espresso)))
          |> sift(cocoa)
        end

It reads a lot closer to the recipe, though the nested multiple operations are still a bit hard to read. Separating them into their own named functions would probably be better.

<comment><USER9> In Clojure:

        (defn make-tiramisu [eggs sugar1 wine cheese cream fingers espresso sugar2 cocoa]
          (-> eggs
              (beat)
              (beat sugar1 wine)
              (whisk)
              (beat (beat cheese))
              (fold (whip cream))
              (assemble (soak2seconds fingers (dissolve sugar2 espresso)))
              (sift cocoa)
              (refrigerate)))

</comment></comment></comment></comment><comment><USER10> A very nice overview; whilst the author is right about having to 'linearise' the block diagram into lines of text, it might be worth mentioning that the diagram is a perfectly valid way of drawing a tree, and that tree is (as far as I can tell) _exactly_ the syntax tree of the 'big expression' (the version which doesn't put intermediate values into variables)!

Another nice point about the 'big expression' version: even hardcore imperative programmers tend to avoid relying on "horizontal" order of execution, e.g. in `f(x, y)` it's frowned upon to rely on either `x` or `y` being evaluated first; the order is even undefined in some languages (e.g. C). Hence the dependencies are clear from the nesting, whilst adjacent expressions can be assumed to be independent.

FYI I wrote up my own advice at [http://chriswarbo.net/blog/2015-01-18-learning_functional_pr...](http://chriswarbo.net/blog/2015-01-18-learning_functional_programming.html) which echoes some of the points in this article (e.g. FP is a style applicable to many languages; there's a spectrum from "less functional" to "more functional", and it's fine to pick and choose for your situation; etc.)

</comment><comment><USER11> I love programming in a functional-style in Python.

I create one-way functions. Every input will always give the same output.

Then I build out the test harness for that function, to unit test the function, and pathway test it. So I make sure that I have automated tests to capture every single extreme that can go into the function.

I do this for every single function created. Then I string together one function into another, and I put that into its own function. And I unit test that larger function. Then sometimes, I even put those 2nd level functions, into more functions. And I unit test that as well. In the end, I just have a function that calls a function, that calls a function, and so forth. The rabbit hole just goes deeper and deeper.

If I ever need to enhance a function, then I make my changes, add more unit tests, and re-execute it. The impact is always local, and I have full confidence in my unit tests and pathway tests.

I'm always incredibly amazed when I execute the program, and it works flawlessly, every time. I keep iterating through the development cycle this way. And every version checked in, is fully tested, very accurate, with detailed test logs captured, and most importantly, it does not crash. It's beautiful.

With Object-oriented programming, I have to maintain an external state. This is like modifying a global variable within your object. Your methods have to load and manipulate an external variable. And then another method will modify it later.

However, I do like the organization and hiding ability of OOP. So in the end, I just make all my functions as a functional-style, one-way function. And my methods are just wrappers around it.

My main complaint about Python, is that it's just slow. I wish it had a compile to binary feature built in. Although, I get around that with my heavy unit tests, but some coding mistakes can be easily caught during compile time.

<comment><USER12> Check out Nim, it's got python style syntax, but it's statically typed and compiles down into performant C and then into a binary.

I've been converting a lambda function used at work from Python into Nim[0]: I've had very few issues so far and the performance gains are fantastic (Admittedly my lambda function is pretty straightforward, but still). It's also got support for functional programming styles, with a function composition operator/first class functions etc[1] and a pragma to tell the compiler that a function has no side effects[2].

[0] [https://nim-lang.org/](https://nim-lang.org/) [1] [https://nim-by- example.github.io/procvars/](https://nim-by-example.github.io/procvars/) [2] [https://nim-by-example.github.io/procs/](https://nim-by- example.github.io/procs/)

</comment></comment><comment><USER13> I've been paying attention to functional for the last 6 or so months and coming from a C background, its emphasis on immutability, data-oriented, readability, and safeness is really attractive if you're not worried about performance (which is allowed to take a back seat in most apps these days). I can't wait for software to be improved harboring the benefits of functional programming.

<comment><USER14> Why should FP be slower ?

The articles emphasises that one of the main arguments in favour of FP is that it's easy to see what part of the recipe can be done in parallel. Why can't the runtime automatically leverage multiple cores and speed up the process ?

<comment><USER15> > Why can't the runtime automatically leverage multiple cores and speed up the > process?

Do any runtimes actually do this? (Honest question)

<comment><USER16> Erlang/elixir's runtime, OTP (open telecom platform) will do this. It can scale to multiple cores, or across multiple machines in a network, almost effortlessly.

[https://en.wikipedia.org/wiki/Erlang_(programming_language)](https://en.wikipedia.org/wiki/Erlang_\(programming_language\))

<comment><USER17> It doesn't happen automatically on BEAM - you still need to explicitly spawn your processes.

</comment></comment></comment></comment></comment><comment><USER18> Functional programming makes compilers nicer to work with, because you can tell them explicitly when locality can be assumed.

All compilers which do any kind of optimization have to reason about the code as if it were functional. Otherwise, they couldn't rearrange mathematical expressions and do things like common subexpression elimination or constant folding or even simple algebraic rearrangements we expect to happen because we, as humans, know that mathematical operators are are functions and therefore side-effect-free and therefore can be switched around arbitrarily as long as the end result is correct, because the end result is all that matters.

But a compiler which could only optimize arithmetical and algebraic code would be worthless. How about memory accesses? How about function calls in tight loops? And that's where you run into problems in a language like C, where strong assumptions about who gets to look at what generally don't hold. Optimizing memory accesses is hard because you don't know who's looking at the memory in a global sense. Spooky action-at-a-distance crops up, the kinds of things humans don't cope with well because the effect could be many pages of code removed from the cause. C has the volatile keyword for some instances of this, which basically kills optimizations for certain variables, but the general problem stands: C is unphysical. Locality cannot be assumed. Humans don't deal with that very well.

In a language like C, therefore, there's a tension between generating optimized code and generating predictable code, and that tension comes from the fact the compiler doesn't know which code could have side-effects and, therefore, invoke spooky action-at-a-distance if it's optimized too aggressively.

In Haskell, or any other language where side-effects must be explicitly marked, that problem goes away. Most code is purely local in its effects, and only special code, written inside a special monad, can invoke nasal demons if the optimizer gets too frisky. The compiler can trace its data-flow graphs and do all kinds of tricks secure in the knowledge that nobody outside can peek in to see how the sausage is being made. Only in special, marked locations do the values get exposed to the outside world, which must be done in an orderly fashion.

So all code is potentially functional. Functional languages just make it possible for the developer and the compiler to agree about precisely _which_ code that is.

<comment><USER19> > ...Optimizing memory accesses is hard because you don't know who's looking > at the memory in a global sense...In a language like C, therefore, there's a > tension between generating optimized code and generating predictable code, > and that tension comes from the fact the compiler doesn't know which code > could have side-effects and, therefore, invoke spooky action-at-a-distance > if it's optimized too aggressively.

I get this argument for functional languages and Haoyi's description for functional style, by writing down the expression tree not just one possible serialization the expression tree, was excellent); both the freedom to access memory and the lack of richer information about possible execution orders makes it more difficult for automatic compiler optimizations. I have definitely bought into writing C in a functional way when using local variables.

However, the lack of some compiler optimizations due to memory aliasing guarantees is not always a disadvantage. Like bootstrapping a compiler, taking advantage of new processor features, doing an inherently sequential task like state machine parsing, or even if you just enjoy thinking about data and algorithms at a low level.

What imperative languages need to remain competitive is richer type systems regarding objects with pointers into the heap. And this is no secret; languages have been experimenting with this forever. C++'s attempt with object oriented programming was a good stab in the dark but clearly has limitations, with the explosion of type information regarding things like exceptions and wart covers like move semantics.

What I would like to see is a language with weak typing and free pointers like C, but with a more capable, generic type system with concepts, like that described by Alexander Stepanov in Elements of Programming. Also object orientation as a language feature should be replaced by [some syntactic sugar + generic functions + function overloading + linearish? types] to make OO style easier than it is in C. Things like memory aliasing optimizations would be managed by generic functions and type concepts provided by STL like libraries.

Perhaps it makes me a slower, less productive programmer but I like imperative programming and access to memory. That is the part I enjoy.

<comment><USER18> I fully agree that there's a time and place for explicitly sequential code. I just think that it's safer for everyone if it's explicitly _marked_ as being sequential, so compilers know that most optimizations are now off-limits.

<comment><USER19> This seems like a reasonable compromise if people are interested in a language that can do both. Using C's syntax, a language could modify the semantics of terminators , ; : to indicate strict/total ordering of statements.

</comment></comment></comment></comment><comment><USER20> "Can Programming Be Liberated From the von Neumann Style?"

John Backus's Turing Award Lecture [http://www.cs.tufts.edu/~nr/backus- lecture.html](http://www.cs.tufts.edu/~nr/backus-lecture.html)

(This is the origin of FP.)

edit: One of the things that is central to FP is the idea of being able to do _algebra_ to your programs.

<comment><USER21> Not really. McCarthy's lisp paper was 1959, 18 years before Backus' lecture. Also ML appeared in '73\. [https://en.wikipedia.org/wiki/ML_(programming_language)](https://en.wikipedia.org/wiki/ML_\(programming_language\))

<comment><USER20> Eh, er, em, I kinda want to concede the point, but no.

I'm trying to draw attention to the _algebra of programs_. The subtitle of Backus' paper is "A Functional Style and its Algebra of Programs". I just skimmed the wikipedia article on Functional programming and it's not really mentioned at all that I saw.

Everyone seems to leave it out, but it's arguably the most important part of FP.

You can do wonderful things in Joy (Manfred von Thun's language) which is very close to Backus' FP system. This algebraic stuff is possible in most languages that are considered Functional, but it's much easier in a language designed for it.

<comment><USER21> I was just pointing out that it wasn't "the origin of FP" as you stated.

<comment><USER20> My whole point is that defining FP as "programming with functions" or "programming with immutable data" or whatever is incomplete without the idea of being able to do algebra to derive programs.

Now, you can kinda do algebra with LISP and ML but they do not lend themselves to the algebraic approach with quite the ease of (Backus') FP or (Von Thun's) Joy. Backus introduced the terminology and the "higher-order" functions in that paper. I don't think people were talking about "functional programming" prior to that. To me, with my admittedly limited understanding and knowledge, it feels a little "revisionist" to go back and retro-actively anoint LISP as the origin of FP.

(LISP and ML have their own greatness, they don't need to steal John Backus' glory.)

If FP style becomes popular but everyone omits the algebra then it's not going to fulfill its potential.

<comment><USER22> A higher order function is a function that takes one or more functions as arguments, or returns functions, or does both.

The 1960 Lisp manual already describes a LAMBDA operator and functions that take functions, such as APPLY.

This papering about FP by Backus seems to have occurred in the mid to late 1970's.

"Higher order function" is a name given to something that some programmers had already been taking for granted.

(And I don't think Backus was trying to take credit for inventing anything. Of course he knew all that.)

<comment><USER20> Read the paper.

The _algebra_ of _programs_ is the thing that Backus' FP emphasizes that's new from the context of LISP, et. al..

Let me try another tack: Why do you suppose Backus _didn 't_ write the paper in terms of LISP or ML? He knew all that, as you say, and this was his _Turing Award_ lecture. Are we all really going to try to maintain that _John Backus_ didn't have something new and interesting to talk about on this occasion?

</comment></comment></comment></comment></comment></comment></comment><comment><USER23> I'm always surprised at the continued confusion of what FP is. I think that a lot of it is defensiveness about not wanting to lose whatever someones's favorite OO feature is.

In FP, nearly everything you like about OO exists except for one critical thing: global mutation. Even James Gosling, the creator of Java, encourages programmers to use mutation as a last option.

In other words, if you are programming well, you are nearly doing FP anyways.

<comment><USER24> >> In FP, nearly everything you like about OO exists

Is there an FP pattern that's analogous to an immutable object? The reason I like objects has nothing to do with mutability or state, it's the convenience of organizing a bunch of related functionality into a named class. When I instantiate it, I effectively get a named value through which I can access a bunch of functions that have all been closed over the same immutable values.

</comment></comment><comment><USER25> I dunno, I agree that data flow is important and maybe the most important part of functional programming. But the ability to sling program fragments (partial application, pointless functions, etc.) around as if they were data seems pretty important to me. I think of it as Lego-blocks for programs. If the program parts snap together real easy and the data moves seamlessly (or seemlessly-ish) from end-to-end then you're on the right track.

But I suppose there are many paths to functional programming... I have only followed one so far.

</comment><comment><USER26> Best article on FP i've ever read, this deserves a bookmark.

Although to me it's not only about FP but also about data-centric development.

</comment><comment><USER27> Therw actually are people that do program in such a 2D diagram type, it's called LabVIEW.

I recently had to work with it and while it was a pain to drag around these blocks instead of just using my keyboard, it really did give you a better idea of the data flow and made it incredibly easy to execute things in parallel. Just place two blocks on top of each other.

</comment><comment><USER28> Also a great read: "Why Functional Programming Matters" [https://www.cs.kent.ac.uk/people/staff/dat/miranda/whyfp90.p...](https://www.cs.kent.ac.uk/people/staff/dat/miranda/whyfp90.pdf)

John Hughes is kind of a functional programming god.

</comment><comment><USER29> The core of Functional Programming is thinking about a succession of expressions instead of a succession of instructions.

</comment><comment><USER30> Its really just a practical application of the lambda calculus. Making it a different model of computation proven to be equivalent in power to the turing model.

Its requirements are to have functions of input variables to output variables, where variables can be functions themselves. And the ability to apply functions to values.

It contrast the turing model, which says instead that you have infinite variables that can be uniquely accessed. And a set of instructions which can read the values of variables at a given location, transform it, and write it back at a given location.

</comment><comment><USER31> Functional programming made me start using static classes for manipulation and instances for basic array containers and cleaners. Besides that my job has memory heavy processing we try to keep low so to this date I can't see how immutable data wouldn't be more of a burden with lingering objects that are no longer used or need to be milled out. I did like how this article showed how returning a new variable represented the variables manipulation through name change.

<comment><USER32> I can speak for Erlang when coming to immutable data structures and the memory issue. Since erlang's processes are basicaly a recursive function, once the process dies or it calls itself (with tail-call optimization), unused structures dies out quickly. Also changing an immutable data structure does not make a whole copy but rather a "diff".

And since processes are completely isolated, garbage collection is easy (and doesn't hang the whole runtime), so the memory argument has been solved for some time, not by the language, but by the runtime.

</comment></comment><comment><USER33> I liked this article, but I feel like it's just a bit too. . .matter of fact. "FP _will_ make your linter do your work for you", things like that.

("Even if you haven't already-made a mistake, and are just thinking of making a change to a codebase, the # FP version of the code is a lot easier to think about than the # Imperative version" was particularly bad about this. I have never had a problem paralellizing a procedural program that would have been solved using FP)

It is _much_ better at being inclusive and not preachy than other articles of similar scope. But I would prefer if posts like this tried to explain functional programming without feeling the need to put down other paradigms. And, to be clear, I'm a big fan of FP, and have been using many of its tenants for a long time now.

Functional programming is just a different way to structure a code base. Some people are better able to grasp how data flows through a maze of functions. Some people are better able to grasp how an object interacts with other objects.

In the end, it's all just a sequence of instructions executed, in order, by a machine. The true correct way of writing code is: However you can get that machine to do what you want it to do, while still being able to make changes to its behavior.

</comment><comment><USER34> The recipe example is expressed even better using concatenative programming.

<comment><USER35> You might be right... Write a blog post about it!

</comment></comment><comment><USER36> It helps ensure software doesn't degrade to a chaotic state.

</comment><comment><USER37> The Python example of make_tiramisu I think really illustrates why I wish Python had a pipe-forward operator, like |> in F#/Erlang or %>% in R.

<comment><USER38> If a compile-to-python functional language might work for you, there's [http://coconut.readthedocs.io/en/master/DOCS.html#pipeline](http://coconut.readthedocs.io/en/master/DOCS.html#pipeline)

</comment></comment><comment><USER39> Interesting perspective. After reading this article, if you want to use FP in your python projects, definitely check out the toolz library. It's got great API and really good documentation.

</comment><comment><USER40> How come immutability is never mentioned? The only technical requirement for your program to be functional is for every variable to be immutable. That's really it. Every other functional concept is derived from this one rule.

</comment><comment><USER41> Its about feeling smarter than the guy next to you.

<comment> nv-vn If the whole point were to seem smarter than others, what would be the point of writing articles inviting people to learn it?

<comment><USER41> internet street cred

<comment><USER42> So let's think about the two possibilities.

1) People feel, through experience, that writing code that minimizes mutable state and side effects leads to building systems that are more easily reasoned about, composed, and debugged, which is the job of the people thinking about FP.

2) Those people just want to look smart.

Geez--I know which of these makes _a heck of a lot_ more sense.

</comment></comment></comment></comment><comment><USER43> Silly article, functional programming is about purity. All else is a consequence.

</comment><comment><USER44> Went through this post. Oh god... what kind of nonsense.... Here is the definition for FP: making simple things complicated.

<comment><USER45> Oddly enough, I got the opposite impression: FP is about making complicated things simple.

There's some sort of epiphany that naturally occurs after fiddling with FP for a certain amount of time. After it winds down, your perception of how to solve problems changes drastically.

If only because of the increased awareness is worth the trouble to play with it a bit. I sincerely encourage you to do so.

<comment><USER33> Frankly, it's just a different way to think about structuring a code base.

Some people think better functionally, some people think better procedurally, but, in the end, it's all just a list of instructions, executed in order by a machine.

I'll never understand the need to poopoo all over someone else's way of thinking (not you, the guy you're replying to).

<comment><USER46> That's like saying monarchy and democracy are just different ways of structuring a society. Some people think better monarchically, some people think better democratically. Why poopoo all over someone else's way of thinking?

<comment><USER47> Isn't that what respecting a country's sovereignty is? Are societies not organized differently?

<comment><USER33> Honestly, I wouldn't respond to anyone who compares political systems with software development paradigms. Realistically, it's just really hard to compare the two directly, and anyone who says otherwise is trying to sell you something.</comment></comment></comment></comment></comment></comment>


Turn anything into a videogame controller, even a banana - <AUTHOR> http://www.kickstarter.com/projects/joylabs/makey-makey-an-invention-kit-for-everyone <comment><USER2> This looks awesome.

That said, it seems like they already have production figured out, all the research done, etc. Why not just sell the product, instead of running a Kickstarter campaign? Is this just functioning as a pre-order, so they can make a big batch of them?

<comment><AUTHOR> Big batch will make the average production cost go down.

"If we raise $25,000 then we can do a large first run, which brings the retail cost down significantly, so that we can sell the kit to you for $35 (including shipping)."

</comment></comment><comment><USER3> Even though I can program an Arduino just fine, this is so low-friction that it will encourage me do short projects and experiments I otherwise might not.

</comment><comment><USER4> I think it's a great idea. They're making electronics fun and interesting which will hopefully attract people that would otherwise run a mile! Good luck guys!

</comment><comment><USER5> Looks like a great gateway project. You can start using it to make simple custom controllers, but it's also a fully programmable Arduino with everything that comes with that. Really cool project and great price point.

</comment><comment><USER6> I can think of a thousand cool things you could use this for, outside of a keyboard. It takes the controller abstraction up one level, making it accessible to magnitudes more people. With this + a raspberry pi, the sky is the limit.

<comment><USER7> It's interesting that both this and raspberry pi's intent are to be educational in nature. And fun at that.

</comment></comment><comment><USER8> What a delight. I look forward to playing GTA with a cheese controller.

</comment><comment><USER9> The collaboration with SparkFun (a well recognized and respected group) was a very good choice.

<comment><AUTHOR> Have you worked with SparkFun before?

<comment><USER9> nope, but i have a lot of respect for how they run their business. the only experience i have is when i asked them to add a product, and they were very professional.

</comment></comment></comment><comment><USER10> This project has tremendous potential for children with special needs. I've basically had to build a similar device from scratch in 2006 as part of my ITP (NYU) thesis project [1]. This could have saved me so much time! Backing it, and hope you will too!

[1] [http://www.mitpressjournals.org/doi/abs/10.1162/dmal.9780262...](http://www.mitpressjournals.org/doi/abs/10.1162/dmal.9780262693646.067)

</comment><comment><USER11> The first thing I thought of was CamSpace: [http://www.makeuseof.com/tag/control-any-game-with-your- webc...](http://www.makeuseof.com/tag/control-any-game-with-your-webcam-using- camspace/)

I remember using it a few years ago and it seemed pretty buggy (though maybe it was just my low quality webcam). This seems like it has a lot more potential.

</comment><comment><USER12> Very creative indeed. I have been using Picoboard (<http://www.picocricket.com/picoboard.html>) for teaching with Scratch. This gives so many ideas for the resistance sensors. Awesome job guys. Will back you up.

</comment><comment><USER13> I as a software hacker/tinkerer I have been wanting to get into hardware hacking for quite a while and this looks like a perfect starting point "kit" to play with, with the perfect price.

Thank you for making the world a bit more interesting :)

</comment><comment><USER14> This is what I call "user interface".

Will it be possible to modify this to work with other OS's such as BSD, GNU/Linux, Solaris, etc.?

<comment><USER15> The microcontroller being used can be setup to appear as a standard USB mouse/keyboard, so this should work with anything that supports a USB keyboard and mouse.

</comment></comment><comment><USER16> using this device in interaction with a kinect could be a killer application: the kinect gives you the coordinates, the MaKey signals when the user really touch something. Everything could become a touchscreen ...

</comment><comment><USER17> I call this INPUTATION, and the device INPUTIZER!

</comment><comment><USER18> Just look at this banana game controller!

<comment><USER19> Is there an accompanying karate game, so that you, like Woody Allen, can beat a man senseless with a banana? (Sleeper)

Looks like a fun way to make familiar, intuitive controls for your friends.

</comment></comment><comment><USER20> banana phone???</comment>


Challenger Engineer Who Warned of Shuttle Disaster Dies - <AUTHOR> http://www.npr.org/sections/thetwo-way/2016/03/21/470870426/challenger-engineer-who-warned-of-shuttle-disaster-dies <comment><USER2> What if he had leaked it to the press after NASA declined his valid argument. I bet the launch would not have happened but imagine what the end result would have been for NASA management if they did launch after he made the warning public? Leaking to the press is a good thing.</comment>


Ask HN: hiring vs. buying to produce a prototype - <AUTHOR>

Hi everyone,

    I am just getting up the courage to do my own startup, however I need a bit of guidance and advice.   The product I have in mind consists of 3 pieces: a embedded piece, a windows app part, and a web services portion.  I think the best thing to do is to produce a prototype paid for with my own savings before I try to get funded.   I am a embedded software guy and I don't really have too much experience with the windows and web software (I do think I know enough to be able to identify what is BS).  I was wondering what the experts here think about these 3 approaches:
 1.  Hire a couple of guys with this type of expertise to do the windows and web pieces. 2.  Pay another company to develop the windows and web pieces I need. (would I just get my lunch money taken :-)?) 3.  Partner with someone with that skill set (unfortunately I don't know anyone with this set of skills, so I think this is very similar to hiring).
I am currently favoring choice 2 because I think a experience company can do what I need faster and probably cheaper since I need less infrastructure.  I will then add the glue code to tie everything together.   I would love to hear what others with personal experiences on what is the pro and con of these approaches.
Thank you in advance for your help! <comment><USER2> I would strongly consider partnering with a developer who has the right skillset. Starting a start-up is a long-term gig. When you are hiring or buying, you are partnering with someone who may only be with you for 1 or 2 iterations. Their motive is short term profit, and your motive is long term biz-dev. When you partner with someone, both of your motivates are aligned to the long-term.

<comment><AUTHOR> Thank you. I guess its also a good test to see if you can convince someone to partner with you.

</comment></comment><comment><USER3> What's your idea? Someone on this site may have the necessary skills and be interested in working with you to develop it.</comment>


JQuery Transit - CSS3 animations for jQuery - <AUTHOR> http://ricostacruz.com/jquery.transit/ <comment><USER3> alternatively you can use jQuery Animate Enhanced plugin. <https://github.com/benbarnett/jQuery-Animate-Enhanced/>

it enhances jquery's own animate function making animations use CSS3 hardware accelerated equivalents in browsers that support them while using the original jquery software mode when not supported. and you don't need to change a single line of code on your site since its completely transparent.

<comment><USER4> I tried using it and it didn't seem to work, at least not for using higher- level jQuery animation methods. Using slideDown(), for example, didn't appear to use CSS3 animations.

</comment></comment><comment><USER5> The 3D transformation marked 'Webkit only' works fine in Firefox Nightly

<comment><USER6> Works in Firefox 12 as well.

</comment></comment><comment><USER7> It looks like this library, like gfx and move.js, will accept a cubic-bezier string for easing. I wrote a module which wraps all of Robert Penner's easing equations into cubic-beziers for ease of use:

<https://github.com/robdodson/amd-css3-ease>

And I talk about it in this blog post, but it's really easy to use: [http://robdodson.me/blog/2012/05/27/penner-easing- equations-...](http://robdodson.me/blog/2012/05/27/penner-easing-equations- with-gfx-and-css3/)

Credit really goes to Matthew Lein who converted the equations to CSS3: <http://matthewlein.com/ceaser/>

</comment><comment><USER8> I've made, some month ago, a plug-in to animate collection of elements. Check this out <https://github.com/molokoloco/jQuery.boxFx> It's like a DOM particules emitter factory.

</comment><comment><USER9> Love the demo - but I think you should take a moment on there to explain the benefits of using this vs. just setting CSS transitions in a stylesheet - <USER2> in, what it's for, why it's better than .animate(), etc.

<comment><USER10> As a jquery.transmit user I'd say that that the major advantage of js vs plain css3 is in terms of lines of code, especially wrt to browser prefixes. Then I really like to have the timing of animation explicit in js code near the usual .animate(), fadeIn(), setTimeout(), etc... instead of having to check two places.

</comment></comment><comment><USER11> Cool! Note that rotations also work on 12, in spite of it saying "Webkit only"

</comment><comment><USER12> Great page for this project, I really like the format of your examples. It's also a convenient way to play around with transformations without worrying about adding CSS classes and such myself.

</comment><comment><USER13> Nice! One of the biggest issues I have with jQuery is the fact that animations are just JS and not CSS with JS fallbacks. I suppose that's a deliberate design choice, but still.

</comment><comment><USER14> similar library: <https://github.com/visionmedia/move.js>

</comment><comment><USER15> Client-side UA sniffing in 2012?

Ugh.

Flagging a browser because "something doesn't work" is just lazy.

<comment><USER16> Lazy, sure, but not always a worse experience for the end user.

Testing w/ Modernizr _will_ use client resources, and sometimes it's faster, cheaper, and less costly to make assumptions than run those tests.

Terrible case in point: "position:fixed". It's not supported in older iOS and IE6, and CSS fallbacks don't work. Testing for it w/ JS is too costly to be worth it, so UA checking is a better compromise. (That is, if it's mandatory to degrade well...)

<comment><USER17> > CSS fallbacks don't work.

[IE6] <http://www.cssplay.co.uk/layouts/fixed.html>

(Not that it matters anymore.)

</comment></comment></comment><comment><USER18> The site background doesn't seem to be loading in Chrome 19, works fine in FF 12 though.

</comment><comment><USER19> Can anyone summarise the benefits of this over '.animate'?

<comment><USER3> instead of changing CSS properties 'manually' over a period of time to achieve animation it sets the CSS3 transition properties making the browser do the work instead of javascript which in most cases translates into using the GPU leading into smoother, faster and less power hungry animation.

it also seems to add a few things that .animate cannot do, such as skew and 3d rotation.

keep in mind that .animate works in all browsers while this needs a modern browser that supports CSS3.

</comment></comment><comment><USER20> Apropos of the upcoming Venus transit of the sun?

</comment><comment><USER21> why build these by hand, use a tool like Hype or Sencha

<comment><USER12> I think something like Hype is really good for complex animations and content, but if I just want an easy way to scale some stuff and do simple animations on a site, I can use free and convenient libraries like this.</comment></comment>


The Net Worth of the U.S. Presidents - <AUTHOR> http://www.theatlantic.com/business/archive/2010/05/the-net-worth-of-the-us-presidents-washington-to-obama/57020/ <comment><USER2> Interesting: it took Teddy Roosvelt to rein in the excesses of the "guilded age". Because he was one of the super-rich perhaps.

<comment><USER2> So he could actually make convincing arguments and not be ignored.</comment></comment>


Slack launches app store and an $80M fund to invest in new integrations - <AUTHOR> http://www.theverge.com/2015/12/15/10235114/slack-app-directory-80-million-fund <comment><USER2> "The expanding platform and fund to support it have at least two big benefits for Slack. The first is that the company will be able to see in real time which new applications built on top of Slack are most popular, likely shaping its own product roadmap through acquisitions and feature additions."

So...making a popular app for slack is either a job application, or a path to bankruptcy. Sounds good.</comment>


Ask HN: Have you ever been a victim of chargeback fraud? - <AUTHOR> Hey all,
I'm asking for some input from any of you that have ever been a victim, or know someone that has been a victim of chargeback fraud, and can let me know under what circumstances it occurred.
I've built a money transmission app for virtual goods, and the core focus (other than the fact that it is for virtual goods) is chargeback fraud prevention. I applied to YC with my app.
Some background:
I used to flip video game items in high school, and this was a big problem I and many others faced. People would send you money through an app like PayPal and you'd give them the goods. A couple of days later, you'd get a chargeback. Unless you gathered some kind of transaction proof yourself, you'd be out of the money as well as your goods. This led to many subpar solutions, like dealing with trusted middlemen with high transaction fees.
Here are the most common chargeback scenarios that I am aware of and have provided solutions for/working on providing a solution for in my app:
1. Buyers remorse
2. A family member stealing from another (a form of identity fraud)
3. Elaborate reseller scams
4. Infected computers which are used to make payments through some kind of remote-controlled software like TeamViewer, or other remote administrative tools
5. Dishonest buyers claiming it was not them that made the purchase (another form of identity fraud)
Thank you in advance for your input. Feel free to give some really constructive criticism as well. <comment><USER2> From what I hear people who sell virtual goods have awful problems with chargebacks.

<comment><AUTHOR> Yes, they do. This is why I'm doing what I'm doing. Thanks for your input.</comment></comment>


Attitudes about graduate school are changing. - <AUTHOR> http://100rsns.blogspot.com/2011/01/43-attitudes-about-graduate-school-are.html

<comment><USER2> The problem with a vast majority of these Doom and Gloom articles about grad school is that they implicitly lump in all subjects together. The subtitle on this site at least says "its focus is on the humanities and social sciences," but I for one find subtitles easy to overlook. There is a vast difference in employability, debt, and time-to-completion of a Science/Engineering PhD (comparatively High, Low, and Short, respectively) compared to a Social Science/Humanities PhD. I would suspect that most HN readers considering grad school would be pursuing technical degrees anyways (unless they're going after MBAs, which are a totally different class).

<comment><USER3> Did you just characterize a science/engineering Ph.D.'s time to completion as "Short"? Or am I reading that incorrectly?

Maybe if you're a theorist, or if you choose a fortunate field, but at Cornell the average experimental physics Ph.D. used to take 5 or 6 years. 7 was not at all rare, and it was not hard to find someone who had been around for 8. Meanwhile, most of the EE Ph.Ds I know took at least 5 years.

And then your postdocs start...

<comment><USER4> The average for English is over ten years.

</comment></comment></comment><comment> T-R All the linked articles in "further reading" are about graduate school in the humanities. Does that mean that it doesn't apply to science, engineering, and business, or that it does, but humanities is just an easier target?

<comment><USER5> I just got a Master's in engineering and I rejected funding to continue on into the PhD because I could not see myself continue for 4 to 5 more years of the same. I'm looking at jobs right now and of course I'd guess that most places don't really care that I have a Masters since most of the positions available are unrelated to my specialized field. PhD's are far too specialized and it seems there is little collaboration with industry. I'm starting to think that if you don't have a job lined up by the time you graduate your chances are cut in half.

</comment></comment><comment><USER6> As an old teacher of mine use to say, "Don't let school get in the way of your education."

<comment><USER7> Mark Twain probably had the same teacher

</comment></comment><comment><USER8> The problems are severe and fairly widespread across academia, although the liberal arts (including the sciences) may be worse off than professional programs (with the exception of law, which also suffers from degree overproduction and a tight job market).

Here is a view from the world of chemistry:

[http://pipeline.corante.com/archives/2011/01/07/the_phd_prob...](http://pipeline.corante.com/archives/2011/01/07/the_phd_problem.php)

</comment><comment><USER9> Is it me or the adds next to the article purporting "earn masters degree at home" too ironic?</comment>


"Clustering For Reliability assumes failures are uncorrelated in time" - <AUTHOR> https://forums.aws.amazon.com/thread.jspa?messageID=231122&#231122

<comment><USER2> Fixed link: <https://forums.aws.amazon.com/thread.jspa?messageID=231122></comment>


"Google Alarm" Firefox addon alerts you when you're sending data to Google - <AUTHOR> http://fffff.at/google-alarm Browser extension visually & audibly warns you when a page contains tracking bugs like Google Analytics, AdSense, YouTube embeds, etc. <comment><USER2> Wouldn't it make more sense if the alarm was for when you're not sending data to the Google?

<comment><USER3> If we make the alarm sound like a vuvuzela it'll be like the World Cup all over again.

<comment><USER4> sudo /usr/sbin/tcpdump -i en1 -l host google.com or host google-analytics.com 2>/dev/null | perl -ne 'if (time - $lasttime > 1) { `say zzzzzzzz`; print "spoke to google at ", scalar localtime, "\n"; } $lasttime = time;'

<comment><USER5> Excellent - but the "zzzzzz" part comes out like "zee zee zee zee zee zee zee".... at least on osx....

<comment><USER4> ya. that's the best I could do. I couldn't find a vuvuzela audio file on the internet that wasn't surrounded by a bunch of flaming hoops, else, I would have had it open that URL.

</comment></comment></comment></comment></comment><comment><USER6> From a comment:

> _Didn't show any alerts when I hit google.co.uk_

Which probably means it's just looking for links to "google.com" in the page. In which case I'd doubt it'd catch connections _in_ flash files, and it probably false-positives if you have blockers in place. (edit: checked the JS file, that's exactly what it does. Looks for URLs of: google, gmail.com, youtube.com, blogspot.com)

<comment><USER6> late-edit:

Correction, they search all elements for these domains / files:

      google
      gmail.com
      youtube.com
      blogspot.com
      google-analytics.com/urchin.js
      google-analytics.com/ga.js
      googlesyndication.com
      show_ads.js
      doubleclick.net
      youtube.com/v/

And finally a ++ if you're using Chrome. Fairly sure that's all of them, I finally opened the file in a proper editor.

And, importantly, it appears they're searching for that _text_ , not attributes, so this post will probably set off the alarms.

<comment><USER7> If this is true (and I have no reason to doubt you), then the extension is so inaccurate as to be useless. In Firefox at least, there are hooks to do everything you need to do a real implementation.

<comment><USER6> Just installed the Chrome version, and ran it on that comment's page. Results:

      Google Analytics
      Google AdSense
      Youtube Embed
      Google Chrome

And the Firefox plugin's results are coming once I get it downloaded & install the plugin. I'll edit here, and probably blog about it due to its inaccuracy (stupidity should be exposed!!!).

edit: Firefox's results mirror it exactly, minus the Chrome one of course. Plugin review result: utterly worthless.

</comment></comment></comment></comment><comment><USER8> Considering the amount of websites that use Google Analytics this will result in an almost constant sound. At least the websites I browse often.

But it's an interesting project to make people aware of the amount of data they send to Google. I just dont think that people that do not know this will install a plugin like this.. Or use FireFox at all.

<comment><USER9> I'm just glad that analytics is on its own domain. Google could easily have placed it at google.com/analytics and it would be much trickier to block. As it is, an entry in hosts or blacklist it in NoScript is all you need.

<comment><USER10> Adblock Plus does a better job of blocking than those mechanisms, however, and it could handle google.com/analytics just as easily as google-analytics.com.

</comment></comment></comment><comment><USER11> I'd be embarrassed too if someone caught me visiting Perez Hilton. I'm thinking Google should keep an eye on those people.

</comment><comment><USER12> Bug? I can not click on links in the upper right hand corner of a website while it is enabled. I went to amazon and tried to click "My Account" in the upper right and it was as if there was something invisible not allowing me to click links up there. Several disable/enables of the plugin later and it seems like that is the problem.

Anyone else experience this?

</comment><comment><USER13> Just a list of all the things I can think of the at will trigger that alarm.

Google analytics, Embedded Youtube videos, Adsense, Any of Google's websites, Typing in the search box.

The chrome extension is even funnier. That would probably never be silent.

EDIT: Turns out typing in the search box doesn't set it off

</comment><comment><USER14> I use 'ad block', 'noscript' (not allow google analytics) and 'cs lite' (block cookies). Also 'better privacy' to clear my flash files.

</comment><comment><USER15> if you're afraid of Google I made a Chrome extension for you. (it tells you whether or not you're logged into your Google account) [https://chrome.google.com/extensions/detail/kehceocjihegfhln...](https://chrome.google.com/extensions/detail/kehceocjihegfhlnocjbblapepeilbmk)

<comment><USER16> If you're afraid of Google why would you use Chrome?

</comment></comment><comment><USER17> Adding facebook, ms/live/bing and other networks would make more sense than only being obsessed with google.

</comment><comment><USER18> Fun toy. I honestly never thought about how ubiquitous Google Analytics really was.

Hope you win your emmy!

</comment><comment><USER19> Great idea -- but overdone to the point where it's only a think piece, not a utility.

An alternate presentation idea: a toolbar with both indicators for the current page, _and_ a timeline of recent connections to Google's servers. It would make a small ring on each new connection -- but more like an IM notification than an airhorn, and able to be turned off.

The timeline could be logarithmic, with the past to the right, so the last 5 minutes or so of hits to Google AdSense/Analytics/CDN/etc. is in high- resolution over about 1/3 the width of the screen, while the next hour takes the next 1/3, and the last day the last 1/3 -- altogether showing a total of the background hits to Google servers in the last 24 hours or so. Like so...

[AX__A___X_____XC____AX____X_X__A__XA__X_A__AXC__X__XAAXCA] 121 hits</comment>


Rebase on the World: personal shell choice - <AUTHOR> https://blog.jessitron.com/2019/11/27/rebase-on-the-world-personal-shell-choice/ <comment><USER2> Thank you for this great article. Although I doubt myself switching to Powershell in the next days, it was really a thing i wanted to try.

Especially the stated structured data instead of piping strings around is a very interesting concept.

But there are a few things that keep me from spending time in learning it:

      - Syntax is UpperCamelCase, which might be ok but feels strange to me
      - Commands are not familiar and it takes a lot of time to "rebase" (who has the time...?)
      - MS tried a few times to improve shell access and on windows the terminal/shell combination still feels strange to me

But: Thanks for a good read</comment>


IdeaSquares – Almost at 1000 business ideas, have a browse or add your square - <AUTHOR> http://ideasquares.com/

<comment><USER2> Site initiated some sort of download file, no idea what but guessing it's a virus.</comment>


The Peachfuzz Billionaires - <AUTHOR> http://www.newsweek.com/id/78152

<comment><USER2> Newsweek just completely lost my respect when a video 2/3rds the way down the page started automatically playing.

<comment><USER3> They lost most of my respect when my parents got a subscription during my high school years, and I read the articles.

</comment></comment><comment><USER4> Diagram summarizing the Zuckerberg talk referred to in the article: <http://www.killnine.com/comics/25.php>

</comment><comment><USER5> "No matter the intent, though, the speech seemed to fit the Valley's growing cult of youth, if not a movement, based on 'Don't Fund Anyone Under 30.'"

Under?

<comment><USER6> Probably an error caused by Mr. Levy's extreme ancientness... ;-)

</comment></comment><comment><USER7> Funny thing is, none of them (I think) are billionaires, in the sense of having at least one billion dollars in liquid financial assets.

<comment><USER2> You don't think, if Mark Zuckerberg tried to sell his share, he could get more than a billion?

On paper or not, he's worth more than a billion dollars.</comment></comment>