Show HN: Boethius, smart flashcards for the classical liberal arts - <AUTHOR> https://www.boethi.us/ <comment><AUTHOR> Boethius ([https://www.boethi.us/](https://www.boethi.us/)) is an app I made for my 7yo son to supplement his homeschooling curriculum. It involves completed "daily workouts" of exercises drawn from the seven classical liberal arts (grammar, arithmetic, astronomy, etc...).

The "Try Random Exercise" button lets you see immediately what it's like to use, but signing up is required to get most of the benefits, such as:

* A logical ordering of exercises (learn how to recognize nouns before learning about pronouns, learn what an argument is before learning the difference between validity and soundness, etc...),

* Spaced repetition (you review those you are struggling with most, but those you ace are brought up less frequently over time)

* Configuring your experience (select the number of exercises you need to complete each day for your "daily workout", whether to play audio by default or not, etc..)

* Creating any number of child accounts so you can keep tabs on your kids' progress over time

AMA

<comment><USER2> Fun!

I had a hard with with "collections of nouns are called" (even though what I know what declensions are) because of a lack of context -- I answered "noun classes"

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

because that is another kind of collection of nouns that has something important in common grammatically. :-)

I might suggest "collections of nouns that use the same endings" or "collections of nouns that use the same inflections" or something, in order to be less ambiguous.

Tibi gratulor et filio tuo fortunam bonam exopto.

<comment><AUTHOR> schoen, thanks for giving it a shot!

You are absolutely right about the declension exercises: they are ambiguous. I'll add more context to the statement when I get back to my workstation.

Gratias tibi!

<comment><AUTHOR> Fixed!</comment></comment></comment></comment>


How to build a tribe - <AUTHOR> http://www.presentationzen.com/presentationzen/2008/11/seth-godin-presentation-how-to-build-a-tribe.html

<comment><USER2> I dunno. I've given Seth an honest chance in the past, only to be let down by trite, obvious ideas and platitudes.

Is Tribes somehow different? Anyone read it?</comment>


Most Important Stat on the Planet: Alarm as Atmospheric CO2 Soars to Record High - <AUTHOR> https://www.commondreams.org/news/2019/06/05/single-most-important-stat-planet-alarm-atmospheric-co2-soars-legit-scary-record <comment><USER2> > Greta Thunberg—the 16-year-old Swedish activist who helped inspire the > worldwide surge in youth climate mobilizations—argued that the success or > failure of the global climate movement will be determined by one measure: > "the emission curve."

> "People always tell me and the other millions of school strikers that we > should be proud of ourselves for what we have accomplished," Thunberg wrote. > "But the only thing that we need to look at is the emission curve. And I'm > sorry, but it's still rising.

So sobering to here this from a 16-year old. There is so much of a self- celebratory tone in some climate circles - "Great conference. Great event. We sent a strong message. We are working on such and such fantastic technology. The end of cool. This pledge. That promise". Sorry, your tech startup is worth nothing while PPM is still rising.

In the context of the recent popular HN post [0], stop working your ass off. Take a day off. And then another one. Go meet your friends you haven't seen in a long while. Go for a walk. Better for climate and your mental health.

