Jack Of No Trade - <AUTHOR> http://hery.ratsimihah.com/2013/04/11/13-jackofnotrade.html <comment><USER2> I've noticed that there are two kinds of "makers" who get stuff done.

The first kind learns and learns deep. They are spooky good at it. They'll latch on to something and then follow it all the way down to its roots, learning it in tremendous depth to the point that their skill in it seems almost supernatural. After all of this, they say to themselves "now what can I build with this?" (Or find a place where an employer tells them this).

The second kind decides what they want to build _up front_ and then pursues wide and varied avenues of technology on the path to this destination. They often have fascinating slivers of depth in certain areas but lack that magical seeming deep domain knowledge. These are the people more likely to identify as "self taught" with all of the downsides that come with that. They make up for this with ridiculous determination and a kind of sixth sense for what is possible if you try hard enough. Everything they know, they learn on the path to the destination.

Both can accomplish amazing things. You'll never hire one of the second kind. The second just isn't going to be able to show you pointer arithmetic on your whiteboard in your pet language.

<comment><USER3> I completely agree with you, and I find myself in the 2nd camp.

I'm curious about why you say "You'll never hire one of the second kind"?

How does one of the second kind fit into the world as an employed developer? This is something I'm struggling with currently.

<comment><USER2> The point was that current interview processes have no mechanism for measuring the second sort of individual. They don't have a way to measure tenacity and the uncanny knack of discovering the best way to do something when starting from ignorance(1).

tl;dr: A Google-like company would not have hired (someone like) Woz.

 _(1) Its double-hard because there are no shortage of people with tenacity who have the knack for doing things in a terrible way over and over. They all think they're in the former category._

<comment><USER4> I find Github has helped with this problem a lot.

<comment><USER2> I actually think this is the solution. Nothing would be more impressive than a python project that started out as a "c++ witten in python" project that barely worked but then evolved into a well managed project full of best practices in a matter of weeks.

I'd hire that person to do nearly anything. Sadly, not many interview processes are hip to github yet.

</comment></comment></comment></comment></comment><comment><USER5> I can't speak about programming specifically, but for more general system engineering/administration I think I fall in this category and it has yet to hurt me.

I've had an interview or two over the years in which I surely lost out due to my inability to rattle off some bit of trivia about one thing or another, but it's probably for the best.

1) If the job was really so narrow that such a specific, rote depth of knowledge mattered I'd probably find it terribly boring.

2) If the interviewer is willing to write me off based on canned questions without actually conversing with me - the place where I feel I shine. I probably don't want to work for/with him/her.

Yes, there are surely exceptions to this, it's not a hard and fast rule, but as I said above it has worked out fine for well over a decade now.

</comment><comment><USER6> It depends on the nature of the problem, but you are actually very solid with language skills (you know at least 4 or 5 different languages with sufficient skill that you can develop subtantial apps with them and not trip over yourself in language minutiae) it might not be a bad idea to gently twist the truth, assuming you can pass the technical tests.

Lest anyone think this is unethical, do remember that the large majority of job postings are made by people who ask the impossible (a level of experience in new languages that basically make it accesible only the language developers) or the irrelevant. Use your own criteria to determine when this makes sense.

</comment><comment><USER7> I am facing a similar problem as the author.

I work at a newspaper and since I've been here (8 years now, I'm 28) I have learned some skills:

* Advertising Design(Print and Online Ads) * Layout Design * HTML * CSS * Some JS * PHP * mysql * Currently teaching myself Python * Online Advertising (Booking Campaigns)

I know how to do a lot, I just don't feel like I'm good at any of it. This is where I feel Jack of all trades (master of none) is an insult rather than a compliment.

Like the author I feel that if I apply somewhere else my skill level might not be up to par. It really is frustrating.

<comment><USER8> Been there. Maybe this: <http://en.wikipedia.org/wiki/Impostor_syndrome>

<comment><USER9> I second that emotion. It can happen very easily (well, it did to me) if you're feeling "down" or particularly unsure about the future.

And yet, why would we need to be "Master" of anything?

One thing struck me in Hery's post: He did things. He accomplished. And many of these things he seemed to enjoy doing. How many of us here, with our fancy degrees and self-taught knowledge have lots of projects "on the side", always thinking "I'll do it when I got time" but never actually DOING anything? Like kids in front of a box full of LEGO, rummaging through the pieces, putting two of them together then going through it again,... In this age full of distractions (let's look at your reddit karma again, and are you sure your inbox is empty? maybe someone tweeted something interesting in the last five minutes), the value of your knowledge ain't "jack", your value as a developer lies in what you can accomplish.

Don't mind the bullshit job offers asking your for "ten years in java, 20 years in ruby and 50 years in BASIC (knowledge of COBOL a plus)", most companies would KILL to have someone as devoted (and versatile) as you.

Keep on!

</comment></comment></comment><comment><USER10> 2nd year college student here--it feels that the structure and organization of coursework at many schools (including mine) seem to encourage this kind of learning. Projects that may seem technically involved but end up being a race to Google are common. Our school year, like those of many other schools is built around the quarter system. Quarters are ten weeks. It's not uncommon to be doing completely different and unrelated from week-to-week, and my first CS undergrad lab course was a good example of this kind of structure. One week you're doing bash scripting, the next week python, then you learn some basic git, rudimentary multithreading in C, and so on for 10 weeks. You'd hammer out an assignment only to forget the details of what happened days, maybe hours later. By the time the final rolls around you wonder how anyone would survive this course without the Internet or if we weren't allowed to bring copies of our notes and past code for the exam. Each assignment is a mad dash to learn just what you need to finish.

Of course, even with such brief bursts of effort, you can "relearn" quickly by consulting various references and refreshing your memory, but it becomes difficult and scary to imagine what life would be like if we couldn't look up whatever we needed.

<comment><USER11> "scary to imagine what life would be like if we couldn't look up whatever we needed"

It'd be scary to work out math problems without pen and paper. It'd be scary to cross over the amazon without an airplane. Applies to every tool you use.

I'd like to think of Google as my secondary memory (HDD?). All I seem to have is RAM.

</comment></comment><comment><USER12> The choice isn't necessarily between:

1\. dabble in everything and master nothing

OR

2\. Specialize in one thing and never touch anything else again.

There's a bit of a middle ground. Have one (or two, or three) things you specialize in and develop great depth, coupled with a tremendous breadth of general knowledge of related things.

You could strive to be a "generalizing specialist" as they say[1] or a person with "t-shaped skills"[2].

"T people" are very highly valued, in at least some contexts[3].

