Show HN: Crafting Interpreters – A handbook for making programming languages - <AUTHOR> http://www.craftinginterpreters.com/ <comment><USER2> A fantastic book covering similar things that you can read right now is [https://pragprog.com/book/tpdsl/language-implementation- patt...](https://pragprog.com/book/tpdsl/language-implementation-patterns). It's the book that got me into interpreters and compilers, I highly recommend it.

It's slightly less in depth than the roadmap of "Crafting Interpreters", but again, it exists right now.

<comment><USER3> Ha yeah, Terence parr is a référence.

</comment></comment><comment><USER4> Seems to be a hot topic, a friend and colleague published this in December 2016 and I can __thoroughly __recommend it (Uses Go as an implementation language):

\- [https://interpreterbook.com](https://interpreterbook.com)

<comment><USER5> I can recommend this book as well! It is easy to read and understand and the choice of Go as the host language is also great.

I am in the process writing a semi-natural query language (boolean logic) targeted at domain experts (in this case biomedical researchers) that compiles to either database queries (e.g. SQL) or a function call for arbitrary logic. The goal of the compiler bit is to abstract away where the data ultimately lives (similar to GraphQL) or how it is structured.

</comment></comment><comment><USER6> Looking forward to the chapters about the C interpreter. Meanwhile, it looks like both interpreters are available to study now in the Git repo. [1]

[1]: [https://github.com/munificent/craftinginterpreters](https://github.com/munificent/craftinginterpreters)

<comment><USER7> Nice project. What do all the

//> SomeName not-yet

in the code mean? Are they meant for some kind of automatic processing? Its a bit hard to read with all of them there...

<comment><AUTHOR> Sorry, yeah. Those are the markers that the build script uses to insert the code snippets in the right place in each chapter.

I know it makes the code hard to read. I should probably slap together a little script to strip them out.

</comment></comment></comment><comment><USER8> I really enjoyed [http://gameprogrammingpatterns.com/](http://gameprogrammingpatterns.com/) and I've been looking forward for this book since I saw the link on munificent's homepage

</comment><comment><USER9> Thank you so much for the book, please, continue!

I am currently working on Scheme R5RS implementation in Java. It is a hobby project, but I'm really enjoying it. It is somewhat enlightening.

Look forward to reading the Optimization chapter: I couldn't find much useful and practical info on that. I think it is quite easy to implement your interpreter, but it is really difficult (at least for me) to make it fast.

Can anyone recommend any articles or books with common optimization tricks and techniques?

<comment><USER10> For making an efficient Scheme implementation: most everything written by R. Kent Dybvig or his students. I'd start with his PHd thesis (Three Implementation Models for Scheme, specifically the stack-based part).

[http://www.cs.indiana.edu/~dyb/](http://www.cs.indiana.edu/~dyb/)

(See also Lua's upvalues for a way to optimize closure variable access that's a bit simpler than his display closures).

<comment><AUTHOR> > See also Lua's upvalues for a way to optimize closure variable access

Yes! In fact, that's how the C version of the interpreter in my book implements closures. It's pretty brilliant. <3 those Lua folks.

<comment><USER11> Will you cover anything about LuaJIT's "NaN-coding"?

Or perhaps do you have a link about how it works?

<comment><AUTHOR> Yes, we'll do NaN-tagged values in the last chapter on optimization.

</comment></comment></comment></comment></comment><comment><USER12> I've been reading [http://beautifulracket.com/](http://beautifulracket.com/) and its a really good introduction on making interprets.

<comment><USER13> Interesting! I like racket...just wish it was faster. Anybody know if there will be a successor to "Realm of Racket"?

Edit: Now I remember it uses LGPL as the license. I understand the reasoning, but I've always viewed the freedoms as giving the user freedom over the implementer...kind of just trading power.

</comment></comment><comment><USER14> I clicked the link without looking at the poster, and by the end of the "What's the Catch?" paragraph I was thinking to myself that this really seems like something written by The Munificent Bob. Then I read the first sentence of the next paragraph :)

I really like your blog, I have read all of it, some posts even 2-3 times, and not only because of the content, but your writing style. I will probably read this book too ;)

Also, I think Magpie is awesome.

<comment><AUTHOR> \o/

</comment></comment><comment><USER15> One think I find lacking in books about building languages is a focus on tool. I am working on one (available for 0$ on leanpub: "How to create pragmatic, lightweight languages" [https://leanpub.com/create_languages](https://leanpub.com/create_languages) ) with the intention to focus more on building editors and simulator.

If you are interested in the subject you could take a look to my blog ([https://tomassetti.me](https://tomassetti.me)) I write 1-2 posts per week on building languages. Most of the time I talk about DSL.

</comment><comment><USER16> This is awesome, since I'm currently working on my own (toy) language! Thanks for making this public!

On a side note, to anyone interested in an overview of high-level language features and what their implementation requires, I can wholeheartedly recommend Michael Scott's _Programming Language Pragmatics_. It doesn't go into implementation details, but tells you a lot about the historical choices and implementation possibilities of (mostly) mainstream languages.

<comment><AUTHOR> _Yes!_ PL Pragmatics was the first book on languages I read and I really enjoyed it.

</comment></comment><comment><USER17> That's so cool! Learning to make a programming language is in my life's todo list, just as doing my own (super simple) operating system. Thank's for contributing with a free book, I very much appreciate it. Does anybody know of something similar but for operating systems?

<comment><USER18> Not quite but this is a good read. [https://littleosbook.github.io/](https://littleosbook.github.io/)

<comment><USER17> This is good! It will definitely do.

Thank you very much!

</comment></comment></comment><comment><USER19> This looks great, for some reason the idea of creating a language from scratch and then using it in some professional capacity always seemed really cool to me.

</comment><comment><USER20> Really looking forward to this!

A much less involved language-building tutorial that's available now is Beautiful Racket.[0] Racket is a Scheme, but it's also specially outfitted to be a language workbench.

<comment><USER20> And _16 hours_ later: [0] [http://beautifulracket.com](http://beautifulracket.com)

</comment></comment><comment><USER21> A little late to the party here, but I'll throw another tutorial that I absolutely loved, buildyourownlisp.com which guides you to building 'lispy' in C.

</comment><comment><USER22> Racket is also a great environment for making languages. See, e.g.:

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

</comment><comment><USER23> One question here for the more advanced compiler writers.. How do you go about writing a "pre-lexer" for LISP like language where you want to expand sexpr? I.e. Does the lexer even see `(...), or does it get pre-extracted to (quote ..)? And if so, how does the pre-extraction work exactly? Is it built using regex..? That can be tricky.

<comment><USER24> Lisp dialects usually have an input mechanism called a "reader". It scans the character syntax and produces the equivalent object, combining lexical analysis and parsing. Special notations like 'x denoting the same thing (quote x) are easily handled here. When the reader sees a quote, it consumes it, calls itself recursively to scan the expression which follows to get an object O and then returns the object (quote O).

</comment></comment><comment><USER25> Just from reading the first few pages of the book, I'm already a fan.

However my one tiny complaint is that the sign-up box is on every page, and even after I've signed up, it still has to be closed every page I go to.

<comment><AUTHOR> Yeah, that is annoying. I think for my previous book, I used a little cookie support in JS to hide it persistently after the first time you closed it.

I'll try to resurrect that for this one.

[https://github.com/munificent/craftinginterpreters/issues/11](https://github.com/munificent/craftinginterpreters/issues/11)

</comment></comment><comment><USER26> This looks great. Thanks for sharing. Looking forward to updates.

</comment><comment><USER27> Any pointers to intermediate representations for compilers?

</comment><comment><USER28> Another great-looking book on making _dynamic_ languages. There's been some good ones recently, and this one looks like another good one covering how to make a basic, interpreted language.

Some of us have written 1 or 2 dynamic, interpreted languages, feel pretty comfortable with those concepts, and are interested in transiting to more advanced, static type systems and writing a good type checker.

Anyone up for writing such a high-quality book as this one on statically-typed languages, ideally functional languages? The only decent books I've found on the subject are 20-30 year-old textbooks. I'm watching "Write You a Haskell" with interest (and have partially read it), even though I'm more into ML and Scala than Haskell, but it's still pretty unfinished.

There's also the plzoo, which is a great resource but not a book.

Oh, and I definitely need to read Pierce's Types and Programming Languages textbook, I've ordered it and need to sit down with it. I suspect it will be very enlightening.

But a more approachable book on statically-typed languages in the same genre as this one is (popular, less academic) would also be welcome.

<comment><USER29> > more advanced, static type systems

Are static type systems more advanced than dynamic type systems? This sounds surprising, given how much more one can do with a dynamic type system.

<comment><USER30> Basically, yes. You can do more with a dynamic type system than a static type system because you don't need to (and actually, aren't allowed to) _prove_ that your code is consistent. Advancements in static checking and inference mean you can prove more things about your programs, so you don't have to fall back on dynamic types and data structures so much.

</comment></comment></comment><comment><USER31> 'Git ta werk. ;)</comment>


Linux Fu: Easier File Watching - <AUTHOR> https://hackaday.com/2019/01/31/linux-fu-easier-file-watching/ <comment><USER2> If you use entr in non-interactive scripts, make sure to use the -n flag to avoid weird lock-ups:

[https://bitbucket.org/eradman/entr/pull-requests/10/add-n- op...](https://bitbucket.org/eradman/entr/pull-requests/10/add-n-option-to- enable-non-interactive/diff)</comment>


A Political History of X [video] - <AUTHOR> https://www.youtube.com/watch?v=cj02_UeUnGQ <comment><AUTHOR> Blog post and slides: [http://keithp.com/blogs/lca2020/](http://keithp.com/blogs/lca2020/) [http://keithp.com/documents/lca2020-x-history.pdf](http://keithp.com/documents/lca2020-x-history.pdf)</comment>


Israeli discovery explains why smoking slows down development of Parkinson's - <AUTHOR> http://www.haaretz.com/news/national/israeli-discovery-explains-why-smoking-slows-down-development-of-parkinson-s.premium-1.459535

<comment><USER2> Doubtless they'll next prove that rudeness is also a preventative, hence the low incidence of Parkinson's in Israel.</comment>


Ask HN: Advice on self-publishing? - <AUTHOR> I'm writing a couple of books on the side that I plan to self-publish (ebook and specially paperback). One of them is a 'travel book' so I don't expect many sells but the other is more ambitious.<p>Advice on this subject would be very helpful. <comment><USER2> I don't have anything to offer from a business, expense, or marketing perspective. I do have something to offer from a technology and distribution perspective.

I am not sure if this would be helpful to you, but I am working on self-hosted and self-published distribution technology. The technology is intended to move software around, but it can really be used for anything. It is language agnostic and operating system agnostic (it runs anywhere Node.js can be installed).

The idea is to automate many aspects of publishing and allow a download point for multiple versions and multiple variations for a given item without subject to the limitations of a central repository.

[https://github.com/prettydiff/biddle](https://github.com/prettydiff/biddle)</comment>


The Most Radical A/B Test I've Ever Done - <AUTHOR> http://www.kalzumeus.com/2010/06/04/the-most-radical-ab-test-ive-ever-done/ <comment><USER2> As a teacher, I think this is a smart decision.

Desktop applications are increasingly difficult to manage on a school computer. Many teachers return each September to a computer that has been wiped clean.

At the same time, the internet is becoming more and more accessible in schools. Teachers will be able to use the web application no matter which room they are in or which computers they have access to.

Another challenge for non-tech savvy teachers is syncing work between the school and home. I think focusing on the web app will mitigate some of the anxiety that teachers experience in that area.

<comment><AUTHOR> _Many teachers return each September to a computer that has been wiped clean._

I hear that. Frequently, in September, from several dozen teachers asking me "How do I reinstall Bingo Card Creator on my computer which was just wiped clean? Also, do I have to pay?"

 _I think focusing on the web app will mitigate some of the anxiety that teachers experience in that area._

It totally solved that problem, where the feature I made in the downloadable version to do the same thing has been a catastrophic flop. (Twenty people have ever used it, and I still get emails asking to explain how to copy files onto a floppy so that they can be read on the machine at school. And then emails the next day saying that the computer doesn't know what a .bcf file is. And then emails the next day saying that they installed Bingo Card Creator and opened the file but it says it is the free trial which is odd because they know they purchased the program and they never had this issue at home [i.e. where they followed directions and put in their Registration Key].)

<comment><USER3> Teachers here in the UK have it really bad; a lot of the IT infrastructure is farmed out to BT or other completely useless corporates. Either what happens is they can't cope and so are dropped after a few months or they keep having to replace all the poorly configured laptops.

My Mum has been through about 8 new laptops in the last 14 months...

(the best one is when the laptop leads all went missing [never found out who did it] and their response was... ...to replace the laptops. _rolls eyes_ )

And lets not even start to talk about the restrictions imposed on these laptops.... (I mean; I can understand it for the kids, but the teachers?)

</comment></comment></comment><comment><USER4> My first thoughts are that removing the downloadable version will work out well by getting rid of the "Tyranny of Choice" and thus helping with conversions.

Has anyone else tried this approach?

</comment><comment><USER5> And I thought the post _had_ the results of this test :)

Anyway, interesting test and do keep us posted about the results.

</comment><comment><USER6> "How do I copy the files to my niece's computer? By the way it is a Mac and I use a Yahoo. Try using the web application."

This gem from the article really illustrates the added difficulty of supporting a desktop application vs a web application. For this particular request what OS she is running doesn't matter, but for many other requests it could be very important to know. Given the technical sophistication of this user, just figuring out what environment the application is running in could be an arduous process.

</comment><comment><USER7> Very interesting.

My initial thought (unencumbered by any actual knowledge) is that the folks who download the client version (instead of sign up for the web version) don't do so for any particular reason, so I don't think that removing the option should actually hurt.

Sounds like a good fit for Bayesian probability, using the old numbers as priors.

<comment><USER8> Downloaded app can be used offline.

<comment><USER7> But the question is: is that really important to the majority of the users who download it? Or are they acting blindly?

Now, it could be that there is a contingent of bingo-loving teachers who absolutely prefer to have the software locally installed, but I'm suspecting (without any good evidence, I grant) that this is not really a key decision- factor for most of Patrick's customers who choose to download.

<comment><AUTHOR> I believed for years that there was a group of customers who would pay for downloadable versions when they wouldn't pay for web versions. In fact, I put AdWords ads on many free web-based competitors, and those are my best performing ads anywhere.

But I've come to believe, after listening to customers and seeing the behavior in tests where I emphasize or deemphasize the options, that this doesn't say that users want to use downloadable applications. It was just that users want easy to use applications that don't suck. Next to the free web apps in 2006, BCC downloadable was easy to use and didn't suck. Next to BCC downloadable, BCC online is easy to use and doesn't suck.

</comment></comment></comment></comment><comment><USER9> Isn't it odd to announce the A/B test when you've just started it ?

I mean, I don't think HN readers are in the bingo cards market, but still, it feels like he might be influencing the results by blogging about this beforehand.

<comment><AUTHOR> If I woke up in the morning and had a shocking lack of worries, between two software products and client work I could probably find something real to worry about without having to manufacture worries out of the ether.

"Several dozen HN users will go to the website, see which variation they get, clear their cookies until they get the right one, then pay me $30... _and then cackle madly_ " is not a real worry.

<comment><USER9> Again, I don't think blogging about this will influence your A/B test, because your (future) customers and people reading your blog don't overlap very much (or at all).

But, I do think publishing the A/B test does influence the outcome if they do overlap.

You are talking about the $30 that you could get but miss the point: you might get some extra money but in the process corrupt the validity of your A/B test and make a bad decision afterwards, based on that result. Well, not that it matters anyhow, as I'm pretty sure you have actually decided already to stop doing the Java app.

I would like to have somebody that knows more about sociology and statistical surveys explain if what I am saying makes sense or not.

<comment><USER10> > You are talking about the $30 that you could get but miss the point

I think you missed his: it's pretty unlikely that anyone on HN will do that.

<comment><USER11> Are you sure that only HN readers read the blog?

</comment></comment></comment></comment></comment><comment><USER12> I love this article. And his article on why he's done making desktop software is even better:

[http://www.kalzumeus.com/2009/09/05/desktop-aps-versus- web-a...](http://www.kalzumeus.com/2009/09/05/desktop-aps-versus-web-apps/)

</comment><comment><USER13> I've just searched google for:

Bingo cards Generator

Printable bingo cards

Create bingo cards

Bingo Creator

In all of them you are not one of the top 3 results. It might suggest that a better approach would be to work on your SEO than to increase your ad money.

</comment><comment><USER14> Enough of this uninteresting Bingo Card Creating program. How do these posts keep getting pushed up to the first page?

<comment><USER15> I just wish I had enough rep to down vote your comment :P His posts and complete transparency about growing his business epitomize the type of community contribution that brings me back to this site time and time again.

<comment><USER14> printing bingo cards is a business any 12 year old with a computer could set up. Couldn't you do this on Print Shop and an Apple IIe? Most tech stuff posted on HN is the cutting edge of web apps. And if it wasn't, I wouldn't read this site multiple times per day. Sure, his writing skills and analysis are decent/good, but the content he writes about is laughable. He should spend some of his blogging energy on developing a more interesting topic/business to blog about.

<comment><USER16> I will feed the troll:

 _He should spend some of his blogging energy on developing a more interesting topic/business to blog about._

Patio11 is not your dancing monkey.

 _Sure, his writing skills and analysis are decent/good, but the content he writes about is laughable._

Laughing all the way to the bank.

 _Most tech stuff posted on HN is the cutting edge of web apps. And if it wasn't, I wouldn't read this site multiple times per day._

Well, can't say we'd miss you if you stopped contributing, but I'd have to take issue with the first part. At this moment, the front page has 30 entries of course. I can't believe I'm doing this, but they are about Flash, SproutRobot, Falcon 9, bcvi, HTML5, ideas, diamonds, deflate, BigPipe, Falcon9 (again), Titan, YourWorldOfText, fivethirtyeight.com, being wrong, Toxoplasma, Soros, Readability, Google IO, Posterous, Steve Jobs, Wakemate, Amelie(), the FTC, patio11's a/b test, chrome dev tools, twitter employees leaving, Apple and HTML5, Bing cashback, a world cup calendar and John Gruber. I'll leave it to you to determine if "most tech stuff on HN is the cutting edge of web apps." I tend to think that most business stuff on HN is there to help educate someone to run their business, generally technical in nature.

Finally, there's _printing bingo cards is a business any 12 year old with a computer could set up._

Why haven't you, then?</comment></comment></comment></comment>


Ask HN: Heideggerian AI / Foucaultian AI? - <AUTHOR>

Given the recent Turing Test falsehoods and HN discussions about liberal arts degrees, I was hoping someone around HN might be able to point in the direction of AI research.
In particular, I am wondering if there have been any explorations of AI with Continental Philosophy at their core. I found a particularly interesting paper by the (in)famous Dreyfus that offered Heideggerian AI, but little else[1].
Foucault's work on the relativistic nature of ontologies would seem relevant[2], but again, current AI efforts appear rather empty with regard to the rather rich fabric of the Continental Philosophers.
Any tips or suggestions?
[1] Dreyfus, Hubert L. "Why Heideggerian AI failed and how fixing it would require making it more Heideggerian." Philosophical psychology 20.2 (2007): 247-268. [2] The heuristic engine mentioned in Crevier's tome on AI has some interesting overlaps here. Less about limited context game playing, and more about abstract heuristics and learning. http://www.amazon.ca/gp/aw/d/0465001041 <comment><USER2> All I will say Dreyfus was my favorite prof at Berkeley.</comment>


Comparing last mile grocery delievery services - <AUTHOR> http://zacbowling.com/last-mile

<comment><USER2> mods, please correct the misspelling in delivery here...</comment>


Rugged Atom netbook chosen for 5-week North Pole expedition - <AUTHOR> http://www.geek.com/articles/chips/rugged-atom-netbook-chosen-for-un-assisted-north-pole-expedition-20120323/ <comment><USER2> >What makes less sense is the choice of a fully-featured Windows 7 Ultimate OS. Surely loading it with a minimal version of Linux and only the software they needed would have helped squeeze more out of the battery? But then maybe Windows is required to run the software they need for the scientific experiments.

Or they are used to Windows, and learning enough Linux to be able to handle any software contingency that might occur on the trip would be an unnecessary distraction from their careers.

I don't get some authors. How do they not notice that it is time consuming to get up to speed with a new OS?

EDIT. Oh, now I get it: the purpose of the quote is to signal allegiance to the tribe or rally the troops.

DISCLAIMER: GNU/Linux user since 1992.</comment>


A math problem stumped experts for 50 years. This grad student solved it in days - <AUTHOR> https://www.bostonglobe.com/2020/08/20/magazine/math-problem-stumped-experts-50-years-this-grad-student-maine-solved-it-days/ <comment><USER2> Discussed 3 months ago:

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

</comment><comment><USER3> They buried the _how_ extremely deep in the article. Fished it out for y'all.

> The day after hearing about the Conway knot problem, Piccirillo, then 27, > sat down at her desk and began looking for a solution. Because much of her > graduate work involved building pairs of knots that were different but > shared some 4-D properties, she already knew that any two knots that share > the same 4-D space also share sliceness — they're either both slice or both > not slice. Since her goal was to prove that the Conway knot wasn't slice, > her first step was come up with an entirely different knot with the same > four-dimensional space, she explains. "Then I'll try to show that the other > knot isn't slice."

> She spent spare time over the next several days hand-sketching and > manipulating configurations of the 4-D space occupied by the Conway knot. "I > didn't allow myself to work on it during the day," she told Quanta Magazine > earlier this year, "because I didn't consider it to be real math. I thought > it was, like, my homework."

> The next step was to try to prove that the knot she drew was not slice. > "There are lots of tools already in the literature for doing that," she > says. She would feed the knot iterations into a computer, "and based on the > data of the knot, maybe based on how its crossings look or other data that > you can pull from the knot, the algorithm spits out an integer." In less > than a week, Piccirillo had created a knot that hit the sweet spot: It had > the same 4-D properties as the Conway knot, and it was found by the > algorithm to be not slice.

> She had suddenly succeeded where countless mathematicians had failed for > five decades. She had solved the Conway knot problem.

</comment><comment><USER4> "The principle of generating small amounts of finite improbability by simply hooking the logic circuits of a Bambleweeny 57 Sub-Meson Brain to an atomic vector plotter suspended in a strong Brownian Motion producer (say a nice hot cup of tea) were well understood. It is said, by the Guide, that such generators were often used to break the ice at parties by making all the molecules in the hostess's undergarments leap simultaneously one foot to the left, in accordance with the theory of indeterminacy.

Many respectable physicists said that they weren't going to stand for this, partly because it was a debasement of science, but mostly because they didn't get invited to those sorts of parties.

The physicists encountered repeated failures while trying to construct a machine which could generate the infinite improbability field needed to flip a spaceship across the mind-paralyzing distances between the farthest stars. They eventually announced that such a machine was virtually impossible.

Then, one day, a student who had been left to sweep up after a particularly unsuccessful party found himself reasoning in this way: If he thought to himself, such a machine is a virtual impossibility, it must have finite improbability. So all I have to do in order to make one is to work out how exactly improbable it is, feed that figure into the finite improbability generator, give it a fresh cup of really hot tea... and turn it on!

He did this and managed to create the long sought after golden Infinite Improbability generator out of thin air. Unfortunately, after he was awarded the Galactic Institute's Prize for Extreme Cleverness he was lynched by a rampaging mob of respectable physicists who couldn't stand him being "a smart arse."

</comment><comment><USER5> Boston Globe article was behind paywall for me, but was able to access these other articles:

[https://www.quantamagazine.org/graduate-student-solves- decad...](https://www.quantamagazine.org/graduate-student-solves-decades-old- conway-knot-problem-20200519/)

[https://www.smithsonianmag.com/smart-news/graduate- student-u...](https://www.smithsonianmag.com/smart-news/graduate-student- untangles-decades-old-math-problem-180974978/)</comment>


Making syslog() not block - <AUTHOR> https://github.com/facebook/liblogfaf

<comment><USER3> For new projects that aren't already tied to syslog(), Apache Kafka is also an interesting library to look at.

I've always felt that using UDP is an uneasy tradeoff -- you're solving the problem of blocking, but at the cost of getting no batching whatsoever. When you're logging to disk, TCP, or memory, the fast path call to log just plops your data into a buffer and returns to you. More messages, the bigger your buffer gets. With UDP, each message instead goes straight to the NIC and out.

Kafka makes a different tradeoff -- buffer/batch to disk. Once you have enough data, compress it and ship it off reliably. If your consumer goes away, buffer as much as you can before losing messages; disk is cheap! The cost comes as small additional latency. In the fast path, it's quick (data stays RAM resident, and it's much cheaper to compress & batch send 1000 messages than 1000 UDPs).

<comment><USER4> The other alternatives specifically for logging are Scribe (which we use here at Facebook) and Apache Flume.

As I understand the use case for this software, it would be talking UDP to a local syslog server, not over the network.

At Facebook, we use scribe, and generally use (in-memory, in-app) batched writes to local scribe, and then batched writes (memory+disk, scribe daemon) from that local scribe to an upstream scribe storage system.

</comment></comment><comment><USER5> What happens when a program logs messages faster than the log daemon can process them? Since it's non-blocking, the program no longer pauses to wait for it to catch up.

Does it drop messages in this situation? Is that why you warn that "liblogfaf should not be used in an environment where reliable log message delivery is required."? That is probably the most elegant solution.

<comment><USER6> Because the log messages are being sent as UDP packets, what's going to happen is that the receiving daemon's socket buffer fills up and the kernel drops packets.

Thus you lose log messages.

It does not, however, affect the application that is sending the log messages because sending the UDP packet is always possible (minus other kernel issues).

Depending on your use-case you might want not start dropping log messages when the load is high enough for a log processor to not be able to process them. My reasoning: At that point, something is seriously wrong and according to Murphy, the message that's going to be dropped is the one that contains the actual reason for the issue amidst all the other log spam caused by the real issue.

<comment><USER7> What's more, the (receiving) kernel in that case will drop the newest packets, not the oldest. For logging that might be fine, but I worked on at least one project where we had updates coming in every second to the same piece of information (telemetry). There, you want to drop the oldest packets. In fact, you want to drop all packets by the absolute newest at the time you are processing it. The solution of course was to make accepting datagrams and processing them two asynchronous tasks (well, really three: receive, process, write to the data store).

</comment></comment></comment><comment><USER8> I hate to be that guy, but this software (with a patent, natch) is definitely not the first or best solution to the potential problem of the /dev/log buffer filling up.

If the standard syslogd is inadequate, how about using a different logger? Gerritt Pape's svlogd, an implementation of DJB's daemontools loggers, solves this problem very nicely, is very reliable, can log over UDP _and_ write to disk if desired. Heck, it can even replace syslog and run more reliably.

Not to say that this software is not useful. It is a great solution if the client software insists on using syslog and cannot be modified or reconfigured and syslogd cannot be modified or replaced. However, these are quite specific and generally unusual cases. For more prosaic circumstances, there are simpler and better solutions.

<comment><AUTHOR> The presence of the grant does not mean there is a patent covering this project. It just means that if there is, you're protected as a developer by a license to use it. (This also what the Apache 2.0 license does)

</comment></comment><comment><USER9> "liblogfaf is BSD-licensed. We also provide an additional patent grant."

Hi, I am a country bumpkin nerd. What does this mean, please? Thanks.

<comment><USER10> If they happen to be using any of their patents in this code, you have a right to use the code anyway in the manner specified without fear of being sued.

"Facebook won't sue you over patents in this code."

<comment><USER11> Unless you sue Facebook first.

</comment></comment></comment><comment><USER12> My knee-jerk reaction is that this is a terrible idea. Why would someone do this?

Is this to workaround programs that respond to logs and can deadlock when logging (e.g. logrotate)? Workaround other broken programs (noncritical logspam at emergency level)?

<comment><USER13> Because they want to do fine-grained logging in an evented C program, where repeated filesystem access will block and cause the program to stutter.

<comment><USER14> I would think using an async logging framework is a cleaner and faster approach i.e. something like log4j or glog that does IO in a separate thread.

I suppose such an approach is less ideal when using a language that isn't truly concurrent or if the code doesn't run long enough for it to be efficient to spawn a logging thread.

<comment><USER12> Or just use stdout in those circumstances? Sysadmins are happy to pipe into grep and logger if they need to. We might prefer it if it is that shortlived

</comment></comment></comment></comment><comment><USER15> I wish that was easy on Windows too (not the logging, but LD_PRELOAD) - <USER2> yes, there are many hooking libraries (vld, google-perflibs, various anti- viruses etc.) - but I can always find failure cases for them.

e.g. I wish there was less magic (or whole mini-industry) behind hooking functions this way.</comment>


Ask HN: Where is the days most interesting tech posts? - <AUTHOR> Techmeme is always primarily about Facebook, google, Apple and Microsoft.<p>Where is a summary of the most interesting posts (news or general blog posts, product updates, startups etc)? <comment><USER2> slashdot.org arstechnica.com wired.com techdirt.com engadget.com techcrunch.com

<comment><USER3> All of the above +HN, for me</comment></comment>


Ask HN: Curated learning guides and links? - <AUTHOR> I'm constantly trying to learn, but with so many options its difficult to string together resources that actually are effective. I was thinking about making a curated learning website where users can upvote links to learning javascript, physics, music and essentially have a meta map of the internets learning resources. A lot like HN but purely for learning/how tos! What do you think? <comment><USER2> Coursera, udacity are already curated, huh?

</comment><comment><USER3> check out

[https://learn-anything.xyz](https://learn-anything.xyz)</comment>


Ask HN: iPhone users, do you use iMessage? - <AUTHOR> I'm trying to figure out iMessage usage and I can't find significant data online...<p>Do you use it or it's completely optional for you? <comment><USER2> I use it regularly for personal and work use; great for chatting, initiating calls/FaceTime, and sharing files.

</comment><comment><USER3> I use it for work and personal everyday.</comment>


Xkcd: Python Environment - <AUTHOR> https://imgs.xkcd.com/comics/python_environment.png <comment><USER2> Flagged, that link is to the png only, this is the correct link: [https://xkcd.com/1987/](https://xkcd.com/1987/)</comment>


RubyMotion Goes 2.0 And Gets OSX Support, Templates and Plugins - <AUTHOR> http://blog.rubymotion.com/post/49943751398/rubymotion-goes-2-0-and-gets-osx-support-templates-and

<comment><USER2> This is excellent news. I purchased RubyMotion when it came out and largely didn't use it for awhile. Since last 3 months our company which is entirely made of Rails/JS guys have been building small apps using RubyMotion.

I didn't know they were working on OSX support. But this is huge for me, back on GNU/Linux GUI programming using dynamic languages is easy. py-gtk/ruby- gnome2 bindings really work well and It is incredibly awesome that you can build small utils for yourself in a afternoon using py-gtk/ruby-gnome2. Ability to do the same for OSX is exciting!

</comment><comment><USER3> I'm not sure I understand this. Is RubyMotion just a set of wrappers around Objective-C classes to allow you to develop applications in Ruby? If so, why? Is the point to allow Rubyists that don't want to learn Objective-C to develop applications in Ruby?

<comment><AUTHOR> RubyMotion is not a wrapper. It is an implementation of Ruby on the Obj-C runtime. This means that a RubyMotion object _is_ an Obj-C object (for comparison, a Ruby object in MRI is just a C struct). So why would you want to use RubyMotion? Well...

* Obj-C, from the very start, was implemented as a strict superset of C. This means that every valid bit of C code _must also be valid Obj-C_. This places some rather sever limitations on the Obj-C syntax. Ruby does not have this limitation, and neither does RubyMotion. So one reason you might use RubyMotion is to get a cleaner syntax that does the same thing as Obj-C.

* The Obj-C runtime is very dynamic. You can create classes on the fly, add methods to them at runtime, move methods around between objects, and create methods dynamically. The Obj-C _language_ makes it nearly impossible to take advantage of any of these features of the Obj-C _runtime_. So another reason you might use RubyMotion is to get the most out of the Obj-C runtime.

<comment><USER4> Bullet #2 is so very very wrong. Nice try. I can't speak to the first bullet.

<comment><USER5> Please elaborate; I have only minimal experience with ObjC and do not use Ruby in the context of native development, so any well-described counterpoints would be much appreciated.

Edit: I obv. didn't write your parent comment. What I meant was that I'm sure others in my position, having read your parent, would appreciate more elaboration from you as well. :)

<comment><USER4> Sorry, you're right. It was an off the cuff rebuttal with no substance. Added to the parent comment.

</comment></comment></comment></comment></comment><comment><USER6> That's awesome. I recently tried to get into MacRuby development, but there's a serious dearth out there of resources (for the beginner), and I had to guess on how to do a lot of things.

Hopefully the RubyMotion support will be better!

</comment><comment><USER7> Beyond the OSX support the weakref support is very welcome!

<comment><USER8> WeakRef still doesn't zero out collected references, so <https://github.com/farcaller/motion-memorymanagement> (based on mikeash's MAZeroingWeakRef) is still the better alternative.

</comment></comment><comment><USER9> Please pardon an off topic question: is the compiled code from RubyMotion similar to Objective-C compiled code? (Within a factor of 2 or 3 in speed?) Thanks.

<comment><AUTHOR> In the large majority of cases, compiled RubyMotion is indistinguishable from Obj-C, both in terms of speed and size.

</comment></comment><comment><USER10> I am very keen to know what Apple thinks about RubyMotion. It seems like a fine tool; but it's not typical Apple to allow external commercial vendor to influence it's core development environment.

Anyone from Apple, or anyone that gained the sense in events like WWDC, care to share?

<comment><USER11> Apple made it clear a few years back that any language that compiles to "normal" binaries is fine, after (at first) being completely restrictive about the tools you could use.

Their major remaining rule is that you can't build environments that download code from the internet and run it. (Except for Javascript, and you have to use JavaScriptCore (Apple-supplied) for that.)

</comment></comment><comment><USER12> Anyone had experience incrementally adopting rubymotion in a larger objective-c project? The languages obviously match up pretty well, I'm thinking more about toolchains, etc.

Would love to play with this but am fairly invested in a big obj-c thing right now.

<comment><USER13> I haven't done a larger project, but I did port a small project by starting with just the AppDelegate. It was easier to first turn the xcode project/obj-c code into a library, and compile it as such. The classes "just worked", and with all the nibs in resources/ those loaded, too!

I translated the models into Ruby, and pulled those out of the xcode lib. Eventually the entire codebase was converted (except the nibs).

</comment></comment><comment><USER14> How I wish something like this exist for python..

<comment><USER15> PySide isn't half as bad as you might remember. And yes, kivy is pretty respectable and only getting better. They did win a little grant too recently.

</comment></comment><comment><USER16> Is there a way to play with it for people who can't still afford it?

</comment><comment><USER17> It would be nice to have it in other platforms, anyway it quite nice to have the option to natively compile Ruby code.

</comment><comment><USER18> Can RubyMotion work with GNUStep?

<comment><USER13> I doubt this has ever been tried, but I seriously doubt it... the compiler does a lot of work looking at the Cocoa frameworks to build the bridgesupport files. Are GNUStep frameworks built the same way?

</comment></comment><comment><USER19> Looks awesome. I just wish it was free and open.

</comment><comment><USER20> SO rad!

</comment><comment><USER21> And here is how MacRuby developers were lied to and the RubyMotion project made the choice to not contribute back but instead to focus on keeping innovation proprietary.

[https://lists.macosforge.org/pipermail/macruby- devel/2012-Ap...](https://lists.macosforge.org/pipermail/macruby- devel/2012-April/008702.html)

It's quite a sad day to think that Apple invested on MacRuby and kept it open source... and RubyMotion chose another route even for OS X dev.

<comment><USER22> [Disclaimer: MacRuby core member here.]

I agree, it's too bad that people can't just work for free as much as they would like on the stuff they love.

Now it is true that Laurent _himself_ has not touched the repo since that email you linked to, but you know just as well as me that Watson has been doing maintenance work on MacRuby while on the payroll of RubyMotion (HipByte). His latest commit was 15 days ago and here's a generalised diff of all the work done since the email: [https://github.com/MacRuby/MacRuby/compare/94c90b351c18ce1f5...](https://github.com/MacRuby/MacRuby/compare/94c90b351c18ce1f59a3add8b525baf466e4dace...3f0dd69a4cc16a6fc7f7f00b6a1dc370d2fad80f).

This is what people with limited time resources do, they delegate.

To conclude, when you're out to paint someone black, you really should be more specific. As it stands, there are no lies in that email, which means that you are the one that is not telling the truth. I'm not sure why you want to spread FUD, but it's quite obvious and really does not make you look professional.

PS: Whatever Apple chose or chooses to do has absolutely no relevancy to this at all. The moment they released it as Open-Source, they effectively said that people can do what they want as long as they follow the license.

<comment><USER21> Alloy my point was not about maintenance but the fact that MacRuby relies on the ObjC GC which is now deprecated. In this email thread Laurent acknowledge the need to switch to static compilation and that he has a working branch he will soon merge.

This is exactly what RubyMotion just released and I'm saddened that it was not contributed back as promised.

It's as simple as that.

<comment><USER23> Well, spoking of broken promises and people abandoning things, didn't you write a book on MacRuby and a couple of articles touting it, and then abandoned the project for greener pastures (Ruby, Go and such)?

What about the folks that bought into the book and MacRuby, thinking that it was a viable project, and then see you, one of the (few) main contributors abandon it -- and long before today's release of RubyMotion.</comment></comment></comment></comment>


Ask HN: Has any naive coder benefitted from MOOCs of fast.ai? - <AUTHOR> <comment><AUTHOR> I am a naive coder - I started coding in 1992 with Logo, Basic and then C/C++ until 2002. I started with Python last year and have enjoyed solving mathematical problems on Project Euler.

Now, I am building a minor element of credit risk assessment of any borrower by analysing their bank statements. I aim to predict default behaviour of any borrower so that FIs could spend more time on decision-making by improving their turn-around-time in reading hundreds of lines of financial statements. For this, I started learning from Berkeley's Data 8.x

Now I plan to switch to fast.ai and hence want to know if there is anything that I need to take care of. I won't have any problem in picking up linear algebra because I did enjoy Maths in high-school and engineering.

</comment><comment><USER2> [https://www.welookups.com](https://www.welookups.com) best tutorials

<comment><AUTHOR> Thanks. I am looking for pre-requisites of Deep Learning, if there is anything that fast.ai is missing.</comment></comment>


Is there any value to a CS degree at 50? - <AUTHOR> I'm 50.
I've been building hardware and programming since I was 18.
I live in the Santa Clarita, CA.
College was touch-and-go. It was always going too slow for me. By age 20 I was working as an engineer doing both hardware and software. At age 24 I had saved-up enough to buy my first house. I had a good career and was soon making over $100K per year doing the stuff I really enjoyed.
I eventually started a tech business in my garage. Within three years it grew out of the garage and into a good size industrial facility with a dozen employees or so, in-house SMT assembly, CNC machining, low volume manufacturing, etc.
As is the case with most businesses, there were ups and downs.
The economic implosion of 2008 caught me in a perfect storm that ultimately led to killing the business after a two year gut-wrenching attempt to save it any which way I could. At the end of 2010 I had to capitulate and let it die.
Three years later. No job. I've sent out hundreds of applications. Very few call-backs. I've even lied and implied I have a degree just to see what might happen. No difference whatsoever. I had a recruiter tell me I scare the shit out of people because of the experience I have and the number of roles I've played, from rank-and-file engineer to founder/entrepreneur, CEO, CTO, etc. And, he also said, reality is I cannot water-down my resume because my life is all over the Internet in one way or the other.
The good news is that my wife is more than able to support our family and we've been OK. No urgent financial needs at this point.
The last three years have come with a lot of soul searching on my part. You go from knowing you can tackle any project anyone could care to place in front of you to thinking you are absolutely worthless. You navigate this imaginary line back and forth over time. Back and forth.
[continued in part 2 due to 2000 character limit] <comment><AUTHOR> [Part 2]

I've kept busy. I had dabbled in web and mobile development before but the bulk of my work --where most of my value in the business was found-- was in high performance FPGA and embedded hardware and software development. I've developed entire product lines from scratch on my own. I am no stranger to hard work.

Not wanting to remain idle I decided I needed to shift away from doing hardware --due to how capital intensive it is-- and focus on software. I jumped head first into web and mobile technologies did a few experimental websites and published a free iPhone app. Making money in the app store is hard.

In the end, technology requires money. I've made a little money here and there, enough to pay for servers and have a few thousand laying around for judicious experiments. I told myself I would never touch my wife's income for my experiments and have stayed true to that over the last three years.

During this time I've also logged hundreds of potential business ideas spanning the range from pure software to web, mobile, physical and hardware products. Most are admittedly bad. That's OK. I forced myself not to pre-judge anything. The other day I saw these guys on Shark Tank who sold over a million dollars in ugly sweaters. My prior self would have discounted that as a dumb product and a dumb idea. I try not to think that way any more. Lessons such as watching something like Instagram do what it did have taught me things I just didn't know.

I have convinced myself I am not employable because of my past and my age. I never thought I'd say something like that in my life. A past of constant learning, accomplishments, entrepreneurship, hard work and, yes, success and failure. And no degree. I can't rightly describe what this feels like.

[continued in part 3 due to 2000 character limit]

<comment><AUTHOR> [Part 3]

During dinner last night my wife said she wants me to focus on finishing a Bachelors and then a Masters starting next year. She said she doesn't care if I don't work during that time. She feels this will be good for me mentally and that it will/might bring opportunities to the table at one point or another.

If you ask me today I am absolutely convinced that a degree will be useless to me. I've tried to imply I had a degree in resumes just to see what would happen and it made zero difference. I've also seen countless articles, some of which on HN, highlighting the fact that older engineers are having one hell of a time finding work, credentials or not. I don't know. It could take five years to get to a Masters in, say, CS. I'll be 55 years old, not having held a job for eight years and looking for work. How is that going to help me?

My current view is that my only way out is through entrepreneurship. I need to keep trying until I hit upon something that works. I know I have a few potentially good ones but I don't have enough money to launch them correctly. I have to boostrap from small ideas to larger ones.

I tried a startup pitch competition. I the judges where real assholes to everyone, it was a regular "let's see who's dick is longest" fest. Not my scene. Regrettably. I also think a lot of VC's want young 20-somethings who will virtually kill themselves working. I can't neglect my family and simply can't live like that at this stage.

Looking for thoughts, ideas, opinion. I am sure there's something I might be missing in my thought process. It'd sure be nice to go back to feeling like a productive member of society as well as to contribute to the financial well- being of my family. The kids are getting older. It isn't going to get any cheaper.

Thanks!

EDIT: Please reply to this comment so all three parts have a chance to stay together in the thread.

<comment><USER3> Based on what I've read so far, you're in a really comfortable position, so don't shift specializations.

Capitalize on your rich experience with embedded hardware and software development. At 50 I'm pretty sure you have a wealth of contacts from people in that field (people you consulted for, past work buddies, etc.) warm them up and make contact: you now have a client/referral list. Ask them how they're doing, take them out for coffee. Discuss what they're currently doing and what they need help with. Start with one tiny project.

Ask your wife for a little help, ask her for some contacts. Talk to others in your field, take them out for breakfast or lunch, offer to speak in an event, you can offer consulting or training workshops.

Go back to building a business, it's your best bet, and you've done it before. Outsource the bulk of your work into your other known contacts that can refer you to high-end consulting shops in the South-east asian or Indian region. Disclaimer: I'm from the Philippines. It's 2013, there's so much more tools for remote collaboration than it was a decade ago, you'll get a good english speaking/writing workforce for less than US salary rates.

Don't study unless you really really want to. 4+ years is a lot of time. You could have made another business up and running at that amount of time.

Don't shift specializations just because of current market trends. Who knows, hardware might boom in the next decade. Honestly, currently, the web itself and all mobile app stores are over-saturated with everyone trying to make a dent.

The point is, no one can predict what is going to happen in the next 10 years, just stick with what you know and what you can do to answer a need from your contacts. If a specific "solution" you're offering picks up traction, "productize" it and put a little more focus on that, but don't bank the entire consulting shop for a product unless it dwarfs your consulting revenue by 3x-5x. Consulting cultivates client relationships, and business is all about building professional relationships that would earn you more money.

I'm not 50, I'm only 26, the 50+ year old people I know end up in three ways:

\- Teaching (writing books with their knowledge, offering workshops, teaching in universities, etc.)

\- Retired

\- Business

Again, I'm only 26. Take the input with a grain of salt.

<comment><AUTHOR> Well, retirement isn't for me. I will never stop working on something so long as I have the physical and mental ability. That's just how I am wired.

Teaching at universities is out because, well, I don't have a degree. Ironically, I am a pretty good teacher. I've conducted seminars in the past with audiences in the hundreds of people. I enjoy it and I do have a knack for making complex topics accessible.

I have been thinking about perhaps authoring a webinar or two or launching some kind of an engineering-related educational effort. I have one idea that could be an interesting Kickstarter project for young (and not so young) engineers. Thinking about all options right now.

Well, that would be combining business with teaching. Maybe that's a good option for me.

<comment><USER4> I would definitely go for the teaching option. Maybe you could start like this:

1: If you have a little runway, start by learning some teaching basics, especially regarding teaching adults. Or K12 if that is what you'd like. Start by doing some of the MOOCs, coursera, edX and some others have some good education courses. The benefit of this is that not only will you learn some of the theory behind teaching, you will find out what works and doesn't work for students in an online learning format. This will be valuable for part 2-

2: set up a blog with a learning management system (LMS) to offer some short video or screencast (my favorite style of delivery) based courses for free. Use this as an R&D and market research site to see which courses get traction, how to prepare materials, interact with students, etc. Your blog posts are there to show off your knowledge and experience which should get people interested in trying out the courses and help you build a mailing list for part 3-

3: with the data from 2 above, plan a book release and some more in depth for- pay courses. Use your business skills to sell online+book+in person training for enterprises (you may find it easier to partner with a training/consulting company who may already have contacts with potential clients - less money in the beginning, but as you build your reputation you can eventually go independent) Which leads to meta-business point 4-

4: Document your journey through the above points, and sell a new book and online training course targeted at people who are in your position (ie me) so that we can all join you by buying private yachts from all the money we make :-)

5: post results here on HN for support and inspiration for others

This is what I'm doing (albeit half-assed at the moment) and I have 15 years of teaching under my belt, but no degree (by the way, I have gotten teaching posts at universities based on the strength of my teaching skills, so give up on that route just yet!) If you want to reach out for info on where to start with learning teaching (I'm the head teacher and a teacher trainer at a school in the Czech Republic) me email is in my profile, I am more than happy to chat with you about it and I have a _lot_ of resources I am more than willing to share with you for free.

Lee

[Edit] for an LMS try looking at Moodle or the edX platform, both are open source, and Moodle also has a rich plugin environment including modules for payment systems. I have a lot of experience with Moodle, and I'll be trying out the edX platform over the Christmas break. There are some others out there, but these 2 seem to be the best from a no pay system

<comment><AUTHOR> Sent reply off-list. Thanks for your pointers.

</comment></comment></comment></comment></comment></comment><comment><USER5> Classify and group your experience. Then write one resume for each category. One for software developer, one for hardware technician, one for system admin, one for entrepreneur/project manager. Then think about which resume to select for each job. Always write a cover letter that discusses your RELEVANT experience, and don't hesitate to customize one of your resumes for a specific job. And leave out an old or unpopular stuff such as RPG IV. Oddly enough I noticed a job just appeared on careers.stackoverflow.com for someone with RGP III or IV experience, but it is the first time in 10 years that I have seen that stuff even mentioned. I thought it had died out in the 70s.

If you do want to apply for a job using old stuff like CNC then either make a special one-time resume or edit a stock resume that covers more recent manufacturing stuff. I know people still do CNC but my thinking is that in CA it is likely to be considered outdated since most manufacturing is now outsourced out of the state.

</comment><comment><USER6> I just wanted to say "maximum respect." I am the same age and I think it is really cool that you would even consider going back to school. If it is a possibility, I would definitely go, although that might be my heart talking much more than my head.

Every once in a while I go out for beers after work with some of the guys that I know, and almost always there is somebody asking what the "next one" technology is; the one that is somehow going to carry him until retirement. That could be practical thinking, but absolutely nothing makes me sadder to hear. We live in a golden age, an age where great ideas and phenomenal code literally flows freely around us. Our generation was lucky enough to live through the dotCom boom and see endless opportunities, and now we are 15 years from age 65 with so many languages and paradigms out there that I fear I will never have enough time to learn them all, even in a cursory way.

Go back to school. Be the guy that does every exercise in SICP, TAs the course in data mining, and can still tell the guys in your study group what it was like to edit Pascal on a DECwriter II.

<comment><AUTHOR> I wonder how many people on HN have actually touched a VT-100? Or an 8 inch floppy disk? Or how about removable platter 10 MB hard drives the size of a washing machine?

<comment><USER7> I did, all three of them. And I punched programs on cards, and debugged them thru batch listings and memory dums coming back two or three hours later :-)

</comment></comment></comment><comment><USER8> Similar age, similar history, although currently employed and having a blast with some new toys....

I re-entered the trenches by specialising in one hot technology (iOS) and producing a series of apps on my own account.

From your description, I suspect a CS degree would probably bore you and it wouldn't make a great deal of difference to your employability. That's not to dismiss university out of hand though. There are other departments where technology hits the road in a way that throws up opportunities all over the place. In your position I'd consider taking a few courses (not necessarily a whole degree) from a decent business/marketing faculty...real world experience can bring a lot to the table and they certainly do deal with fuzzy, hard to define, difficult, and above all, profitable problems.

I did a fascinating MOOC in gamification a few months back, if only I wasn't so busy....

</comment><comment><USER9> Clearly, being (viewed by employers as) a jack of all trades is bad. You cannot present that on your resume. Sending out resumes to posted openings - <USER2> waste of valuable time. You find a position you're interested in, then you portray yourself as Mr. Whatever that is, because that's who they want to hire. Emailed resume doesn't cut it, you gotta get face to face w/a decision maker.

Different job requirements, different resume, tailored to those job requirements. Don't lie of course, but you can spin a long way without lying. Not qualified, it doesn't really matter. Someone like you, you're smart you'll figure it out. You need to make a good impression and that's it. Acting like you don't need their job can be helpful too, but there's a way to do it - without coming off the wrong way.

I wouldn't put too much stock in what a recruiter tells you (or most others for that matter). Free advice sucks almost all the time (except on HN :), and worse than not helpful it can be harmful. If I'd listened to recruiters about what jobs I could and couldn't get it would have cost me hundreds of thousands of dollars over the years.

Best to keep your name off the Interwebs. You have to control the information flow to the world about yourself. There's services that will help scrub your name off sites, I don't know if they work or not, but I can say when you Google yourself, you want the first couple pages to show up exactly what you want to show (or put there yourself).

Now view this as a good thing.. Most hiring is mostly completely subjective and based off whether someone likes you or not. That's really what's going on. Eventually someone is going to like you, so you will find a job eventually if that's what you're after.

<comment><AUTHOR> > Clearly, being (viewed by employers as) a jack of all trades is bad.

My problem is that I can't dumb-down my resume. One Google search and most of what I've done, going back thirty years, is all there. I can't get it all deleted. At some level, why would you want to? For example, there's a 1985 paper on robotics I presented at an ACM conference (while still an engineering student) that still shows-up on a search.

<comment><USER10> Have you actually tried tailoring your resume to a specific job role? Or are you just speculating that people will find you on Google and not consider you?

<comment><AUTHOR> Yes. My resume is under version control. I have six versions I've evolved over time to address very specific job categories.

<comment><USER7> My resume is generated with a script that filters out experience and skills on keywords, depending on the target job offer.

And a 6-page resume is not a resume anymore, it's a biography. Keep it under one page, 3 or 4 job experiences max.

</comment></comment></comment></comment></comment><comment><USER11> Interesting and perplexing situation ! You are located in a good area and have an amazing range of skills. I don't think that any more education is going to help. You've got the best qualifications from Hard Knocks U.

I know many guys at a similar age to you and they too have a very hard time with recruiters and cookie-cutter job descriptions. So contracting is probably a better angle. Here's what I'd do in your situation (I did a similar process for myself) :

1\. Make a list of what you are very good at. Like in the top 10% of the field.

2\. Rate all the things that you still enjoy doing.

3\. Write up a one page spiel on what value you can deliver and for whom on your most enjoyable ninja skillz.

4\. Using your contacts, past clients, current research approach companies / businesses who are likely to benefit from that specific skill.

Yup! It looks like sales and marketing. That's the reality of making money - you have to get out there. Read Steve Blank's "Four Steps to Epiphany" if you need more clarification on the concepts and more.

</comment><comment><USER12> After reading through your statements and responses, what pops out is that the metric being applied in valuing a CS degree is vocational. For some people that might be the right choice. But having waded into the world of CS MOOC's already, it appears that metric might be the wrong one for you.

If you're interested in studying CS, then it's o.k. to indulge yourself when you're in a position to do so. It is not as if it will hurt your career prospects. I'll go further and suggest that at our age, we're going to make the rest of our careers ourselves, and because you seem to have a passion for learning and teaching, that may be where you wind up.

Or not. Why not a degree in mathematics and a Master's in education?

<comment><AUTHOR> > Why not a degree in mathematics and a Master's in education?

Well, mathematics is a tool for me. I couldn't see going for a degree in mathematics at all. Frankly, it'd bore me to death. Probably the same with a MS in Education.

I am a maker. I love to create. Not engaging in the creative process would just kill me from the inside. Of course, not being a useful member of society is probably killing me from the inside as well. Choices.

<comment><USER12> If unconstrained for resources, what would you passionately make?

<comment><AUTHOR> That's easy to answer: Intelligent robots.

Humanoids have fascinated me since childhood. I went to school to get an EE because I wanted to work on robots. Life took me in a different direction. And that's OK.

<comment><USER12> Clearly something you are passionate about. Let the constraints be part of the design challenge. We can't all be Elon Musk. But we can all try for a little Chuck Moore or Donald Knuth - doing what we're passionate about and letting the chips fall.

</comment></comment></comment></comment></comment><comment><USER13> Thanks for sharing. If you aren't getting jobs now, despite the experience and engineering skill you've had, why would a computer science degree, of all things, change that, especially if you see it as a resume padder...which, from your recounting, has had no effect so far in your job search.

That said, how do you rate your grasp of software engineering so far? It seems like you'd have the mathematical/science chops for a CS degree and for many entrepreneurial projects...but what about experience in building software efficiently? Or with design? Those two skills would seem more useful to you at this point than spending time in a traditional CS program.

<comment><AUTHOR> I just got done taking the MIT Intro to CS class on edX. I did this to get a sense of where I stand.

I could teach it. Hands, down.

I am going to take the second class in the sequence for the same reason. My guess is I know most of it.

While in school I got as far as Linear Algebra. So, I'm OK with most math. Although, frankly, I haven't really had to use Calculus very much over the years.

My approach has always been to take deep dives into whatever I've had to tackle. When faced with having to do image processing work on FPGA's and write convolution filters I simply bought every relevant book I could find and jumped right in.

When I came across a problem that could benefit from applying a Genetic Algorithm training a Neural Network, same thing. I have yet to find something I cannot tackle.

You have to keep in mind that what was taught in colleges and universities back in 1984 or thereabouts is stone age when compared to today. I took a C class one semester. I nearly fell asleep. I had already done more on my own than the professor was covering in this class. I was already working with multidimensional arrays when he was covering how to print to the console.

The other reality is that nearly nothing I've done over the last fifteen years even existed back when I was in school. The only way I could have done multi- gigahertz FPGA work was to learn it all on my own. When I was in school I don't even think PAL's existed. I designed and built my first computer. That means, design, buy the chips, wire-wrap the boards and use a dumb terminal and a hex keypad to bootstrap the thing. Different times.

With regards to your question about my grasp of software engineering. Well, you know that movie where the kid goes "I see dead people". I see code. After having done so much work across a number of domains most solutions develop in my head intuitively without thinking. Again, the MIT course I just finished being an example. I really didn't have to think much about any of it. I just sit down and write code. Good, clean and efficient code. Comments and all.

<comment><USER13> So it sounds like you have as much technical talent as anyone who's launched a successful tech venture...so will a com sci degree help? No, you're obviously hitting intractable institutional biases here...looking back at college, I see a lot of its value in networking and exposure to new ideas, but I don't see non-traditional students benefitting to the same degree...so why waste time and money.

Regardless of your technical aptitude, the fact is is that, particularly in web dev, companies are all too happy to hire novice bootcamp coders for near 6-figure. Maybe there really is a huge scarcity of Rails developers, and perhaps it's worth focusing on that to at least get your foot into the modern development industry, but again, it's hard to anticipate how many walls will be unfairly in your way because of the age discrimination you've described.

So I guess the short way of saying it is that pure coding skills alone won't be your edge, and a degree will not change that. At least when it comes to getting recognition from recruiters and employers. However, code can be your edge in helping you pursue, produce, and promote entrepreneurial ideas, but "Just have and execute a really good idea!" is not terribly helpful advice.

But I wouldn't feel insecure at all, if I were you, about whether your coding experience is relevant today. I was in college less than a decade ago and we started with C and most of my engineering labs were doing things like building and designing the kind of adder circuits built decades ago...That kind of thought process and desire to tinker with things doesn't go obsolete with new programming languages.

<comment><AUTHOR> > So it sounds like you have as much technical talent as anyone who's launched > a successful tech venture

Without any ego at all, I'd say, yes. I may not be absolutely up to speed on every aspect of the cadre of web technologies out there but that's not an issue. I'm comfortable with HTML5, CSS3, Javascript/Jquery and PHP. I am now switching to Python and Django due to a number of reasons not relevant to this discussion.

Can I code all of these technologies like a possessed monkey? No. My style is different. I rely on reference material to support what I need to do. I know what needs to be done and I get it done. In other words, to throw out an example, I know when a state machine is the best way to solve a problem, I know how to design it and code it right the first time. During that process I might need to look up language details here and there because in working with so many languages I decided a long time ago it was pointless to try and remember everythign about every single one of them. I get to job done. Now, if I am working on, say, Objective-C daily for weeks the reference material moves to the background pretty quickly as I don't have to "task switch" between five different technologies in the course of a week. Not sure if this is how young coders work at placed like Google. Perhaps they do rock at the tools required for the entire stack, from server to client-side. Or maybe they specialize and only do JS. Don't know.

> so will a com sci degree help?

I can't see how other than, perhaps, if employers or investors place value in the credentials. I understand that a degree is useful to establish a baseline. At the same time, I can code FizzBuzz just fine and, apparently most CS graduates can't code their way out of a paper bag. Currently crunching through ProjectEuler.net as a neat way to get better at Python.

The one area that's of great interest to me is machine learning and AI. I've dabbled in it here and there but my work never landed me solidly in projects where I had to learn the material. With all the new-found interest in robotics I find myself thinking that this is an area where I could do very well. I mean, I am expert level at Solidworks and fairly decent at mechanical design and can also do all of the electronics and software. I could see formal learning in ML being a good approach now that I am not busy trying to run a business from day to day. Yet, I find myself asking if that's reason enough to enter into a four+ year program when I could acquire the knowledge from one (or all!) of the excellent ML courses available online today. I'd have to bone-up on statistics, calculus and linear algebra before I could jump in head first. The difference is that I could do this on my own and only on the stuff I don't remember rather than having to endure a year and a half of math towards a degree.

As you can see, I am fairly biased against the whole idea of going for a degree at this juncture. Still, I want to keep an open mind and listen to reason before making a decision. Because my wife is not an engineer I don't think she understands what the landscape looks like for engineers my age, degree or not, any more than I might understand the nuances of her medical practice.

> I was in college less than a decade ago and we started with C

Right. Most anything an engineer (software or hardware) will do today probably wasn't taught in school ten years ago. If you are not learning new things on a constant basis you'll quickly become irrelevant. As an interesting point, I do have friends around my age who have not kept up as I have and are pretty much done with engineering as it's known today. One of them actually stopped doing hardware and software about fifteen years ago and shifted into management. He got laid off. He is unemployed. Nowhere to go.

</comment></comment></comment></comment><comment><USER14> Ok. I'm close to your age and about to graduate in the spring with degrees in physics and applied mathematics. I have a similar background to yours (entrepreneur, software, and webdev, but not as much on the hardware side). College is valuable not so much for what it looks like on paper, for much of what you said about getting hired as an 'older' engineer is true, but for shoring up your knowledge with formal training. Also, I have had several really good ideas come to me in math classes over the past few years. You never know where inspiration will come from. You will also be immersing yourself somewhat in the culture of a younger generation. There is value to that especially if you plan on marketing something to an Internet market that largely consists of their demographic. You will also meet a lot of people and those connections are terrific, and not just for networking value. But, ultimately, what jborden13 said is true. You shouldn't make a big commitment like that if you don't truly want it. I loved it.

For me, I feel like entrepreneurship is like touching butterfly wings; you'll never be the same again and probably not very happy in a "job". Good luck

</comment><comment><USER15> @random_user - I'm 47, and have taken a similar though not quite as successful path as you. Started my first job at 17, no degree, got booted out of my first CS class for debugging the instructor's code too much. Worked at a few places, then as a contractor after that. Did some interesting stuff with realtime and embedded systems, and some boring stuff too. I can debug anything. I've used a VT-100, though I preferred the Wyse 50 as my daily driver back in the day.

I live in Los Angeles. If you'd like to grab some lunch some time, shoot me an email:

[http://www.google.com/recaptcha/mailhide/d?k=01DldAjfc_NO3uD...](http://www.google.com/recaptcha/mailhide/d?k=01DldAjfc_NO3uDyB45is5vQ==&c=7P3XE3ttZfxs_Afjn8AHT36JvfY- witzGXMxQNlOL4k=)

I don't have any job leads or business ideas for you. Just some war stories to swap.

PS This is a throwaway email, it may take a few days for me to check and respond. If you do contact me, send me some kind of a token in your email, then copy/paste the token here as a reply so I'll know it's you and not some clever HN prankster.

<comment><AUTHOR> Email sent

43 56 76 82

</comment></comment><comment><USER16> I have a recommendation, If you are good with Linux and setting up servers why don't you become a DevOps/Sysadmin.

You can find a job in that field, Here are some of the skills you will need.

1.-Linux know how to write scripts, bash. python, 2.-Learn to automate server setups with Chef,Puppet, Ansible 3.-Learn how to deploy software using Capistrano, Jenkins, Maven 4.-Learn how to help developers setup Dev Environments.

I am a sysadmin been doing this job for almost 12 years and I am not old but I not a spring chicken either, but I have job offers all the time. I have a great salary and I come home and learn more stuff everyday on my own. I get paid to do what I love.

It doesn't matter how old you are, if you are trying to compete with young developers that might be hard but I can tell you that developers hate setting up systems or debuging issues and that's where Devops engineers come in handy.

I have a few books i can send you if you are interested.

Cheers

<comment><AUTHOR> Thanks for the recommendation. If I could use a bad analogy I'd compare the two world, setting up servers and engineering software to selling marble and being a sculpture.

Part of what drives those of us who write code is that we use that code as a creative outlet. I'll generally extend that to the process of designing products, be it hardware or software. Mechanical design isn't about setting up the CNC machine but rather about the creativity and the designer's expression of interesting ideas. I've walked away from designing sheet metal parts with a huge sense of, yes, artistic and creative accomplishment. Designing something that is beautiful and well done in your eyes are the highs that drive some of us. Software or electrical engineering have similar embodiments of the same concept.

I can do Linux at a reasonable level and know most of the tools you listed, some superficially and others reasonably well. However, setting up servers isn't something that appeals to me as an occupation. At some level it would be dishonest to go work for someone knowing that I would not bring a degree of passion to the job. As an entrepreneur I would feel cheated if an employee took a job with me just to get by and not to knock it out of the park. There's a huge difference between a business where everyone is really engaged and one where nearly everyone thinks "it's just a job". Perhaps the canonical example of this is the contrast between a rocking startup and a large, stratified and somewhat stagnant company with tens of thousands of employees. There's a huge difference between what both of those can accomplish given the same time and resources.

I am not diminishing what you do. You seem to be passionate about supporting servers and that's fantastic. Those of us who prefer to create software products need people who can provide us with solid systems on which our software can run reliably and efficiently.

A long way of saying: It's not for me.

</comment></comment><comment><USER17> Maybe try and find an idea that you think someone would pay for, and use kickstarter to fund it? (Of course, this should be something you really want to work on and will be motivated to complete, as well as something that people really want -- they'll vote with their dollars)

For example, I recently saw a kickstarter for a device that would connect to ANY set of speakers and make them into WIFI enabled speakers. This kind of project would probably be trivial for you with a raspberry pi & an audio connector, and with your hardware knowledge, even scaling it up could be easy (ex. moving from a rpi to more efficient hardware solution). I personally am going to try and implement that idea later this year, just because I think it should be very doable for me.

However, my point is that, by putting that project on kick starter, you can get a large lump sum (of course, it needs to be something people want), for development of some tech that COULD grow into a great retailable product.

Also, go to school (happy wife, happy life), but keep developing. I personally think one of the best ways to develop software is by being close to a group of people that could very easily be your target market. Also, going to school, breezing through the classes will do wonders for your countenance, give you a better outlook, and expose you to more fresh ideas (though very little changes in core CS) -- it will expose you to more than just book-knowledge.

Blog about it (you are different, the internet likes that, at the very least, you'll be used as an example of what 50 year old programmers are capable of). Keep developing.

Of course, I'm less than half your age, I don't think I can give you advice you haven't already thought of. But it's like you're an out-of-season architect. As long as your skills don't dull, you just need to find the right thing to use them on. One of the best parts of being a computer programmer is the ability to create with VERY little (comparatively) input funds. Create until something sticks.

I think there's some thinking around that essentially says to try and find a pain point (find someone that is having trouble with something), fit it, then sell them the fix.

<comment><AUTHOR> Yes, I've been thinking about Kickstarter a lot lately. I am mildly convinced this might be a the best approach.

I am not concerned about you being 20-something. I am looking for perspective I might not be generating on my own. All input is valuable.

My own advise to you and others around you age is simple: Finish school. If you don't, you might just live to regret or question your decision not to.

<comment><USER5> Note that when people surveyed successful startups to find out what characteristics they shared, they discovered that most of them are started by people around your age, i.e. over 40. The Zuckerbergs of the world are outliers and people who try to emulate them are chasing the thin end of the rainbow.

You really should advertise for a younger person with some more marketing skills who would like to create a kickstarter project. You have the technical and manufacturing knowledge, and they would provide the branding/marketing side of the equation. Offer to work on their idea or on one of yours. Ideally you would get together, pick three or four ideas, do some market research to narrow down to one and then prepare your kickstarter bid.

</comment></comment></comment><comment><USER18> Find a problem. Solve it. Post the code on Github or start a business around it. Watch the offers flood in.

"Don't be a hard rock when you really are a gem": Lauryn Hill

</comment><comment><USER19> Throwing this out there - but given your experience, why not remain an entrepreneur and try raising money for another business? Something tells me you'd have a much easier time than first-time entrepreneurs. Assuming of course your wife doesn't mind (though IMO that should never be a reason not to follow your passions).

I hope to be as accomplished as you at age 50, degree or not.

</comment><comment><USER20> 40 yo here.

No path has opened up for you. Create your own path (again).

Don't listen to the people who tell you you're too old to do it. You have wisdom and experience on your side. By your comment history, you have all the mental tools in place. Stay flexible and nimble. Keep impulses to a minimum.

This is a game of Chess for you, except you're playing for your life.

</comment><comment><USER21> It may not be much, but if you ever want to chat with somebody feel free to email me.</comment>


Microsoft Makes Native Languages More Accessible to often underserved cultures - <AUTHOR> http://www.microsoft.com/Presspass/Features/2011/feb11/02-21IMLDay.mspx <comment><USER2> Very impressed with Microsoft's 35 languages when compared to Ubuntu's 39 complete and 192 partially supported: [http://people.ubuntu.com/~dpm/ubuntu-10.10-translation- stats...](http://people.ubuntu.com/~dpm/ubuntu-10.10-translation-stats.html)</comment>


HelloFlo Launches a Tampon Subscription Service - <AUTHOR> http://techcrunch.com/2013/03/04/helloflo-launches-to-be-a-little-fish-in-the-big-pond-of-tampon-subscription-services/ <comment><USER2> My wife's mind boggles that so much money is spent on this stuff when you can buy a menstrual cup every year or two and face almost none of the cons: <http://en.wikipedia.org/wiki/Menstrual_cup> .. I wonder if this is one of those "the industry doesn't want this to happen" dealies. (Disclaimer: I do not have a vagina so don't have direct experience, but she raves about it.)

<comment><USER3> My initial reaction as a person without a vagina is "Ew, isn't that a bit like installing a catheter so you don't have to go pee?"

I mean, I prefer paper handkerchiefs so I can throw them away after use, rather than carrying around a piece of cloth that gets all messy.

<comment><USER2> Though that first reaction would also be true of a tampon. You're inserting something that collects liquid in both cases: just one absorbs it and the other doesn't.

Indeed, with the cup, the liquid is retained in the cup. With the tampon, it's absorbed and still touching organic matter (which is why they need to be changed more often).

</comment></comment></comment><comment><USER4> And a big HN welcome to the Pets.com of the second internet bubble!

<comment><USER5> I can think of at least 10 other companies with many external investors that better deserve the dubious title of "Pets.com of the second internet bubble"

</comment></comment><comment><USER6> I'm skeptical about the real usefulness of this service, simply because I just don't think it could match the timeliness or efficiency of the current distributions model. Right now you can buy these products in literally every convenience store, gas-station, drug store, supermarket and warehouse store in the country (ordered roughly by decreasing unit cost & decreasing convenience).

With a 'tailored' delivery service, you're always going to end up with too many at the end a month - in which case you might as well have bought a big box from a supermarket or Costco/Amazon at a fraction of the unit cost, or you'll end up with too few - in which case you will have to urgently overpay at the convenience store or gas station _anyway_.

</comment><comment><USER7> The margin on this business must be very thin. I assume they are just buying the tampons wholesale and then reselling them on a subscription basis. At the same time the barrier to entry for this type of business seems very small which ultimately means that the margin gets squeezed even more.

It would be interesting to know what value added services they can provide to increase their margin.

<comment><USER8> the barriers to entry are not as you may think. Yes, anyone can set up an etsy/ebay store, with some paypayl express check out thrown in. But if you'd notice, it's not often that women complain about the price of tampons (though they are getting more and more expensive), it's really the entire experience that is dreadful.

To actually bring forth a useful subscription product that's delightful, and always delivered on time requires thoughtful design and implementation. Every woman is different, they require different numbers of tampons each cycle, of different absorbencies, and in their preferred brand. They don't want a backlog of products in their own bathroom that takes up room for months at a time, only to run out unexpectedly when they most need it.

This may seem like a laughable or even trivial issue to tackle, but half of the population has periods and everyone complains about them, why not do something to improve that situation?

</comment></comment><comment><USER9> Small shout-out to my friends at Juniper [1] who run the same business and _did not_ get techcrunched. As the article says, a little competition probably isn't bad in a large market like this.

[1] <http://www.getjuniper.com/>

<comment><USER10> They were covered on Techcrunch in October. [http://techcrunch.com/2012/10/07/juniper-monthly- subscriptio...](http://techcrunch.com/2012/10/07/juniper-monthly-subscription- tampons-video-interview)

</comment></comment><comment><USER11> Definitely need this in the UK. I can't understand why, but my partner HATES buying tampons in the supermarket, the amount of times I've had to pick them up on my way home is countless. It's a normal part of being a woman, there is no prejudice women.

Any women here who don't mind sharing why this is so embarrassing for the alike?

<comment><USER12> Male here. Your partner just needs to grow up. I've been purchasing feminine hygiene products for my girlfriend-now-wife for the last 15 years and have been _happy_ to help her, not embarrassed.

If this is a problem for him _now_ , childbirth is _really_ going to be an experience. =)

<comment><USER12> That being said, I _would_ like to see the tampon/pad manufacturers try something that would help a lot of men out.

The tampons and pads themselves are very simple. But, like toothpastes, deodorants, or soaps, there are a TON of options that get piled on by marketers. Wings/No Wings, Light/Heavy/Overnight/OMG, scented/unscented, Thong, etc. I must spend 5-10 minutes just trying to make sure I have the right ones that she likes. Is "Heavy" the same as "Overnight"? What did she tell me again?

It would be great if even ONE company tried to classify their items with a simple code number. If wifey just said "Hey, pick me up a pack of C-2s", I'd be a customer of that brand for life.

<comment><USER13> True, but it's also a matter of habit. At some point, I knew my wife's preferred tampon "configuration" better than she did.

(Then we moved to a different country, everything changed, and now I have no idea)

</comment></comment></comment></comment><comment><USER14> This has a male equivalent as well.

<https://www.youtube.com/watch?v=ZUG9qYTJMsI>

<comment><USER15> How has that not gone viral?! I had to stifle several laughs so my boss didn't look at me funny. Plus, how can you go wrong with a dollar a month? That won't even buy you a cup of coffee in Sydney.

</comment></comment><comment><USER16> It can only be a matter of time until tons of these subscription services are consolidated in a single place. You can already subscribe to products on Amazon, although often the minimum quantity is still so high that a quarterly rather than monthly subscription makes sense. I'm kind of waiting for a subscription-box-as-a-service company to come along, tell you that you can create the custom subscription box of your choice and one you hit X number of subscribers they'll fulfill it for you and you'll get a cut.

The other way I could see this going is towards a content play, where they start out with a tampons subscription but really it is a play to gain mindshare from women about feminine issues and create a media/brand company. Given the interview with the founder I don't think this is her vision right now, but it is definitely a direction she could go.

I have a vagina, but as a West Coast woman surrounded by liberal-minded people and no period in over 5 years (tell your wives and girlfriends about Mirena) I might just be too disconnected from the "pain" of the customer in this case.

</comment><comment><USER17> I just showed this to my girlfriend and she was like "wtf would I need that for?". Seeing that in our basement we have like a pallet of tampons and pads I understand her. Buying this stuff in mass just seems cheaper and smarter.

<comment><USER18> You could say the same of any subscription service. Despite being a male, I can tell you that in NYC at least, having a pallet of tampons in the basement is not practical, given that no-one has a basement or any spare room for a pallet.

</comment></comment><comment><USER19> Why would you use this service instead of subscribing on Amazon?

</comment><comment><USER20> I'd bet that men would also purchase this for their girlfriends/wives, so they don't ever have to go to the store :)

File this under ideas I wished I would have thought of....

<comment><USER8> you CAN buy this for your gf/wife if you use Juniper — Just go to <http://www.getjuniper.com/gift> !

</comment></comment><comment><USER8> Lynn Tao, here, CEO of Juniper (www.getjuniper.com). I figure I'll chime in and address some of the questions and comments here:

1\. Yes, the majority of the women I've talked to have thought that we have a brilliant idea.

2\. Why not just buy from Amazon subscribe and save? Of the women we talked to, many have little insight into how much they use. This is not because they're dumb — if I were to ask you how many bottles of shampoo you use in any given month or year, you can probably estimate, but you may be off. That's something you use on a daily basis. A box of tampons is something you use every 28 days — estimating how and when to tell Amazon to deliver that seems trivial, but in practice, one ends up with either a shortage or more likely, backlog. Inconvenient.

3\. This leads me to my next point: why is this a tech culture vs a culture culture issue? Because tampons are needed by different women on different cycles. You can use paypal or shopify or maybe even an esty store to deliver this type of thing once a box. To actually get it to the set-it-and-forget-it state, and scale it up, you'd need to invest in infrastructure that's a bit more involved than an internal wiki. Tampon delivery and Late should never be in the same sentence together. We comp all the Juniper boxes that are delivered even one day late.

4\. Why not just buy a huge box? Like someone already said – there's a space issue. Some women, my self included, like to switch between different products during the course of a period, which means they have to buy different bulky boxes that has to take up a lot of space. Again, inconvenient. Juniper eliminates that need.

5\. While some women are embarrassed to buy it, that's not the biggest pain point. My customers are not timid girls, they're women. However, being busy women, it's inconvenient to not have them when you need them the most, and convenient stores only carry a limited number of brands, Walgreens and big-box stores will carry more brands but consumer still have to go to them. In Manhattan, there's a drug store on every corner, in other cities and towns it's not the case.

6\. re: Gourmet snacks and Tampons being a weird combination to ship: Our customers love that they get to savor high quality treats around the time of the month when it feels extra stressful. Our treats rotate every month to feature something new, so there's a surprise element to it as well. A good surprise.

7\. Washable tampons? Unlike pads, tampons go into a sensitive ph-balanced body cavity. Washing it and reinserting it may introduce bacteria into that cavity and cause infections and even TSS. Diva cups are wash-and-reuseable, and some women love them. However, other women are used to pads or tampons and simply do not prefer them, even if they like the concept.

Bottom line: Yes, chuckle worthy subject. But this is far from trivial. Half of the population has to deal with a monthly period, and everyone complains about it. If we can have pizza and books delivered to us, why not tampons? I could go into a fem-empowerment rant on why we didn't have this service earlier, but it's 9am on the west coast and I have to go run a company now.

</comment><comment><USER21> I thought of doing something similar in the UK. I was also looking at the use of Jersey as they let you send (or used to) packages under £15 vat free.

I think the only way you could make money would be to create your own brand, but I'm guessing (as a man) that this would be an area susceptible to brand loyalty, or at least to not using unknown brands.</comment>