[0] [https://news.ycombinator.com/item?id=20116699](https://news.ycombinator.com/item?id=20116699)

</comment><comment><USER3> The real problem is that the people who can do something about it are getting paid by the oil companies not to. You know and I know it, its that simple, they are being bribed.

<comment><USER4> It's easy to blame politicians and oil companies. That's not really the ultimate cause though - it's and uncaring and growing population.

Most people still don't care about the environment - that's why politicians don't care. And even fewer people care about overpopulation. I think they don't even consider it to be a problem.

</comment></comment><comment><USER5> I find the focus on co2 a hard sell for public engagement with environmentalism. Not quite "save the whales".

There is more to climate change and environmentalism than co2. I don't see co2 as anywhere close to "the most important stat on the planet"

<comment><USER6> It's the stat most directly related to 'possible future food production'.

<comment><USER5> Not "local precipitation"? Plants grow faster with more co2, as far as I understand it.

</comment></comment></comment><comment><USER7> I would really wish that this received the same kind of attention from people in power, as it does from the younger generations.

<comment><USER8> It gets plenty of attention from the top, the problem is that most measures to curtail emissions have negative economic impacts. You don't want to be the Senator/Congressman that made foreclosures rise because factories went belly up.

Also, at least in the West, the general consensus is that even if the US were to cut emissions drastically it would hardly make a dent due to China and India. So you'd cripple the US economy, but China and India would continue at pace and become even more cost competitive. The only real solution is a global binding resolution with audits, similar to nuclear treaties...not a Paris Accord which was not binding and largely just fodder.

It's not an easy problem, it's certainly not as easy as the younger generation seems to think when it comes to fixing. Not only is the environment at stake, but so are people's paychecks and livelihoods. The Green New Deal did the movement no favors by being completely outlandish and unrealistic in a global economy.

<comment><USER7> In my opinion, this is the same as saying that we should keep using slaves for manual labor, because it would hurt the economy if we set them free.

It should not be allowed to ruin the world for other people as a living. If China and India keep doing that, we stop buying their stuff. However, if we keep ruining the world for a living ourselves, it is very hard to point fingers at others.

Also, there are still lots of money to be made in renewable energy and emissionless energy consumption. Tax what you want less of, give financial support to what you want more of.

<comment><USER8> You lost me at comparing an externality to literal slavery. I'm sure if you lost your job and were without a job for a year or 3, you'd not sing the same tune.

"If China and India keep doing that, we stop buying their stuff."

This would cripple the global economy and throw millions into poverty.

</comment></comment></comment></comment><comment><USER9> [https://outline.com/5MbTfg](https://outline.com/5MbTfg)

</comment><comment><USER10> Yet climate change scepticism is rising. Are we using the right rhetoric? What's wrong with the current approach?

<comment><USER11> The answer to this question isn't surprising -- people resist science that doesn't fit their views for a reason, it means uncomfortable changes. Let me list a few reasons some people may doubt/resist:

1\. If this were true, I would be wrong, and since all my experience suggests I'm right, the evidence is probably wrong.

2\. So many times people have been sure of things, especially scientists, yet they were shown to be wrong, so they are probably wrong again.

3\. These studies are being picked or even conducted because there is an environmental agenda, I don't believe it because I'm sure we could conduct a "study" that would reach the opposite conclusion, but all the scientists are biased that way (just like global cooling in the 70s, or how Vioxx was deemed "safe" by FDA scientists).

4\. If this is true, its proponents will cram a political agenda down my throat, since I don't agree politically, but have no counter-proposal, I must disagree with the evidence to avoid the politically losing confrontation.

5\. There are no viable plans to fix the problem, accepting the evidence would put me in a psychological bind since there really isn't a way to solve it -- not recycling, driving less, nuclear, there is NO known solution right now, so we must say this is false.

6\. People who say "just believe science" don't seem to believe science on other fronts (e.g. gender differences), or have beliefs I see as obviously wrong, so I can't believe they'd be right about this single item but wrong about so much else.

7\. The people who are most pushing this agenda are obviously politcally, not scientifically motivated, so I question the evidence due to "motivation".

8\. Overselling and shouting make me disbelieve your claims. Usually a calm and reasonable approach sells, but you're telling me "change now or die", and Al Gore said that 20 years ago and it didn't happen.</comment></comment>


Are Microsoft licences too complicated? - <AUTHOR> http://www.computerworlduk.com/management/it-business/supplier-relations/in-depth/index.cfm?articleid=2615&pn=1 <comment><USER2> It gives the BSA something to do all day.

It just wouldn't feel like a Microsoft deploy without the getting smacked upside the head for $200 more $/user every time you turn around.

As someone who's done a few terminal server projects with centralized software installs, it feels a bit like being mugged, over and over. Its damn hard to explain to the end customer why they need _yet another_ pack of $200 licenses for all the users to enable what (understandably) seems like a ridiculously trivial feature.

</comment><comment><USER3> _Every time you simplify something, you get rid of something._

This might explain some of Microsoft's APIs too.</comment>


25 tools every new developer needs - <AUTHOR> http://blog.courseforward.com/2014/09/25-tools-every-new-coder-needs.html

<comment><USER2> "There's a reason most people in tech use Macs: most open source tools and frameworks were developed for OSX, then ported to Windows or Linux. "

What cloud does this guy live on?

<comment><AUTHOR> Thanks for your feedback. I have no quantitative evidence to back up this statement so I will amend it. There are many reasons most developers (certainly in the Bay Area) prefer OSX to Windows or desktop Linux.

How would you feel about: "Macs combine the user-friendliness of Windows with the Unix environment necessary to run most tools and frameworks."

<comment><USER3> There is a whole range of essential tools not available for OS X. For example, none of Xilinx or Altera tools runs on OS X.

</comment></comment></comment><comment><USER4> Obviously the initial comment about most developers using macs was pretty dumb but as a mac user, I do use a lot of these things. Maybe it should be titled "tools for new developers using macs"?

I don't use sourcetree, alfred, jumpcut, spectacle, screen hero. I also don't think there's any special dependency of a developer on something like file vault or time machine. In fact, using git and a remote server naturally backs up nearly all I do. Also, not sure why a developer would have a special need for lastpass or incognito mode?

Ok, so I use SOME of these things. :)

<comment><USER5> Lastpass would be useful for dealing with multiple password of multiple versions of the product you're working on. On my team we use Keepass and we can store and easily share passwords for all of our environments.

</comment></comment><comment><USER6> Rather than using Jumpcut, I'd recommend the alfred plugin for clipboard history.

[http://support.alfredapp.com/features:clipboard](http://support.alfredapp.com/features:clipboard)

</comment><comment><USER7> "most open source tools and frameworks were developed for OSX, then ported to Windows or Linux"

gcc?

</comment><comment><USER3> Same thing again. "Coder" is always a "web coder" now. That's annoying.

<comment><AUTHOR> Do you do embedded/native development? Which tools do you use for that that aren't mentioned in the blog post?

<comment><USER3> Many developers do not ever touch anything mac, do not use IDEs other than Emacs or VIM, do not care about browsers, etc.

So a title is extremely misleading. For a large proportion of the developers most of the listed tools are pretty useless.

And not to mention that "most open source tools and frameworks were developed for OSX, then ported to Windows or Linux" is very far from being correct anywhere outside of the tiny web-development world.

<comment><AUTHOR> Other than Vim or Emacs (which I do mention in my post), which tools do you use? And which tools would you recommend for beginners?

<comment><USER3> Besides git or mercurial, there is no single set of tools which can be universally usable across the developers' profiles range. There is a huge diversity of needs, cultures and methodologies out there.

</comment></comment></comment></comment></comment><comment><USER8> I wish I had more hands so I could give this post four thumbs down! -Rick James</comment>


Ask HN: How to keep on top of CS and maths? - <AUTHOR> I work as an iOS developer at my day job, but have become concerned that my general CS skills / maths are getting worse due to the lack of day to day applications. I mostly work on UI and networking.<p>Are there any good books, problem sets, or fundamental habits that I could use? <comment><USER2> Pretty much read anything Knuth if you want to practice math and CS skills. _Concrete Mathematics_ (started as an extended version of the math in Chapter 1 of _The Art of Computer Programming_ ) is a fantastic introduction to the more interesting elements of discrete mathematics, and (for me) helped to solidify calculus concepts by seeing the same things applied to discrete functions/sequences.

And, while challenging, it can be a pleasure to work through _The Art of Computer Programming_ slowly over a period of time. I did this for both volumes 1 and 2 back in college and just after.

For pleasure reading on math, Martin Gardner is a great source of material. Particularly the collections of his Scientific American articles (there was work to reprint some of these book collections with Knuth and others editing, but I think it stalled out after 4 or 5 of them). Spend time on the articles to really understand the proofs involved and it can, IMHO, improve your ability to think mathematically.

Otherwise, perhaps as itamarst suggests, find some problem domain which exercises both CS and math and interests you. Write code to implement the mathematical algorithms (which will aid your understanding of them), and then spend time improving the code (practicing your CS skills).

I also doodle math and CS theory problems when I'm bored. Make a state machine that recognizes, in base 2, all multiples of 3, 4, 5, etc. What pattern exists in their structure? Why does the symmetry exist in some of them? What happens when you change the base to 3, 4, ...? Try to apply the concept of generating functions to get to the closed form solution of the Fibonacci sequence. Practicing like this, even if it's problems I know by heart at this point, helps keep the fundamentals that let me solve them the first time fresher in my mind.

I also recommend reviewing the writings of E. W. Dijkstra. A lot of math, CS, and software engineering is covered in there. It's also interesting to read as you'll see a slice of history as the collected papers span about 40 years.

<comment><USER3> A lot of Dijkstra makes it into TAoCP books too, and Knuth will cite any Dijkstra papers relevant to a chapter.

<comment><USER2> That is a good point. I just enjoyed Dijkstra's writing style (clear, opinionated, and concise). He has great skill as an author. I think there's great value in reading _his_ writing just to get exposure to his level of technical communication. Also, it'll make you want to work on your penmanship.

That's another point for Knuth, as well. There are many great thinkers, and there are many great communicators. It is wonderful to find the intersection between the two and within CS and math (more CS) the two of them are fantastic examples of that combination.

</comment></comment></comment><comment><USER4> If it doesn't have day-to-day application, does it really matter?

I spent 20 years without using linear algebra. Now I'm doing a bunch of image processing algorithms and it's suddenly relevant... and it's mostly coming back. And for the new stuff I'm learning I got a book which I occasionally read at work.

<comment><USER5> I guess that applies for those who got a degree. But would be more interested on how a self taught developer would go about it.

</comment></comment><comment> happy-go-lucky If you want to work on problems that require mathematical and programming skills, I would suggest [https://projecteuler.net](https://projecteuler.net).

</comment><comment><USER6> A random suggestion from the internet:

Read Knuth's _The Art of Computer Programming_. Some math. All the fundamentals of computer science.</comment>


Write well with "Grammar and Writing for Creators" (HNers – 10% off) - <AUTHOR> https://grammarandwritingforcreators.com/index_hn.html

<comment><USER2> Since we're on the topic of English and writing, I'd like to share with y'all something that deeply inspired me when I first read it. Here's a short essay by George Orwell on the English Language (1946). [https://www.mtholyoke.edu/acad/intrel/orwell46.htm](https://www.mtholyoke.edu/acad/intrel/orwell46.htm)

<request>Please, please for God's sake. For sanity's sake. For _my_ sake. Please stop using "utilize" instead of "use" to spice up your technical writing. It's horrible. I can't explain why. Please, just use "use" and don't try to be fancy. Thank you.</request>

</comment><comment><USER3> As a non-native english speaker I find this product and the overall idea absolutely fantastic. We can pick and choose the tools we use, but most of us across the board could use a little help with communication and writing.

</comment><comment><USER4> Finally! A book on the special English grammar and magic writing tools used by creators! Does anyone know where I can get "Grammar and Writing for Circus Clowns" or the companion volume for the homeless?

</comment><comment><USER5> This could well be a good book, but I found it really annoying that there isn't a price on the landing page. Especially when you're offering 10% off for HNers - 10% of what?

If I've got to click the 'get it now' button just to find out the cost, I'm more likely to click the little cross on the tab.

</comment><comment><USER6> Feel like this is an infomercial directed at me. Instead of coming on at 3AM during a TV movie, it's on in the middle of my web browsing. That said, I've had some success buying random self published books of the interwebs (lookin' at you idiomatic python)....

</comment><comment><USER7> Why should I spend (however much it costs) for this when I can find a copy of Strunk and White in any library (or buy a used copy from Amazon for $4.00(including shipping))?

<comment><USER2> (disclaimer: I'm friends with the author.)

You're right, you could probably learn similar things from "Strunk and White," but right now the problem is that most people check their grammar rules from random websites. Try google searching for _any_ rule, and I guarantee you that you'll find contradictory advice...

So in comparison to "random grammar advice from the web" this book is superb in its comprehensiveness, clarity, and succinctness. The author doesn't have a print version yet, but I deemed this book to be "worth printing"-level quality, so I have it on my desk now.

(undisclaimer: I wasn't friends with author before I read the book.)

</comment></comment><comment><USER8> A good idea. I'm all for the open expression of the modern web, but upping the quality of grammar on blogs, both small and large, would be a welcome advancement.

</comment><comment><USER9> My grammar is an atrocity. I literally have no idea what a comma is, or why I should trust it. I will report back if this book helps.</comment>


Beirut explosion – Infrasonic, hydroacoustic, seismic signals investigated - <AUTHOR> http://www.seismologie.bgr.de/sdac/erdbeben/big_quakes/beirut_200804_eng.html <comment><USER2> > Infrasound, which is sub-audible sound below the threshold of human hearing, > propagates in atmospheric waveguides over large distances. Signals related > to the Beirut explosion are recorded at eight IMS infrasound arrays in > distances up to 9000 km.</comment>


SqlPad: Run SQL in your browser and chart the results - <AUTHOR> http://rickbergfalk.github.io/sqlpad/ <comment><USER2> Hi Hacker News! So this is where the extra activity is from :) honored to be posted.

SqlPad was something I built to scratch my own itch and was sort of a self- challenge. I haven't done much with it lately, but a few users have contributed some additions back and have been helping with the project.

Just a heads up if you explore the code - I'm not a Node.js developer by trade and this is sort of a hobby for me as a SQL Server developer/DBA.

I'm flattered by the comments here. Really inspiring to get back to work on this.

Also wanted to add - If SqlPad isn't quite what you're looking for but want to visualize SQL results check out these other projects and solutions:

Metabase ([http://www.metabase.com/](http://www.metabase.com/))

Redash ([https://github.com/getredash/redash](https://github.com/getredash/redash))

Wagon ([https://www.wagonhq.com/](https://www.wagonhq.com/))

Periscope Data ([https://www.periscopedata.com/](https://www.periscopedata.com/))

Mode Analytics ([https://modeanalytics.com/](https://modeanalytics.com/))

</comment><comment><USER3> This looks really nice! I'm building something similar but as a desktop tool (using Qt). There really seems to be a dearth of desktop SQL tools for data analysts, as opposed to the myriad tools that support developers (Toad, Sequel Pro, Navicat). One thing I'm still trying to figure out is whether there is a market for this type of tool among business analysts/data scientists.

<comment><USER4> There is.

My view is this: By the time I teach power users (at large companies) how to use tools like Microstrategy, it becomes clear that it would have been quicker just to teach them SQL.

I think there's particular group you have to aim for:

The group that are at large companies, doing sophisticated analysis of data, who don't know how to code, but WANT to build their own reports. This is the sweet spot. Most of the market is more geared towards super simple drag and drop for users who are more interested in getting a canned report to their boss each Monday. Those aren't going to be a market for this.

<comment><USER3> That's the group I'm currently targeting (users who are fairly sophisticated in the types of analysis they can do with SQL, but can't code or only minimally in python/R). Do you think they would be more likely to go with a desktop solution than a hosted web solution? There's a number of startups in the space (Looker, Mode Analytics, Periscope, Chartio) but they are all externally hosted and so seem to target the types of small companies that already have their data in the cloud or are comfortable providing access to their internal databases.

By the way, would it be possible to ask you a few questions? My contact info is in my profile if you are open.

<comment><USER4> Yes, I'd definitely like to discuss with you.

</comment></comment></comment></comment><comment><USER5> Very nice. I've been building on something similar myself, but this looks like you came quite far.

Further to this - Does it have the ability to render pivot tables from two- dimensional results? Or cohort charts? These are visualisations that I find very useful.

<comment><USER2> Thanks troels! It doesn't but it's something we could keep in mind. Feel free to open an issue on GitHub to make the request. Do you have any examples of what you have in mind?

<comment><USER5> For a pivot, simply take a resultset that gives three columns and map the first to the X axis, the second to the Y and the third as values. It's very often that I find myself pulling that kind of data out in reports.

Making a general purpose cohort chart ([https://blog.modeanalytics.com/cohort- analysis-helps-look-ah...](https://blog.modeanalytics.com/cohort-analysis- helps-look-ahead/)) is probably a bit harder, since it requires a relatively complex query to generate the data. Would probably work best with a sort of macro or template system in place.

</comment></comment></comment><comment><USER6> One thing I am missing with this and similar tools like re:dash is the ability to specify placeholders that get filled by information from a dropdown or date selector.

That simple feature opens up usage to non-developers who just need to view data from another time frame or filter by a certain country for example.

Dropdowns could be populated by a seperate sql query.

<comment><USER7> SQL charts straight from SQL queries with parameters driven from forms: [http://www.sqldashboards.com/database/mysql-live- charting](http://www.sqldashboards.com/database/mysql-live-charting) Skip to about 40 seconds.

</comment></comment><comment><USER8> Probably off topic, but: Do you have access to install node.js and access to the internet (to do the npm thing) where you'd like to run this kind of app (I'm assuming you keep your data in some kind of secure environment without outside internet access)?

Who has the clearance to install a runtime, npm, a bunch of dependencies (who knows what), for an SQL tool?

Maybe I just work some where that is more strict than most places? Or do people install this on their corporate machine (assuming they have admin rights??) and access the internal SQL server from there?

<comment><USER9> We have full admin rights on our computers in our company. The benefits outweigh the risks as long as the users are remotely competent.

<comment><USER10> _The benefits outweigh the risks as long as the users are remotely competent._

...and you trust them to Do No Harm

<comment><USER9> You employ them, you give them access to your internal network, you give them laptops, keys, even free unlimited drinks(!). You already trust them, I suppose.

</comment></comment></comment></comment><comment><USER11> For an offline tool with GNUplot and LaTeX output, check out [https://github.com/bingmann/sqlplot- tools/](https://github.com/bingmann/sqlplot-tools/) \-- its intended use case is experimental evaluation (you output "RESULT key=val key2=val2" lines and the tool creates the DB schema for you and imports the data, then you run SQL queries to plot), but you can just as well use it with existing tables. It's a pretty neat tool that I use a lot.

</comment><comment><USER12> Our journey started very similar [http://www.infocaptor.com](http://www.infocaptor.com)

It took us 10 years though from this stage

</comment><comment><USER13> BTW, SqlPad uses tauCharts library to draw charts [http://www.taucharts.com](http://www.taucharts.com)

<comment><USER2> TauCharts has been an amazing library to work with. Its API fits so well with the mental model of how the SQL results map to visualizations. I can't recommend this charting library enough. It's like a mini tableau built on top of d3.

</comment></comment><comment><USER14> Is it possible to connect to a remote server? Didn't find anything in the docs.

<comment><USER15> I want to know this as well. I work on several different servers running SQL databases. I would like to install this on my dev machine and access my own local sql server database, the dev servers db and several others that I access via a VPN.

<comment><USER7> I've worked on something similar that allows specifying a hostname/port for the database (mysql/postgresql/mssql/h2..) [http://www.sqldashboards.com/database/mysql-live- charting](http://www.sqldashboards.com/database/mysql-live-charting)

Video demonstrates creating a full report with multiple chart types in 3 minutes.

</comment></comment></comment><comment><USER16> Looks good! Could it be a free alternative for tools like Periscope ([https://www.periscopedata.com/](https://www.periscopedata.com/))?

</comment><comment><USER17> Wow, had this set up and working in minutes on my local machine.

Needs some polish in a few spots but great work. Thanks.

<comment><USER2> Thanks! I'd love to hear your thoughts. feel free to send them to me via email or github issue

</comment></comment><comment><USER18> Looks very nice

</comment><comment><USER19> So, phpMyAdmin basically?

<comment><USER20> it does charting now? and servers beside mysql?

Haven't really used it in years since I switched most of my servers to postgresql</comment></comment>


Ask HN: How can I recover an issue that was in Google Code? - <AUTHOR> I posted an issue back in 2010 to Google Code in the zxing Java library for QR codes. It was issue #422, and it looks like the issue was never migrated to the github repo. Is there any way to find a copy of this discussion? All I have is a reply in my inbox from one of the project maintainers, and I see a few references in forked repos (e.g. https://gitlab.com/kofik/zxing/commit/a86b0e7cf3fec99c1a446c4978e0cf607e225b50) to one of my suggestions.
-----
Comment #6 on issue 422 by sro...@gmail.com: suggested speedup in com.google.zxing.common.reedsolomon http://code.google.com/p/zxing/issues/detail?id=422
I'll commit the first changes. It can actually get faster by removing the check for one operand being 1. Saving two branches helps the pipeline more than it hurts by having to carry out the rest of the operation in those cases.
Sure post a patch with the rest of your findings. I am sure it can be sped up.
Credit goes partly to Google's code base, we got permission to pinch and adapt some of the routines used internally. <comment><USER2> [https://groups.google.com/d/msg/zxing/7EZRwyAwis4/omP8oyChzd...](https://groups.google.com/d/msg/zxing/7EZRwyAwis4/omP8oyChzd8J) ?

<comment><AUTHOR> You, sir, have made my day! :-)</comment></comment>


Economic Lessons From 'Mad Men' - <AUTHOR> http://economix.blogs.nytimes.com/2009/12/22/economic-lessons-from-mad-men/?hp

<comment><USER2> Interesting. His description of Manhattan for advertising firms back then sounds like Silicon Valley for startups today.

<comment><USER3> I think that's the idea. Certain cities and regions become poles for similar, but competing industries. Finance in Manhattan, technology in Silicon Valley, insurance in Connecticut, etc. Other cities try to emulate these places but usually have partial or no success. Even if they put fiber in every building and give it away for free they still lack the human network that could take advantage of it.

Also, these types of networks take decades to build up. Most people don't have that much time to wait. It took money from the Manhattan project (70 years) to get SV to where it is today.</comment></comment>


ASIC Regtech Monitoring Promotions Symposium [pdf] - <AUTHOR> https://asic.gov.au/media/5215061/asic-regtech-monitoring-financial-promotions-event-pack-2019.pdf <comment><AUTHOR> Join the live stream on Sli.do from 10AM AEST Friday 2 August 2019.</comment>


Function Space Update - No sign-up required - <AUTHOR>

Link - http://functionspace.org<p>Sign up only to post or mark something as Insightful. Rest is all open :) <comment><USER2> Fun site! the index page should really be this, don't hide the ball: <http://functionspace.org/discussion/new>

</comment><comment><AUTHOR> Clickable link - <http://functionspace.org></comment>


Sorry about that - <AUTHOR> http://freakonomics.blogs.nytimes.com/2009/10/28/sorry-about-that/

<comment><USER2> See also: <http://news.ycombinator.com/item?id=881278></comment>


Wework: A New Social Network - <AUTHOR> http://www.wired.com/2014/11/wework-commons/

<comment><USER2> Pretty bad headline.

This is a co-workering space company focusing on tech-spots, at about ~35 locations and $45/month. They then have app/social network technology that then has LinkedIn esque attributes and more (definitely better noise/signal filtering, as its co-working 'connections').

Its neat, but I wonder if they will partner with some of other large co- working spots with their app/network (like Impact, which is a franchiser with 54 or so location throughout).

I don't think (in my uninformed opinion) that a sustainable and growing business is not possible in the tech area's, but, doesn't make much sense to make inroads into non-tech hot spots.

Non-tech folks probably will just continue using Starbucks/other coffee shops.

</comment><comment><USER3> Horrible click-bait headline. Totally not supported by the article.

No social network that charges money will ever outmaneuver a social network with a free tier.

Also, it's quite a stretch to call it a social network. (Or a least if it's a social network, it's one that comes with "Discounts on healthcare, web hosting, travel and more" which puts it in a different class.)

</comment><comment><USER4> we use wework for the space, because it's far superior to any other offering in nyc. the networking/collaboration aspects are severely overstated by the company.</comment>


Show HN: I am writing a book about UAVs - <AUTHOR> https://www.kickstarter.com/projects/318356516/an-introduction-to-unmanned-aerial-vehicles

<comment><USER2> Two-way sync? Will give it a shot!</comment>


How can I take an interview while at a job that tries to prevent interviewing? - <AUTHOR> https://workplace.stackexchange.com/questions/150596/how-can-i-take-an-interview-while-at-a-job-that-tries-to-prevent-interviewing <comment><USER2> I get it. The threat of being unemployed is daunting, especially when you have a family to provide for.

However, you're allowing them to take advantage of you and imagining consequences far worse than are likely to be.

Next time you schedule a phone interview, call in sick. Take the day off.

The next day walk in, say you're really sorry but you just couldn't make it into the office.

Unless you're completely of no use, they will not fire you. If you are of no use, you have other problems.

They have spent time and effort hiring you. They have spent time and effort training you (or at least paid you while you were learning about the code base). This is time and effort they would need to expend again if they fire you.

While Maryland is an at will employment state, there are federal laws that regulate the workplace and I'm pretty sure being fired for missing a single day of work would be good grounds for a wrongful termination lawsuit. (I'm not a lawyer though).

Additionally, you'll get about $1,600/mo in unemployment insurance if you do get let go for this reason. That should give you some time to find a new job..

If taking a sick day is too much for a first step, trying going out for a short walk and don't answer your phone. If they ask, tell them that you were on the phone. That should be the end of the conversation.

</comment><comment><USER3> If the company is trying so hard to keep you that they try to keep you from interviewing, why would they fire you or persecute you if you did do an interview?

The policy that you must be at your desk 9 to 5 sound like it is motivated by something else, e.g. a need to ensure that they can bill a government contract for all the hours in the day for all the "resources" on the project. The government contractor mindset doesn't so much care whether you a working as whether you are billable.

</comment><comment><USER4> The person is clearly valued. Maybe they are not aware of it. If they are under-valued, they will be pleasantly surprised at how their employer responds (hint: movement towards parity).

Stop caring. Go for an interview. You are not property. You are merely selling your labour.

</comment><comment><USER5> If you don't smoke, pretend you do. Go out for a smoke break at interview time. Only have that "smoke" a half a block away from the office so you don't get caught out.

</comment><comment><USER6> Does this kind of awful behaviour exist in other companies, or other industries?

In other words, how surprised are people from Maryland / the USA to hear of it?

<comment> t-writescode For a CS job? Very, very surprised.

</comment></comment><comment><USER7> Spend a little time learning how to negotiate and interview. You don't have to become and expert, but there are some simple concepts that will boost your confidence tremendously. Greater confidence and negotiating skills will mean you'll never feel trapped in a job again. It will be too easy to find greener pastures.

</comment><comment><USER8> This is nuts. How many people work at this place?

</comment><comment> t-writescode If true, this sounds like the kind of company that needs to be named and shamed and investigated.

</comment><comment><USER9> Sounds a bit like slavery. Try to save up and then get the ACLU or some human rights organizations involved.</comment>


Rust, let me share your awesomeness with C - <AUTHOR> https://whynot.fail/coding/rust-c-api-pain/ <comment><USER2> That's a nice problem. As far as I know, the Rust standard library doesn't have a way to create a TcpStream that wraps an existing raw file descriptor. You can only get a raw file descriptor via FFI anyway, so that's fine for most programs.

A TcpStream is just a struct containing the file descriptor ([https://github.com/rust- lang/rust/blob/master/src/libstd/sys...](https://github.com/rust- lang/rust/blob/master/src/libstd/sys_common/net.rs#L207-L209)) and nothing else, so this would be fine:

        let stream: std::net::TcpStream = unsafe { std::mem::transmute(socket) };

<comment><AUTHOR> that's a good idea, but keep in mind that the underlying file descriptor could be of a UDP stream, or a TCP stream to another host. I finally solved the problem, check out [https://github.com/dzervas/mage/blob/master/src/api_ffi.rs](https://github.com/dzervas/mage/blob/master/src/api_ffi.rs). When you bind or connect, I return a "file descriptor" that you will pass back to me and I use it as an index to a vector of connections :)

It works fairly good - although I have other problems...

<comment><USER2> True enough! I thought you were just going to see existing connections or something. What you're doing is probably what's going on under the hood anyway.</comment></comment></comment>


Vorpal, a framework for building CLIs - <AUTHOR> http://vorpal.js.org/# <comment><USER2> If I was making an interactive command line, I think I'd want to do it all in shell. Let's say it's a CLI that interacts with a remote server, then I might have a "script" that "starts" a custom CLI by doing:

        #!/usr/bin/env bash
        export REMOTE_ADDR="$1"
        export PATH="$(dirname $0)/commands:$PATH"
        export PS1='service:\$ '
        bash

Now you do something like:

        $ server-cli https://myservice.com
        service:$ which upload
        /path/to/server-cli/commands/upload
        $ upload ./my-file.png
        uploading.......

All you are doing here is adding all your custom commands (which are just command line applications), and starting up the CLI by giving it some context of some sort. All I have here is $REMOTE_ADDR (which by convention a command like upload would read), but you could have auth or whatever.

Along with this, you get a pretty workable programming language (shell), access to the local environment, access to the "standard library" of commands you know, and so on.

<comment><USER3> True. Though in Node, you can make calls to standard programs, so it can act pretty seamlessly. And there's already a lot of direction towards supporting a lot of familiar methods and more. Like this: [https://www.npmjs.com/package/cash](https://www.npmjs.com/package/cash)

<comment><USER3> * Cash isn't released yet - that's why there's no GH repo. That's my next pjt :)

</comment></comment></comment><comment><USER4> ah, the javascript developer mindset applied to CLI development.

Start from scratch just because you don't want to read the manual of the right technology, convince lots of people to adopt with a cool site, spend the next 5 years updating your project to get to 10% of the 20yr old projects you ignored.

disclaimer: mostly javascript developer nowadays. but salty.

<comment><USER5> But a benefit might be cross-platform compatibility seeing as some OSes don't come with, say, grep out of the box. While you could use the native tools, there could be some benefit to writing your own to do exactly what you want consistently.

I don't really disagree with you, but just pointing out there is some benefit to writing one's own CLI.

<comment><USER6> I think its easier to install cygwin than replace all the command line tools I am used to with Javascript equivalents.

<comment><USER7> Having installed cygwin, I'm not so sure. :P

<comment><USER5> Truth

</comment></comment></comment></comment></comment><comment><USER8> Something about imitating the semantics of a UNIX shell in JavaScript doesn't sit well with me.

<comment><USER9> I guess if you're building a CLI intensive application in node to begin with then this library seems like a pretty nifty way to do it. I've used plenty of CLI tools that don't offer auto-complete where it really would be handy to see.

<comment><USER8> I suppose so. My big concern is that this will lead of a lot of faux-shells with relatively few syntactic similarities.

It's a personal preference, but I'd much prefer my programs (node or otherwise) treat the shell like the first class citizen it is and use it to its fullest extent.

<comment><USER10> * I accidentally downvoted you while trying to upvote.

<comment><USER8> It's the thought that matters ;)

</comment></comment></comment></comment></comment><comment><USER11> This looks more like a complete shell replacement than a general-purpose CLI builder.

<comment><USER9> I agree, I was expecting something like ncurses or something

</comment></comment><comment><USER3> Author of Vorpal here. You can ask me Qs if you'd like.

<comment><USER12> Coming from other languages it's very confusing what this library does exactly. The screenshots make it look like a full shell, but looking closer it seems to be more of a high-level API that combines readline and optparse functionality. It might be helpful to split up these parts and explain how they improve on using the builtin NodeJS readline module and something like optparse-js.

Also, a question about piping: in your example the "say" command is hard-coded to use the argument called "words", and the "reverse" command is hard-coded to read from standard input. This seems very limited compared to piping in a real shell, shouldn't each command receive a string/array of input and return output so they can be piped to each other without having to know about it?

<comment><USER3> I get you. Yes, it does combined readline and optparse-type functionality. It's similar to Commander.js, with the exception that you have the option of staying in the "shell" after the first command executes, and then it is its own environment with its own commands.

On piping, I hard coded those to keep it short. Every single command can receive "args.stdin", which is a stdin stream from previous commands. To pipe out, the "this.log" command does all of the heavy lifting.

So all you would need to do is expect both "args.stdin" and "args.words" \- that would cover input both from a directly executed command as well as stdin. This works very well in practice.

</comment></comment></comment><comment><USER13> For those who want to make simpler Node CLIs, check out meow[1].

[1] [https://github.com/sindresorhus/meow](https://github.com/sindresorhus/meow)

<comment><USER3> Yes, Meow is an excellent tool.

</comment></comment><comment><USER14> Immersive command line applications. I've already booked my seat on the next intergalactic shuttle.

</comment><comment><USER15> > The command-line is awesome

Actually, a REPL Xerox style is awesome, a pure UNIX style CLI not much.</comment>


Surfraw – CLI to a variety of search engines - <AUTHOR> http://surfraw.alioth.debian.org/ <comment><AUTHOR> Surfraw was originally created by Julian Assange. I've found it while playing with stumpwm - a Common LISP window manager (see [https://github.com/stumpwm/stumpwm- contrib/blob/master/util/...](https://github.com/stumpwm/stumpwm- contrib/blob/master/util/surfraw/README.org))

<comment><USER2> I used Surfraw early on, and when I moved to Ratpoison, I took usage with me, and then when the Ratpoison maintainer decided to develop StumpWM, that followed too; finally, when I made my last move to Xmonad, I decided to just implement Surfraw as an XmonadContrib module, XMonad.Actions.Search.

(Considering how much time Google and Wikipedia shortcuts have saved me over the years, my investments in this kind of code has paid off many times over.)

</comment></comment><comment><USER3> Thanks! I've been using YubNub[0] for a long time, but decided to stop for privacy reasons: all my searches were proxied through it, and it doesn't even use HTTPS.

Now I'm using DDG's !bang syntax, but there's no way to add new entries yourself.

I have to say that YubNub's functionality was quite comprehensive, and it seems definitely easier than writing new elivs for Surfraw. I'll give it a try nevertheless.

[0]: [http://yubnub.org/](http://yubnub.org/)

</comment><comment><USER4> It acts like Alfred web search, but in command line. I still prefer Alfred, but for those who use Linux it is convenient if you do not use vimperator.</comment>


Show HN: GitMonKey – monitor your repos and commits for exposed private keys - <AUTHOR> https://gitmonkey.io/ <comment><USER2> Before I allow this read access to all of my code, what kind of checks should I run through on GitMonKey as an organisation/product?

Edit: when I try to go back to the homepage from the "Install GitHub Integration" page, I'm redirected back. Probably just paranoia.. but still. I want to learn more about the people behind this before clicking this button.

Edit 2: no Twitter, no incorporated entity, no names of the people behind this, nothing to reassure. No account management screen I can see, no way to revoke GitMonkey's access. Is this just a massively dodgy idea?

<comment><AUTHOR> It's a product of Tikal Lab, which is a unit in [http://tikalk.com](http://tikalk.com)

</comment></comment><comment><USER3> A little nit-picky, but your "What Our Users Say about Us" section is just people describing their mistakes. It says literally nothing about your platform itself.

</comment><comment><USER4> How about this one? [https://github.com/dxa4481/truffleHog](https://github.com/dxa4481/truffleHog)

Posted here a few months ago.

<comment><USER5> Also, if you want to have more control over what gets matched (as opposed to only checking entropy): [https://github.com/ezekg/git- hound](https://github.com/ezekg/git-hound) (I'm the author of this one.)

</comment></comment><comment><USER6> [http://pre-commit.com/hooks.html](http://pre-commit.com/hooks.html)

calling attention to detect-private-key and detect-aws-credentials (disclaimer-ish: was original contributor on the latter hook but been way expanded since then)

edit: obviously each dev needs to have this set up, not a catch-all third party tool.

<comment><USER7> Have an example hook I can test out? Thanks!

<comment><USER6> what do you mean? like one i recommend for a simple test? or a sample config?

</comment></comment></comment><comment><USER8> One more: I added a repo that I know had some keys in it, and GitMonkey didn't find them. Here's the specifics:

I originally made a bunch of commits that included my config.py file. I realized later that I didn't want that public, so I added it to the ignore and had git remove it. However, if you look through my commit history, you can still see the config.py changes in earlier commits and the keys are buried in there. Since I was/am a git noob, I didn't create branches for those commits. They all went to master, so they're in the commit history of the master branch.

I'm guessing this tool is scanning the branches themselves, but you may want to scan the commit history within those branches if GitHub will let you. Idiots like me that don't know how to use Git properly are probably the ones more likely to make this mistake!

</comment><comment><USER9> It seems this should be a standard product offering for GitHub

<comment><USER10> Agreed. Or software you can just run internally. Not a fan of just opening up read access to my code to a new startup.

<comment><USER11> Yeah, what if gitmonkey accidentally reveal a secret key? Now somebody has a curated list of everyone's git's secret keys - even the ones in private repos!

<comment><AUTHOR> If GitMonkey has your key on record - it means we're not the only ones having it. You should revoke it immediately. So even if our db is breached, it should only contain a list of useless revoked keys.

<comment><USER11> > should

<comment><USER12> I am also really scared by the suggestion that they might 'take a leap' and check if it's valid... Then they have a list of keys and whether they work or not

</comment></comment></comment></comment></comment></comment><comment><USER13> * Why a separate service and not a pre-commit hook? * If a third-party has seen the key, hasn't the damage already been done?

<comment><AUTHOR> Because it's harder to enforce on a team whereas a central service (also as a 2nd security layer) deals with it on behalf of the team/org

<comment><USER14> It often takes more thought and effort to do things properly. This seems like another service that treats the symptoms of a problem rather than the problem itself. That kind of solution encourages careless behaviour, because someone will come behind me and clean it up. Encouraging best practices is a better investment.

>(also as a 2nd security layer)

Except when it's not.[1] That means it gives careless folks a false sense of security, which I think conveys more risk than no security at all.

[1]: [https://news.ycombinator.com/item?id=14157870](https://news.ycombinator.com/item?id=14157870)

</comment></comment></comment><comment><USER12> Why does it need to auth using Google? Can it not just use GitHub like the second getting started button suggests?

<comment><AUTHOR> Because we need your email and dont want to take it from GitHub because we may span to gitlab, bitbucket etc

<comment><USER12> Hmm could you not just take it from GitHub though. If you chose to span others they could also provide an email or you could link accounts together.

</comment></comment></comment><comment><USER15> I believe for AWS,. If attacker gains your key and generated a STS session key, it used to you can't revoke them (that is revoking me does not revoke the key I generate from STS)z i don't know if they fixed it or not, I did a test after someone spoke to me about a year ago.

</comment><comment><USER16> I was thinking of another strategy could be a git plugin that had a config file of salted hashed secrets. If someone tried to commit something with a secret, it could then stop it _before_ it was leaked.

Of course, you'd need to collect all the secrets beforehand, but if you are willing to do that, it would seem to be a better solution.

I was thinking this and later I fell asleep and had this dream, where my girlfriend kept saying, "Hey... Hey... Hey..." over and over again. I woke up and it turns out there was a bird chirping every few seconds at the same interval.

Time is strange, though. I saw a star trek episode recently where there was time dilation on this particular planet. They were trying to beam out the occupants. It got me thinking, if I could beam out to a spaceship where, say every second on the spaceship was a year on planet earth, would I do it? I have this vague feeling of regret, like I'm missing all those moments on between on Earth while I'm there. I suppose I'd experience the same number of moments, spread out as they were, though.

</comment><comment><USER17> Weirdly AWS and GitHub seems to have something similar. I know a couple of folks (not me!) who've uploaded AWS credentials to OSS projects on GitHub and been contacted by AWS about it, after AWS has revoked the credentials.

<comment><USER18> For AWS it makes sense, because typically AWS discounts the customer the damage made by stolen credentials.

For example, if a dozen EC2 instances are launched with credentials poached from Github to mine bitcoins, I know AWS used to remove the rogue extra charge from the customer bill, as a token of gratitude (to avoid losing the customer by a sense of defenselessness).

<comment><USER15> Yes. AWS actually does scan on a regular basis. They have caught some before any harms done. I don't know how often though.

</comment></comment></comment><comment><USER19> Hey shaharsol, this looks great. Double check your strings though :)

"Scan 58f90084fa38b600114b33ea succerssfully started."

Also the "Profile" and "settings" links don't go anywhere.

</comment><comment><USER20> Easier solution: don't commit private keys.

Pro-tip: use `git add -p`

</comment><comment><USER21> To see it with JS disabled, disable also CSS.

</comment><comment><USER22> Page doesn't load with default umatrix config.

</comment><comment><USER23> clever name

</comment><comment><USER24> Sounds like a scam to me:

\- No imprint or any other kind of information who is behind this service on their website

\- Testimonials which talk about leaked credentials and not about how GitMonkey saved them

\- Not even a privacy policy stating what they do with your source code

<comment><AUTHOR> It's a product of Tikal Lab, which is a unit in [http://tikalk.com](http://tikalk.com)

We will add a privacy policy, didn't even notice we don't have one, it's just launching...

<comment><USER2> I would say that if you've forgotten to consider this side of things, it's a big stretch to ask people to trust your app to read all of their source code, which even has the intent to find secrets. What else have you forgotten?</comment></comment></comment>


Google security certificate is invalid - <AUTHOR>

Chrome is showing "The server's security certificate is not yet valid!", whenever I try to open a https page of google...anyone else? <comment><USER2> Looks OK from here. There may be a MITM attack in progress against you (or the network you're on). This has happened in the past; could be a rogue WiFi AP, or your network provider, or even the government: [http://googleonlinesecurity.blogspot.com/2011/08/update- on-a...](http://googleonlinesecurity.blogspot.com/2011/08/update-on-attempted- man-in-middle.html)

</comment><comment><USER3> Not 'yet' valid? Check your system clock...I'm willing to bet it's set a few years in the past!

</comment><comment><USER4> Chrome is working alright, check your settings.</comment>


Protests break out in Hong Kong as first arrest made under new security law - <AUTHOR> https://www.cnn.com/2020/07/01/china/hong-kong-national-security-law-july-1-intl-hnk/index.html <comment><USER2> I am just curious and not looking to start any kind of political discussion, but hypothetically speaking, should HK go to war (at any scale) with China, what would allies of HK be obligated to do? Does the handover of Hong Kong [1] mean that this might be treated as a humanitarian issue?

[1] - [https://en.wikipedia.org/wiki/Handover_of_Hong_Kong](https://en.wikipedia.org/wiki/Handover_of_Hong_Kong)</comment>


Ask HN: What's a good resource for a 9 year old to learn programming? - <AUTHOR>

<comment><USER2> I've heard excellent things about Scratch: [http://scratch.mit.edu/](http://scratch.mit.edu/)

<comment><USER3> It IS excellent. It has full I18N support which is important for the rest of the world. My kids (who didn't speak English at the time) learned programming using scratch at the age of 8. They typically did animated presentations, and games like 'frogger'. I only needed to show some little things but they could figure out most of it by themselves or with the help of youtube.

</comment></comment><comment><USER4> CodeHS has been fantastic.

I'm part of a project called Code Montana whose goal is to teach 1000 Montanan high schoolers how to program using CodeHS primarily. The project launched in September and we already have over 400 kids signed up.

[http://codehs.org](http://codehs.org)

[http://www.codemontana.org/](http://www.codemontana.org/)

<comment><USER5> Just correcting the CodeHS link:

[http://www.codehs.com/](http://www.codehs.com/)

</comment></comment><comment><USER6> We developed an iPad app called GamePress. Its live in the app store for free. [http://www.gamepressapp.com](http://www.gamepressapp.com)

Teachers have started using it to teach students about programming and game development.

It is similar to Scratch, but it is more powerful (and easier to actually make a game). The behaviour system has thing slike timers, if statements, math functions, variables.

So far from what we have been told by our users it is a great intro to programming concepts.

Keep in mind we never developed it for teaching programming! it was made as a fun and easy way to make and share video games!

</comment><comment><USER7> How about this one: Python for Kids

[https://www.sparkfun.com/products/11729?utm_source=SparkFun+...](https://www.sparkfun.com/products/11729?utm_source=SparkFun+Customer+Newsletter&utm_campaign=49ac100126-Oct7-Oct11_Newsletter&utm_medium=email&utm_term=0_fa5287abaf-49ac100126-60754509)

</comment><comment><USER8> My daughter (age 7) used Microsoft Kodu at summer camp this year and really liked it.

[http://fuse.microsoft.com/projects/kodu](http://fuse.microsoft.com/projects/kodu)

I haven't had time to play with it, but I loaded it onto a computer for her and she occasionally plays with it still.

</comment><comment><USER9> I would (probably controversially) say there's plenty of time to learn programming later on in the teenage years. Children only start developing abstract reasoning skills around 12 years of age. Learning social reasoning skills is more important than internalizing the way a compiler works.

<comment><USER10> As someone who teaches mathematics (set theory, combinatorics, logic, algebra, etc.) to grade school children, I'd have to say you're way off base. Many first and second grade kids have impressive abstract reasoning skills, though they often lack the vocabulary to express their thoughts. If you want proof, just find an eight year old that's into a complex game (as many of them are) and ask them to discuss the strategy with you.

</comment></comment><comment><USER11> This combination of a diagram-rich Kindle book and free online interactive exercises provides a learning curve so gentle, it's good for both adults and 9-year-olds: [http://www.ASmarterWayToLearn.com](http://www.ASmarterWayToLearn.com)

</comment><comment><USER12> I never would have started coding if it weren't for Processing. It's relatively easy to learn, but is also Java-based and super powerful. I still use it today!

Check out [http://www.processing.org](http://www.processing.org)

</comment><comment><USER13> I wonder if Raspberry PI would be a good one to get kids thinking below the hood. I am currious to hear how did Drew Houston start programming at 5 years old? I have a 2.5 years old so he's almost there!

</comment><comment><USER14> Has he/she gotten into Lego Mindstorms yet? I've sent my 9yo to summer camp to do that for the past two years and, when his birthday comes up next year, that's probably what he will get.

<comment><AUTHOR> Interesting - I will suggest that as well!

</comment></comment><comment><USER15> Look at Microsoft smallbasic [http://msdn.microsoft.com/en- us/devlabs/cc950524.aspx](http://msdn.microsoft.com/en- us/devlabs/cc950524.aspx)

</comment><comment><AUTHOR> It might be worth noting that this particular 9 year old is really good at math, but struggles a bit with reading. Thanks for all the suggestions so far!

</comment><comment><USER16> The best is [http://www.imacs.com](http://www.imacs.com)

<comment><USER17> I think you meant [http://www.imacs.org](http://www.imacs.org), the above link goes to something which appears slightly unsavory...

</comment></comment><comment><USER18> I think CodeCombat.com would do the trick, they just got accepted into YC w'12.

</comment><comment><USER19> Find him an old Amstrad or similar 8-bit computer. Seriously. There is no better way to learn programming than having an old 8-bit machine in front of you, a stack of magazines with listings, and a free afternoon ..</comment>


Ask HN: Parents of HN, what product would help you raise more creative kids? - <AUTHOR> <comment><USER2> Child of HN here. LEGOs were extremely helpful. At first you just follow the instructions, but then you start designing your own things (if your kids don't, then invite them to do so, and make it sound like an adventure or challenge). Musical instruments and crayons are good alternatives as well, but require much, much more direction and help from adults.

But the one thing I'd say is irreplaceable is acting. Watch movies with kids and get them into mimicking accents, and then trying to act like characters. From there, it's easy for them to begin putting on their own "plays" and just having a blast, and the real hard part becomes finding a way to guide them towards improvement (as well as putting up with the quality :P)

</comment><comment><USER3> I'd say discovery is an issue. I'd like to be able to instantly find a product/service that hooks into whatever my kids just discovered. It won't be used for long probably, so it's more a matter of supporting micro-skill advancement than a complete course in whatever that's looking for long term users.

For example, one of my kids got into Thomas the Tank Engine. I got her an iPhone game that taught here eye-hand coordination and puzzle solving. Lasted for a week, after which she got into toilet training. There's an app for that (Pepa Bath, pretty cool). You catch my drift...

</comment><comment><USER4> Since you are a new (green) account, I guess that you're fishing for a startup idea.

The short answer is "be a good parent". Sadly for you, that's not a product.

A slightly longer answer is "don't be a controlling parent and provide your children with things to play/interact with".

I think this is about 90% or more of the answer you are requesting. Any products that take credit for more than a very small percentage of "raising creative kids" would just be marketing hyperbole.

</comment><comment><USER5> The creators of Sesame Street used a lot of science and metrics to optimize engagement. They didn't just say, oh kids like talking puppets, let's do that.

People have theories about what makes kids creative, but without metrics, it's just speculation.

</comment><comment><USER6> outdoor play - my wifes a teacher and is really strong on the forest school idea. In her experience problem children cease to be a problem when they are outside - whether gardening, building hideaways, lessons

Id also agree with lego - but the modern lego kits all seem to have custom components which you will struggle to reuse in yoru own creations. A comparason being the 80's lego my son has vs his current superheroes - he's a lot more imaginative with the 80's lego

<comment> a-saleh W.r.t. lego, after my daughter was born, my wife turned into lego-duplo collector. Currently we have a full zoo (including animals from arctic, savanna, forest, even some dinosaurs), a full house (including stove, tables, chairs, toilet, bath, sink), and several vehicles (cars, planes, trains, boats).

But what she realized in few months, that our little one plays with duplo in the same way she plays with her plushies, what in my mind as well was not really utilizing the strengths of duplo.

So then she bought her some more discrete pieces. Weird legs with suction cups. Butterfly wings. Head of the giraffe. Weird eyes. Spider legs that can jump.

And then my daughter built an awesome frankenstainian monster utilizing all of the body-parts, she called it Chomper and it was her best friend for a month :-)</comment></comment>


Log your mobile carrier dropped calls at dropcallcount.com - <AUTHOR> http://www.dropcallcount.com/

<comment><USER2> People should avoid the services of "cricKet": <http://www.mycricket.com/>

I am gonna be in the U.S. for only 6 weeks and decided to get a temporary phone service. I used it for 24 hours, made about a dozen calls and could hear nothing. Can't receive calls either. I can honestly say, this is not a phone service: a bell that chimes when you have an incoming call.

</comment><comment><USER3> It would be nice if it allowed to post where/what city the calls got dropped?

I live in the Midwest and so far AT&T's service has been not too shabby.

Not all of us live in NY/SF area.And it seems like those two cities makes up most of the raucous bunch complaining about dropped calls.

<comment><USER4> Isn't that what the "Zip Code" field is all about?

</comment></comment><comment><USER5> Dropped calls still regularly happen for people? I'm driving and on the phone fairly regularly and the last time I had a dropped call was when I went from the mall to the parking garage via the elevator two or three months ago.

<comment><USER6> For me, but only in specific areas at certain times of day. I'm guessing it's a location with only one tower in the vicinity, because it happens when a particular intersection near my workplace piles up with cars during rush hour.

My work location also causes my battery to drain almost twice as fast.

I'm in the dense suburbs with plenty of medium-sized businesses, and a few large business branches (FedEx has a warehoure house 2 blocks from here, and Enterprise admin offices are nearby), so I'm not in the sticks or anything, but also not the city proper.

</comment></comment><comment><USER7> Also known as: www.attsucks.com

My text and voice fail so regularly I wonder why I even carry my phone anymore.

</comment><comment><USER8> drives me nuts!</comment>


Earthly – Makefile Meets Dockerfile - <AUTHOR> https://vladaionescu.com/introducing-earthly-build-automation-for-the-container-era-55619c63c3e <comment><USER2> This essentially looks like a Makefile where the tasks (targets) are run inside Docker containers. That is useful, I've definitely written Makefiles where tasks run in containers, and I wish it was easier.

But does this actually replace Bazel? Without language specific rules, like knowledge of dependencies, can it build a full dependency graph? If I have a monorepo with many packages, can Earthly build only what needs to be built, and always build what needs to be built?

<comment><USER3> Except all the nice things from makefiles like actual rules are missing in this one. There must be a better way to do this. Isn't there a tool to actually incrementally build container layers in the normal file system that works with the real make or any other build system?

<comment><USER4> That sounds like Buildah ([https://github.com/containers/buildah/blob/master/README.md](https://github.com/containers/buildah/blob/master/README.md)).

Buildah can work with standard Dockerfiles, but it can also do a lot more. For example, you can mount the container filesystem, modify it (say using make), then use those updates as a new layer.

</comment></comment></comment><comment><USER5> That Dockerfile looks exactly like a multi-stage build Dockerfile, just with custom and non-standard syntax.

Why NIH instead of simply adopting the already supported Dockerfile syntax of doing the same thing?

<comment><USER6> But isn't this file _processed_ differently?

<comment><USER7> Is it?

</comment></comment></comment><comment><USER8> > But most importantly, all builds are completely reproducible.

This is only true if the commands that the recipe executes are reproducible. If someone's pulling packages from PyPi or C[PR]AN or ... w/out locking the versions, all bets are off.

This is one of my biggest beefs with many containerization sales pitches...

</comment><comment><USER9> > _A familiar Dockerfile-like syntax is used, [...]_

Oh, no. Another slightly different format? :/

<comment><USER10> Docker-like syntax isn't exactly good choice either. Most Dockerfiles I've seen desperately call for HERE documents.

</comment></comment><comment><USER11> This looks a lot like Toast: [https://github.com/stepchowfun/toast](https://github.com/stepchowfun/toast)

</comment><comment><USER12> I strive to see a selling feature in comparison to gitlab-ci... Mixing its syntax with docker is only so little.

<comment><USER8> gitlab-ci requires GitLab, doesn't it?

This doesn't, so it's an option for other settings.

<comment><USER13> I think it doesn't, at least seems to support GitHub repos: [https://about.gitlab.com/solutions/github/](https://about.gitlab.com/solutions/github/)

</comment></comment></comment><comment><USER14> Dockerfiles in YAML

</comment><comment><USER15> Looks nice</comment>


Top 5 Cities to Earn as an IT Employee - <AUTHOR> http://blog.yeahstu.com/2012/02/16/top-5-cities-to-earn-as-an-it-employee/

<comment><USER2> What about taxes? I'm not sure if there would be an easy way to add that as a category, but it would give a better broad picture.

No state income tax in: Alaska, Florida, Nevada, South Dakota, Texas, Washington, and Wyoming

I know that there is a tax increase on everyone making over (not exactly sure of the number) $45k in California.</comment>


How to use a Landing Page to validate your Startup idea - nico-roddz http://blog.landerapp.com/how-to-use-a-landing-page-to-validate-your-startup-idea/

<comment><AUTHOR> What happens when everyone starts to assume everything is vaporware because there are so many landing pages and so many fewer startups connected to them?

People stop signing up.</comment>


How the Startup Mentality Failed Kids in San Francisco - rising-sky https://www.wired.com/story/willie-brown-middle-school-startup-mentality-failed <comment><AUTHOR> Prop 13, mentioned in the article, correlates with the sharp turn of California's public schools from the among the best to among the worst.

I'm sure there's numerous factors that contribute, but this is core. And repealing this bad law would have numerous other positive effects on crucial issues like affordable housing and sprawl, because it would cut down on idle land speculation which drives up real estate prices in prime locations.

</comment><comment><USER2> >San Francisco has been trying, and mostly failing, for half a century to give African American and Latino students an education comparable to that provided to white and Asian students in the city.

At what point will it become appropriate to admit that there is a cultural problem among certain low income minorities that leads to poor outcomes in education?

Regardless of whether it is fair, is it really reasonable to force middle class minorities and whites to be exposed to drugs and violence in middle school, in a clearly failed attempt to bring up worst performers?

These policies are a net loss to society. Instead of boosting performance of the lower tail, we are only hampering the middle and, especially, upper reaches of achievement. Some problems can't be solved by money, or even celebrity apparently, according to this article.

<comment><USER3> The only reasonable part of that question was in specifying low income, which seems the main influencer on students across the spectrum. I'm not saying those cultures don't have unique negatives (even though we Americans pretend as if there's no such thing as diversity of weaknesses), but keeping "us" from "them", whether that's racial or economic terms, seems truly unamerican in terms of ideals and what we try to sell to the world.

It's not as if the poor white are blowing away their contemporaries with over achievement. It's a pretty consistent pattern, and one we can have some influence on both through the state and personally.

Also, maybe instead of looking at other cultures and only pinpointing any negatives we see, we can look at our own. What does it say about us culturally that we are totally fine with exploiting the poor by preying on their weaker position, but the second someone mentions preventing it, half of our country throws a fit?

I'm not stating that it always needs a governmental solution, but your response indicates a general disdain for the poor, especially those who have very little control (the kids) over their previous experiences, and don't always get the opportunity to learn how to make better choices in the future.

I think as a society we function better when we address poverty as a "we" problem, not just a "you" problem.

Edit: Spelling. Thanks Gboard :P

<comment><USER2> >I'm not stating that it always needs a governmental solution, but your response indicates a federal disdain for the poor, especially those who have very little control (the kids) over their previous experiences, and don't always get the opportunity to learn how to make better choices in the future.

My point has nothing to do with disdain. I am alluding to a greater good. Is society better off from the averaging effect that comes from mixing high and low performers? The fact that performance is segregated racially is incidental to my point. Does a rising tide lift all boats?

Can we remain competitive as a nation if we improve our low performers at the expense of our best and brightest?

And this issue is correlated to more than just income. This isn't a dog whistle, this a fact, and it has been an unchanging fact for decades. African America children are fatherless, live in broken homes, are not taught to value education, and simply throwing them into a nice school amounts to nothing more than a failed policy which drags down our best without improving our worst.

<comment><USER3> Alot of what you said I can agree with, but I don't agree it's endemic to either African American or Hispanic cultures, even if there are specific weaknesses culturally that we can identify (such as broken homes). But isolating the African American experience from issues such as poverty is going to be really tough, both because of our cultural history and the sample size to contrast it with is relatively tiny. Everyone still debates what the full causes are (whether that's poverty, institutional bias, or some combination), but I do think for many cultures there is something uniquely broken and I'm not against discussing the question. But it would be highly presumptuous of me to assume that I do have the answers, or that I'm some kind of White Savior who can rescue "those people" (I'm not implying that's anywhere near what you're saying, but just an admission of both seeing the issues, and not knowing the right way to solve them. But all cultures have a long list of social ills).

To answer your questions though,

> Is society better off from the averaging effect that comes from mixing high > and low performers? The fact that performance is segregated racially is > incidental to my point. Does a rising tide lift all boats?

Yes, a rising tide lifts all boats and sometimes drowns someone as well, but I think on the whole, even if the spoils are disproportionally distributed, our general societal success has raised quality of life for most people.

But your questions are fair, so I'll try to address the point. An example I think about is with the Department of Education specifically. I think we all agree that it's generally a good thing that we enforce kids school attendance, even if we hear upsetting statistics about a high illiteracy rate among high school graduates. But what I do know is that even with that illiteracy level, on the average, more kids have a higher level of general literacy than many if not most of their historical counterparts that were kept home to tend the farm, and could get by without needing to read or write with any fluency. Literacy seems like something that has degenerated in our society, but literacy was often a privilege of the wealthy, and I think it's averaged itself out better than if we were to replace it with nothing.

> Can we remain competitive as a nation if we improve our low performers at > the expense of our best and brightest?

Honestly, can we be competitive without trying to help as many people as possible contribute to that success? What would competitive as a nation even be considered if it were only limited to a small percentage? Also, you're assuming that the cost to the "best and brightest" is one they can't shoulder. By definition, they're more capable of addressing the issues than those who are merely caught in the cycle of perpetuating them.

Where I do agree with you is that education or a nicer school aren't panaceas to solving deep issues, but they do play a role (if they didn't, we wouldn't be having the discussion... if it's so important that the best and brightest need "good" schools, then I think we can agree that it would benefit not just them). I also don't think this is something that just throwing money at is going to solve (it's actually played out where its the opposite now).

But IMO what you're describing is an amputation of sorts. And while we can believe that amputation is the proper remedy for certain cases, I don't think that should be the one we assume is the right one or one we have as the go-to, especially when there are many cases where things have been improved without that need.

I don't have a pet agenda to preach as the one right way to fix the issues that plague schools, but for good and bad, I believe we've generally been harmed when we isolate improperly, and generally benefited by being more inclusive, even if some of those kids choose to throw it away. Alot of this will probably come down to how we feel comfortable with generalizing a lot of people and in reality the solution will probably be really sticky and take a ton of laborious and inadequately praised work. But I say better that than replacing one flawed system with an even worse one, which I think is what you described (racially or economically segregating kids from access to an accepted level of education).

I disagree with the general premise, which is that the issues stem from inherent problems with certain minorites as well as that solving the issue somehow is addressed by segregation of those groups. If I misread your point though, I'd be happy to learn where I'm missing it.

<comment><USER2> I'd just like to be clear, I'm not advocating for segregation, I just think that the current quota based forced desegregation isn't quite working. Perhaps that is because, as you allude to, there are other fronts to work on.

But I believe the rest of our disagreements stem from your optimism to my pessimism.

I appreciate your thoughtful response regarding this taboo subject.

</comment></comment></comment></comment></comment><comment><USER4> > This gutted California's education funding so severely that the state's > public schools, which had been ranked best in the nation in the 1950s, fell > to among the worst in a few decades. (They now hover around 35th.)

Stopped reading here. This statistic is useless without adjusting for change in demographics (the time period coincided with a massive increase in percentage of students from ESL backgrounds).

<comment><USER5> ...because the new demographics are significantly generically stupider?

<comment><USER6> You can put a math prodigy in a room with me and I will have a harder time teaching them (anything) if their Spanish is good and their English is weak, because my English is good and my Spanish nonexistent. "Stupid" has nothing to do with it.</comment></comment></comment>


Results of the Grand C++ Error Explosion Competition - <AUTHOR> http://tgceec.tumblr.com/post/74534916370 <comment><AUTHOR> I'd like to see a variation of this contest where a "typical", valid source code is given as part of the rules, and the objective is to change the code as little as possible to produce the highest amount of compilation errors. For example it could be measured the ratio between the output of the compiler and the edit distance with the reference code.

It would be more representative of all those WTF moments when you have some code that compiles perfectly fine, change a line and suddenly GCC decides to throw up thousands of meaningless messages :)

</comment><comment><USER2> My favorite was the Best Cheat winner:

      /usr/include; perl -e "@c=\"x\"x(2**16); while(1) {print @c}" 1>&2

_" Extra credit for using Perl, which is the only language less readable than C++ templates."_

<comment><USER3> Aye, but I'd go for

      /usr/include; perl -e "@c=\"x\"x(2**16); while(1) {warn @c}"

instead. Fewer chars, and you're not relying on the shell to throw it into stderr for you.

</comment></comment><comment><USER4> here's John Regehr on the construction of his entry - the "barest hands" winner: [http://blog.regehr.org/archives/1088](http://blog.regehr.org/archives/1088)

</comment><comment><USER5> That's one of the drawbacks of C++. I really love it but sometimes a tiny syntax error will produce so many errors that you can't even scroll to the top of the console to find the cause.

<comment><USER6> clojure/clojurescript has very similar issues. A small syntax error (e.g. forgetting the vector in a :keys unpacking — putting the bare field name) will throw up hundreds of lines of unreadable stack trace.

<comment><USER7> I hear this complaint a lot about Clojure, but I have to admit that I don't fully understand it.

My usual experience with Clojure has been that the stack traces are long... but the exception error messages are generally pretty good, and the stack frames that correspond to user code generally have good information on the position of the offending statement.

Maybe you could make an argument that the internal Clojure stack frames should be hidden from stack traces, but Java itself makes that difficult. The mechanisms that `Throwable` uses for capturing and printing the stack back trace are both private methods of the class. Working around this would involve identifying every (most?) places in a codebase where a Clojure stack trace might be printed and then using custom Clojure-specific stack trace printer. This might be doable for stack traces printed by the REPL or compiler, but very difficult for stack traces printed by an external linked-in logging framework.

<comment><USER6> > My usual experience with Clojure has been that the stack traces are long... > but the exception error messages are generally pretty good, and the stack > frames that correspond to user code generally have good information on the > position of the offending statement.

I do not agree, but please note my comment isn't talking about "running" stack traces here it's talking about the compiler blowing up on what is essentially a syntax error:

        (let [{:keys foo} {:foo 1}]
            (print foo))

note how `foo` is bare rather than in a vector. Put that in a script, `clj -m` it

        Exception in thread "main" java.lang.IllegalArgumentException: Don't know how to create ISeq from: clojure.lang.Symbol, compiling:(hello.clj:5:3)
            at clojure.lang.Compiler.analyzeSeq(Compiler.java:6567)
            at clojure.lang.Compiler.analyze(Compiler.java:6361)
            at clojure.lang.Compiler.analyze(Compiler.java:6322)
            at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5708)
            at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5139)
            at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3751)
            at clojure.lang.Compiler.analyzeSeq(Compiler.java:6558)
            at clojure.lang.Compiler.analyze(Compiler.java:6361)
            at clojure.lang.Compiler.analyzeSeq(Compiler.java:6548)
            at clojure.lang.Compiler.analyze(Compiler.java:6361)
            at clojure.lang.Compiler.access$100(Compiler.java:37)
            at clojure.lang.Compiler$DefExpr$Parser.parse(Compiler.java:529)
            at clojure.lang.Compiler.analyzeSeq(Compiler.java:6560)
            at clojure.lang.Compiler.analyze(Compiler.java:6361)
            at clojure.lang.Compiler.analyze(Compiler.java:6322)
            at clojure.lang.Compiler.eval(Compiler.java:6623)
            at clojure.lang.Compiler.load(Compiler.java:7064)
            at clojure.lang.RT.loadResourceScript(RT.java:370)
            at clojure.lang.RT.loadResourceScript(RT.java:361)
            at clojure.lang.RT.load(RT.java:440)
            at clojure.lang.RT.load(RT.java:411)
            at clojure.core$load$fn__5018.invoke(core.clj:5530)
            at clojure.core$load.doInvoke(core.clj:5529)
            at clojure.lang.RestFn.invoke(RestFn.java:408)
            at clojure.core$load_one.invoke(core.clj:5336)
            at clojure.core$load_lib$fn__4967.invoke(core.clj:5375)
            at clojure.core$load_lib.doInvoke(core.clj:5374)
            at clojure.lang.RestFn.applyTo(RestFn.java:142)
            at clojure.core$apply.invoke(core.clj:619)
            at clojure.core$load_libs.doInvoke(core.clj:5413)
            at clojure.lang.RestFn.applyTo(RestFn.java:137)
            at clojure.core$apply.invoke(core.clj:619)
            at clojure.core$require.doInvoke(core.clj:5496)
            at clojure.lang.RestFn.invoke(RestFn.java:408)
            at clojure.main$main_opt.invoke(main.clj:335)
            at clojure.main$main.doInvoke(main.clj:440)
            at clojure.lang.RestFn.invoke(RestFn.java:436)
            at clojure.lang.Var.invoke(Var.java:423)
            at clojure.lang.AFn.applyToHelper(AFn.java:167)
            at clojure.lang.Var.applyTo(Var.java:532)
            at clojure.main.main(main.java:37)
        Caused by: java.lang.IllegalArgumentException: Don't know how to create ISeq from: clojure.lang.Symbol
            at clojure.lang.RT.seqFrom(RT.java:505)
            at clojure.lang.RT.seq(RT.java:486)
            at clojure.core$seq.invoke(core.clj:133)
            at clojure.core$reduce1.invoke(core.clj:890)
            at clojure.core$destructure$pb__4541$pmap__4544$fn__4547.invoke(core.clj:4013)
            at clojure.core$reduce1.invoke(core.clj:896)
            at clojure.core$destructure$pb__4541$pmap__4544.invoke(core.clj:4014)
            at clojure.core$destructure$pb__4541.invoke(core.clj:4028)
            at clojure.core$destructure$process_entry__4557.invoke(core.clj:4030)
            at clojure.core$reduce1.invoke(core.clj:896)
            at clojure.core$destructure.invoke(core.clj:4033)
            at clojure.core$let.doInvoke(core.clj:4046)
            at clojure.lang.RestFn.invoke(RestFn.java:467)
            at clojure.lang.Var.invoke(Var.java:427)
            at clojure.lang.AFn.applyToHelper(AFn.java:172)
            at clojure.lang.Var.applyTo(Var.java:532)
            at clojure.lang.Compiler.macroexpand1(Compiler.java:6468)
            at clojure.lang.Compiler.analyzeSeq(Compiler.java:6546)
            ... 40 more

Yeah… the third time around you might instantly know what it is, the first time around when it's a few levels down a type method not so much.

<comment><USER7> The first line of the error message tells you where and what the error is, almost exactly:

        ... Don't know how to create ISeq from: clojure.lang.Symbol, compiling:(hello.clj:5:3)

It's true that the full interpretation of the error message requires some experience with the language (ISeq? Symbol?), but when is that not the case? Consider this one character typo in a Java file:

        voidx displayMessage(String message);

javac produces an error message that's just about as opaque as what Clojure produces in your example.

        [ERROR] ... MessageSink.java:[5,4] error: cannot find symbol

Conversely, if I leave an open brace in Java source, I get the following kind of error from javac:

        [ERROR] ... ConsoleMessageSink.java:[12,1] error: reached end of file while parsing

If I leave an open form in Clojure, it at least tells me the location of the form I left open:

        Exception in thread "main" java.lang.RuntimeException: EOF while reading, starting at line 18, compiling:(toto/data.clj:255:1)

(Of course, thanks to paredit-mode, I had to play a minor trick on my editor to get it to let me even introduce that error in the first place.)

</comment></comment></comment></comment></comment><comment><USER8> It's not unlike the busy beaver problem, where you have to produce the highest number with a turing machine before halting:

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

</comment><comment><USER9> "C++. The reason to increase your scrollback buffer."

</comment><comment><USER10> make 2>&1 | head (or less) is a common occurrence in my .bash_history :(

<comment><USER11> I actually have this written on the corner of my whiteboard because I can never remember bash's syntax for piping out stderr!

<comment><USER12> If you don't mind being bash-specific, you can shorten 2>&1 | to just |& .

<comment><USER13> Good lord. I think you just changed my life.

</comment></comment></comment></comment><comment><USER14> We had a similar competition on the Programming Puzzles & Code Golf StackExchange (that's a mouthful; I think I'll just continue calling it »cgse«) three years ago: [http://codegolf.stackexchange.com/q/1956/15](http://codegolf.stackexchange.com/q/1956/15)

We should probably start summarizing some of the better tasks in blog posts.

</comment><comment><USER15> Is there something about the C++ standard (templates?) that requires recursive include to be valid? Because that first one looks like it would be really easy to check for and stop.

<comment><USER14> Includes predate C++ by a bit. And there is nothing that specifically forbids such a thing; it's just the preprocessor literally inserting (and interpreting) the file specified.

Now, normally there are include guards (or #pragma once) to guard against including the same header file twice. But of course that's only necessary because the language specification doesn't say that including the same file twice is disallowed.

One can surely construct something where including the same file twice _does_ make sense, e.g. in the light of new #defines in between the two inclusions:

        // foo.h
        #ifdef FOO
          ...
        #else
          ...
        #endif

        // foo.c
        #include "foo.h"
        #define FOO
        #include "foo.h"

Mind you, this is probably not a good idea, at all. But some people might build such things. A similar method that springs to mind is Android's native build system ndk-build, which is a thickly-veiled GNU make where you basically include targets that do something with a lot of variables you set beforehand. And you can do so multiple times in a row. Maybe the included file uses a defined symbol to emit some generated code based on that symbol and you might want to do that with several symbols. Macros are usually preferred for that, but nothing stops you from using an included file.

<comment><USER16> Also do not forget the more common case:

\- foo.c includes bar.h and baz.h

\- bar.h and baz.h both include qux.h

This is why most C header files have ifdef guards like this

#ifndef __BAR_H

#define __BAR_H

// contents go here

#endif

This makes sure that the contents of the header are only included the first time the preprocessor sees it in a particular file

<comment><USER14> Hence include guards, yes. Agreed, I could have made that point a little better. Although they are usually only necessary when the header files contains things that may not appear twice in the same compilation unit, such as ... uhm, pretty much everything.

</comment></comment></comment></comment><comment><USER17> Ah, a contest in the style of the venerable Obfuscated C.

</comment><comment><USER18> y u no english?</comment>


No Silver Bullets: Etsy's Randy Hunt on Product Design - <AUTHOR> http://www.jasonshen.com/2014/no-silver-bullets-etsys-randy-hunt-on-product-design/

<comment><USER2> Need to pick up this book now — I appreciate the synopsis as lead-in to the larger discussion here, definitely worthwhile.</comment>


First women computer programmers inspire documentary - <AUTHOR> http://abcnews.go.com/print?id=3951187

<comment><USER3>
      Unlike men, women pay attention to detail and tend to get the job done,
      she said. "They are more willing to do whatever it takes," said Malcom.
      "Men want to delegate the nasty part of the job, like handing off the baby
      when it's number two."

Really? _Really?_ Ouch!

The rest of this article is interesting for the light it sheds on historical women in computing, but the bits where it talks about how the industry is lacking in some crucial way because there are few women range from unfounded to offensive.

Does anyone know of any evidence that the presence of women in a technical team affects results in any way (positive or negative)? It seems like "there are not enough women in computing" people frequently make the claim that more women will improve the field; has anyone measured to check?

<comment><AUTHOR> _"... Unlike men, women pay attention to detail and tend to get the job done ..."_

If you consider the operations of Bletchley Park, UK in WW2 as important with half the staff women [0] I would say your question has been answered. Effectiveness in wartime is measured by competence, not perception. Jean Valentine a _"bombe operator"_ at Bletchley had this to say about the type of work and importantly the effectiveness:

 _Q:Was it unusual to have women working on the machine? I'm thinking that, when telephone switching systems were first invented, men were found to be inferior to women at organising the system. Was the same true with the bombes?_

To which Valentine answered:

 _"On the first bombe there were men working on the machine, but later more women were brought in to do the job, which I don't think some people liked. You must remember that there were 210 bombes, with three shifts of workers so they could run constantly. The shifts were 8am to 4pm, 4pm to midnight and then midnight to 8am. That's a lot of people doing the job."_ [1]

Effective in the constrained role they had? Yes. There was a demarcation in tasks between the boffins - which included women - and the operators - <USER2> women - but that in no way diminishes the role played.

[0] <http://skirtsandladders.com/?p=504>

[1] [http://www.v3.co.uk/v3/analysis/2260231/q-jean-valentine- ble...](http://www.v3.co.uk/v3/analysis/2260231/q-jean-valentine-bletchley- park)

</comment></comment><comment><USER4>
        "The way women lead is advantageous," said Leighton.
        "They have better interpersonal skills and build
         consensus and work horizontally across multiple
         organizations."

So it's cool to make blatantly sexist remarks Or it only OK when it's favorable to women?

Here's the catch: As soon as someone makes such a sweeping generalization they've asserted that there exist sweeping general differences between men and women. Which is exactly the reasoning that keeps some people from hiring women for geek jobs.

<comment><USER5> Careful buddy, you're edging into misogyny there. Next thing you know you'll be demanding proof regarding feminist statements about wages or health issues - and at that point you're practically part of the Talliban.

</comment></comment><comment><USER6> <http://en.wikipedia.org/wiki/Ada_lovelace> ?

<comment><USER7> I should have noticed your post before I asked the exact same question. Arguably, the first computer programmer in the world was a woman -- in fact, probably the _inventor_ of computer programming.

</comment></comment><comment><USER8> Betty Bartik is my great aunt (my dad's aunt) and it's been fun chatting with her over the years about her work "as" the first computers. I think there's at least one book that was published about their work, but I'm not sure what the title is.

Thanks for posting the link! I'll forward her the article.

Edit: Looks like the article is a few years old now, so I'm sure she's aware of it. BTW, she and her fellow female computers periodically travel around for speaking engagements.

</comment><comment><USER7> Ada Lovelace?</comment>


Cargomatic – Instantly Connecting Shippers with Local Carriers - <AUTHOR> https://www.cargomatic.com <comment><USER2> There are dozens of load boards and DAT has the largest by a huge multiplier - what's cargomatic doing substantially differently?

<comment><USER3> From their FAQ:

Q: Can a Cargomatic shipper or carrier contact me directly?

A: According to our Terms of Service, it is strictly forbidden for either party to solicit business from one another for 12 months from the last date of a shipment between the parties. If this occurs, both parties will be asked to cease and desist and are subject to being asked to leave the marketplace.

AFAIK, the norm for load boards like DAT is to contact directly and settle a deal through external communication (i.e. not through the load board).

I can see some convenience to having such a closed/end-to-end system, but seems like, as a shipper, it would be limiting your supply of capacity.

</comment></comment><comment><USER4> All the bootstrapcdn.com references are blocked, messing up the font icons.

</comment><comment><USER5> Some feedback: requiring a user to login/sign-up just to browse/discover here is a non-starter. I don't care to sign-up to determine whether I want to learn about your service.

<comment><USER6> agreed 100%.

</comment></comment><comment> throwaway-hn123 This is a better link

[https://www.cargomatic.com/](https://www.cargomatic.com/)

The cityofhumans site seems to just be some kind of aggregator that requires a login just to view whatever content there is.

<comment><USER7> Thanks, we've updated the link from [https://cityofhumans.com/smarter-local- trucking/#.V8Gshn2ZvH...](https://cityofhumans.com/smarter-local- trucking/#.V8Gshn2ZvHA.hackernews).

</comment></comment><comment><USER8> hmm something about that site is off putting, I dunno if it's the page layout they chose or the requirement to login before being able to navigate that page.</comment>


Announcing DjangoCon Europe 2013 - <AUTHOR> http://blog.djangocircus.com/post/33513273611/djangocon-eu-2013-is-officially-on

<comment><USER2> Is it a good idea to have such entertainment at a conference when tickets + travel are already so expensive?

<comment><AUTHOR> Man, it's Poland - comparing to the last DjangoCon in Zurich everything here is like at least 2 times cheaper. We think it's not about money (ticket price is not going to be higher because of that), but about fun + hard work + a little bit more engagement than in usual conference to make it unfogettable and extraordinary :)

Hope we can prove it to you!:)

</comment></comment><comment><USER3> Django -> Monty Python Flying Circus -> LOL!

</comment><comment><USER4> A fish and a rabbit as a background image??? The Django pony [1] is going to be mad !!!

[1] <http://djangopony.com/></comment>