[1]: [http://www.agilemodeling.com/essays/generalizingSpecialists....](http://www.agilemodeling.com/essays/generalizingSpecialists.htm)

[2]: <http://en.wikipedia.org/wiki/T-shaped_skills>

[3]: [http://chiefexecutive.net/ideo-ceo-tim-brown-t-shaped- stars-...](http://chiefexecutive.net/ideo-ceo-tim-brown-t-shaped-stars-the- backbone-of-ideoae%E2%84%A2s-collaborative-culture)

<comment><USER13> I agree. I heard Donald Knuth endorse in an interview the notion of Thomas Huxley that one should "try to learn something about everything and everything about something".

</comment></comment><comment><USER14> This is a failing in job interviews in my view - selecting for skills that might not matter in practice. If you can build decent working code by Googling stuff as you go along (I know that approach works for me at least, besides the poster), there must be some real value to that which interviewers are missing.

<comment><USER15> It (usually) isn't a binary decision as to whether or not a candidate adds value to the company, but rather a decision on whether or not the candidate adds more value than the other candidates interviewed for the job. Given the choice between someone who can code sans-Google and someone who needs to constantly copy-paste from Stack Overflow, I'll take the guy or girl who can code on their own.

Of course, this doesn't mean I think programmers shouldn't use Google or Stack Overflow, I use them all the time. However, the specifics of what you're Googling matter a lot. If asked to implement a Red-Black Tree and you have to Google that to get an idea of what it is (or to refresh your memory) that's one thing, but if you have to Google basic loops or "FizzBuzz level" basic discreet logic constructs to implement simple code, then that's a huge problem.

</comment></comment><comment><USER16> In my experience, technical questions aren't usually language-specific per se. Instead, they focus on algorithms & data structures. Are you getting a degree in Computer Science? If so, you should be pretty well-prepared for technical interview questions already.

AI and Machine Learning are very interesting fields, but you need a deeper understanding of CS than you do for mobile/web development. Just out of curiosity, are you familiar with what a state-space search is, and the difference between breadth-first and depth-first?

edit: FYI, I'm also C.S. major graduating this semester. I consider my interests to lie in AI and ML as well. I've not had any trouble with technical interview questions.

<comment><USER17> Author is applying to wrong companies if he is getting lots of language- specific questions. The right kind of company for him is probably one that is looking for smart people who can program and not for Java jockeys.

</comment></comment><comment><USER18> My experience with technical questions during interviews is that they did not need a deep understanding of any particular technology. Instead, they mostly rely on some knowledge of algorithms and data structures. Almost all of my coding questions came from the following classes I took at MIT: Intro to Algorithms (6.006) Design and Analysis of Algorithms (6.046) Mathematics for Computer Science (6.042)

Take some version of those classes (maybe OCW, edX, or Coursera) and you will be good to go — at least for technical interviews. If you like reading then Introduction to Algorithms by Cormen, Leiserson, Rivest, and Stein is the book that these courses cover.

<comment><USER19> Listen to this guy. Most interviews (even technical ones) don't dive that deep at all. Lets be honest, its just like your college courses. They just touch the high-points on the surface of the subject.

Try this experiment: ask someone in school who just finished a hard-sounding class (that you haven't taken yet) to interview you based on knowing answers to things they learned in class. It should sound mostly greek to you. From your perspective, you don't stand a chance of knowing the answers. But, now you know that the delta between not knowing and knowing is one semester, or if you're brilliant, two nights of cramming.

My point is, there is very little delta in what is required to prepare for an interview and what is required to prepare for year-end exams in any given subject. You don't need a lifelong working knowledge of theory. You need enough immediate knowledge of algorithms to get you past the meat-grinder. Remember how you crammed in college? You can get by most of the time by cramming hard for the interview. Also, you get partial credit for thinking out loud about the answers you're considering giving, if you're anywhere within a mile of the correct answer, the interviewers will likely give you a passing grade on the question.

Once you're inside, most of those challenging questions, well, they'll likely never come up again. Just like the stuff you "learn" in college.

Source: In my previous life, I was part of a team of developers who interviewed people for technical positions. We were mean, ruthless interviewers. I've also been through the meat-grinder myself a few times.

</comment></comment><comment><USER20> The good news, and perhaps also the bad news, but in your chosen context the good news, is that Javascript, Python, Ruby, and to a lesser extent, Objective-C, are all essentially the same language. You're probably not as split as you think, and if you are going to stick within that paradigm you at least have perspective relative to someone who only knows one of them. You are right that you should really learn one of them deeply, but it hardly matters which, and a great deal of the deep knowledge will transfer fairly well. (Again, Objective-C being the odd man out a bit, but still in the same broad family.)

<comment><USER21> It's more the ecosystems than the syntax and semantics.

Bundler, gem, pip, npm, blah blah blah. It's a lot of stuff to grok if you want to get anything done in the 'right' way.

<comment><USER20> It seems to me that there's a developing consensus even in the deployment ecosystems. Everybody's growing towards what I might call a file-system- virtual environment per application, so you don't get conflicts in the "core" OS, automatic dependency management, etc etc, and it seems like the libraries grow ever closer to each other. What is one year some bizarrely-awesome library in one particular language is two years later copied in all the others. (Which is a good thing.) That whole family of languages is all headed for the same basic local optima, which is the bulk of why I would claim they're all essentially the same language.

</comment></comment></comment><comment><USER22> To the contrary, I think this sort of broad experience is excellent to have at the beginning of your career.

I'll admit I'm a little confused, as my entry-level interviews never involved any questions about language or API trivia. If I had to write code, I could do it in any language I wanted and was comfortable with. And sometimes I wouldn't even have to write code, just discuss a problem and potential approaches. The solutions would never depend on library-specific knowledge.

<comment><USER23> > I'll admit I'm a little confused, as my entry-level interviews never > involved any questions about language or API trivia. If I had to write code, > I could do it in any language I wanted and was comfortable with. And > sometimes I wouldn't even have to write code, just discuss a problem and > potential approaches. The solutions would never depend on library-specific > knowledge.

Then you were lucky. A lot of interviewers can't get that far.

</comment></comment><comment><USER24> I started with Assembly Language moving on to C/C++ for hardware programming. Then came Actionscript and PHP followed by Java. Got a job, they told me to be a Javascript, HTML/CSS guy. The next one asked me to do Python, C/C++, Java all at once. Left job, released a game written in Lua. Went back to work for a startup in Java(Android) and Python. I did that for 6 years(college included). When I started working on my own startup(bootstrapping alone), and was in the exact state of mind as the author. "Well, fuck. I am average at almost everything I know." 8 months later my language skills have still not changed much, but I have found out that I can architecture projects better than my peers. Almost magically I somehow pick the perfect module for my project. I suspect that ability has developed by tinkering with different frameworks and languages over time. I still wish I had the freedom to be an expert at one. But in life you don't always get what you want. At-least now I have the ability to handle the technology stack of my startup alone i.e Golang, AngularJS, Android and iOS. It's not ideal but works out.

</comment><comment><USER25> Work through the latest edition (4) of Sedgewick's Algorithms book and do the algorithmic challenges on Interview Street.

This will fix the problem of having a wide range of hacker skills and a portfolio of projects but not being able to make it through a Google inspired interview.

There's probably a Coursera or OCW course that might help but the key is you have to actually do the exercises.

<comment><AUTHOR> This sounds good, thank you!

</comment></comment><comment><USER26> College is not the time to worry about spreading yourself too thin. It may seem like you're all over the place, but this is all just a drop in the bucket compared to the professional work you will do in the future. Most jobs will give you an opportunity to hammer away at the same code base for an extended period of time, and this experience will be far more valuable than doing a bunch of one-off projects in the same language simply for the sake of mastering said language.

In short, I think you're doing it right and will end up better off than someone who focused on one language because that's what companies appeared to want.

</comment><comment><USER27> Great work!

I have two suggestions:

Build an application in Clojure and in C/C++. IMO you should try a functional language (doesn't have to be clojure) and a lower level language. It could be a clojure webapp and a C++ opengl game... doesn't matter.

Here's something to get you started: <http://nehe.gamedev.net/tutorial/lessons_01__05/22004/>

I wouldn't worry about specializing just yet, just keep doing what you're doing, just up your difficulty level. Already you've done more than 50% of the programmers in the market (most know one language, like Java or C#).

</comment><comment><USER28> In my experience, I have found that I needed to take a step back and focus on a solid foundation of technical knowledge that is totally language independent. After that, you can go back in and layer in how different languages might help/hinder you in particular situations.

Much of my education was from a "get cool shit done" perspective, and I did. I had solid projects in an array (no pun intended) of languages but lacked some of the true, lower-level knowledge as a foundation.

Your mileage may vary, of course, but if I could start my CS education over again, that would be my advice to... myself..

</comment><comment> wes-k Using the analogy of spoken languages ( a stretch I know ), I'd say there is a big difference in knowing enough to get by when traveling vs being fluent.

When a company is hiring, would they rather hire someone who can get by or a fluent speaker?

I think there is certainly a breath and depth balance to be had and I think you are correct in seeking more depth. A deep understanding of one language will allow you to more quickly gain depth in other languages.

And have fun!

</comment><comment><USER29> I have been thinking this myself recently, and contrasting how difficult it is being a founder (which pretty much requires a jack of all trades skillset), versus being employable until you can support yourself long enough to risk not having a job for a while (god damn student loans).

It is really tough to strike a balance.

</comment><comment><USER30> Alex Krupp has laid out an elegant solution to this problem:

[http://alexkrupp.typepad.com/sensemaking/2012/09/program- abo...](http://alexkrupp.typepad.com/sensemaking/2012/09/program-above-and- beyond-your-actual-ability-by-using-freemind.html)

</comment><comment><USER31> You are a perfect fit for advertising agencies with digital departments. They usually need a jack of all trades. One who can build simple html/css sites, write Javascript, iOS app development and even backend development for larger campaigns.

</comment><comment><USER32> Given that the poster says "my ultimate goal is to build a general artificial intelligence" I'm not sure that facility in any given programming language (or the lack thereof) is the poster's biggest problem.

</comment><comment><USER33> You are on the right track, keep going!

</comment><comment><USER34> next you will use Scala and PlayFramework2 and host it on Clever Cloud :-)

</comment><comment><USER35> Here's the answer to all your worries: The Sex Pistols.

Yes, the punk band. Those misbehaving misfits that couldn't play their musical instruments and yet went on to change music forever.

The Sex Pistols succeeded with barely a shred of skill or talent because they were on a mission and executed it with ferocity.

No talent is required to make a difference. Just piss and vinegar and a grand vision. The Sex Pistols prove it.

<comment><USER36> It's a nice story, but for every Sex Pistols there are a bajillion other talentless bands who executed their vision with ferocity and never went anywhere.

This is assuming one accepts your definition of talent. Is it true that they had no talent? If they couldn't play their instruments, sing, or write lyrics, why did anyone listen to them? There had to be something there. If anything I might say it requires substantially more talent to overcome an utter lack of skill in order to excel.

Also, all else being equal, additional skill or talent won't hurt.

Bottom line: the stories you hear about people who go from nothing to incredible success are outliers. I think determination is absolutely underestimated relative to raw talent, but that determination should be leveraged in service of developing skill and/or harnessing talent, not in lieu of skill or talent.

<comment><USER35> Frontman Johnny Rotten did eventually get good at singing, but he made history and a million bucks along the way.</comment></comment></comment>


Prove Product Market Fit: Practical Guide to Go from Ideation to Landing Page - <AUTHOR> https://hackernoon.com/1-from-ideation-to-landing-page-9cf690afba32 <comment><USER2> That's a pretty handy guide indeed! Good job guys!</comment>


Ask YC:  Seeking feedback on Numbrosia's successor:  Wordrosia (work in progress, but playable) - <AUTHOR> http://www.grappa.univ-lille3.fr/icga/phpBB3/viewtopic.php?f=2&t=26

<comment><AUTHOR> I'm especially interested in a puzzle where strong human players can be competitive with strong computer players. How difficult would it be to create a strong Wordrosia computer player?

BTW, even though Wordrosia is playable, no checking is done to see if your submitted words are valid English words yet.

Moreover, the database may be cleared at any time and will be cleared when the puzzle is mostly done (in a week or so).</comment>


Xyzzy (& Erik Naggum) - <AUTHOR> http://perpelle.wordpress.com/2010/05/12/xyzzy/#more-654 Asked for the woman who wrote about Erik Naggum in a submission yesterday for pictures of Xyzzy, here they are. <comment><AUTHOR> It's always nice to put a face on a name...</comment>


Avoid Analysis Paralysis by Experimenting - <AUTHOR> http://sam-koblenski.blogspot.com/2015/06/avoid-analysis-paralysis-by.html

<comment><USER2> The problem is analysis paralysis usually strikes because you have to make a decision today which have profound consequences a long way down the road.

For example, if you're deciding between Ruby and Go, it's a choice between things like a more extensive gem library vs not having to rewrite the code to achieve scale. Those are things you can't test in an experiment, but they're choices your future self will have to live with.

That's why I believe it's good to just have a rigid flowchart when making technical decisions of this nature. The time to make or modify the flow chart is not the same time as when you need to make a decision. Later, once the product is off the ground, play around the edges with new technologies and use those learnings to modify the flowchart. This, to me, was the best way to avoid analysis paralysis.</comment>


Openwrt 18.06.2 released - <AUTHOR> https://openwrt.org/releases/18.06/notes-18.06.2 <comment><USER2> Openwrt is so nice. Despite small teams and budgets, they power so many routers and are also good at research and new features. The sqm/fq_codel stuff alone makes it worth running openwrt. If you are not familiar with it, go to dslreports.com and run a speedtest. If you get a poor bufferbloat score, openwrt can help. A lot of vendors (even big enterprise ones) use openwrt builds for their products, but don't provide updates, documentation or sources to their customers. You'll see a lot of devices running old openwrt in the wild.

<comment><USER3> After getting my TPlink router bricked and not having soldering skills for Serial UART. I got fed up and built my own router which never gets bricked:

I bought Orange Pi3 (38 USD) from AliExpress.

Orange Pi 3 H6 2GB LPDDR3 8GB EMMC Flash Gigabyte Ethernet Port AP6256 WIFI BT5.0 4*USB3.0 Support Android 7.0, Ubuntu, Debian [https://s.click.aliexpress.com/e/bfPcZFXS](https://s.click.aliexpress.com/e/bfPcZFXS)

It has Gigabyte ethernet Port and USB3 capable of delivering 5gbps. (Superspeed Mode)

And I bought 1300mbps WiFi dongle (15 USD) from AliExpress:

CF-WU782AC USB 3.0 1300Mbps Network Card Wireless WiFi Adapter+Dual Antenna High Speed 5Gbps Net card [https://s.click.aliexpress.com/e/cGawgQRQ](https://s.click.aliexpress.com/e/cGawgQRQ)

I used this to build a router. Setup Hostapd + dnsmasq

Alternatively run Pihole and your custom iptable rules

I get around 900Mbps (5Ghz AC network) on WiFi to all my rooms.

Build your own router!

Why do you guys still buy overpriced routers? What advantage do you've over my custom built one?

<comment><USER4> This is a provocative comment although it begs the question:

Can you easily run OpenWRT on Orange PI 3 immediately after purchase?

If not, I think that could be a factor in why someone might pay more. They might want to leverage the work of OpenWRT developers.

I too recently picked up another pocket-sized SBC with Gigabit Ethernet. Compared to Orange Pi 3 it has two additional Ethernet ports, better antennas (no dongle needed), more TF card storage (128GB vs 64GB), well-tested OpenWRT support and everything to build from scratch is on Github. Like Orange Pi 3 it uses U-boot and one can easily recover from accidental bricking without opening it up.

Also has customer support, automatic updates and an additional GUI which are not things I needed but probably increased the price.

Orange Pi 3 has a GPU, HDMI port and jacks for audio and composite video. Is the buyer intending to "build a custom router" paying for specs she does not need?

What is the estimated power consumption for Orange Pi 3?

What are some examples of "overpriced routers"?

Imagine for the sake of argument we posted specs for various SBC's here without giving the "brand name" and let readers bid on what they would be willing to pay. Assuming readers could not see each others' bids, how widely would the bids vary?

Is each spec worth the same to each buyer? Do all buyers have exactly the same needs?

<comment><USER5> > _I too recently picked up another pocket-sized SBC with Gigabit Ethernet. > Compared to Orange Pi 3 it has two additional Ethernet ports, better > antennas (no dongle needed), more TF card storage (128GB vs 64GB) and well- > tested OpenWRT support._

What is it that you purchased?

<comment><USER6> I had the same reaction. This was one of the strangest omissions. I was certain there was going to be a neat plot twist at the end...

<comment><USER7> I like GL.iNet routers: small, inexpensive and come with OpenWRT. I was very happy with my AR300M until it started getting unstable after a few months: need to hard reboot it every couple of days. Not sure if I'm unlucky or if it's inherent to inexpensive routers.

</comment></comment></comment></comment></comment></comment><comment><USER8> The new release still works fine on a TP-Link TL-WR1043N/ND v1 (32MB RAM, 8MB Flash). This is an old router I got from the local reuse center for $10 a few years ago. It can handle a 100 Mbps fiber connection fine and has 5 gigabit ports. Thanks Openwrt !

</comment><comment><USER9> Personally, I prefer to use each platform for their strengths.

I was looking for a good router which could handle high VPN speeds, while still being usable. I found for 50 bucks on ebay a "thin client" which sported an AMD cpu with AES hardware acceleration, and a PCIe socket to put an Intel 2xGBit PCIe card I had lying around. Installed pfSense on it. Works flawlessly. Use few watts (because thin client).

I then found for 50 bucks on ebay a Ubiquiti Unifi AC.

I haven't messed too much with it actually, because I find crazy you need to install a whole Java suite with Mongo and everything to just run the Unifi Controller to be able to configure a bit the Unifi Access Point. I'm considering putting OpenWRT on it. Though I think I will still try this Unifi Controller, because of the advanced guest capabilities, which is still not as good on OpenWRT.

And then I bought a Ubiquiti Nanostation AC for a Wifi bridge.

For this one, I indeed replaced official firmware with OpenWRT because I can't stand that Ubiquiti makes standard Wifi unusable to push their "Air" technology. I want standards before anything else.

In the past, I "resurrected" cheap TP-Link MR3420 I had for an other project, which were bricked. Amazing that after all those years, I could still reuse hardware thanks to opensource software !

So yes, a BIG thank you to OpenWRT developers ! If any of you are out here, please receive my gratitude =)

</comment><comment><USER10> For people Wanting a cheep router to run OpenWrt look on ebay for TP-Link C7 or WD-N750 The N750 is not AC tho. All my routers can run SQM on my internet and it is 220 down and 12 up.

<comment><USER11> I'm not too sure about my Archer C7 (v2). My internet connection is 400/20 and I only ever see 250-265 max down, via Ethernet.

I need to disconnect everything and go direct to the modem but I really think the C7 just can't handle it. Running DD-WRT with a modern cable modem.

<comment><USER10> Hi your c7 will not do thoes speeds with SQM the cpu is not fast enough. If you are running OpenWrt 18.06.2 you can use softwair off loading. Go to firewall and tick the box for it, but make shure you disable SQM first and it will get full speeds.

</comment></comment></comment><comment><USER12> Anyone know a decently priced router with 802.11ac and hardware encryption that can run OpenWRT? I currently have an TP-LINK Archer C7 with OpenWRT but VPN performance is abysmal. I don't know if my router has any hardware decryption (I would assume not) but if it does OpenWRT can't use it.

<comment><USER12> I just found out that the Archer C7 now has support for both Qualcomm SFE and hardware decryption. No official builds yet (all official builds for the C7 are based on kernel 4.9 while SFE requires 4.14), but I found this: [https://github.com/gwlim/openwrt-sfe- flowoffload](https://github.com/gwlim/openwrt-sfe-flowoffload)

For me the speedup with SFE is almost x2, haven't tried hardware encryption yet.

With this, I would say the C7 is an excellent router for OpenWRT.

</comment></comment><comment><USER13> Couple of weeks ago bought Netgear 4300 N750 (300Mb+450Mb) on ebay and installed latest Openwrt.

$11 - laughable price for device with 3 antennas and 5xGigE.

<comment><USER14> second-hand price.

<comment><USER13> It's too small even for second-hand.

</comment></comment></comment><comment><USER15> I have cheap router with 32 Mb RAM and 4 Mb flash (TP-Link TL-WR841N v8), and I'm not sure if I should update from 15.05.1, due to raising memory and flash requirements: [https://openwrt.org/supported_devices/432_warning](https://openwrt.org/supported_devices/432_warning). There's build for my router, with 3,474K sysupgrade image, so it's probably compatible.

15.05.1 is very stable, but I'm not sure about vulnerabilities it has, such as recent wifi vulnerabilities.

<comment><USER16> With 4MB don't expect _any_ persistence between reboots.

Passwords, packages, etc: all gone.

Definitely not recommended unless you pre-tailor your setup using imagebuilder. (Reference: latest OpenWRT on similarly capable device, D-Link DIR615.)

<comment><USER17> It's fine but barebone. Not much room for packages either. Configs are persistent though. Make sure to use "tiny" build.

</comment></comment></comment><comment><USER18> I was recently able to get the ~latest OpenWrt to run on my first computer, a P3 450, with minimal fuss.

It doesn't hurt that the P2 is arguably the first "modern" x86 CPU. Linux distros usually support P2 and above for x86.

</comment><comment><USER19> Are there any routers supported by OpenWrt that can handle 1Gbps WAN to LAN? My current router only pulls 150Mbps and I want to keep OpenWrt due to the amount of custom network configuration that has been done.

<comment><USER20> EdgeRouter gets pretty close running OpenWrt. And hits your mark if you keep the stock firmware. No wifi though. [https://an.undulating.space/post/180927-er_alternate_firmwar...](https://an.undulating.space/post/180927-er_alternate_firmware_benchmarks/)

Maybe the Turris Omnia if you need WiFi and aren't worried about cost: [https://omnia.turris.cz/en/](https://omnia.turris.cz/en/)

The NetGear R7800 would be somewhere between the two in cost, and reportedly does GB for wired, somewhat less over WiFi. Pretty easy to find used ones for $100USD too.

<comment><USER19> Looks like EdgeRouter X fits my requirements and is pretty cheap (50Eur). Thank you!

</comment></comment></comment><comment><USER21> Openwrt was how I discovered Linux. I was just blown away by how powerful yet simple it is. I'm currently using a "real" server instead of a overpriced and slow consumer router.

</comment><comment><USER22> There are security fixes here... is there any perspective given on how critical these are? I'm curious about the urgency of upgrading existing firewalls with the new release.

<comment><USER23> This doesn't include all the additional packages available through opkg but should mostly answer your question.

[https://git.openwrt.org/?p=openwrt%2Fopenwrt.git&a=search&h=...](https://git.openwrt.org/?p=openwrt%2Fopenwrt.git&a=search&h=refs%2Fheads%2Fopenwrt-18.06&st=commit&s=cve)

</comment></comment><comment><USER24> I use DD-WRT. How does OpenWRT compare to it?

<comment><USER25> DD-WRT comes with GUI built-in.

OpenWRT comes with command line interfaces and you need to be experienced on that.

<comment><USER10> OpenWrt comes with a gui to. It's called LUCI.

</comment></comment></comment><comment><USER26> I still don't know any good reasonably priced routers which supports Openwrt.

<comment><USER27> There is hundreds: [https://openwrt.org/toh/views/toh_available_864](https://openwrt.org/toh/views/toh_available_864)

And sub-$20 routers have been well supported for years (e.g. TP-Link TL-WR841)

<comment><USER28> Out of "hundreds" I see 5-7 that look like decent home wireless routers at first glance (4+ gigabit ports, available new, b/g/n/ac, no unsupported hardware when running OpenWRT, <$150).

Based on that the original statement "I still don't know any good reasonably priced routers which supports Openwrt." is very understandable. A lot of rows != an easy list of good routers.

<comment><USER29> Xiaomi Mi WiFi is the best cheap with OpenWRT support

[https://www.aliexpress.com/item/Xiaomi-WIFI- Router-3-ROM-128...](https://www.aliexpress.com/item/Xiaomi-WIFI- Router-3-ROM-128MB-1167Mbps-Support-2-4GHz-5GHz-wi-fi-Dual- band-4/32683853540.html)

<comment><USER28> Is this a joke? The WAN and LAN ports (all 2 of them) are 100 megabit.

<comment><USER29> Oops wrong link, I have that and it has 1 gig ports

[https://s.click.aliexpress.com/e/9UbBYxq](https://s.click.aliexpress.com/e/9UbBYxq)

</comment></comment></comment></comment></comment></comment><comment><USER30> Any reason I should pick this over Opnsense / something FreeBSD based?

<comment><USER31> OpenWRT is designed home routers with cheap/slow CPU's, a few MB of memory, and small ROM's. If you have better equipment available to use, then sure, anything else would likely be an improvement.

</comment></comment><comment><USER32> Can anyone recommend a good SoC to start playing with OpenWRT development?

<comment><USER33> For development or just playing around, you can run it in a virtual machine.

<comment><USER32> Do you know if I can reliably use a compatible usb WiFi adapter with a vm?

<comment><USER22> It is hard to fully generalize that question, since I'm sure it varies a little bit depending on the virtualization software and how well it passes through USB devices. I don't see why it wouldn't work, though.

</comment></comment></comment></comment><comment><USER34> Upgraded all my devices at home, worked flawlessly.

Any news about 19.01?

<comment><USER2> It hasn't been branched yet. More likely a 19.0x in the middle of the year.

</comment></comment><comment><USER35> Linksys starting signing their updates.

I tried updating my EA6350, but gave up (couldn't figure out TFTP). Which was Linksys's plan all along.

</comment><comment><USER10> I updated my WRT3200acm and all is fine. New wifi drivers are better to. I all so flashed WD-N750 WDR3600 C7-v2 and a WRT1900ac

</comment><comment><USER36> still running DD-WRT on an ancient Linksys WRT54GL

<comment><USER25> Still using WRT54GL, but revert it to stock firmware.

Seems that new WRT like firmwares require more ram than built 16MB.

<comment><USER10> My god! You mite as well leve your devices out in the street, with know passwords on them and ask members of the public to take what files thay would like! "Roll up Roll up! Here's all my data, fore you good people. come come, get what you want! come it'sa free for all!"

<comment><USER25> Device is connected to ADSL provider in small village and it's only one AP on 500m radius.</comment></comment></comment></comment>


Tech Recruiting: How to Talk to Someone Who Doesn't Want to Talk to You - <AUTHOR> http://blog.humanpredictions.io/tech-recruiting-outreach-how-to-talk-to-someone-who-doesnt-want-to-talk-to-you/ <comment><USER2> Talk about "solving" the wrong problem.

If you want people to "talk to you" about work opportunities, then what you should focus on is (1) creating an environment they'd actually want to work in, (2) providing interesting stuff for them to work on, and (3) a genuinely respectful, human-centric application and interview process end-to-end -- such that even if you do decide to pass on them, they don't feel like they're time has been wasted (or worse) just for talking to you.

Many companies seem to specializing sucking at (1), (2) and especially (3). And granted, the fixes for these aren't necessarily easy. But at least that's the direction you should be thinking about -- not "how can we write catchier emails so that some bored developer will respond to us?"</comment>


Reactive Hashing Explained - <AUTHOR> https://blog.benpri.me/blog/2019/03/02/reactive-hashing/ <comment><AUTHOR> I'd like to see some of these ideas get off the ground.

Ben mentions his email and Twitter handle in the post if anyone is interested in helping or contributing in some fashion to an open source library to implement some form of this strategy.</comment>


Coronavirus 'Hits All the Hot Buttons' for How We Misjudge Risk - <AUTHOR> https://www.nytimes.com/2020/02/13/world/asia/coronavirus-risk-interpreter.html <comment><USER2> Really? Another "Its just a flu bro" article? \- yes its not the end of the world. But the death toll is already higher than the flu. We are already trending worse than the 09 Swine Flu. No, its not the end of the world. Yes, this is something we need to take caution to contain to keep it under control.

If you think the numbers we are getting from the CCP are accurate then I think I have a bridge to sell you.

<comment><USER3> Yeah. It's definitely true people misjudge risk but it works both ways. Airliners - people worry because the see a scary crash but run the numbers and it's pretty safe. Cornoavirus people think it's not a big deal because it's like flu but run the numbers and there's some potentially scary shit eg. [https://www.dailymail.co.uk/news/article-8005931/British- sci...](https://www.dailymail.co.uk/news/article-8005931/British-scientist- leading-coronavirus-fight-says-forecasts-400-000-UK-deaths.html)

I mean on the pessimistic side 50% global infection with 1% mortality, while not probable is a possibility to watch for, which would be like 35 million deaths and about 300 million critical overloading the hospitals.

And while I guess those sort of numbers die through old age anyway, the situation in Wuhan is not pretty and worth trying to avoid.

<comment><USER4> If that many people try to get critical care at the hospital, the death toll is going to be much higher than 1%.

There aren't enough mechanical ventilators for even 0.001% of the population.</comment></comment></comment>


Ask HN: Blog - roll your own or use existing - <AUTHOR>

As a web developer I've generally built my own super simple blog engines for client sites - actually you couldn't really call them fully fledged blogs but they suffice.
As the need for features and content formatting increases, I wonder whether the custom built route is the right path to take. Whether I should continue re-inventing the wheel or simply use something 'out-of-the-box'
One benefit with rolling it myself is that the UI for managing the blog is stripped down and easy to use.
From what I can see though, many of the well designed company sites that have blogs use wordpress or similar.
Any thoughts? <comment><USER2> Wordpress is simple, stripped down, easy to use, can double as a CMS, and is easily customized. I've set it up for a number of my personal clients and they're very satisfied with it.</comment>


Information Avoidance: How People Select Their Own Reality - <AUTHOR> http://www.cmu.edu/news/stories/archives/2017/march/information-avoidance.html <comment><USER2> I see no choice but to live like this. The objective truth about how I stack up relative to others, what I amount to in the world, the things I have missed out on and all of the times I've failed others... it is too oppressive to think about. Better keep my blinders on and run forward in my own lane.

<comment><USER3> Hmm yes, the article didn't even mention it but avoiding (and I might add manipulating) information seems to be a critical part of developing healthy self confidence. Studies on Learned Helplessness show that the difference between an optimist and pessimist (who often has to battle depression and self doubt) is largely how they perceive themselves based on the information they let in as well as how they frame that information.

</comment></comment><comment><USER4> Calvin Mooers pointed this out in 1959, and his observation is known to information scientists as Mooers' Law. He was speaking mostly in the context of information retrieval, but he also described how it's true in a more general sense:

"Having information is painful and troublesome. We all have experienced this. If you have information, you must first read it, which is not always easy. You must then try to understand it. To do this, you may have to think about it. The information may require you to make decisions about it or other information. The decisions may require action in the way of a troublesome program of work, or trips or painful interviews. Understanding the information may show that your work was wrong, or that your boss was wrong, or may show that your work was needless. Having information, you must be careful not to lose it. If nothing else, information piles up on your desk—unread. It is a nuisance to have it come to you. It is uncomfortable to have to do anything about it. Finally, if you do try to use the information properly, you may be accused of puttering instead of working. Then in the end, the incorporation of the information into the work you do may often not be noticed or appreciated. Work saved is seldom recognized. Work done—even in duplication—is well paid and rewarded."

[http://onlinelibrary.wiley.com/doi/10.1002/bult.37/full](http://onlinelibrary.wiley.com/doi/10.1002/bult.37/full)

i am a bit surprised and disappointed that this new paper makes no mention of Mooers at all.

</comment><comment><USER5> One of the great things about the internet is that you can choose to listen to people you might never meet or get along with, and update your views accordingly without the psychological pain described in the article.

A lot of libraries have archives of oral histories, which are a really great window into other people's lives, especially as a correction for assuming you know what someone else is thinking.

[https://www.findlectures.com/?p=1&type1=Historical%20Speech&...](https://www.findlectures.com/?p=1&type1=Historical%20Speech&talk_type_l2_Historical_Speech=-Oral%20histories,Filmed%20Interviews,Oral%20Histories,Filmed%20interviews,Ethnography,Personal%20narratives)

It seems like there ought to be a good way to categorize these topically, although I'm not sure what that should be.

<comment><USER6> I found this to be true as well. I started off as an extremely rigid thinker, and it's my contact with people holding diverse views on and offline that have changed that. I'm still highly skeptical, occasionally bordering on pessimism, but I'm a much more flexible thinker. I don't seek to judge as much as I just try to understand perspectives.

I really doubt that could have happened, at least in any reasonable amount of time, without the internet.

</comment></comment><comment> wu-ikkyu >"Bombarding people with information that challenges their cherished beliefs — the usual strategy that people employ in attempts at persuasion - is more likely to engender defensive avoidance than receptive processing.

^The great fallacy of the stereotypical Facebook/television political flame war/shout fest. The result is almost always detrimental to both sides' understanding of eachother.

<comment><USER7> Rarely are you trying to convince the other person, in a public forum you're more arguing for the sake of those listening than trying to convince the person you're talking to.

</comment></comment><comment><USER8> I feel this pressure whenever I come up with a new startup idea. I hate doing lots of research, only to find that my idea has already been done. Most recently, I wasn't very happy with a portable router that I had bought, so I started brainstorming ideas for a new travel router that would be extremely easy to use and to set up. My idea was that your new wifi password would seamlessly sync to the router, and you could set it up from streamlined OSX toolbar or mobile application. But then I found the ASUS WL-330NUL, which already does everything I was imagining. And I also realized that I could never compete with hardware like that. I was just going to build a prototype with a Raspberry Pi and a few wifi adapters.

On a related topic: I hold very liberal views, and I've recently tried to expose myself to more conservative opinions. So far I've just subscribed to /r/Conservative on Reddit, and I've read a few articles on Breitbart and other conservative sites. I also read through some of the comments, which was very frightening. That is not a place for intellectual discussion. I have relatives who often send me articles from [http://creation.com](http://creation.com), so there's another source of information that I try to avoid..

Also, a few days ago I was on a flight, and the person next to me was telling me about his flat earth beliefs, and a wide variety of other conspiracy theories. He mentioned how Breivik was just a scapegoat, because the government had ordered the killing of those children. And also 9/11 was an inside job, Stalin was a hero, and how The Hunchback of Notre Dame takes place in Saigon, Vietnam. (I believe he came to that conclusion after visiting the Notre-Dame cathedral in Saigon.) It was an interesting 3 hours. At one point he was telling me how the sun is only 50 kilometers wide, and it moves around on giant cables. Also, there are no satellites in space. They are all underground, and that's how GPS works. Also that's why GPS sometimes has problems, because Google's Maps are all wrong. I tried to really understand all of his views, but I can't say they were very compelling. It's strange, because he was a very well-read person, and seemed quite smart, apart from these insane views.

<comment><USER9> Oh the irony of riding an airplane as a flat earth believer. Kyrie Irving (a famous American basketball player) was in the news recently for being a flat earth believer, and it blew my mind because here's a guy who must take at least 100 if not 200 flights in a year. And it occurred to me that holding those beliefs is tantamount to accusing all pilots and other aviation professionals of being gatekeepers of a massive conspiracy - if the earth isn't round, something about the "public" model of flight is the most wide spread fabrication in human history, and the pilots must be in on it or else planes would be crashing left and right.

<comment><USER10> For some reason earlier this morning, I started thinking about this out of the blue. My hope is that he is just trolling but who knows these days. If I ever meet a flat earther, I just want to ask "Have you ever seen a full moon? and if so, how do you explain it?"

</comment></comment></comment><comment><USER11> Trying to be as open as possible and ready to debate is exhausting, and often leaves one tired and misunderstood. I can see how the 'big picture' reward isn't worth the day-to-day depression and anxiety. I still have yet to figure out the most efficient balance between more information and more inner stability.

<comment><USER12> I agree, though would add that it's not even so much about the exhaustion as it is that being 100% open all the time can also lead to intentionally misleading data being processed.

For example, I would assume most people have been the third party in a situation where two friends are in an argument and want someone to rule on it. Maybe it's just my friends that are that petty, but I end up in this position a lot. As they present it, often I just don't have enough information to make an informed decision; the tidbits they present me are quite obviously the well fought over talking points they devised and I have neither the background nor the education to intelligently comment on the argument most of the time. Relying on my gut sometimes is necessary (issues of emotion, what should person A do, etc), but it's not always the best option.

We can't be 100% ready and educated for every single issue. In fact, constantly changing the issue and bringing up others is a rather devious debate tactic, and also an informal fallacy. It's deceptive, and it can give the illusion that a position is stronger than it really is simply because it was prepared sooner and has more information immediately available than the opposition is able to bring up at that time. It seems strong at first glance, but it doesn't always hold up under scrutiny, but with constantly shifting topics and arguments, it's not possible to give such proper scrutiny.

Avoidance isn't just about self-preservation, it's about being able to rationally interpret the information you are presented. It's why I often find debates online so difficult because the discussion can change so rapidly that it's not possible to give claims reasonable treatment. It's also sometimes why I find it fascinating, because the rapid flow of information is also very addictive.

</comment></comment><comment><USER13> "Semmelweis reflex

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

 _" The Semmelweis reflex or "Semmelweis effect" is a metaphor for the reflex- like tendency to reject new evidence or new knowledge because it contradicts established norms, beliefs or paradigms."_

===

Bonus: "Look at yourself objectively" (by Aaron Swartz )

[http://www.aaronsw.com/weblog/semmelweis](http://www.aaronsw.com/weblog/semmelweis)

</comment><comment><USER14> I think I dislike about papers like this, or at least how people _refer_ to papers like this, is that it's easily phrased as a universal truth. As in, applying to 100% of the people 100% of the time. Which is clearly ridiculous, or else no one would ever change their minds from conflicting evidence at all.

<comment><USER3> > If we want to reduce political polarization, we have to find ways not only > to expose people to conflicting information, but to increase people's > receptivity to information that challenges what they believe and want to > believe.

I believe the Greeks had discussed methods of persuasion to a great extent (as in logos, pathos, ethos) but also when to use which, and the study seems to affirm that shouting crazy hyperbolic slogans to get people emotionally charged is a better strategy for your existing fans than someone on the fence: to convince someone to jump sides, you're better off empathizing with them, bringing up objections slowly, etc.

</comment></comment><comment><USER15> We're drowning in information. What do we need - More Ad targeting?

"The researchers believe understanding when, why and how people avoid information can help governments, firms and organizations reach their audiences effectively without drowning them in unwanted messages".

Proposal to rename the Paper?

How we can help you with your message targeting.

</comment><comment><USER16> Sometimes people/institution even become aggressive when they get information that is completely opposite of what they believe, Galileo was convicted of heresy because he believed that the Earth revolves around the Sun, which was just opposite of what Catholic Church believe. Though this kind of rigidity hinders our progress but there is another side of the coin. This is the sole reason that keeps us happy in everyday life. If we take into consideration each and every information's then our life will become a hell for sure. We can't take veggies and fruits, mostly toxic due to the preservative used; can't use car/bus as its harmful to the environment, can't even eat a burger or coke, leads to obesity. I think it's better to have the gift of avoidance though rigidness should be avoided.

<comment><USER17> I'm not sure Galileo was convicted so much for what he believed as for being kind of a dick about it.

This is one of those silly myths that we for some reason perpetuate, like the old chestnut about people laughing at Columbus because they thought the world was flat.

</comment></comment><comment><AUTHOR> Link to the paper: [https://www.aeaweb.org/atypon.php?doi=10.1257/jel.20151245](https://www.aeaweb.org/atypon.php?doi=10.1257/jel.20151245)

</comment><comment> norea-armozel I think some information is often a mixture of truths and lies which is why I tend to filter out all the major left/right media outlets on my Google News feed. I'm just not interested in playing fact checker for every newspaper because they have some left/right crusader journalist that's willing to die on a hill for a particular current political talking point. If those folks are going to mix lies with the truth then I'm going to take the risk of being an ignorant jerk that says "I don't know, I'll have to read up on it" than be led down a blind alley of someone's ideology masquerading as "the truth." Essentially, the most correct position in the majority of cases to be conscientiously ignorant and open to discussion when it's applicable to your life. Beyond that, be as dumb as the rest of humanity to the ins and outs of any issue if it's not interesting or fun to you.

Edit: also, I think this doesn't apply to matters that are of immediate relevance and consequence. So I do think someone like POTUS or a US Senator should stay informed if possible.

</comment><comment><USER18> One would likely go mad not avoiding the ton of BS/propaganda put out daily by the mainstream media circus. Not sure the point of the study, if not to aid said circus to target people more efficiently. One would think there are more noble research to be done, other than to invent more crafty clickbait titles, or disguise your content with some psychological wizardry to evoke emotion, etc...

</comment><comment><USER19> Ignorance is bliss. Nothing new. The more extreme edge is the protective power of delusion.

</comment><comment><USER20> The same thing happened in digital advertising. People developed "Banner Blindness" and mostly do not notice the presence of ads in your page. It's almost like people are very intelligent and you cannot fool them for a long time.

</comment><comment><USER9> Heh, the HN alt-right contingent is curiously mostly absent from these comments, especially given how many of them have recently discovered their passion for hard-line epistemological skepticism. It's as if they're avoiding the information in this article...

</comment><comment><USER21> This article is interesting. Does anyone know of any studies/evidence/etc that shows how to get around this issue? Are there certain tactics that help people feel more comfortable with information even when it could have an adverse effect on themselves?

</comment><comment><USER22> Algorithmic curation of content will only continue to lessen the difficulty of active information avoidance & exacerbate the problem over time.

</comment><comment><USER23> Try to bring facts into discussion about gender gaps, suicide rates, circumcision, criminality, immigration, religion....

Everyone has their own religion, including authors of this article:

> _Despite the consequences, information avoidance isn 't always a mistake or > a reflection of a lazy mind._

> _" People do it for a reason," ... "Those who do not take a genetic test can > enjoy their life until their illness can't be ignored_

Genetic tests can only prove predisposition for illness, something like 20% higher chance compared to other people. Bad test is not a death sentence.</comment>


Larry Summers Calls Fed Bank Stress Test Results 'Absurd' - <AUTHOR> https://www.bloomberg.com/news/articles/2018-09-08/larry-summers-calls-latest-fed-bank-stress-test-results-absurd?srnd=premium <comment><USER2> > Summers made the comments after a presentation at the Federal Reserve Bank > of Boston on the persistence of low interest rates in global economies, a > phenomenon which he explained as excess savings pursuing a shortage of > investments.

So central banks printing trillions of dollars (aka Quantitative Easing) to prop up asset prices (and thereby drastically increasing income inequality in developed countries) had nothing to do with record low interest rates?

These people sure have a way of "explaining" things without really explaining anything at all.

<comment><USER3> > _These people sure have a way of "explaining" things without really > explaining anything at all._

It's hard to explain things to laymen, especially in subjects like economics, where everyone thinks they've got a complete understanding of the mechanics after watching a couple YouTube videos.

The supply of financial capital is high, so borrowers are not willing to pay high interest rates. I see nothing wrong with the explanation of why low rates _persist_.

<comment><USER2> Nowhere in the article is it explained WHY the supply of capital is so high.

Here's a hint. Trillions of dollars were printed (and are still being printed) by central banks.

<comment><USER4> I thought it was because capital has been building up since WW2 without any giant destructive events to reduce it. Kind of like how things had been just before WW1.

This is a central part of Piketty's case in _Capital in the Twenty-First Century_. Capital just builds up over time, unless something happens to destroy it.

Of course I can't argue against money printing being a cause; I don't know the numbers. It seems there are likely several significant contributing causes.

<comment> village-idiot Eh, several countries have proven that monetary, tax, and welfare policy can absolutely reduce wealth disparity within a nation. The US is currently proving that some policies can increase disparity.

Certainly major catastrophic events has a larger effect, but you don't _need_ one.

<comment><USER4> Is be interested in specific examples of these 'several countries'.

<comment> village-idiot Denmark and Canada come to mind. Both have flattened their inequality curve in the past decade or so.

<comment><USER4> Canada had a pro-business conservative government up until a few years ago. I don't have the numbers to say if any inequality curve was flattened or not, but if something did happen it seems very unlikely it was a result of policy.

Denmark and Canada also share a property: They are small (population-wise) nations with heavyweight neighbors. Any effect you see is likely to be totally confounded by interactions with those neighbors. E.g. Canadian billionaires may tend go to America, so Canadian inequality "falls". But obviously this isn't doable for the world as a whole.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> "If cyclical pressures continue to build and financial vulnerabilities broaden, it may become appropriate to ask the largest banking organizations to build a countercyclical buffer of capital to maintain an adequate degree of resilience against stress," Brainard said.

This is probably going to be too little, too late. Anyone with half a brain should be able to see the downturn coming soon. Simply looking at global macroeconomic indicators like Shiller P/E, Yield Curve, stock market indices against GDP or unemployment rate over the last two decades makes it clear the market has run extremely hot and is running on hot air by now.

I won't know what will be the final trigger — 45 playing with fire in the pseudo trade wars or the upcoming cryptopocalypse: All I know is that once the downward spiral has been triggered, everything will happen very fast.

Whatever the "stress tests" might have predicted in a bull market: I don't think anyone will have cared to predict tipping points and negative feedback loops once the underlying assets get worthless. There's just way too much disincentive for banks to building up capital (especially with negative interest) vs. speculating with it in order for this scheme being able to work.

If you want my 2 cents: Hope for the best, but brace for the worst.

<comment><USER6> If it were true that anybody with half a brain could see a downturn coming now then they would have already taken short positions, causing the downturn to have already arrived. It's really hard to try to time the market, people regularly lose their shirts trying to do it. Don't tell people it's easy.

<comment><USER7> I think inverted yield curve is interesting. In my simplistic understanding, isn't it just a global bet that short term yield is going better than the long term based on investor sentiments. So in essence, when the inversion happens, the smart money is on a downturn/recession. I believe that the 10 year bond and the 2 year bond yield have been close recently feeding fears of an inverted yield curve and recent talk of a downturn.

<comment><USER8> It's the correct results, but it's sort of the backwards interpretation. If you think that interest rates are going to go down a la 2008, there is going to be less demand for short term debt (price goes down, yield goes up), and demand for long term debt goes up (price goes up, yield goes down).

That is to say, if people are willing to take a lower rate for 10 years because they think interest rates won't be nearly as high in say 3 years.

Another aspect to it is that the shorter the maturity, the more the yield is determined by set rates, whereas the longer you go out, the more it's just the auction process of markets setting the yield. This is part of where you get the idea that raising rates too fast can potentially be troublesome, you can end up inverting the curve that way.

</comment></comment></comment></comment><comment><USER9> This may be my "this time it's different" rationalization, but I can see an argument for valuations staying larger in the future.

Real interest rates have been decreasing in the long run over hundreds of years. This reflects the institutions of society becoming more permanent and less risky. In a world of low interest rates, P/E multiples naturally become high. Over the last couple of decades in particular, the financial world has become globally intertwined, and it has become increasingly unlikely for any event to truly upset the status quo. Institutions are more fixed than ever, so valuations should be as well.

If the high valuations remain high, then a lot of financial wisdom developed in the last 100 years will have to be rethought. Saving for retirement is a different calculation when your returns are dominated by P/E expansion rather than dividends and earnings growth.

<comment><USER10> It's hard to say how much is reduction in risk vs increase in capital vs bubbles deflating. The stock market has seen a massive influx of capital from 401k's, but this is mostly new money without nearly as many people with 401k's in retirement.

Over the next 30 years that balance shifts. As people will be taking more money out of the stock market due to cashing in 401k's than they put into the stock market which will have significant impact.

<comment><USER11> 401k's are only about $5 trillion total. Even if half of them were in US stocks (it's less than that), that would be less than 10% of the stock market.

<comment><USER12> That's enough to drive up the stock market by a lot (trillions of dollars of new money drive up market prices for stocks, and the value of exsiting investments, most of which are never sold to the 401ks by existing investers, goes up a lot).

</comment></comment></comment></comment><comment><USER13> Eh, a big part of that has to do with unlikely scenarios. Garbage in, garbage out.

I cut my teeth building the scenario response models. I think the best improvements resulting from these exercises have been structural. Many banks have used it as an opportunity to improve their data and reporting infrastructures, which were often stuck in spreadsheets.

<comment><USER14> What did they shift to?

Also how does better data infra make for better crisis response for a bank?

I can't see how it would make a huge difference..... unless of course it means that the reporting structure is giving critical information to decision makers which it wasn't before.

<comment> village-idiot Assuming that they _want_ to know what's actually on their books. Given the moral hazard of bailouts sans consequences, there's a lot of incentive to look away while the traders do shady shit during the good years and then plead ignorance before congress while asking for a bailout.

<comment><USER13> As an economist I understand this issue 100%. But I rarely see the shady/seedy items in practice. Morale really sucks in places where illegitimate moves happen. And devs aren't idiots, they speak up and even whistle blow if something looks off. My experience in this world is that folks at the top and supporting roles want to operate in good faith.

</comment></comment></comment></comment><comment><USER15> Since the majority of the FED members are the largest US banks, it is not really surprising that the stress tests they devised gives those banks a favorable result.

</comment><comment><USER16> Is this the same Larry Summers that lost a billion dollars for no reason by forcing the Harvard endowment into a bunch of shitty IRS trades?

<comment><USER17> Yes, the Larry Summers that lost 1.8 billion dollars.

[http://blogs.reuters.com/felix-salmon/2009/11/29/how- larry-s...](http://blogs.reuters.com/felix-salmon/2009/11/29/how-larry- summers-lost-harvard-18-billion/)

<comment><USER18> >Update: Brad DeLong, in the comments, does some back-of-the-envelope math and reckons that Harvard came out ahead of the game, on net, even after accounting for that $1.8 billion loss.

And the comments are closed. Neat.

<comment><USER17> It is unfortunate indeed because I would like to read the comments in the blog as well.

Despite the recovery of the "lost" or invested 1.8 billion, the story gives no good impression of Larry Summers.

</comment></comment></comment></comment><comment><USER19> Perhaps this is explained by the "stopped clock hypothesis", but if Summers thinks that all of the hubbub about strengthening banks is meaningless window dressing, then he is certainly correct. They don't _have to_ survive inevitable downturns without help from USA government in order for their executive teams to make lots of money and stay out of prison, so they _won 't_.</comment>


Advice on learning Python efficiently - <AUTHOR> http://www.simplydjango.com/learn-python-efficiently/ <comment><USER2> Pretty good advice, along with some good pointers about what NOT to do when learning a languages (ex. reading some instructional book cover-to-cover, forgetting most of the stuff along the way).

I often suggest the read-a-chapter-write-a-program-based-on-it route, just to get the practice that is really important, and to solidify some intuition as to what the machine (whether interpreter or bare metal) is doing, and to make writing future programs easier.

Side note: While I definitely applaud the idea of trying to create a language that is geared towards beginners and good for learning on, I don't know if I can get behind recommending such a language that is still under development being suggested to beginners.

Then again, I'd consider recommending lisps to beginners (if not python), so maybe I'm not the most credible source

<comment><USER3> > Side note: While I definitely applaud the idea of trying to create a > language that is geared towards beginners and good for learning on, I don't > know if I can get behind recommending such a language that is still under > development being suggested to beginners.

I second this. Especially when python itself is very beginner friendly.

IMHO the best advice on learning a skill is just do some projects with it. I am not exactly sure, which should come first, the 1. or the 2. point made in the article.

Though I would dare to say the 2. point is more important.

By doing python projects first you familiarize with it and then if you are still on - you should read zen of python, pep8, etc..

<comment><USER4> >By doing python projects first you familiarize with it and then if you are still on - you should read zen of python, pep8, etc..

Would you mind recommending some projects for a python beginner?

<comment><USER5> I find scratching one's own itches is always the best way to learn a new language. Solve a problem that you have.

<comment><USER6> Problems are not all the same: choose one that stresses and challenges the language, to gain confidence in its strengths and practical expertise.

For example, I once tried to learn Haskell and I started from little exercises ([https://wiki.haskell.org/H-99:_Ninety- Nine_Haskell_Problems)...](https://wiki.haskell.org/H-99:_Ninety- Nine_Haskell_Problems\);) I got familiar with syntax and basic concepts, but I was dissatisfied both with the easy, abstract questions and with the simplistic, inefficient answers using basic standard library features that are more or less the same in any language. What was "real" Haskell code like? I expected dealing with serious libraries, memory management etc. would be uglier, more difficult and more cumbersome than exceptionally terse toy examples.

So I attempted something not merely useful and small, but with a well defined practical objective, depending on external standards, requiring production quality libraries and with performance challenges: converting the metadata dump from MAME (a nearly 200MB XML file) into an easy to use SQLite database.

The task was a good test of programming language productivity because, having already used ElementTree and APSW I was sure I could write it in Python quite easily. (And I did; a complete Python implementation, able to roundtrip data back to the XML format for testing purposes, took me less time than an aborted Haskell attempt that could parse a dumb document tree using a ridiculous amount of memory.)

This project allowed me to discover many things about Haskell that are not found in enthusiast-written tutorials: the mess of incompatible and undocumented libraries, the impracticality of basic language design decisions (text handling, lack of namespaces leading to name conflicts, etc.) and my profound disgust for the commonplace syntactic tricks.

Of course, a similar challenge for Python is likely to have a better outcome: learning the difference between good and really good libraries, finding a use for many language features, remembering useful idioms nd design patterns, etc.

</comment></comment></comment></comment></comment><comment><USER7> For many years, I worked on the periphery of the programming world, but with a very superficial level of programming knowledge. I was a "webmaster" back in the mid 90s, working with simple PHP, JavaScript and VB scripts. I then went to grad school for public health and afterwards worked in several biostat- oriented research analyst roles focusing on Stata and SPSS programs.

All these jobs definitely involved a very basic understanding of programming, but I had no understanding of many important fundamental programming concepts, and had created very few programs bigger than a 1-page script.

It was only when I started to learn Python, and then C (to write Python extensions), that everything really clicked. Something about Python made it so much easier than PHP or JavaScript for me. I think Python's relative lack of glyphs, brackets, and other "syntactic noise" (my opinion only) made it much easier for me personally to grasp big picture ideas. Python also prepared me for learning C to a pretty good level (with much help from the K&R book).

These two, in turn, gave me a good foundation for branching out into other languages, eventually including functional programming languages.

But Python was with no doubt the turning point for me, and even though I do little Python work these days (ironically, I'm back to JS but at a much higher level than in the 90s), I'll always be grateful for Python.

If you've struggled with programming and haven't given Python a shot, give it a try! If that doesn't work, maybe try Pyret like this post advises (once it's stable), or maybe some lisp such as Clojure. I also know some mathematicians who struggled initially with imperative programming but then thrived with Haskell. Point is, we think in different ways, so keep trying different approaches until something sticks.

<comment><AUTHOR> > Point is, we think in different ways, so keep trying different approaches > until something sticks.

So true, great advice. You have to experiment and find out what works for yourself.

</comment></comment><comment><USER8> Hmmm.... I'll disagree on the "don't read a book" suggestion.

I've hung around on a number of support chat rooms for languages / libraries for a few years, and _tons_ of the problems we hear about are things that nearly any book would've made plain. As further evidence, 99% of Stack Overflow is filled with this stuff.

In my experience, skipping the dry stuff to get started faster tends to lead to poor mastery of a system. You can _absolutely_ waste time on the dry stuff - don't read a 1000 page book when 100 will do (or ever; huge books are usually awful) - but the details very often matter in the long run when you start doing anything not in a cookbook / tutorial. Yes, you can always go back and read it later, but _very few do so_. Investing a day or two in a detailed book up-front isn't that much time.

</comment><comment><USER9> >It's called Pyret.

How about just learning Python instead of learning a toy language and then having to learn Python anyway?

<comment><USER10> Python has gotten hard to learn. It's not too bad if learning it just to learn, or learning it in a classroom setting with a careful plan, but I've witnessed people trying to learn it professionally in the context of getting testing running, and it's hard to learn when trying to use a mature Python codebase that uses Python thoroughly. There's these decorators, and iterators vs. functions, and things using introspection to do invisible things, and on and on it goes.

Python used to be easy to learn. It isn't anymore. It may be a better language for all the feature additions, but it isn't easy to learn anymore and I no longer recommend it for that purpose. (I don't have a recommendation at the moment.)

<comment><USER11> >Python used to be easy to learn. It isn't anymore.

Compared to C++, C# and Java, Python is still MUCH easier to learn. Python and Ruby are the easier languages to learn. I have to agree with the other commenter, why learn a toy language only to later have to learn a real one? That is a waste of time.

<comment><USER12> Well, shouldn't it be about learning how to program. Not necessarily learning Python or Ruby? You will learn how to program with languages like Python, Ruby, Java, etc. but you will have to work with constructs/abstractions that might make sense in a professional setting but not so much in an academic setting.

</comment></comment></comment></comment><comment><USER13> Not sure if this will help anyone out there, but learn how to take notes efficiently first. Learning a markup language helps a lot. Be very selective when choosing a book; don't hesitate to throw away a crappy book. Avoid books geared towards getting you "up and running" despite their reviews, they're never worth it. The more sources the better. The only subjects I don't spend time on are non-core API methods; just take note that there is an API and where it is, but referring to the official documentation is better because there's never much you can add of value. Ultimately plan on spending 6-9 months of weekends or 2-3 solid months to learn the bulk of a new language if you're taking notes. If it's your first programming language picking a simple project to do is helpful because otherwise you won't know the "why".

</comment><comment><USER14> Pyret looks nice, but I think it's misleading to say it's "Python inspired". At first glance it looks more like its cribbing ideas and syntax from Ruby and OCaml.

<comment><USER15> It's true, Pyret gets ideas from a handful of places, not just Python.

From a student or instructor's point of view, it is serving a lot of the same ends as some of Python's choices:

Toplevel code runs as a script without ceremony, the default behavior doesn't statically check types but is conservative about coercing types and overloading operators (e.g. "a" \+ 5 is an error), integers promote to bignums by default (though Pyret supports exact rational bignums as well).

Pyret supports docstrings explicitly, and examples/check blocks have similarities to Python's doctest.

Fields of ADT instances can be accessed simply with "." (in contrast to OCaml or other functional languages), and methods close over self on dot-access as they do in Python.

Some of these things are also true of Ruby, so that's a fair comparison as well. And things like "data", and the gradual type-checking facilities, are clearly coming from other sources (though Python is moving in a gradually- typed direction as well).

I know we were thinking about Python in particular when we made a lot these decisions, so I think it's a fair characterization, though Python is one of several inspirations.

</comment></comment><comment><USER16> Pyret's syntax looks far more complicated to learn than Python's for a beginner.

<comment><USER15> I'm curious which parts look (more) complicated to you.

For some perspective, when teaching Pyret to total beginners, we start with arithmetic and calls to library functions, then build up to function definitions and examples. At that point, there's just a handful of syntactic constructs to consider, and they are nearly identical to Python.

Things like "data" and "cases" don't come till later, and do come with more overhead, but also are introduced to students who already have some "finger- feel" with the language. Python has its own overhead with "class" for defining structured data at a similar point, including things like "self" and "__init__".

<comment><USER17> I noted the in first example in the linked into - Python:

        def square(n):
          return n * n

Pyret:

        fun square(n :: Number) -> Number:
          n * n
        end

there's extra stuff. It also kind of loses the elegance of Python reading close to normal language - if you don't know programing but can do math you'd figure the first was define a function that gives a square but be confused what (n :: Number) -> Number: was about.

<comment><USER15> The type annotations are optional, so

        fun square(n):
          n * n
        end

is a closer direct comparison to the Python program, for contexts that don't use annotations.

</comment></comment></comment></comment><comment><USER18> Teaching and learning are spaces where many flowers can bloom, so I can appreciate the angle of this article (and thus Pyret).

To zoom in for a second: in my experience teaching, the simplicity of the outdent as a mechanism for ending a control structure is a light-bulb moment for many people. I don't think that adding "end" is helpful for this segment of the population.

And so it is with `where`, which seems to shoehorn a BDD / Rspec'ish approach which, while typical of some of the best Ruby out there, is not typical of a Python library.

Again, this approach may be great for some people, but I'll bet that it won't be great for others.

</comment><comment><USER19> This is great post and the observation is quite applicable in pretty much every subject that you want to learn and master, not just Python. In fact, "learning to learn" is perhaps the most important skill we develop as humans and a small improvement in this area translates to order of magnitude improvement in actual learning. In PhD programs they say that getting PhD is not actually about mastering specific subject but rather developing an ability to comb through vast amount of knowledge, assimilate it and synthesize new knowledge. The first two steps is where much of the effort lies which is "learning to learn". The first mistake that most people make in first step is trying to understand everything cover-to-cover of each paper before moving on to next. An experienced person would first try to get big picture (just look at the abstract and results :)) and move on to next one. So you do breadth- first-search followed by some selective depth-first-search and continue back and forth until you build "surface" that represents the usable approximation of state of the vast amount of knowledge. This is many order of magnitude efficient than try to build most of the "surface" from the get go.

</comment><comment><USER20> > Since Python isn't your first language

I didn't realize this wasn't for beginners until I got to this section and read that his first application was a whitespace interpreter.

Personally, coming from Ruby, I learned Python via [https://learnxinyminutes.com/docs/python/](https://learnxinyminutes.com/docs/python/) after stumbling a bit on the Python 3 import syntax, which I came to love.

</comment><comment><USER21> Be pythonic, be pythonic, be pythonic!

My biggest complaint about python is how easy it is to learn (heh). It takes so little effort to write a script, so it feels deceptively easy to write great python. After all, as long as it works, who cares right?

I care. Your colleagues care. Your users care. Python is an object oriented language, use it as such.

<comment><USER22> >My biggest complaint about python is how easy it is to learn

This X 1000. Some Python candidates declare themselves professionals when their code is unsuitable for production.

If you're gonna spend many thousands of hours using a language, don't use initial learn-time as the one thing to optimize for!

<comment><AUTHOR> > If you're gonna spend many thousands of hours using a language, don't use > initial learn-time as the one thing to optimize for!

That reminds me of this wonderful talk by Rich Hickey called Simple Made Easy, [https://www.infoq.com/presentations/Simple-Made- Easy](https://www.infoq.com/presentations/Simple-Made-Easy).

</comment></comment></comment><comment><USER23> Intro to python and get a web service built in an afternoon or so: [http://www.web2py.com/books/default/chapter/29/02/the- python...](http://www.web2py.com/books/default/chapter/29/02/the-python- language)

</comment><comment><USER24> I've definitely purchased some programming books with a rabid ardor only to set it down 40 or so pages later only to open another book purchased with the same rabidity.

</comment><comment> happy-go-lucky Looks like another clickbait. Learning a language and creating a new one are not the same.

<comment><USER25> Where did you get that from? I feel like we read different articles. Are you referring to the introduction where he suggests that people entirely new to programming should check out Pyret?

<comment> happy-go-lucky According to the article, learning Pyret is an efficient way to learn Python. It's a misleading title.

<comment><AUTHOR> Huh? Where in the article did I say or imply that learning Pyret is an efficient way to learn Python? I said if you're a complete beginner then you can consider Pyret. As for people who already know some programming I didn't suggest Pyret to them at all.

</comment></comment></comment></comment><comment><USER26> I may suggest Julien Danjou python's book. Only skimmed through it, but it felt funnier and more in depth (covers AST for instance).

</comment><comment><USER27> As a 'code tourist' i find focusing on what i need for a specific project the best way to learn new languages.

</comment><comment> happy-go-lucky Is there an easier language than Python? This is not to belittle this effort.

</comment><comment><USER28> Can someone fix the misleading title?

Stating "Learn python efficiently" is one thing, but stating "My advice on learning Python efficiently" is another entirely different thing. One is a statement of fact, another is just yet another opinion.

Accepting clickbait articles degrades the quality of a news aggregator.

<comment><AUTHOR> That's true, sorry about that.

Thanks to whoever fixed it.</comment></comment>


F*ck biannual product cycles. I'm poor. - <AUTHOR> http://spudnet.blogspot.com/2012/10/thoughts-on-apples-october-23-event.html

<comment><USER2> A bit of an editorialization on the title there son... Something I wish I learned earlier on is how to delay gratification. That would have been a nice skill to have when I was poor.</comment>