Placing My Camera Lens 300 Feet from a Rocket Launch - <AUTHOR> https://petapixel.com/2018/03/02/result-placing-camera-lens-300-feet-rocket-launch/ <comment><USER2> Please click through to the photographer's web site. He's captured some really nice images. My three favorites:

\- "January 7th, 2018: SpaceX's Falcon 9 rocket launches the classified Zuma payload for Northrup Grumman, and lands the first stage of the Falcon 9 back at Cape Canaveral eight minutes after launch"

\- "June 11th, 2016: United Launch Alliance's massive Delta IV Heavy rocket launches a top-secret satellite, designated NROL-37, on behalf of the National Reconnaissance Office"

\- "November 19th, 2016: A United Launch Alliance Atlas V 541 rocket launches NASA and NOAA's GOES-R satellite"

There doesn't seem to be a way to link directly to the images. They are hosted on a CDN with an auth hash which I think will expire, so search for the date here:

[http://johnkrausphotos.com](http://johnkrausphotos.com)

He's 18 BTW. At first I misread that he'd been a photographer for 18 years. Bravo.

<comment><USER3> I've been following his career on the SpaceX subreddit. He'd talk about getting out of school to photograph a launch, or occasionally being unable to do so. For a while he was unable to take close-up pictures because they decided not to accredit minors. He's quite a guy!

</comment></comment><comment><USER4> Here's the OP's site: [http://johnkrausphotos.com/](http://johnkrausphotos.com/)

Even if he's hard on his gear, his images are great and he's only 18. Impressive work for a teenager.

<comment><USER5> Even as an adult, I wouldn't be able to get those images. I've always wondered how are photographers able to get such clarity for subjects that can be extremely blurry/murky/muddy, such as smoke and even water? Every time I take photos of clouds or water, it always looks dull.

<comment><USER6> > Every time I take photos of clouds or water, it always looks dull.

If your image is well-lit, in focus and doesn't have motion blur, you are probably just missing post-processing. Most pictures will look rather dull until they are touched-up to make them 'pop' \- you can have a look at the before and after images from this Google AI research project[1] that processes landscape photos to make them more pleasing to the eye.

Playing around with brightness, contrast, saturation and color curves can greatly improve a photo.

1\. [https://www.theverge.com/2017/7/14/15973712/google-ai- resear...](https://www.theverge.com/2017/7/14/15973712/google-ai-research- street-view-panorama-photo-editing)

<comment><USER5> Unfortunately, that's what I thought as it means I have to greatly improve my post-processing skills.

Do you have tutorials that go into detail about how one can improve? I've spent the last decade using Lightroom but largely going by what feels right rather than being more technical and deliberate.

<comment><USER7> A good post-processing tip is to apply two passes of Unsharp Mask. The first pass adds a general "punch", the second sharpens the fine details.

A good starting point for unsharp mask:

1st pass: Amount 10; Radius 30; Threshold: 0 2nd pass: Amount 100; Radius 0.3; Threshold: 0

Adjust amount based on your judgement. Don't over-sharpen. Sharpening should be the last step after resizing. Obviously always sharpen with the image at 100% zoom. Don't let your DSLR sharpen the image. Shoot in RAW, but resist sharpening at your RAW tweaking stage - just do exposure tweaks at that point, then bring into Photoshop for sharpening and resizing.

Also play with polarizing filters on your lens; ND filters so you can open up aperture to exploit the sweet spot of your lens; reduce your exposure compensation in daylight (my DSLR is always set two stops under); use a lens hood; avoid too much cropping, instead get the framing and focal length right when shooting.

</comment></comment></comment></comment></comment><comment><USER8> A friend mentioned that in the high-dollar government lab he works in, they use a blast shield and a mirror in these applications. Mirror is a lot cheaper to replace than some of their lenses.

<comment><USER9> But it does make it harder to stabilize the image. Especially when the decibels are high like in a launch.

<comment><USER10> It's a daylight photo, use a fast shutter

</comment></comment></comment><comment><USER11> Wow, those images are gorgeous.

"We were warned by our NASA escort to not touch our faces after handling equipment coated in the solid rocket exhaust and to wash our hands ASAP after arriving back at the KSC Press Site."

Next picture: touches exhaust residue with bare hands. Please, use gloves!

"Using a glass filter triples the area that dew can form prior to liftoff."

A-ha, it is time to start building heated glass filters for rocket photography enthusiasts!

<comment><USER12> What would the substances have been on the glass? I assume it would be something nasty but my chemistry is poor. Also, do workers wear haz-mat suits when working in the area? I'd guess there is a lot of the same stuff on the ground/atmosphere that could be inhaled. The ecological damage of launches is something I should really look more in to.

<comment><USER13> HTPB, unburnt ammonium perchlorate, aluminum powder.

[https://en.wikipedia.org/wiki/Hydroxyl- terminated_polybutadi...](https://en.wikipedia.org/wiki/Hydroxyl- terminated_polybutadiene)

<comment><USER14> And the combustion products include lots of water and hydrogen chloride, which combine to form hydrochloric acid. The gritty aluminum oxide (another combustion product) is probably a pretty good particulate sponge for holding acid as it cools below HCl's condensation point.

<comment><USER12> Thanks both for the reply. Is the Aluminimum oxide forming part of a thermite style reaction then?

<comment><USER15> Somewhat yes. Iron oxide is included, but considered a catalyst.

The rubbery plastic binder is a fuel. The Aluminum is a high-energy fuel. The "ammonium" part of ammonium perchlorate is a fuel, and the "perchlorate" part is an oxidizer.

The amount of aluminum is limited to prevent the temperature from getting too high and because it makes low-energy exhaust particles. Good exhaust particles are low-mass gasses with few degrees of freedom in the molecular shape. Aluminum oxide forms solid particles consisting of many atoms stuck together, which is pretty useless.

</comment></comment></comment></comment></comment></comment><comment><USER16> The soil around the launch site must be loaded with acidic exhaust particles and other residue, yet grass still grows right up to the edge of the platform. That's one tough variety!

<comment><USER17> Probably St. Augustine grass ([https://en.wikipedia.org/wiki/St._Augustine_Grass](https://en.wikipedia.org/wiki/St._Augustine_Grass)) given that it is Florida.

St. Augustine is so tough, it even crowds out weeds! Not as soft as the Bermuda grass on golf courses, but very resilient.

<comment><USER18> I'm pretty sure Bermuda grass can never be killed. No matter what you do to it, it always comes back. It's the athlete's foot of lawn pests.

<comment><USER19> In Berkeley ~25 years ago we had a severe frost, pipes popped, the eugenia hedge dies and so did the bermuda grass lawns too .. we pulled them and replaced them with traditional sod

So ... yes it can be killed ....

<comment><USER18> Did you dig the Bermuda grass out of the ground? Physically removing every blade, runner and root nodule it is the only way I know of to get rid of it.

<comment><USER20> All the Bermuda grass in our yard in Texas died after 3+ years of 90 days over 100 while the Saint Agustin keeps growing and growing.

</comment></comment></comment></comment></comment></comment><comment><USER21> "the sound alone would kill anyone standing at the launchpad during liftoff."

Didn't know you could die from sound. Curious as to how that works.

<comment><USER22> I imagine the sound pressure would liquefy your organs.

Just speculating here but a "sound wave" at those energies could be similar to a shock wave from an explosive.

</comment></comment><comment><USER23> One of his images is very similar to a really nice gif of the rockets firing that was featured on reddit the other day (by another photographer): [https://www.reddit.com/r/woahdude/comments/81xnmv/i_could_st...](https://www.reddit.com/r/woahdude/comments/81xnmv/i_could_stare_at_these_rocket_flames_for_hours/)

</comment><comment><USER24> I severely recommend using a mirror, that's how everyone does (and did) it.

A well cleaned mirror won't look any worse than straight through the lense.

<comment><USER25> Won't the mirror collect dew?

<comment><USER26> And vibrate independently of the camera.

<comment><USER27> Whether vibration is from the camera or the mirror does not matter; both will reduce quality on the image, assuming a slow exposure. But these exposures look very fast. Even so, if the camera can be made stable, then so surely too can a mirror.

<comment><USER26> > both will reduce quality on the image

Yep. So why have two instead of one?

<comment><USER27> Why blow hundreds or thousands of dollars on damaging and replacing lenses? Photography doesn't generally pay well enough to afford that for very long.

<comment><USER28> "I'd likely be able to replace just the front element, but I picked up this lens for a hundred bucks, so if I want to do a fisheye shot for a future launch, I'll probably just buy another one."

Basically any setup to protect the lens will end up costing about as much as the lens.

<comment><USER24> A 30x30cm Mirror (which is enough to get the image to the camera) costs about 12$ with a quick google search. It's even high quality silver.

With a small price at the start you can probably 3D print an apparatus that contains stabilizers for both camera and mirror plus a mechanism to easily swap mirrors.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER29> > _Using a glass filter triples the area that dew can form prior to liftoff. > I've had shots ruined by dew forming on the front element._

I hate to see the waste still. Use a filter but also build yourself a little heated wrapper that keeps the camera and it's lens above the dew point.

<comment><USER30> I think the filter you would need for a fisheye like that would be specialized and somewhat expensive, though, due to the protruding front element. Someone in the comments said it would pretty much be the cost of the lens.

<comment><USER31> Yes, filters that big of any quality would cost more than the $133 fisheye lens he used and add one more thing that could go wrong. I'd gladly sacrifice a $1300 lens to capture a rocket launch that close. Mitigating lens damage is simply something no professional photographer is going to care about in that situation.

</comment></comment></comment><comment><USER32> Those are some amazing images! Just looked at his personal website and I am thoroughly impressed.

<comment><USER27> This is one talented young photographer.

</comment></comment><comment><USER33> If it pitted the glass lense, wouldn't the solid exhaust penetrate the plastic bag? I'm surprised there was no other damage.

<comment><USER34> I think it's about force and hardness, contrasted against elastic and inelastic collisions.

Either that, or maybe the caustic qualities have something to do with it? I'm not sure of the chemical aspects of the exhaust, but that part is also mentioned in conjunction with the debris accumulation.

</comment></comment><comment><USER35> space-station transitioning the moon is also excellent !</comment>


How Churchill 'starved' India [old] - <AUTHOR> http://www.bbc.co.uk/blogs/thereporters/soutikbiswas/2010/10/how_churchill_starved_india.html <comment><USER2> Anyone ever heard of any apology from UK Government on this?</comment>


Bitspeak converts hex strings to pronounceable words - <AUTHOR> https://github.com/MaiaVictor/Bitspeak <comment><USER2> I did something quite like this years ago that now has implementations in many programming languages:

[https://arxiv.org/html/0901.4016](https://arxiv.org/html/0901.4016)

[https://github.com/dsw/proquint](https://github.com/dsw/proquint)</comment>


Giving away my domains TheNewPirateBay.com, .org, TNPB.co - <AUTHOR> http://mhj.tc/post/37091910004/donating-domains-thenewpiratebay-com-org-and-tnpb-co

<comment><USER2> i'd be interested in taking em and building some kind of open/transparent/legal something on top of it..</comment>


Ask HN: is anyone solving pg's #4 (Outsource IT) for laptops?  - <AUTHOR>

Everyone likes FreeBSD on the server.  I also like it for my laptop.  I thought for a while I was the only one.
My laptop just dies on startx now...
As a student, there used to be no opportunity cost to re-configuring my workstation.  It was kind of the job. Then the opportunity cost slowly crept up over the years, until, well, I cannot take two billable days to play and rebuild.  It really will be cheaper to buy an new laptop.
Now, I could do what everyone else seems to be doing, and buy a Macbook Air.
But then I would not be running FreeBSD anymore.  At least not the FreeBSD I know and love.
So, I thought of two comments from pg

  1. if you are going to build the next google,
  you want to build the search engine that the
  top 10,000 hackers use.

  2. Solve idea #4 - outsource IT

  You can take practically anything users still
  depend on IT departments for and base a startup
  on it, and you will have the enormous force of
  their present dissatisfaction pushing you
  forward.
 What I am asking is - is there anyone building (or just certifying) laptops for the top 10,000 hackers, such that buying a laptop from them is almost a guarantee that I will suffer no more hardware issues than I would with a mac.
I will pay a premium not to sit in front of a black screen with client deadlines approaching.  Really a big premium.
Can I outsource my hardware support to them? If they succeed I can see them being well placed to build the development machines for the next 100,000 (and me somewhere below that).  And then build the next iPad.
I am not claiming to be a top 10,000 hacker, nor any use to the BSD community, but if these people exist and are certifying laptops / fixing up the drivers they find are spotty, please let me know.
http://ycombinator.com/ideas.html <comment><USER2> The efficient way to do this is probably to setup multiple machines in parallel.

My line of thinking is that you go out and buy three identical machines.

Spend the two days messing with everything and get a laptop just the way to like it.

Make a disk image of the first machine and write it to the other two.

When something in the machine breaks, open one of the spares and restore work files from backup. For me this would take less than an hour.

When you get to the last laptop buy three new ones.

If it takes you two days to do this initial setup you should have to do that fewer than once every three years or so.

<comment><USER3> >When you get to the last laptop buy three new ones

You'd have to do this on the second laptop. If you do it on the last one, then you don't have a spare machine and have downtime while setting up your new machine(s).

</comment></comment><comment><USER3> As an "IT Guy" this deeply interests me. I outsource some things, and many others I run in-house. Typically I'll outsource something when I don't have the time to do it myself, and the cost to have someone else do it is reasonable (or, if I can take the time saved and work on something more important).

The thing with outsourcing IT stuff is that when something goes wrong, it can go disastrously wrong. Think about it - you could find a freebsd guy and pay him a retainer to keep him 'on call' whenever you need him. But, what happens if you need him desperately right now, and his car won't start (or he gets hit by a bus, or misses your call)?

To answer your question specifically, take a look at NASA. They have to build hardware that doesn't fail. They use old, tested technology, and they build multiple redundancies. Are you willing to pay double (at least) for old technology? Would you be happy with a 486, if you knew it was never going to crash?

I suspect that this is why many of us pay the "Apple tax".

This is a _hard_ problem to solve. That's why it's on PG's list

</comment><comment><USER4> I'll just be blunt. I think you're SOL. People were providing these types of services for FreeBSD __* and Linux back in the 90s into the early, early 2000s but almost all of them dropped off the face of the Earth.

Your best bet seems to buy last year's or (preferably) older model of a well- supported ThinkPad. Something with mature "support".

 __* BSDi/Telenet/Name-Du-Jour being one example for FreeBSD systems, before their divisions died and they were bought by Wind River.

<comment><AUTHOR> Shit out of luck?

It seems an odd ecosystem - companies selling pc components must see the writing on the wall. Windows no longer fits all sizes, it's out ofthe mobile / tablet race, it's nearly out of the corporate desktop space (headless Linux running a web browser, people complain give em an ipad) and so which os is going to provide growth? Apple won't let the oems into it's patch, especially with their super tight manufacturing.

Never mind - two laptops, github and tarsnap and regular tests of the backup process.

<comment><USER4> Sounds nice, but it's been demonstrated there isn't a profitable business reason to do so. I'm still bitter about the FreeBSD/BSDi/Telenet thing.

</comment></comment></comment><comment><USER5> if your a hacker why would you need that?

<comment><AUTHOR> Because I am a hacker with a per hour cost.

I love messing around with BSD, and then blogging about it (itmanagerscookbook.com / ciocookbook.com) but, I simply cannot afford downtime like this for things that are totally avoidable, by leveraging the intelligence of others.

Apple collates that intelligence and "curates" it for me.

But they are not "open" - and if there was someone even similarly testing hardware and polishing drivers then for me it is worth paying a premium, following their hardware instructions, and having a BSD machine that does what I want without the fear of sitting in front of the blank screen and spending a long time getting everything back to where I want it.

:-(

<comment><USER6> What about using a virtual machine? That way when you have a hardware failure you just switch computers, even on an old one temporarily and are still able to work properly?

That's what I'm doing to ease when I'm working from my parents' home for example where they have multiple computers and I use one available.

<comment><AUTHOR> That's quite a good idea to combine with the whole backup routine.

In theory I could carry the whole thing on a USB stick.</comment></comment></comment></comment>


The Power of 5 Sentences - <AUTHOR>

This just happened.
I sent a cold email to a key large organization. The subject line was "Re: [Organization Name] & [My Company Name]" because people are more likely to open an email that looks like an existing thread about their company.
The email itself was 5 sentences long:
One sentence to introduce myself and my company One sentence to show traction/social proof One sentence to outline one specific way for us to work together One sentence to give a snapshot of potential results One to suggest a time for us to meet in person
5 sentences. That's it.
24 hours later, I received an email introducing me to the higher-up in the organization who could help my company most.
72 hours later, my co-founder and I were across the country and meeting face-to-face with him. After hammering out some details, he invited us to Dubai to attend a global summit for entrepreneurial leaders and make connections that will be crucial to the expansion of our business.
We are on the plane to Dubai now.
The moral of the story: send a simple, straightforward cold email to the 5 organizations you know would help your company most.
You have absolutely no idea where it could take you. <comment><USER2> Glad to hear that it worked out well for you.

This time.

If you did that to me, I would blacklist you permanently (electronically and otherwise).

Why? Because it's dishonest. You're trying to trick someone into believing that something (a thread continuation) is something other that what it really is (unsolicited email). I learned this line of reasoning from business people far smarter than me: "If they'll stoop to a dishonest trick just to make an introduction, who knows what they'll do when the stakes get higher."

Make the most of this opportunity now that you have it, but I'd seriously reconsider ever doing it again.

Other HN readers, just because OP is sharing something that worked out well doesn't mean you should too. Please don't do this. The world has enough people taking shortcuts instead of doing the right thing. There's plenty of opportunity for smart hard-working people to succeed on the up and up. That's what you should be focusing on.

<comment><USER3> _If they'll stoop to a dishonest trick just to make an introduction, who knows what they'll do when the stakes get higher._

It's good that the people Richard Branson and Bill Gates dealt with early in their careers didn't feel that way.

Branson pretended to be a big magazine company from a phone box (using the operator to appear to be a switchboard operator of sorts) and claimed to have sold lots of ads when he had sold none. The magazine was a success. Gates pretended he had a BASIC. This "lie" was the start of the accumulation of the world's biggest fortune.

Blagging and telling white lies is a big part of starting out, _especially_ if you're an entrepreneur. Looking bigger than you are, looking more established, making your deals look bigger than they are, portraying a better image than your checkbook can support.. all deceptions.

Sure, there are many totally honest and straight talking folks who've made it big, but look at the stories behind most of the well known entrepreneurs and there was plenty of blagging and exaggeration going on at the start of their journeys. (Not to mention most of our dating careers..)

<comment><USER2> _Gates pretended he had an OS ready to go._

False. Gates made it quite clear that Microsoft made comilers and didn't have an OS. He sent IBM to Gary Kildall at Digital Research because they had CP/M. When that didn't work out, IBM came back to Microsoft and that's when Paul Allen purchased Seattle DOS for $50K. Nobody "tricked" IBM.

There's a fundamental difference between putting on your best face (nice website, big company image) and intentionally deceiving (putting "Re:" in an email subject line.) If you can't tell the difference, remind me never to conduct business with you.

<comment><USER3> You're right on the OS/Gates thing. I'll switch out "OS" for "BASIC."

 _If you can't tell the difference, remind me never to conduct business with you._

Thankfully it's possible to elucidate both a point of view without agreeing with it and an action without doing it :-)

</comment></comment></comment></comment><comment><USER4> How did you pick who to email at that organization ?

</comment><comment><USER5> Congrats! What do you mean traction/social proof?

<comment><USER6> I would assume he is referring to something like <http://en.wikipedia.org/wiki/Social_Proof></comment></comment>


Easy = True - <AUTHOR> http://www.boston.com/bostonglobe/ideas/articles/2010/01/31/easy__true/ <comment><USER2> "Psychologists have determined, for example, that shares in companies with easy-to-pronounce names do indeed significantly outperform those with hard-to- pronounce names."

A giant "citation needed" needs to be attached to this. A quick search came up with this: <http://www.pnas.org/content/103/24/9369.full> \- pretty terrible. I hope such a breathless claim isn't actually being backed by such lame research.

<comment><USER3> Not to mention, does "outperform" mean "higher earnings over time relative to stock price" or does it mean "stock prices higher relative to earnings"? The latter would seem to be what is predicted, and that's hardly "outperformance".

<comment><USER4> It should be some measure of market-relative total return, including dividend yield, etc. As far as I can tell from the paper, they don't even adjust for market-relative returns, so if a bunch of unpronounceable companies got launched at the peak of the Internet bubble and proceeded to perform exactly in-line with the market, this would still be counted as underperformance even though it is completely untradeable.

</comment></comment></comment><comment><USER5> Sort of helps to explain why political discourse seems doomed to stick on such a low level. Simple ideas will always have an edge over complicated ones, and so politicians who communicate with simple ideas and hold simple ideologies will always have an edge. It wouldn't be such a terrible thing if only the world weren't so damned complicated.

<comment><USER6> Simple ideas that produce nice sound bites are also much easier to repeat over and over in a stump speech. The simplicity of the ideas (producing this so- called "fluency effect") combined with the power of repetition (which might be another example of the fluency effect) means that a candidate whose goal is to get elected is better off saying as little as possible about issues of substance.

</comment></comment><comment><USER7> Wow! I like this. "Cognitive fluency" is a concept that I've felt should exist for a long time (but, amusingly, have had no words to describe). It's a reason why I believe in the Sapir-Whorf Hypothesis (<http://en.wikipedia.org/wiki/Linguistic_relativity>).

Cognitive fluency has a lot of relevance for programming languages research. From the article: "When people read something in a difficult-to-read font, they unwittingly transfer that sense of difficulty onto the topic they're reading about." Wow -- similarly, the programming language you're writing in might have an even bigger effect on what programs you find easy to create or think about.

<comment><USER8> Seems like that would be a counterexample to Sapir-Whorf, not evidence. You clearly had an idea but not a word; language did not bound your ideation.

(I don't accept it, at least not in its strong form, pretty much for this reason; one way of looking at my programming job is nailing down concepts before they have names, then giving them names only later. There's some useful idea there, but Sapir-Whorf overstates it.)

</comment></comment><comment><USER9> In the "woes unite foes" rhyming example, it's definitely using the same part of my brain involved with processing poetic license. I disagree with the sentence, but I can _feel_ my brain working to frame it charitably.

<comment><USER10> OT: You disagree that challenging circumstances unite people who would otherwise be uncharitable to one another?

In times of hardship would you work with someone you don't get on with so you could both survive? Note that the made up aphorism does not include a term such as "always". A less charitable version would be "the enemy of my enemy is my friend" (an example of the aphorism is which is well known).

Just curious as I felt this was a sort of given about innate human behaviour.

<comment><USER9> I guess if they're scared they might work together. But by woes it doesn't necessarily mean common enemy. (This is what I meant by a charitable interpretation.) If I'm having a bad day, I'm _less_ likely to be nice to an enemy.

<comment><USER11> Woe is a pretty strong emotion. Think of being completely lost of in grief. It pushes far beyond bad day to rocked-to-the-core

</comment></comment></comment></comment><comment><USER12> Reminds me of:

If she weighed the same as a duck... she's made of wood. And therefore... ...A witch!

</comment><comment><USER13> I can't help but wonder if this "discovery" and cognitive fluency theory doesn't sound so great and obvious because it is so simple. :P

</comment><comment><USER14> I'm not sure I get what kind of psychological theory the article is describing.

"Things that are easy to understand are perceived as better than hard to understand things unless you're in some kind of mood that makes the opposite true."

How am I supposed to get anything useful out of a theory like that?

<comment><USER15> _How am I supposed to get anything useful out of a theory like that?_

Write a grant proposal.

</comment></comment><comment><USER16> I wonder what this says about the language gap? Are people heavily disinclined to agree or empathize with people and situations expressed to them in a language which is not their most fluent?

</comment><comment><USER17> The only truth is that there is no truth.

<comment><USER3> <http://yudkowsky.net/rational/the-simple-truth></comment></comment>


An Open-Source Cancer Pitch, Deconstructed - <AUTHOR> http://pipeline.corante.com/archives/2014/10/28/an_opensource_cancer_pitch_deconstructed.php

<comment><AUTHOR> Apologies if this submission comes across as overly negative, but I value Lowe's opinion, and can see these sorts of questions being asked of the campaign.

<comment> xkcd-sucks It's properly pragmatic, not needlessly negative. Derek just took the time to type out and explain what any informed person thinks of the campaign.</comment></comment>


Ask HN: 12 year old tech savvy girl – books, programs, events, advice? - <AUTHOR> Hi HNers,
A friend of mine's daughter is interested in tech, 12 years old, a little shy (if that matters), good grades, and a good circle of friends.  Her mom wants to foster growth and confidence and all that good stuff. She has been to two two-week camps, one a co-ed disaster, one a girl only success.  Anybody got any advice?
Thanks! <comment><USER2> I'm a big fan of Processing or p5.js for teaching kids that age how to write code. The immediate visual feedback from a line or two of code creates a positive feedback loop that encourages learning. Shiffman's book Learning Processing is a great gentle introduction: [https://www.amazon.com/Learning- Processing-Second-Programmin...](https://www.amazon.com/Learning-Processing- Second-Programming- Interaction/dp/0123944430/ref=sr_1_3?s=books&ie=UTF8&qid=1469470998&sr=1-3&keywords=nature+of+code)

His Nature of Code work -- simulating nature through code -- also is really interesting but requires a little background in coding.

<comment><USER2> Shiffman also has a "Coding Rainbow" series on YouTube that is pretty great. He has a good personality for goofy YouTube programming teacher.

[https://www.youtube.com/user/shiffman](https://www.youtube.com/user/shiffman)

<comment><USER3> His videos are so great! I'm watching his "Introduction - p5.js" video [0] and I'm crying with laughter. His style of teaching is truly inspirational.

[0] [https://youtu.be/8j0UDiN7my4?list=PLRqwX-V7Uu6Zy51Q-x9tMWIv9...](https://youtu.be/8j0UDiN7my4?list=PLRqwX-V7Uu6Zy51Q-x9tMWIv9cueOFTFA)

</comment></comment></comment><comment><USER4> I've taught many children, and the biggest motivation for them was tangible success. Project based learning combined with a good teacher will do absolute wonders. Eventually, she can show off her projects ( for example, a M & M color sorter) to her friends. Maybe her friends are interested too and that will give them a little encouragement to pursue their interests as well! Let me know if you have any other questions.

<comment><USER5> I have two questions for you.

How would you approach that for teens? Do you have any specific advice? I'm having trouble helping them find things to continuously motivate them to keep learning.

</comment></comment><comment><USER6> Everyone is different, but for me at 14 (a bit different from 12, I know, and I'm male) all I needed was a compiler and tutorials online. But that was key, the internet connection paid for by my parents, something not many people on my island had access to, made all the difference in the world for me.

The best thing you can do is be available and provide access to knowledge, don't funnel her into particular frameworks, languages, whatever. If she wants to learn ASM, let her. If she wants js, let her. If she wants to learn Photoshop, let her.

Parents are not supposed to direct play. They give kids toys and the kids find their own way.

<comment><USER7> I second the "play" approach. My second programming experience was in assembly at age ~10 and it has made a huge difference in my growth and now in my career. Leave her alone with a compiler and an internet connection. :-)

<comment><USER8> My father did this as well. Though I didn't like QBasic. So instead I focused on batch scripting--to get games running--then modding.

Key to modding seems to be start with a game they like.

</comment></comment></comment><comment><USER9> I'm of two minds about co-ed. It's really important to find a safe place to learn and it can be hard to do that as a girl in a boy dominated field. She's going to have to do it some day, but it's probably best to build up some confidence in a safe environment. I'd spend some time finding girl only or mixed successfully mixed groups and programs.

As for the technical side: Make's Getting Started with Raspberry Pi book is one of the best introductions to computing I've ever seen. It starts at the beginning, uses simple language, goes deep and provides hands-on experience. [https://www.amazon.com/gp/product/1457186128/ref=oh_aui_sear...](https://www.amazon.com/gp/product/1457186128/ref=oh_aui_search_detailpage)

Get her that book and a Raspberry Pi, a nice case, encourage her, support her, help her connect with like-minded peers and then stand back. [https://www.amazon.com/gp/product/B00ME5XUAG/ref=oh_aui_sear...](https://www.amazon.com/gp/product/B00ME5XUAG/ref=oh_aui_search_detailpage)

</comment><comment><USER10> A friend of mine has a daughter who really enjoys [http://girlsmakegames.com/](http://girlsmakegames.com/)

[http://makezine.com/](http://makezine.com/) and the [http://makerfaire.com/](http://makerfaire.com/) have done a great job with a community that encourages kids with a variety of interests.

[http://www.meetup.com/](http://www.meetup.com/) is great for finding people in your area who want to geek out together over something in common.

I don't have great book recommendations other than [https://www.amazon.com/Manga-Guide-Databases-Mana- Takahashi/...](https://www.amazon.com/Manga-Guide-Databases-Mana- Takahashi/dp/1593271905) Read the customer reviews. I'm a greybeard and I enjoyed it and lend it out to my friends. The publishers [https://www.nostarch.com/](https://www.nostarch.com/) have lots of similar books.

<comment><USER11> Just showed Girls Make Games to my 14 year old daughter and all she said was how condescending...

<comment><USER12> Everything re girls in technology is condescending.

</comment></comment></comment><comment><USER13> Depends a lot on their interests and experience.

If she has little to no experience with coding, check out this as a start: [http://code.org/](http://code.org/)

See the 'advanced' section of this handout for more coding resources for older kids: [http://bit.ly/ortonacode](http://bit.ly/ortonacode)

On the hardware side, there are projects to make programmable jewelry, clothing, and other wearables, in addition to the traditional robots, cars, drones, etc. See the Adafruit site, for example: [https://www.adafruit.com/category/65](https://www.adafruit.com/category/65)

I have a 12 year old son. He's been interested in the raspberry pi and we have a PocketCHIP coming in the mail: [https://getchip.com/pages/pocketchip](https://getchip.com/pages/pocketchip) Install RetroPIE on a Raspberry Pi for a videogame emulator: [https://retropie.org.uk/](https://retropie.org.uk/) Last year we did some code.org and scratch stuff and learntomod used blocks coding to learn minecraft modding.

What I would NOT recommend is starting straight up with traditional coding that is not designed with beginners and kids in mind. Don't throw python, java, C, etc. at them. Let them follow their interests: games, wearables, etc., and learn coding in pursuit of that interest, not force them to learn coding for coding's sake. I myself was interested in creating a webform 20 years ago for my student club, and in the process learned Perl for CGI scripts. It was only years later that I learned how sucky Perl was and what a bad choice it is for beginners ;)

<comment><USER6> >What I would NOT recommend is starting straight up with traditional coding that is not designed with beginners and kids in mind. Don't throw python, java, C, etc. at them. Let them follow their interests: games, wearables, etc., and learn coding in pursuit of that interest, not force them to learn coding for coding's sake.

No, this isn't the best advice in my opinion. Don't decide for the kid what is for them or what isn't. Let them decide that. Remember, Bill Gates coded at 13 in languages "meant for adults". I personally learned C at 14 from a tutorial that came with a C++ IDE (I had no idea what programming was, I just downloaded the program from the internet). Don't underestimate the intelligence and ability of kids.

<comment><USER14> This. I learned assembly and C at 12. It can be done, because I wanted to.

<comment><USER15> Me too.

I don't disagree with these warm and fuzzy environments for kids to learn, but that existed when I was a kid - logo: [https://en.wikipedia.org/wiki/Logo_(programming_language)](https://en.wikipedia.org/wiki/Logo_\(programming_language\)) \- and I thought it was a joke. It was demotivating and condescending rather than encouraging.

I have a 18 month old, and I don't know the answer yet, but got to figure it out soon...

</comment></comment></comment></comment><comment><USER16> She should get her own computer if she doesn't have one already. How about a Raspberry Pi or two?

<comment><USER17> Or just a pre-owned system from Gumtree. You can pick up a solid ThinkPad with an i5 under £100 easy. I like ThinkPads as they are solidly built and can usually always run Linux without much hassle.

</comment></comment><comment><USER18> Our son is 12 also, and I've been introducing him to programming over the last year, in phases:

1\. We installed Scratch, and let him learn that.

2\. After he got good at Scratch, I installed Love2d and helped him write a few really tiny games in Lua.

3\. Last Christmas we bought him the book "Sam's Teach Yourself Minecraft Modding in 24 hours" by which he slowly learned the basics of Java.

4\. This weekend he borrowed a 9-books-in-1 book for Java which he's using to port his Pong game from Lua to Java in, using a custom JComponent.

That's the order that's working for him. He's well on his way to being able to write things like 2048. Not there yet, but soon.

<comment><USER19> Are you afraid that learning Java is going to kill any passion for programming? If you're only requirement is fun and learning, it seems like Java is not the best choice.

</comment></comment><comment><USER20> Might be best to focus on "tech" that your friend's daughter is already interested in. Tech is too all-encompassing a term without providing additional qualifiers.

For example, if she is interested in how apps work, start with some iOS tutorials and demonstrating a simulator. Or perhaps she has questions about how websites are made, in which case demonstrate some HTML and CSS. Maybe "tech" means a hardware focus, in which case start with the Raspberry Pi or Arduino kits.

In general, the advice would be to dig deeper into what type of technology she's interested in and go from there. Her mom may have classified "tech" as "taking things apart and putting them back together again", which may indicate a more mechanically oriented (and not necessarily electronic/computer) mindset.

I agree with many of the sibling comments that project-based learning approaches especially for hobbies are generally highly successful with inquisitive children and young adults.

</comment><comment><USER21> I'm horrifically biased (I'm getting married to the author in a few months :)) but Adventures in Raspberry Pi seems to get great feedback [https://www.amazon.com/Adventures-Raspberry-Carrie-Anne- Phil...](https://www.amazon.com/Adventures-Raspberry-Carrie-Anne- Philbin/dp/1119046025/) as well as Carrie Anne's Geek Gurl Diaries [https://www.youtube.com/user/GeekGurlDiaries](https://www.youtube.com/user/GeekGurlDiaries)

<comment><USER22> Hope you have a great wedding!

I've heard that "Adventures in Raspberry Pi" is awesome, but I'd also maybe throw in some additional R-Pi based hackery (for music [http://www.instructables.com/id/PiMiDi-A-Raspberry-Pi- Midi-B...](http://www.instructables.com/id/PiMiDi-A-Raspberry-Pi-Midi-Box-or- How-I-Learned-to/) is pretty cool, but it all depends on what she's into!)

</comment></comment><comment><USER23> With girls, its all about giving them confidence. The rest I would say is normal stuff you do to encourage curiosity and learning for children.

<comment><USER24> I agree. When I was 12 year olds, boys were excited about Arduino. They were playing with the LEDs and wires, where as the girls said they didn't want to play with it because it looked "ugly". With the help of friends, we decided to help the girls design and do 3D printing. Then they got excited and slowly started to learn.

</comment></comment><comment><USER25> I though kids how to program and the one we would start everybody out on (unless they already had a lot of experience) was [https://scratch.mit.edu/](https://scratch.mit.edu/) It is basically programming, with out all the boring typing. You can go from zero to making a cat make a sound, in a loop (fully guaranteed to make any adult hate you) in a couple minutes and it scales all the way up to making Mario ([https://scratch.mit.edu/projects/49905542/](https://scratch.mit.edu/projects/49905542/)), but way more discoverable than any "real" language. By the time you can make Mario, you can program for real.

It includes ways to show of what she has made to her friends, but it is not directly social (unless you are sitting more than one person at a computer, which can totally work).

</comment><comment><USER26> My "gateway drug" for getting into programming was web design. I could make this pretty, artsy website where I could share my photos, drawings, etc.

I also was big into fan fiction when I started using the internet in my youth, so it was fun for me to make a website for housing my fan fiction and that of others. The fanfic website eventually got unwieldy to style each story's page separately, so my dad pointed me at PHP: I could use `include` tags to include the same header and footer on every page. Voila, I was programming! Then came MySQL so I could offer filtering options for pairing, rating, characters involved, etc.

So if your friend's daughter is into creative stuff outside of technology, you might have traction encouraging her to combine the two.

</comment><comment><USER27> I have a niece; her mom tried hard to get her interested in piano but made no progress. At the farm one Xmas, I was upstairs practicing the Bach 'Chaconne' on violin. The niece came up and watched. I put my violin under her left chin, showed her how to hold the bow, and she made a sound.

The next day her father asked me, "How much is a violin going to cost me?".

Lesson: Children can get more interested in activities they see adults interested in and liking.

The difference: The girl's mother didn't like piano enough to play it. I really like violin and was working hard playing and practicing it. The Bach 'Chaconne' is not a trivial piece of music, and it's possible to get really involved in it, which I did. Those are all big points.

So, for a girl and computing, first, interrupt some of your hard work at you computer, sit her down next to you, and show her how to do some things. E.g., show her how to type "Hello World" into some word processing program and print it. Show her how to use a Web browser and e-mail. See what else she is interested in, and help her with that.

Eventually get her father to buy her a computer. I suggest a desktop computer in a mid-tower case, with your help, she can assemble herself. Likely install both Windows and Linux.

Get her started on programming, say, in some interpretive language, maybe Python.

Get her a project she would like to do, maybe build her own Web site and use her computer as a Web server.

Get her well into word processing so that she can do better with school term papers and, more generally, practice her writing.

Learning to read in some data, analyze it, and plot it stands to be good for her when she gets into high school math and science.

I have a special suggestion: Get her a really good editor, one with a good macro language. I use KEdit. Except for Web browsing, I by far my most heavily used program is that text editor; I use it for a huge range of things. Good skills with a good text editor are darned good to have.

Take it from there, and, say, report back on what did/didn't work!

</comment><comment><USER24> I volunteered to teach 12 year kids on programming. I found out that teaching through Arduino was the best method. The love seeing their product becoming alive.

I would suggest starting with particle photon and do some mini projects.

</comment><comment><USER28> Female role models will help. So, biographies and this: [http://sheroesproject.com/](http://sheroesproject.com/)

You might also look for resources on the social and emotional needs of gifted. Lots of bright kids wind up "shy." Having spent a bit of time involved in the gifted community and raised two bright kids, I think this is not mere coincidence and some of it is driven by the negative social fallout that tends to come with the territory when people at school figure out you are "smart."

<comment><USER29> Specific role models that may be relevant: jeri Ellsworth, grace hopper, Hilary mason, Jessica Evans, Kira radinsky, Joanna rutkowska, Limor Fried (LadyAda). Just a random list off the top of my head.

* edit: added LadyAda

<comment><USER28> I read Amelia Earheart's bio when I was in sixth grade. It doesn't necessarily have to be women in tech per se, but it helps to be a woman not in the entertainment industry. Most of our wealthy, "successful" female role models are actresses and singers. Sex appeal is a large part of their career and how they make their money. This is very problematic if you want a business career. Looking sexy at work causes all kinds of problems in more conservative environments. I think a lot about the fact that women have basically two models for how to look successful: Pretty women who are often wives or entertainers where highlighting their femininity or sexuality is a big part of it, or trying to dress like a man. In America at least, we don't have a lot of good role models for what successful women in business or government look like.

I think about this a lot and I think this is a big source of problems for women trying to figure out how to make it in business (or government or something other than as entertainers or someone's wife).

Thanks for contributing your list.

</comment></comment></comment><comment><USER30> Saying "tech" isn't much information. What do they want to do?

If it's electronics, buy some starter kits, a good iron, and get them a book on electronics. (Maybe also show them some people like EEVBlog)

If it's computer science, but some computers, get them an internet connection and let them have at it.

Although I always say this: no one will learn unless they have a project they need to do. This is no matter the field. If you're not interested you're not going to learn in the first place.

<comment><USER31> +1 on eevblog. I started watching when I barely learned basic physics E&M and calculus, and now I'm confident that I can tackle all sorts of electronics all thanks to him.

Though I was a highschooler back then and I had so much free time and watched 600+ videos in about 6 months, so not for everyone imo.

<comment><USER30> I'm in college so I'm using it to break from CS to EE. Far better then taking our schools EE classes since I can do it at my own pace and I learn things from someone who is currently practicing in the field (who seems to be quite good at it).

<comment><USER31> In high school, I learned top down--projects first, math second. Now in school doing EE, I do bottom up--math first, projects second. I think having that top down experience in high school was tremendously helpful because I have experience in the entire full stack -- transistors to Javascript.

</comment></comment></comment></comment><comment><USER32> No Starch has some great books for geeky kids/teens in their catalogue: [https://www.nostarch.com/catalog/kids](https://www.nostarch.com/catalog/kids) \-- fun ways to learn programming Python, JavaScript, Ruby and/or Swift, programming theory, electronics and the like. Could especially be fun if she has some friends with the same interests :)

</comment><comment><USER33> I myself started to program at the age of 11. At that time my father bought a book and learned a little Visual Basic, he then got introduced it to me and I was hooked. After that I borrowed an old book he had on HTML/CSS (creating webpages) and after that I started picking up books in the library.

I think that you should try to let her learn to create webpages with HTML & CSS, and then later she could try to learn JavaScript. It's an relatively easy place to start, and you're learning real world skills. I tend to disagree with people who want children to learn "Python Scratch" or other toys that you'll never get any use for.

Theres a lot of resources online (ex. [http://www.w3schools.com/html/default.asp](http://www.w3schools.com/html/default.asp)), and on YouTube. But I will always recommend to start with a good book, the "For Dummies" series is usually very good (ex. "Beginning HTML5 and CSS3 For Dummies").

</comment><comment><USER34> I know that Team Treehouse ([https://teamtreehouse.com/](https://teamtreehouse.com/)) has a student discount that reduces the cost from $25/month to $9.

I think this would be a good option because the courses cover a wide range of topics so she can explore computing/internet basics, different programming languages and other digital tools (Photoshop/Illustrator) before really committing to one technology.

Treehouse also has specific tracks for app, game and web development which provide a structured path to learning the technology which can be good for beginners that might otherwise be overwhelmed.

Safari Books/O'Reilly provides free access to all O'Reilly books and videos for K-12 students. The _Head First_ series books are particularly good for beginners.

[https://schools.safaribooksonline.com/](https://schools.safaribooksonline.com/)

</comment><comment> a-saleh As a father of a two year old daughter, I think I will be trying to figure this out few years down the line :-)

I remember fondly attending a coding course when I was around ~10. It was early 2000, so we used Visual Basic for Applications embedded in Office 97 :-) 5 to 10 kids + teacher. We were writing silly text adventures, and poem generators and then moved onto writing simple games.

Interesting development later on was, that girls in my group pushed for more and more math (I remember proving irrationality of sqrt(2) was a big topic) while boys were interested more in the coding, especially if the output was something visual.

So, remember that tech might be physics or math as well, at least where I come from there were many extra curricular activities I could choose from in this area :-)

</comment><comment><USER35> I'm surprised that only a handful comments mention encouraging game modding.

Modding is advantageous because the feedback is often immediate and tangible -- small changes can result in appreciable results to a game world.

Working with game APIs, assets, and scripting is rarely elegant or academically pure, but the reward of accomplishing a successful mod produce a good incentive to learn real-world 'ugly' APIs. These are the sorts of systems that most people in tech have to interface with every day. By being introduced to these real-world systems early on, there is no jarring transition when arriving from a more learning-based environment.

</comment><comment><USER36> 12 year olds are quite smart. Send them this page and see if anything attracts their interest. It's a bit harder these days than it was 10-20 years ago where there were many less distractions.

I'd recommend showing them "cool" things that use programming. Wearables, small automated things, computer controlled squirtguns, 3d printers, visit a local maker space, etc.

Sure there's many people that self started decades ago and taught themselves programming from scratch with minimal resources. But lets face it, those people are the exception not the rule.

</comment><comment><USER37> I've noticed quite a few young people interested in electronics and computing programming start out with wearable electronics.

They make Arduino boards for wearable projects that run of batteries. The Adafruit blog is quite interesting.

[https://www.adafruit.com/category/65](https://www.adafruit.com/category/65)

[https://blog.adafruit.com/category/wearables/](https://blog.adafruit.com/category/wearables/)

</comment><comment><USER38> [https://www.girldevelopit.com/](https://www.girldevelopit.com/) would be a great place, it's a female centric coding club that is very welcoming. At 12, most beginner coding courses via codecademy or similar outlets are probably within her intellectual grasp. Also, I'd suggest getting your friend to set up a project related to her interests with an end "product" in mind and then seeking out advice on how to build it.

</comment><comment><USER39> She can learn just about anything nowadays from sites like Coursera, edx, and Udacity.

Books like _Realm of Racket_ can be fun introductions to programming that happen to teach some advanced stuff.

Books that the parent's might like are Carol Dweck's _Mindset_ , Barbara Oakley's _A Mind for Numbers_ , and Angela Duckworth's _Grit_. If she shows an interest in mathematics, the _Art of Problem Solving_ books and forums are great.

</comment><comment><USER40> I've been gradually teaching my daughter (7 years old) to code. I've primarily focused on slow, self directed pace (when she has an idea I help tune it to something she is capable of and we do it together). So far the best resources I've had are: 1\. Code.org: The Hour of code and Tutorials using Blocky are hands down the best intro to the basics I've seen. You get through iterative programming up to loops with great tutorials. Blocky also helps when you haven't yet learned to type. 2\. MIT Scratch: Also using blocky but has a great playground in which keeps it focused for lots of things my 7 year old wants to do (she animates Birthday cards, codes little games). 3\. Arduino: So far we've built a few things together. This really takes more work on my part since she is still too young to get all the concepts but the main thing I'm trying to develop with her is that she can approach any of these problems and solve them. She doesn't have to be intimidated by software or hardware. So far we've built a greenhouse opener (servo activated by temp sensor) and we are working now on a programmable clock.

Things I see recommended here but which I personally wouldn't do: 1\. Drop her in to a Linux/Command prompt with a book and ask her to go to town. I think this may work for some folks but I'll wager the success rate would be pretty low as a general solution. Also I disagree that letting a kid walk through man pages or technical books like K&R is the most effective for this age given how many awesome resource there are to get started. Those things can come at their own time when they have an actual problem which requires it. 2\. Don't start on a language other than blocky unless she can type. The typing will come but if you want a clean start and not have her too frustrated with doing the programming while also slow typing I would handle learning these separately. 3\. Let her to go on her own. I'm fortunate (and most people on this site are) to know how to code so this applies only in this case. Its much more motivating her for this to be "our" project where I can help get her unstuck when there is a challenge and its something we spend time together on. I also get to model learning and debugging for her which is hard to learn by yourself. On the flip side though you have to be patient and not be tempted to do it all yourself as the idea is that she learns it all eventually.

Remember the big picture: keep this mind and realize that knowing this is incredibly powerful but at an early age there is so much to learn that keeping it fun and engaging is the best way to have her want to continue to come back to it. Also remember that these kids want to learn and helping them pick up the right tools to help them solve their problems will enable them to do that as an adult.

<comment><USER10> > Things I see recommended here but which I personally wouldn't do

Seconded. Advice on learning tech and science tends to contain a large amount of survivorship bias. A lot of people in these fields had some unusual, unstated quirk in their background that led them to do stuff like read K&R front-to-back while all of their friends were watching TV. It worked out great for them, but it's bad bet to hope it will work for a large percentage of kids.

</comment></comment><comment><USER41> > Anybody got any advice?

Ask the kid and see what her interests really are? Does she want to learn how to make games or what? She should be able to voice this at 12. Can she look up free programming books with Google? There's tons of them. Does she want to mess with a R-PI? If a co-ed camp was a disaster (at the age of 12!) simply because it was co-ed, she might need therapy, not just some hippy-dippy girls- only camp.

</comment><comment><USER42> Find the thing that excites her and encourage it. Whether that's game programming (clone Mario), web programming (clone Twitter), algorithms (implement sorting, path finding, etc), controlling Karel the Robot[0], or something else.

0\. [https://en.m.wikipedia.org/wiki/Guido_van_Robot](https://en.m.wikipedia.org/wiki/Guido_van_Robot)

</comment><comment><USER43> My advice to someone that age is that if the technology is too difficult to learn then just move on to something easier. I wasted too much time at that age trying to learn things that were just too difficult (assembler, etc). Back then though I didn't have access to mentors or people who could suggest more appropriate technology.

I suggest Maker Faire, arduino and raspberry by, wearables, etc.

</comment><comment><USER44> Find ways to foster self-direction, experimentation and facilitate the experiments.

There is enough material for free on the internet. Buy her stuff if its practical though.

But she very soon will need to be self-motivated for her learning and making a living. Encourage her to work on 'real' problems or projects that interest her. Encourage her to work with others as much as possible.

</comment><comment><USER45> Attend a local Maker Faire - There's such a broad amount of creative energy covering every interest, I'd think it sure to spark/fuel any passions. I'm a bit of an introvert myself, but I can't help but talk to folks there about what they're doing and what challenges/triumphs they've faced.

</comment><comment><USER46> * Local Hackerspace is often a great opportunity to meet people, get resources and stuff™.

* Offer her some literature on the general topic of programming, theoretical and/or philosophical books.

* Women-focused events/communities (Lambda ladies, and many others) that will allow her to meet potential _female_ role models, which is very important.

I may forget some stuff.

</comment><comment><USER17> If she wants to do software then Python with one of the many excellent free and non-free books for kids available. Just look them up on Amazon.

If she wants to get into hardware start with a RPi or Arduino.

Also get her running Linux. Start with something simple like Mint or Ubuntu. Teach her how it is "like Windows and OS X" but a bit different. Do some basic command line stuff like making a folder, opening a file, etc.

Setup Minecraft which I would assume she already plays if she likes tech. Show her mods, maybe even a little Java to make mods although I feel Java with its strict OOP and compile/run can be a bit daunting for even an adult so maybe wait until she understands Python a bit.

The main thing is just explore all the different things. Tech is awesome today as if you have a computer you can get so much stuff free thanks to the FOSS community from the OS to everyday software to programming languages to books etc. And little hacker hardware like the RPi is affordable by almost all with a little spare income.

</comment><comment><USER47> Lego mindstorms is outstanding

</comment><comment><USER48> This is a bit dated, but it's a good start:

[http://www.catb.org/esr/faqs/hacker- howto.html](http://www.catb.org/esr/faqs/hacker-howto.html)

</comment><comment><USER49> Just have her do a free online intro to Python course. If she has aptitude it will be trivial yet still meaningful intro to programming. For shyness/confidence, sports would be preferable.

</comment><comment><USER50> Checkout Girls Who Code--maybe they have a summer program near her. It might be geared towards older girls but she might be able to get involved in some of their other events.

</comment><comment><USER51> I'd help her get connected with a mentor / tutor she likes. Having a resource to bounce ideas of and help guide her through tough spots can be very helpful.

</comment><comment><USER52> I learned Python using Codecademy, then I did some fun projects from Python Playground.

Wearable electronics are good; the Make book seems like a good intro to that area.

</comment><comment><USER53> What's she into? If she likes games I'd just have her download Unity and learn C#. Tons of videos, tutorials, and books to choose from.

</comment><comment><USER54> Give her a linux install disk and maybe a few pointers on how to use it as well as a copy of K&R C. I was about her age when I started!

<comment><USER55> Baby steps. Install Arch Linux. /s

</comment></comment><comment><USER56> I'm not specifically qualified in any way to say what's best to get a kid started on computer science/programming is but I believe it's nice to let them take the path how things evolved naturally. If this is too much, (regarding programming) maybe start with C.

I also believe it's good to read CS history. Following article is a personal favorite. [http://www.defmacro.org/ramblings/fp.html](http://www.defmacro.org/ramblings/fp.html)

<comment><USER57> I think Python or any scripting language is better to ease someone into CS especially at that age. It is rewarding _and_ helps to see "Hello world!" on the screen immediately in a line of code as opposed to wrangling with IDES and cryptic messages for missing semicolons.

<comment><USER58> From experience _hello world_ is actually a terrible first thing to show someone in a scripting language since it is pretty much a dead end. Seeing "Hello world!" is not really that rewarding when compared with something like

        a = 3 + 2
        print a

<comment><USER34> Maybe if it's the _only_ thing you show someone but most tutorials will start with _hello world!_ and then progress to variables, string interpolation, expressions through a sequence of:

1\. Try changing the statement print your name.

2\. Having to type the same thing over and over is unnecessary, we can save it in a variable.

3\. You can use variables inside the print statement through a process called string interpolation.

4\. In addition to strings, variables can hold many types of values, including numbers.

5\. Operators can be used to manipulate values. Do some math with the variables.

6\. Receive input and save in variable.

From there you can go to conditional statements, loops and functions.

<comment><USER58> Yeah that is a very straight-forward sequence, however some people just seem to be more comfortable with numbers. Either approach could be taken as long as it is mapped out like you did above.

</comment></comment></comment></comment></comment><comment><USER59> I really enjoyed the Getting Started in Electronics when I was 12. I still have a copy from Radio Shack.

There is a newer version you can buy on Amazon.

</comment><comment><USER60> I'd be happy to donate a Raspberry Pi to the OP for the young lady to use. They _are_ an excellent learning tool.

</comment><comment><USER61> when I was 12 I learnt html/css by making websites based off my favourite interests (sailor moon!) and that taught me html/css and I had a blog of course. Try to relate what she learns to an existing interest.

</comment><comment><USER62> raywenderlich.com if she into mobile. thorough tutorials for absolute beginners with quick outcomes. That will help her create games to showoff/play with her friends. Speaking from experience.

</comment><comment><USER63> Be a resource. At that age both me and my kids used parents as a toolbox (literally), driver, someone to bounce ideas off, last but probably not least a source of cash.

I've noticed that kids do what they want to do, at best you can steer toward a general family of actions. If the adult wants electronics, and the kid wants to learn by playing with MIDI and XLR connectors and semi-pro audio stuff, trying to steer toward raspberry pi isn't going to work unless you're incredibly sneaky, but bringing home a pile of surplus audio gear from work will be pretty well received.

My dad had plenty of money but knew I'd be a better engineer and better artifex in general if I didn't have the most expensive stuff. I'm not saying buy kids junk, especially not safety related which should be top of the line, but I learned a lot more designing and making my own ham radio antennas than I'd ever have learned opening a box and assembling a kit antenna or even worse opening a box to reveal an assembled antenna. You'll never really learn how to take care of (expensive) tools until you're "forced" to use junk tools.

You can learn a shocking amount of good engineering by osmosis, especially with some "pro" guidance. Buy her a broken down motorcycle or dirtbike (if not a car) and have her tear every piece apart figuring out how each part works and where and how its worn and how to use tools and just how stuff works. Tear apart some old VCRs and DVD players (older the better... modern set top streaming boxes are mechanically boring). Take apart at least three traditional desktops and put the pieces together into at least one working, "maxed out" desktop. I disassembled my mother's oven when I was about her age, this is not some weird metaphor either, this was back in the days of mechanical timers and clocks and rube goldberg thermostats that none the less sometimes worked. Every kid should tear apart at least one vehicle transmission and one carburetor in their youth. And talk talk talk, unless the kid learns something about metal fatigue or electrochemical corrosion or how to put out cutting torch fires they're just destroying stuff. Your job is very boy scout adult, chill out other than "no you can't use my cutting torch in the garage, take it outside first" and similar safety violations. All kids like burning stuff although its only socially (semi)acceptable for boys. Notice how I can melt aluminum in that wood fire, but not steel, tell me what that means? If I get one thing across in this post its that kids need to take stuff apart almost as much as they need to build stuff.

I don't know the "tech" SV social media coding equivalent of tearing apart a broken down Honda CBR 150. When I was a kid it would have been breaking copy protection on 8 bit micros which was well within my/our ability. Maybe fun with a packet sniffer or mapping out other people's wifi access points. Maybe replicate a software exploit following the premade instructions for the exploit, then try it on similar software and see what happens.

</comment><comment><USER64> Stay simple and buy her a POSIX-compliant C programming book.

She'll have a server running in no time.

:)

<comment><USER17> Start with Programming in C or C A Modern Approach (although the latter is expensive even second hand) and learn some basic Linux.

Then K&R just because everyone should read it.

Grab C in a Nutshell, Understanding and Using C Pointers and C A Reference Manual for reference.

Then get the Linux Programming Interface book.

Okay maybe a bit overkill for a 12 year old...

</comment></comment><comment><USER65> when i was 12 i spent several hours a day reading RFCs, man pages, and HOWTOs.

</comment><comment><USER66> 12 year olds should be outside playing, not coding.

<comment><USER67> Are you telling me reading technical documentation isn't enjoyable?!</comment></comment>


The true story of America's sky-high prescription drug prices - <AUTHOR> http://www.vox.com/science-and-health/2016/11/30/12945756/prescription-drug-prices-explained <comment><USER2> In the health care market in the US, if you have insurance then your insurance company negotiates drug prices that it will pay. As an insurance customer, you get the lower price, paid partly by your copay and partly by all customers' premiums.

If you don't have health insurance, then you pay the whole price for the drug, and that price itself is higher than the prices that insurance companies pay, because you as an individual have no bargaining power, other than to not buy the drug and die.

As a country, the US has made itself the customer with no insurance, prohibiting ourselves from negotiating a more bearable price.

The article mentions the argument that without high drug prices there would be no incentive to develop a drug at all. And yet, drug companies happily negotiate with and sell to other countries that require negotiation to even enter the market.

I say this over and over: US consumers live in the consumers' paradise of the US, in a similar way that cows live in the beef paradise of Argentina.</comment>


The commitment that changed my career  - <AUTHOR> http://nathanbarry.com/commitment-changed-career/

<comment><AUTHOR> Thanks to the HN community for the support with the previous book launch, and for providing great feedback. As always I'm happy to answer any questions.

What questions do you have about designing web software? I'll try to answer some here, but also in the book.

<comment> mck- Good job - impressive discipline. My wife is working on her first work of narrative non-fiction (she's a journalist), and every few weeks I have to help her reset her commitment to write 1k words a day.

How do you do it?

I'll forward this to her ;)

<comment><AUTHOR> It took me a while to get a streak going. About 2-3 months actually. The time it stuck I just made a serious commitment to do it. Then after getting over 30 days I really didn't want to miss a day.

Good luck!</comment></comment></comment>


Blockstream Satellite API: Pay with BTC via Lightning to Broadcast Data Globally - <AUTHOR> https://blockstream.com/2019/01/16/satellite_api_beta_live/ <comment><USER3> If bitcoin is to be the global currency, it needs more channels to propagate than just public internet. Public Internet is too censorship receptive for system like Bitcoin. Broadcasting the block and tx data to the world via satellite gets us one step closer. Great work Blockstream!

<comment><USER4> Bitcoin, Bitcoin Cash and Ethereum (and probably other coins) all work over SMS. They are actually substrate-agnostic. You can technically deliver your transaction to a node with a pigeon, as long as the node accepts pigeons.

<comment><USER5> You need to process incoming transactions as well. It's inconvenient to receive the blockchain over carrier pigeons.

<comment><USER6> Circumventing censorship is always inconvenient. That is the point of censorship.

</comment></comment></comment></comment><comment><USER7> There is a setup guide by grubles [https://hackernoon.com/building-your-own- bitcoin-satellite-n...](https://hackernoon.com/building-your-own-bitcoin- satellite-node-6061d3c93e7) for linux capable people.

</comment><comment><USER8> Quote from Jeff Garzik about the Blockstream satellite:

> It's cheap to write a check to another satellite provider to do a broadcast > for you. It's a centralized data service, with a centralized [satellite] > provider, and carries plenty of shutdown and censorship risk.

> It's also a great way to centralize everybody on Blockstream's version of > the blockchain, as it appears that Blockstream are the only ones > transmitting (uplinking) to the satellite.

Why is Blockstream being disingenuous about their satellite service promoting it as a path to decentralization when in reality it's a centralized chokepoint?

Also, why is Blockstream actively destroying BTC's value proposition by turning BTC into a settlement layer for the Lightning Network?

<comment><USER5> Wasn't it Garzik who came up with the first proposal to broadcast the Bitcoin blockchain over satellite?

As I remember it he went to far as to solicit donations for the project. There was a lot of articles written about it at the time (Bitcoin! In space!) but nothing ever came of it.

<comment><USER9> You are confusing leasing bandwidth on a satellite with having a bitcoin satellite.

</comment></comment></comment><comment><USER10> Hey look, another interesting idea for blockchain based propagation that will be niche and forgotten in a few months. Cool tech, but ultimately fucking useless.

<comment><USER11> It's still cool though

If civilisation collapsed, as the power grid shut off, sys admins became farmers and ISPs collapsed, satellite ground stations go dark, interstate trade might still be possible through something like this. If it was able to receive messages and payment from unauthorised satellite dishes on the ground rather than through a REST API

Being able to slow the collapse of civilisation, the idea is cool even if not quite this specific implementation

<comment><USER12> No, I think you've severely misunderstood what is going on here.

First and foremost: Bitcoin is completely dependent on the availability of lots of power (for proof-of-work calculations) and network connectivity (to distribute unmined transactions). Without both of these, it cannot operate. Adding satellite transmissions to the picture doesn't change this. In any sort of apocalyptic scenario like what you're imagining, cryptocurrency will be one of the first technologies to become unusable.

Additionally, all that's going on here is that a company is using several commercial satellites to transmit the blockchain, as well as some user- specified data. These satellites do not belong to Blockstream, and are not controlled directly by Blockstream's clients.

<comment><USER13> It strikes me how uneducated people on hacker news still are about bitcoin. In 10 years, people didn't even take the time to inform themselves before posting wrong facts.

>Bitcoin is completely dependent on the availability of lots of power Wrong. Bitcoin can work even if only one nuclear power station remains. The difficulty will adjust to the new hash rate, and as long as no single actor can control more of the nuclear power station than the sum of the miners, double spending isn't a problem.

As for network connectivity in apocalyptic scenario, miners would only have to find a way to propagate data to the satellite, and users would only have to find a way to propagate data to miners. That is a lot less than what the current financial system would demand to function.

<comment><USER14> >the new hash rate

would be 0

<comment><USER13> Given that a 1 square meter solar panel produces 200W, and the energy efficiency of an Ebit E10 ASIC miner is 11100 * 10^6 hash per J, you can compute 200 * 11100 * 10^6 hash per second so no, in an apocalyptic event, the hash rate will hardly be 0.

</comment></comment></comment></comment></comment></comment><comment><USER15> The broadcast is global, the ability to recieve the broadscasts is... uh.... an implementation detail left to the user! (NB: involves satellite dishes)

<comment><USER16> Buy data transmission for an obscure currency, use obscure lightning software to use the obscure currency to pay a company to transmit data to something you need to buy dedicated hardware for. Hapless optimism aside it's hard to see what benign purpose this could possibly be used for.

It's sort of strange to bother with anything custom. Bitcoin signatures have a free, encrypted data channel within ECDSA signatures. You can just broadcast those through the normal bitcoin network without paying Blockstream.

<comment><USER17> This is to be used for areas that don't have access to reliable internet

<comment><USER16> For what, exactly. People keep saying this and having nothing backing up why it could possibly be useful to have a mechanism for receiving broadcast files with a lot of dedicated hardware required.

<comment><USER18> Number stations come to mind.

</comment></comment></comment></comment></comment><comment><USER19> For those wondering about how much the lightning network is actually used, have a look at the stats [0]. Adoption is growing steadily.

[0]: [https://1ml.com/statistics](https://1ml.com/statistics)

<comment><USER20> One of the problems with LN is that, in order to actually receive BTC (on the Bitcoin blockchain) that you can sell, you almost certainly need to go through multiple LN nodes. Due to this, the node in this path with the _smallest_ capacity will determine the maximum amount you can transfer (before needing to touch the blockchain). From the stats we can see that " _Average Channel Capacity_ " is 0.025 BTC/$91.77, and that 50% of channels have a capacity of 0.005 BTC/$18.35, which means the minimum, for any given path, is likely close to $20.

So, in other words, you can expect to transfer, roughly, $20 until you need to touch the blockchain again (in order to fund a channel), which means that sending ~$20 over LN is as expensive as doing it in a normal Bitcoin transaction.

LN doesn't scale because of this. People keep pretending that adding new nodes is a sign of success, when in fact adding new nodes to LN decreases performance -- because the smallest-capacity channel on a path determines how much can be sent through that path until you have to touch the blockchain. If two or more channels in a path need to be refilled, you've spent _more_ on a LN transfer than you would have on a regular Bitcoin transaction (on- blockchain).

<comment><USER21> The channel capacities in Lightning are currently restricted by an arbitrary limit of 2^24 satoshis which was put there by the developers to prevent people from putting too much into what is effectively a beta test network currently. The limit is already scheduled to be removed in the 1.1 BOLT spec.

There are usually many possible paths for a payment, so the payment limit isn't the minimum of any possible node along the route, but the _set_ of all possible routes from one node to another. However, even this is scheduled to be removed, because LN will get Atomic Multi-Path Payments, which will enable a payment to traverse multiple routes and only succeed if all of the routes are successful.

"Refilling" of Lightning channels does not require new on-chain payments - <USER2> can be done directly on the Lightning network by routing payments through paths which require balances moving in one direction or another. You can route payments to yourself to reduce your balance in one path and fill it in another path.

Putting aside large payments for a moment, you're completely ignoring the potential use-cases for small payments. Currently you can make _thousands_ of transactions on the Lightning Network, with fees averaging _hundredths of a cent_. This was possible on Bitcoin in the early days, but clearly cannot scale because it costs money to store and propagate information on a broadcast network. Lightning doesn't broadcast any transactions, and doesn't need to store old transactions. The use cases are left up to your imagination.

If you wish to learn more I recommend reading the BOLT specifications and subscribing to the lightning-dev mailing list.

<comment><USER20> > There are usually many possible paths for a payment, so the payment limit > isn't the minimum of any possible node along the route, but the set of all > possible routes from one node to another.

My main gripe with LN is this: why would I want to route a payment through a bunch of arbitrary nodes (which may or may not process my transaction), rather than just establish a connection with a single node, who I pay to guarantee uptime?

> "Refilling" of Lightning channels does not require new on-chain payments - > it can be done directly on the Lightning network by routing payments through > paths which require balances moving in one direction or another.

If we assume the products purchased via LN need to be paid for in national currency, then on-chain payment _is_ needed in order to refill a channel, since the merchant (payment receiver) will need to withdraw BTC from LN and convert to a national currency in order to pay a supplier. If BTC is withdrawn from LN, then it needs to be deposited again.

If LN isn't supposed to be used for this, then I agree that on-chain transactions aren't needed, but then LN isn't really a competitor to traditional payment networks (since you can't buy e.g. a cup of coffee with it).

> Putting aside large payments for a moment, you're completely ignoring the > potential use-cases for small payments.

I don't think I am. In order for small payments to be of value, it must be possible to receive a lot of them, and LN only supports up to ~20M users per month[1] (while using up the entire capacity of the Bitcoin blockchain).

LN payments have value because they can be redeemed into BTC (on the blockchain). In order for a payment network to be successful, it must be fairly cheap to move value through the economic circle composed of 1) consumer, 2) retailer (merchant), 3) supplier, 4) producer (and then back to the consumer, in the form of wage paid by a producer). The bottleneck of this movement is still the Bitcoin blockchain, and LN doesn't do much to help it, unfortunately.

[1] [https://runeksvendsen.github.io/blog/posts/2017-10-08-no- bit...](https://runeksvendsen.github.io/blog/posts/2017-10-08-no-bitcoin- based-protocol-can-handle-more-than-20m-users-per-month.html)

<comment><USER21> > why would I want to route a payment through a bunch of arbitrary nodes, > rather than just establish a connection with a single node, who I pay to > guarantee uptime?

There are already countless systems to do the latter. You can use PayPal, MasterCard, Stripe, etc, etc. The point of Bitcoin is to eliminate trusted third-parties. Nobody can guarantee uptime, only give you an empty promise. Bitcoin can guarantee uptime isn't tied to any one or few parties.

Bitcoin requires anonymous third-parties to propagate your payments to miners. You aren't an island. The anonymous trustless third-parties who route payments in LN are just regular users, have no access to information about the payment they're routing, and are negatively incentivized to be dishonest, because they have to pay bitcoin transaction fees themselves for any of their own channels they unilaterally close.

> If we assume the products purchased via LN need to be paid for in national > currency, then on-chain payment is needed in order to refill a channel, > since the merchant (payment receiver) will need to withdraw BTC from LN and > convert to a national currency in order to pay a supplier. If BTC is > withdrawn from LN, then it needs to be deposited again.

Again, this is nonsense. Exchanges between fiat and bitcoin can operate directly on the Lightning Network. There's no need to constantly open and close channels. You would send a direct lightning payment to your exchange to deposit money, or you would issue a lightning invoice to your exchange to withdraw money.

> LN payments have value because they can be redeemed into BTC (on the > blockchain). In order for a payment network to be successful, it must be > fairly cheap to move value through the economic circle composed of 1) > consumer, 2) retailer (merchant), 3) supplier, 4) producer (and then back to > the consumer, in the form of wage paid by a producer). The bottleneck of > this movement is still the Bitcoin blockchain, and LN doesn't do much to > help it, unfortunately.

As above, the bottleneck is removed by the consumer, retailer, supplier and producer all being on the Lightning Network.

In situations where a supplier offers a merchant credit, this is an ideal case for plain old payment channels. Instead of offering individual Bitcoin transactions, they can open a payment channel and issue RSMCs when a business invoice is created or paid. Using a plain payment channel is a missed opportunity though - because it can only be used by the supplier and merchant. By connecting that very same payment channel to the LN, opportunities are opened up for both the merchant and supplier. The merchant can make use of the suppliers payment channel network to transact with a wider audience, and vice- versa. They can all save on transaction costs for channel opening and closing by pooling resources which would otherwise be underutilized.

The Lightning Network is fundamentally an abstract protocol for creating and connecting different kinds of payment channels, providing encrypted and authenticated transport, and an onion routed transport for payments. Currently, theres only one type of payment channel it supports, but this is simply down to there being few developers with different priorities.

<comment><USER20> > Again, this is nonsense. Exchanges between fiat and bitcoin can operate > directly on the Lightning Network. There's no need to constantly open and > close channels. You would send a direct lightning payment to your exchange > to deposit money, or you would issue a lightning invoice to your exchange to > withdraw money.

In this world where no LN-transaction touches the Bitcoin blockchain, what's the reason for having a blockchain in the first place?

<comment><USER21> The blockchain provides the security, ensuring that nobody can take funds unilaterally out of a channel. At all times, each party has bitcoin transactions for the correct channel state, partially signed by the channel's counter party, which either party can sign at any time to _settle_ the channel balance on the chain (the settlement can be made to pay automatically into new lightning channels, although this is not implemented yet.)

It is like a credit line that can be closed by either party at any time, with the balance settled automatically by an impartial judge - the blockchain. Without the chain, we'd just have the existing system where you need human arbitration to settle balances if any party disagrees about their balance.

Bitcoin takes individual humans out of decision making about who owns what money. That's its fundamental purpose. We can build potentially any number of transaction systems on top of it, but it is not worth sacrificing the impartiality of the chain just to get a marginal increase in capacity of on- chain transactions. The chain's impartiality depends on the network being so finely distributed that no group can orchestrate control over it. This also requires that participants can be anonymous.

</comment></comment></comment></comment></comment></comment></comment><comment><USER22> Congratulations, Blockstream! Great to see this come online. Will Liquid customers pay extra for this, or is it included?

</comment><comment><USER23> Was satellite communication the goal of blockstream all along or did a random thought/opportunity come around at some point over the last couple years and it appeared like a good pivot?

<comment><USER24> Not even a pivot, IMHO (Blockstream employee here). Just cool infrastructure which may even end up paying for itself...

</comment></comment><comment><USER7> btw you can see the sent queue and send messages here [https://blockstream.com/satellite-queue/](https://blockstream.com/satellite- queue/)

<comment><USER25> Yeah, but does it support tabs?

<comment><USER26> For context this is Adam Back who said that instead of raising the block size to avoid the ridiculous fees we should instead use tabs.

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

> So I mean for today, You could have, some bitcoin business have a tab, so > you pay them and you work your tab there and presumably you can cash your > tab out if you don't use it. If you have repeat custom... or maybe the shops > in the local area could make a shared tab or something in anticipation of... > you know somebody in the local area ... technology expert could make a local > bitcoin tab that's interoperable between the shops and some sort of app to > do it.

</comment></comment></comment><comment><USER27> for some reason this strikes me as spectacularly unnecessary

</comment><comment><USER28> So this seems useless for payment, but here is the real hidden interest:

You can send a file up to 10Kb, and pay for byte sent.

It's cheap, coast looks to be $0.0035 for a 5Kb file.

The receiver can get the file, encrypted, without internet, using only a SDR tv card, amplifier and antenna, worldwide, in 10 minutes.

I see there large possible applications!!!

[https://blockstream.com/satellite-queue/](https://blockstream.com/satellite- queue/)

[https://github.com/Blockstream/satellite#hardware- requiremen...](https://github.com/Blockstream/satellite#hardware-requirements)

[https://blockstream.com/satellite-api- documentation/](https://blockstream.com/satellite-api-documentation/)

<comment><USER16> Name even one application.

<comment><USER28> You are not much into electronics as I can see.

<comment><USER16> You still haven't managed to explain an application, with all your imagination.

</comment></comment></comment></comment><comment><USER29> I wonder why they're using SDR instead of a standard like DVB-S2.

<comment><USER7> We tried to keep the equipment cost down, to support emerging market. Reusing existing 45cm/60cm TV satellite dishes is part of it. The usb SDRs cost $10-15 on ebay.

<comment><USER30> Was this the motivation for keeping blocks small then? Also, don't you need duplex links to run a node?

<comment><USER21> It's one of many reasons to keep blocks small. Ability to send over many kinds of restricted bandwidth mediums, including the Tor network is part of it. Other concerns are bandwidth caps/monthly limits, storage costs, validation times (which affect negatively affect miners).

Some other hardforks of Bitcoin which promoted themselves for having bigger blocks, have had examples where block validation times have exceeded the average block mining time of 10 minutes. Obviously not suitable for running on a Raspberry Pi.

Bitcoin depends on its network being widespread and diverse. Any increase in the requirements to run node will create centralization pressure which does not help. The goals of big blockers are to have just one or a few big data centres hosting bitcoin and everyone else connecting to them. We already have PayPal for that.

<comment><USER26> > Some other hardforks of Bitcoin which promoted themselves for having bigger > blocks, have had examples where block validation times have exceeded the > average block mining time of 10 minutes.

Such a ridiculous counter argument.

The only fork that had a long propagation time was when BSV produced > 100 MB blocks. Note that I say propagation time and not validation time caused by them not propagating transactions before including them in the block. Which __everyone __told them was a bad idea as the software wasn 't optimized for it yet.

But using it as a counter argument against moderately larger blocks than 1 MB, like 2 or 8 MB, just stupid. Instead we should just accept insanely large fees and wait for LN which may never be a suitable replacement.

> The goals of big blockers are to have just one or a few big data centres > hosting bitcoin and everyone else connecting to them.

No. The goal of big blockers is to scale on-chain and to allow people to run full nodes if they want to. Not to have it work on the crappiest hardware you can and kill adoption. It's a realization that most people won't run full nodes as they want to use their phones as wallets.

SPV wallets provide enough security for mobile phones with only having to trust that the POW system works. In reality only exchanges and other businesses have a need to run full nodes.

I could for example easily run a full node with full 32 MB blocks today with my current hardware. I would just have to upgrade my storage occasionally for a minor cost. It would amount to 1.7 TB per year which costs less than $60.

> We already have PayPal for that.

 __Even if __only two data centers hosts full nodes it would still be better than PayPal. Better update your anti big block propaganda to use actual facts.</comment></comment></comment></comment></comment>


Growing Rails Applications in Practice (eBook) - <AUTHOR> https://leanpub.com/growing-rails

<comment><USER2> Ooh, this is relevant to my interests.

(So for those of you who don't know, this is the team behind RailsLTS. I like them a lot but didn't know this was coming down the pipe.)

One thing which I've been regretting recently is that I only have exposure to 2 Rails codebases other than the Rails project itself, and as I'm the sole engineer on them, they're... well, awful. I hit the wall somewhere in the 10k or 20k LOrubyC region, and all the "A place for everything and everything in its place" pre-baked Rails architecture decisions started... I don't know if breaking down is the right word, but it became increasingly obvious that I was doing things the software did not want me to do. To avoid certain controllers having 100+ methods I broke them into subcontrollers, used metaprogramming magic to route them all together, etc. I've got about a dozen mix-ins in my Account class (with "helpful" names like Subscriptions, Analytics, Status, etc, such that I can never remember where Account#is_terminated_for_nonpayment? resides). I use way too many hacks to get e.g. a change to app/models/accounts/analytics.rb to re-run both the account and analytics tests.

Looking forward to this book, and to any other resources from teams which built Rails applications that started to do a bit of heavy lifting. My experience at my old company is a lot of it is just organic knowledge at places which have 10+ engineers working on the codebase for 5+ years, but unfortunately I've never been in that sort of environment in a Rails shop (and, ahem, may never have that opportunity).

<comment><USER3> Dear makandra: I bought the book on account of this comment. Read about half of it and love it already.

But why is this the first time I heard about the book?

<comment><AUTHOR> Hey Lorenz. Really glad you're enjoying the book!

We're just starting to get a some visibility internationally, which might explain why this is not all over Reddit and HN already.</comment></comment></comment>


How to link Australian iron with Marine le Pen - <AUTHOR> http://blog.mpettis.com/2014/10/how-to-link-australian-iron-with-marine-le-pen/

<comment><USER2> TL:dr China has hit peak growth in the medium term and the world needs a new growth engine in India or Africa if the west wants good times to continue. This could happen via western investment but is not overly likely as theses markets are considered high risk for private funds.</comment>


Ask HN: List of Engineering Blogs by Startups. - <AUTHOR>

Anyone has a comprehensive list of engineering blogs by startups? <comment><AUTHOR> <http://engineering.twitter.com/> <http://engineering.foursquare.com/> <http://engineering.tumblr.com/>

To name a few... know of one, please help add.. Thanks.

</comment><comment><USER2> Etsy - <http://codeascraft.etsy.com/></comment>