Ask HN: Web content over the phone? - <AUTHOR>

We are looking for feedback and suggestions on a project we prototyped that won LA Startup Weekend back in October. The service, which we're calling Hinty at the moment, was envisioned as a way to access and navigate your online content audibly, specifically over the phone. The idea came from sitting in terrible LA traffic wishing I had access to HN or Techcrunch.
Since then we've been working to build something more stable and scalable. We have it to the point where you can call into Hinty and choose from 5 curated categories (tech, business, politics, etc.). Each category will play stories from relevant RSS feeds using text-to-speech translation. In addition, we are almost finished with a web interface so users can create their own channels from their favorite RSS feeds and prioritize them.
One of the issues we ran into is that a lot of good RSS feeds truncate their content, which makes them pretty useless for our needs. We are looking at scraping the content of those truncated stories but are concerned about the potential legal issues this will create. Any feedback on the copyright laws this might violate would be really helpful.
Also, since phone calls aren't free, we are looking at charging for the service right away. We are considering somewhere between $1-2/hour of listening. Would this price range be worth it for any HNers?
If anyone is interested in beta testing Hinty please contact us at email@example.com. If you think you'd pay for a service like this we'd love to hear your feedback. <comment><USER2> I've heard this idea before (maybe from myself? haha). I think it's great!

Why not just do a smartphone app? Or an RSS feed reader that speaks your feeds? Then you get the GUI from the smartphone too. Or could be an all-voice interface for when you're in the car...

<comment><AUTHOR> We are currently looking at the smartphone app approach. The phone approach was easier prototype which is why we started there.

</comment></comment><comment><USER3> I think that $1 per hour is high considering that large volumes of data can be had for $30 a month or less in the US. In other words, many people can run Pandora all month on their iPhone without additional cost. Wanting HN or TechCrunch is not the same as spending $10-$20 a week to get it during your commute...the demographic for whom such access is time critical is probably very small.

I still think there is something there, I just think that the a pricing model where the meter is always running discourages casual use, particularly when you can potentially run up several hundred dollars a month in use.

<comment><AUTHOR> We are considering a monthly fee, but for the economics to work we will need to be making roughly that $1 per hour of usage to cover phone call and other costs.

We are still searching for the demographic that needs some sort of web content on the go, can't get it on their smartphone and is willing to pay for it.

Any ideas would be appreciated.

<comment><USER3> At that rate the information you deliver has to be critical and the user demographic has to require the voice conversion. IMO it's just too expensive for casual use and viral growth.

I guess that means either finding a niche which justifies the premium product or lowering the cost of delivery. I'm not sure why it is necessary to deliver via voice rather than the user's data connection via the web.

<comment><AUTHOR> We started with the phone because it was easier to get a working prototype out the door and its truly a ubiquitous solution.

We are looking at building an iphone and android app. Its starting to seem like a more viable way to make the service profitable.

</comment></comment></comment></comment><comment><USER4> Hinty? Hear INTernet? Clever.

Why would a Ads/Freemium model not work? You'd know the user, the stuff they are listening to, surely you could get some nice targeted ads?

I think it's a good idea, but text-to-speech grates after a while.

I'd try it, but I'm in the UK.

<comment><USER5> Our cost per user is too high to rely on an Ad/Freemium model.

</comment></comment><comment><USER6> It will be fantastic if it can read my Instapaper articles. I think it can be totally possible since Marco Arment is launching his full-access API this month.

</comment><comment><USER7> For legal issues, how is this any different than a screen reader. You're just another browser. I would love to try this out!!

<comment><USER5> Hinty is removing any ads that may be on the source page or RSS feed and presenting in an audio only format. In addition, we would need to charge money to at least cover costs, so collecting revenue for someone else's content could be an issue.

</comment></comment><comment><USER5> In addition to the above post, we'd also like feedback on whether anyone has a concern over their own phone minute usage.

</comment><comment><USER8> I would pay for this. You have my vote.</comment>


HackMIT 2017 Admissions Puzzle - <AUTHOR> https://delorean.codes/ <comment><AUTHOR> Hey HN, HackMIT organizers here. This is the 2017 admissions puzzle! It contains a variety of security, AI, and RE challenges. If you're an undergrad and are one of the first 50 people to complete it you get automatic admission to HackMIT!

If you start playing, feel free to join the Slack! Link is on the command center.

<comment><USER2> Just looks like a login page to me. No way to see either info on your event or your clever puzzles w/o giving up my personal info :(

<comment><USER3> Homepage: [http://hackmit.org](http://hackmit.org)

<comment><USER4> I like the Easter egg in the console ;)

</comment></comment></comment></comment><comment><USER5> In case it is not obvious ( for me it wasn't ), you can only acceess the puzzle through github login button. Registering doesn't give you access to the puzzle.

<comment><USER6> Thanks for pointing that out, my first thought was the goal is to decode a bit pattern from the flickering neon sign mp4! That would have been some wasted time...

<comment><USER7> That was definitely my first instinct. I got as far as the morse code decrypts to "NETE" before coming back here to check if I was doing something wildly wrong.

</comment></comment></comment><comment><USER8> Something about unix time? Isn't the earliest moment in unix time around December 1900? Epoch - 2^31 seconds? I'm betting it's something about that plus some tricky nonsense I don't have the energy figuring out (assuming that I could). I guess spoiler alert...

I used to love puzzles like this when I was younger, but I think I've lost the patience for them now.

EDIT: ah, no, it's December 13, 1901. Never mind!

<comment><USER9> That puzzle is optional, and definitely the 'hard' way to get past that challenge

</comment></comment><comment><USER10> The puzzles are similar to the ones on [https://cryptopals.com](https://cryptopals.com). The first one involved a combination of caesar cipher and running a jar file. The second one looks to be related to timing attack.

</comment><comment><USER11> When i create a hackmit@ alias on my domain, and want to subscribe....

"Not a valid educational email."

<comment><USER12> HackMIT organizer here. All .edu emails (and international equivalents) should work. Please email us at firstname.lastname@example.com otherwise.

</comment></comment><comment><USER13> Required github login? Not everybody uses github, it's a very big world when internal AI and Eng corp groups span the globe.

<comment><USER14> The target audience for this is college kids, who these days frequently use GitHub for consuming course material (e.g. boilerplate for class assignments). Doesn't seem like a bad move on their part to avoid rolling their own account system. People like one-click auth.

<comment><USER15> Yeah, but they may not have an account on github.

And I see more and more students using gitlab instead since they have free private repos

<comment><USER16> Students get free private repos on Github too with the education pack.

<comment><USER17> Oh it's _free_ , that's all right then.

Many people don't use cost as the sole measure of everything.

<comment><USER18> Sure, but the parent commenter explicitly mentioned free as a reason for using GitLab.

</comment></comment></comment></comment></comment></comment><comment><USER19> tl;dl: too lazy, didn't login

<comment><USER20> ^ THIS</comment></comment>


Next time you go to the loo, bring your locked laptop with you - <AUTHOR> http://www.theregister.co.uk/2008/03/28/memory_sniffer_unveiled/

<comment><USER2> Or set your HDD as the only boot device and set a BIOS password.</comment>


Staples Agrees to Buy Office Depot for About $6.3 Billion - <AUTHOR> http://www.bloomberg.com/news/articles/2015-02-04/staples-to-buy-office-depot-in-deal-valued-at-6-3-billion

<comment><USER2> These businesses are most certainly NOT "on their way out". Office supplies is one of the largest categories in ecommerce. Staples and Office Depot are each doing billions in annual sales online. The idea that Amazon has already won in this category is simply not true (yet, but still).

Staples did ~$10b in online sales last year and Office Depot did ~$6b. Online only.

Staples sells more online in pure dollars than Apple, Walmart or Dell.

This is not Radio Shack.

I think this is a really smart move for Staples.

Source: [https://www.internetretailer.com/2013/05/24/big-and- getting-...](https://www.internetretailer.com/2013/05/24/big-and-getting- bigger)

<comment><USER3> Realistically the only way they can go is down. People just aren't even going to buying more of what they sell. The threat isn't Amazon, it's Apple. People are going to continue to use devices more and pens less right up until no one uses pens any more.

Also, bear in mind that you're quoting an article from 2013, and Staples stock fell by about 25% in 2014. They've picked up a little since then, but they're not going to get back to where they were. Their market is slowing disappearing.

<comment><USER4> > _People are going to continue to use devices more and pens less right up > until no one uses pens any more._

And what prevents Staples from adjusting their product offerings to lean more towards "devices", and less towards "pens"?

Amazon used to sell only books....

<comment><USER3> Nothing at all, but their past performance of selling pens is not an indicator of how well they sell devices, or if there'll even be a market for selling other manufacturers devices in the future. Staples are very good at repeat sales of core business stationary. That market is not going to exist for that much longer.

Maybe they'll move to a different market successfully, maybe they won't. They wouldn't be the first once successful company to fail as the market changes though.

<comment><USER5> I've been hearing that for decades, and while the latest round of technology is a step in that direction, it is not significant enough to overcome the advantages of existing office supplies. (Largely because nobody really knows what those advantages are in a way that can be outmaneuvered digitally.)

How long do you imagine 'that much longer' to be? That sounds too weaselly to be accurate.

</comment></comment></comment></comment></comment><comment><USER6> Normally I'd be opposed to/worried about mergers like this, but I feel like these businesses are on their way out (certainly in the physical retail world) so this particular merger might not be so bad. After all, they have a lot of competition from Amazon and the like.

<comment><USER7> Its very similar to the sirius/xm merger. Technicality they were the entire satellite radio market however the competition transcends the transmission method and was massive.

</comment></comment><comment><USER8> The weirdest thing to me is they JUST finished the merger between Office Depot and Office Max last year.

<comment><USER9> Until your comment I hadn't even realized that Office Max had been subsumed. I guess that goes to show how little I interact with those stores anymore.

<comment><USER10> I worked at Office Max in high school and had never stepped foot into an Office Depot, when I eventually did it was like this uncanny valley feeling because it was so similar to Office Max and yet it clearly wasn't. When they announced the merger it didn't surprise me at all.

</comment></comment></comment><comment><USER11> Staples Depot? I wish them luck. On the rare occasion I buy something online from one of their stores (probably something that generates a loss or wash for them) and pick it up, it feels like I'm their first customer of the day.

<comment><USER12> I have no idea how they keep the lights on.

Whenever I go in, usually during peak business hours, it's unusual if there's even another customer in there. I'm usually just buying a pack of cheap pens or something, maybe once every 6 months.

Many moons ago, it used to be an underappreciated place to buy cheap computer parts, but even SD cards are grossly overpriced these days.

<comment><USER13> Staples has a shockingly large (at least to me) online business. They're the second largest online retailer in the US (second only to Amazon):

[http://www.fool.com/investing/general/2014/03/27/staples- is-...](http://www.fool.com/investing/general/2014/03/27/staples-is-trying-to- become-amazon-for-businesses.aspx)

<comment><USER14> That doesn't make up for their empty retail stores though, unless those stores really are local warehouses/depots in the scheme of their online operations -- is that their model ? Former retails promoted to faux retail/consumer warehouses ? Does having that high profile physical presence drive their online retail, so the costs are worth it ?

<comment><USER13> Well the "synergies" or "cost savings" associated with mergers like this are when they shutter stores and lay off the employees. Post merger there will be less retail stores.

</comment></comment></comment></comment></comment><comment><USER15> This will be interesting to see. Yeah these office supply stores have competition from online retailers, but I would assume they make a good chunk of their revenue from corporate/education customers. Since that is their biggest revenue stream, I wonder how that aspect of the industry would be affected by the merger.

<comment><USER16> There are plenty of competitors for the large customers. Few consumers have ever heard of them, though, because they only do large accounts.

Plus, Sam's Club has been on a major push over the past several years to attract small and medium business customers. They will be a serious competitor for Staples Depot Max in that segment.

<comment><USER17> I really hope they adopt that name, Staples Depot Max!

</comment></comment></comment><comment><USER18> As someone who works in IT at Office Depot, I can say that the Office Max merger isn't even close to half way done from a technology standpoint

<comment><USER10> If Office Max is still using the same inventory tracking systems they used in the late 90s then I fully understand why.

</comment></comment><comment><USER19> Staples has been well run. Especially its online business. They were installing Kiva Systems' bots in their distribution centers before Amazon (which now owns Kiva), and they've consistently squeezed more margin than others from a category that deals 100% in commodities.

</comment><comment><USER20> Those deck chairs are not going to rearrange themselves.

</comment><comment><USER21> Heh I only go to Office Depot to buy a bunch of what I've found are the best microfiber cloths, only sold at Office Depot: [http://www.officedepot.com/a/products/328533/Ativa- Microfibe...](http://www.officedepot.com/a/products/328533/Ativa-Microfiber- Cleaning-Cloth-Red/)

</comment><comment><USER22> From an IT perspective, it means a lot of integration work between the two companies. So the employees have that to look forward to. I imagine many Office Depot employees will be jumping ship early to avoid the massive layoffs at the end of the year.

</comment><comment><USER23> In 18 months we've gone from 3 major national office supply players to 1. What is driving this? Amazon? Are the old office supply catalogs like Quill still around?

<comment><USER24> Staples has owned Quill since 2002.

</comment></comment><comment><USER25> I wonder what they are going to do about store overlap. There is one of each within three block of my office and I suspect that's not uncommon.

</comment><comment><USER26> So we now effectively have an office supply monopoly? Ugh.

<comment><USER27> > So we now effectively have an office supply monopoly?

We have a retail office supply specialty chain physical store monoculture, but actual retail sales of office supplies also take place at non-specialty physical stores, at non-chain physical stores, and, most significantly, online (both from specialized and general retailers), and for most transactions customers easily substitute among those groups. So a single-entity dominating the brick-and-mortar chain subcategory is hardly a "monopoly".

</comment></comment><comment><USER28> Wouldn't it make more sense to convert all the stores to microcenters? microcenter.com

<comment><USER10> There's definitely some overlap in their inventories but it might surprise you to learn that office supply stores also carry office supplies that Microcenter typically doesn't. Things like mops, cleaners, file cabinets, furniture, chair mats, and paper.

</comment></comment><comment><USER29> I think 'about' should be changed to ~ (approximately) because the current phrasing sounds like you're saying, "give or take $100M" like it's nothin'

I'd prefer to see

Staples Agrees to Buy Office Depot for ~$6.3 Billion

to

Staples Agrees to Buy Office Depot for About $6.3 Billion</comment>


Why writing a linked list in Rusts is basically impossible - <AUTHOR> https://rcoh.me/posts/rust-linked-list-basically-impossible/ <comment><USER2> Aaaaaand there goes me interest in learning rust ;)

The author is quite open about his lack of expertise with Rust, would be good for someone more knowledgeable to explain the right approach. Also does the benefits actually outweight the cost?

<comment><USER3> Rust is very different in other languages. In many languages, implementing data structures is easy, and so it's how you start out. In Rust, it's not easy. But luckily, you don't have to write them yourself! That's what crates.io is for. Or, if you want a basic linked list, there's one in the standard library.

That said, linked lists are almost never what you want anyway, so it's not particularly relevant to most Rust programmers. And when you do, you use one of the ones that have already been implemented and move on with life.

The "Too many linked lists" book linked from the post goes into this in great detail.

<comment><USER4> Well having written a lot of C and a lot of data structures, particular in low resource devices, I'm well aware of the details needed to do so. I suspect many others are in the same camp. Pointers are hard, however after 10 years of practice there not so bad ;)

I feel that saying ohh you should never need to write your own pointer chain (linked list, trees etc) is a bit too sweeping and doesn't match my experience.

"not particularly relevant to most Rust programmers" begs the question is their less of an overlap from C programmers and Rust programmers than is being generally touted?

<comment><USER3> > however after 10 years of practice there not so bad ;)

I know; I've been using them for over 20 years.

If you're that confident in your knowledge here, then using Rust wouldn't be a problem for you: you can go the unsafe route and just do the same thing you'd do in C.

> doesn't match my experience.

Sure. Your experience hasn't been in Rust. That is, when you have generics, and a good package manager, there's virtually no reason to write your own, as you can always use one that already exists. C doesn't have those things, and so you end up doing a lot more work yourself compared to Rust.

<comment><USER5> "If you're that confident in your knowledge here, then using Rust wouldn't be a problem for you: you can go the unsafe route and just do the same thing you'd do in C."

That's what I didn't understand - why the author didn't just use "unsafe". There's nothing intrinsically bad about using "unsafe", you just have to test that code thoroughly. There's plenty of robust C code out there.

<comment><USER4> Okay thats the bit that I was missing, seems a reasonable compromise!</comment></comment></comment></comment></comment></comment>


Ask HN: What topics do you discuss with a mentor in an organization? - <AUTHOR> I am have a recurring meeting with a higher level exec in my company. We have a good relationship but during these meetings I am finding it difficult to come up with meaningful topics to talk about. I obviously value his time and don't want to waste his time, at the same time want to make sure I don't lose his ear as well.<p>Hoping I can get some suggestions on topics to talk about and in general advice on how best to handle this. <comment><USER2> What is that exec's field of expertise? What is he mentoring you about?

<comment><AUTHOR> I am new engineering manager and the exec has been talking to me about management and what to expect and handling general issues in the new role.

<comment><USER2> Ah, in that case, you are probably encountering new problems every day, both specific and general. I would keep written notes about them, including what that are, how I addressed them, whether or not the resolutions were successful, and which ones I'm stumped on.

Include those passing "I wonder what to do" moments or questions in the list as well, rather than letting the thought fly from your head.

I'd bring that list to the meetings with the exec, and pick one or two from that to discuss with him -- starting with problems that I'm having trouble cracking.

If there are none of those, then I'd review one or two things I did, with an eye towards getting a perspective on how he would have addressed them and why that differs from my approach (if it does).

The odds are very high that doing this will lead the conversation to a fruitful, more high-level, discussion about how to approach management more generally, perhaps point out areas where I'm weak (we all have weak areas) and could use further study or training, and so forth.

Basically, I'd use a list like that as conversation-starters.

<comment><AUTHOR> Thanks! That helps. I am trying to make a list of conversation starters and trying to see if there are general topics that I can discuss that helps either me or both of us (if they are related to the organization).

Can I ask questions about his job, decision making strategy, dealing with his bosses, dealing with budgeting for the entire org etc? Or is it not a good idea if I am in his org?

<comment><USER2> > Can I ask questions about his job, decision making strategy, dealing with > his bosses, dealing with budgeting for the entire org etc?

I think that those are all valid questions to ask. In general, you should be able to ask anything of your mentor -- that's why they're there. If you ask something "out of bounds", your mentor will say so (or answer a related, in- bounds question instead) and, if he's any good, there won't be any repercussions.

From having mentored a few people over the years, I can tell you that from my point of view, I've been impressed when people are inquisitive (even inappropriately so) and come prepared. It makes the mentor's job easier for a whole bunch of reasons -- some obvious and some not.</comment></comment></comment></comment></comment>


Broken Kindles and Amazon's support responses - <AUTHOR> http://www.brokenkindle.com/

<comment><USER2> Back before I was an iPad convert I went through not one, but two, Kindles that had broken screens (they used to be really flimsy if you didn't have a bulletproof case) and Amazon dealt with it perfectly. Amazon never asked any questions and always immediate shipped off a new kindle and return packaging in both cases. I was completely stunned.

<comment><USER3> Same here. I went through 3 Kindle 3Gs and each was replaced within a day or 2, including them covering all shipping etc (I'm in Australia), and each without any fuss at all. Call them, explain that the screen broke, get a new one a few days later.

Amazon's customer support is what turned me into such a huge fan of them. Even if it's just a quick question I've always found them fast, knowledgable, and friendly. A nice surprise compared to the "customer service" we're used to here.

</comment></comment><comment><USER4> I think that given the millions of Kindles sold, the one meager blog page of complaints that dates from '09 is pretty much testament to how good a job Amazon has done with their product and service.

*Disclaimer: I've had 2 broken Kindles (of 5 in the extended family) to date, both replaced without question.

<comment><USER5> Mine was replaced as well. Had serious physical screen damage which probably would void the warranty of most products, but they took it anyway. I actually called asking if they had special offers for former users and they offered to replace it. And I had 0 book purchases to my name at that point, all I had were downloads of my own.

</comment></comment><comment><USER6> Kind of an aside but the post relates to a UK purchase and in the UK there's a reasonable chance that Amazon are actually liable for a replacement under the Sale of Goods Act.

Part of the SoGA states that things must be "fit for purpose" and it's not uncommon to deem something that costs £150 and only lasts 13 months without ill treatment as not "fit for purpose", regardless of what the warranty says.

The trick tends to be to read up on this and make it clear that you understand your rights and that your claim is under the Sale of Goods act rather than against the warranty or whatever. It's astonishing how many previously intractable companies change their view when you calmly and politely explain that you understand your legal rights and are willing to hold them to them (which you can do very cheaply without legal representation through the small claims court).

</comment><comment><USER7> Some of those seem to be people who damaged their kindles then got upset that Amazon wouldn't replace them for free? Do they have the same approach if they crash their cars I wonder...

</comment><comment><USER8> And the entire site has 6 complaints. Since 2009. And two of those got free replacements.

</comment><comment><USER9> The first post complains about Amazon asking for 50 bucks to replace a Kindle outside the warranty. People will just complain, no matter what you do.

</comment><comment><USER10> My first DX fell off the bed and the screen broke. I called them up the next day and my current DX arrived shortly after that. The most surprising thing was the lack of any sort of return label for sending back my broken DX. Over the years, I have been served well by Amazon so I have come to expect (and am always relieved by) their good service (to me).

</comment><comment><USER11> I wonder if Amazon's back-end is clever enough to flag big spenders and know whether it's cost effective to send a replacement kindle.

It's a clever idea, but then if the information leaks onto the web people may get pissed at the double-standard which to them may seem arbitrary.</comment>


Ask HN: Which programming bootcamps do you take seriously? - <AUTHOR>

I am new to the tech industry and was one of the people who got in after doing a rails web development bootcamp. I was honestly pretty disappointed with my bootcamp, but I just wanted some direction with my education and validation with a credential.  Now that I'm in the industry I've heard a lot of back and forth.
Rather than ask IF you take graduates of these programs seriously (because I'm sure that's a conversation we have read before) I'm curious which programs you take seriously.  This might help me as I meet people who want to get into the industry and have shown they have the willpower to get started on their own.
Thanks for any feedback! <comment><USER2> I would see participation at a bootcamp as a negative, if you can't pick up a couple of books and use online resources to figure it out; how are you going to manage once you get into a work situation that requires more than trivial common patterns and solutions?

If you want to further your education. Build applications, websites or whatever thing makes sense for your field of interest. Proof of your abilities is the application. Other than prior work experience it is the only thing that validates your knowledge.

A bootcamp is nothing more than a vocational school, it teaches just enough to be dangerous but will never make you a serious software engineer. That requires a much deeper background which would allow you to pick up any language and any framework that might be required. After going to a bootcamp you will have to spend years "practicing" and learning on your own to even be considered a junior developer as far as I'm concerned.

<comment><USER3> This is a very ignorant view. Just as instructors are an invaluable resource at a (human) language immersion school, the same is true of instructors at an immersive coding school.

At least at the particular school I attended, I got a great deal out of time and money I invested. It's true you can find great lectures online. However, I found the that having a better than 2:1 student teacher ratio and having instructors around while I was actually in the process of writing software to be very helpful. Ditto for code reviews. While I could have learned everything on my own with books and other resources, it would have probably taken closer to 4,000 instead of 1,000 hours. It's also worth pointing out my classmates _did_ generally end up with the kind of background that let them confidently jump into another language and framework. Quite a few did in their first jobs out of the program.

> _" After going to a bootcamp you will have to spend years "practicing" and > learning on your own to even be considered a junior developer as far as I'm > concerned."_

Fortunately for my friends and fellow alum, Google, Facebook, LinkedIn, Uber and many, many start-ups don't subscribe to this point of view. The average salaries of fresh grads of the program are higher than those of Stanford CS grads. The gap after a year is even greater.

I certainly can't claim that every immersive school is worth it, but some definitely are.

Update: The class hours were 12 hours a day, 6 days a week for 12 weeks (total of 864 hours). I generally stayed a couple of hours late and kept working on things and/or playing around with things from previous lessons. During that time I was technically on my own but the instructors were actually still around. I truly don't know when they slept. I also put in about 25 hours during the break week halfway through.

<comment><USER4> Just to clarify - did you have 1000 hours of time at this immersive school/bootcamp or is that including individual time building on things etc? I'm just wondering because I don't imagine they come cheap (albeit I'm sure cheaper than Stanford CS) and if you pay by the hour or something that's way more expensive than I envisioned them to be. Also longer than I expected them to be, 1000 hours presumably quite compressed sounds intense.

</comment></comment></comment><comment><USER5> Everyone I've talked to who has taken a developer bootcamp has been severely disappointed with the programs except for one, and it's the one that costs the most. I've also heard good things about Hackbright.

The sentiment I got from a majority of bootcamp attendees is feeling like they got legitimately scammed.

Examples include: * 95% of the time being spent with a "teacher's assistant" who "graduated" 1 week before and had less experience coding coming out of the program than most did going into it. * A week spent on basic HTML (which should obviously be pre-requisite knowledge) * After bringing up legitimate concerns about teaching material, and instruction being poor during the program looking for any type of refund and to part ways being met with extreme hostility. * Zero communication or follow-up on the job search a couple months after the program (which since they obviously couldn't get a job after a very basic program, they spent that time building out projects)

The advice people give is to not mention attending a bootcamp during interviews. Whether or not it's "fair", the "credential" of having attended a bootcamp is a negative signal.

<comment><USER6> _A week spent on basic HTML (which should obviously be pre-requisite knowledge)_

Why? I thought these places were about learning to program?

<comment><AUTHOR> Many bootcamps cover web development. Also, HTML is what I started with so I could get used to: I type code, something happens. Sounds super simple to people in tech, but I came from the hotel industry. I wanted to start at a very foundational level and build up.

<comment><USER6> _Many bootcamps cover web development._

Oh right. Well that explains it. Web dev does seem to get an enormous amount of press and attention for such a small part of the industry, but then it is the most obviously visible and as you say, it can have a very tight feedback loop for the coder[1].

[1] I expect, based on your words :) Never touched so much as a single line of it.

</comment></comment></comment></comment><comment><USER7> As a co-founder of one of the first in-person programs, I can say that just by asking this question we have come a long way in just the past 3 years! But as the field grows it becomes harder for a prospective student to make the right choice for the next step in the career.

I understand that you're asking for opinions we might have on which programs to take seriously, but I feel that narrowly focusing on that can create a flamewar that won't be productive for you as you talk with friends and others about which program to apply to.

I'll at least start by pointing out some great external resources to help you verify your own opinions, learn about new programs, and help people make an informed decision.

\- Quora ([http://quora.com](http://quora.com)) is a great resource to get information about which programming bootcamp to choose from. Yes, you can get subjective advice from people inside these bootcamps, but just searching "programming bootcamp" will send you through a wormhole of information.

\- If you don't feel Quora provides you with enough objective data, there are a rising number of bootcamp review sites popping up. From our experience with these sites, I can say that Switch (switchup.org) and CourseReport (coursereport.com) have their stuff together.

I will also add that there are other options besides just 3-month programming bootcamps. There are even more intense programming bootcamps like the Turing School of Software & Design ([http://turing.io/](http://turing.io/)) or gSchool ([http://www.galvanize.it/school/](http://www.galvanize.it/school/)), and 30 Weeks ([https://www.30weeks.com/](https://www.30weeks.com/)), a new design school created by Google.

 _Taking objective cap off_

We have also created a 9-month program in Chicago called Starter School ([http://starterschool.com](http://starterschool.com)), which not only teaches web development, but web design, product development, and entrepreneurship. If you want to get a graduate's perspective of this program, I encourage you to read this post ([https://signalvnoise.com/posts/3771-jack-mallers-from- dropou...](https://signalvnoise.com/posts/3771-jack-mallers-from-dropout-to- starter)).

 _Putting objective cap back on_

Final cautionary note: If prospective students have the goal of getting a "validation with a credential" the chances of being disappointed at the end of the program are extremely high. These programs were created in direct retaliation to that premise. It's all about what you learn, what you build, and what type of person you are. The more serious you are about your education, the better chances you have of being successful after you are done with your bootcamp education.

</comment><comment><USER8> I went to General Assembly's Inaugural class in Santa Monica, California. I thought the instructors were incredible, and my fellow students were awesome, and I still keep in touch with some of them. However I do think, and this is my sole opinion, that General Assembly as a company has many, many things to work on.

There are still are many people (like some who have given answers in this thread) who have never been to a bootcamp, know nothing about them, and continue to shit on them just because it is a different way of doing things. On the other hand, I have heard of some bootcamps basically just doing things you could do online, so YMMV. I dropped out of college and enrolled, and I am currently writing code for a living, so these programs definitely produce value despite what ignorant people may say.

The bootcamp I personally take incredibly seriously is Hack Reactor. I applied and had a great interview, but they told me to reapply again because my js wasn't were it needed to be for their bootcamp (which is fair, as I have focused way more energy on ruby/rails). I took that as a challenge, and I will be having my second interview in the next month, and I hope to go spring of 2015.

Hack Reactor seriously produces top notch people, rivaling that of many CS degree programs in my opinion. The instructors are incredible, the founders are very empathetic who have been in the position of many people coming to the program, and the students are all top notch. I could not think of any better way to spend 12-24 weeks.

</comment><comment><USER9> I'm a cofounder at Hack Reactor, and I take myself extremely seriously. Here's a list of "people I take seriously that aren't the handsome devil in the mirror": Flatiron, Turing, Zipfian, Epicodus (dark horse -- a very good bargain choice), MakerSquare, App Academy.

Cool to see people repping Hack Reactor in this thread! Thanks <3

</comment><comment><USER10> I, myself didnt have any programming experience, and took an online rails bootcamp, graduated and got a job from a fortune 50 company as a SW engineer. I was able to ramp up with the codebase relatively quickly and committing/completing user stories in weeks. I did all those tutorials you can think of...code school, code academy, coursera(that rotten potatoes app), and the one I took had a lot of structure and built a production worth app as the main course, all through TDD, capybara, factories, stripe payment integration. The instructors were focused on teaching how to build shippable code. Comapleting the course,and writing a kickass readme files on your github projects, should land you some interviews. Of course, i had to go above and beyond to get past recruiters, who focus on rails experience only...

</comment><comment><USER11> One that I do take seriously, but is local to Colorado (Denver, Boulder) is gSchool ([http://www.galvanize.it/school/](http://www.galvanize.it/school/)). It 100% guarantees job placement within a well-to-do startup as a software engineer, and teaches everything from software engineering as a broad concept to building specific types of application (if that makes any sense).

Another one with the same premise, made by the same guy is [http://turing.io](http://turing.io), and it works very similarly and some consider it to be gSchool 2.0

</comment><comment><USER12> Bloc.io has a pretty good program, at a reasonable expense. Full disclosure: I'm friends with the founders (we all went to U of I), but my recommendation is based on what I know about their program.

</comment><comment><USER13> I attended Epicodus, and though I had prior experience I ended up with a wonderful job afterwards and found the experience amazing. 90+% of the rest of the class got jobs as junior devs or better as well. Email me if you wanna chat, its in my profile.

</comment><comment><USER14> I don't take dev bootcamp graduation seriously because I've never heard of anyone washing out. I can only speak for myself personally, but activity on GitHub and having projects are the two things that I look for.

</comment><comment><USER15> thoughtbot's Metis program (Rails) is top notch and have been impressed with their graduates.</comment>


Show HN: A better way to initialize hyperlinks - <AUTHOR> https://github.com/harmankang/targetblank.js <comment><USER2> Isn't putting target="_blank" in your markup not the better way instead of using a JS libary for that?</comment>


Show HN: Jobrupt - job search/recruitment tool - <AUTHOR> http://www.jobrupt.com

<comment><USER2> When I know the connection already and interested in job what's the point of hiding it. I can always ask the connection that they have any opening for me. May be I am missing something here or the page is not explaining it enough. Good luck!

<comment><AUTHOR> Thanks for the comment. It is for some cases, where you don't want to take the first step because of previous history with this person, or due to your current position. Or personality and cultural nuances may push some people to shy away to make the first step. It all depends on your relation with your connections. Let's see if it will make sense for some people.</comment></comment>


All Programming Languages are Wrong (2018) - <AUTHOR> http://users.rcn.com/david-moon/Lunar/all_programming_languages_are_wrong.html <comment><USER2> Does anyone else consider these type of articles the clickbait of the programming world? They tend to all follow the formula of

1\. Make over the top statement in title.

2\. Vaguely address the over the top statement in content.

For example the author hasn't shown us why "All" programming languages are "wrong". They haven't shown how they would fix them to make them "right". Their premises (e.g. "computation is almost always free") are flawed.

I wonder, if the title was called "A rant about some popular programming language paradigms" would it be as popular?

<comment><USER3> "computation is almost free" actually triggered me. that's the java argument from 20 years ago, now we have go and rust. it implies electron is actually a sane approach to ui development.

the author is very vague about why exactly numbers don't fit in the type system, and in which languages. first class types for numbers exist in some languages. is he advocating for default overflow checks, which bloat code size?

<comment><USER4> > the author is very vague about why exactly numbers don't fit in the type > system

No, he's quite specific: "hardware details such as the number of bits supported by an integer add instruction show through in the language semantics."

Now, it's also true that there are quite a lot of languages where this is not true, e.g., Scheme, Haskell (IIRC with the default numeric settings), Ruby, Python, for instance, and many more have numeric types in core language or stdlib that don't face this problem but don't make them the default for simple numeric literals.

</comment></comment></comment><comment><USER5> Computation is not almost free and people are doing just fine writing slow code without the language helping them.

Taken that we've more or less stalled with regards single core performance, I'd argue that computers are now getting slower (because software is bloating faster than single core performance is increasing).

<comment><USER6> > Computation is not almost free...

In the vast majority of cases, it is. He's talking about the ALUs actually performing work, as opposed to waiting on memory. He rightly points out that cache misses make the biggest performance impact on modern systems. Most languages these days do not address this, there's tons of indirection by design.

> Taken that we've more or less stalled with regards single core performance, > I'd argue that computers are now getting slower (because software is > bloating faster than single core performance is increasing).

Again, if you can actually give your ALUs enough work to saturate them, your problem is most likely embarrassingly parallel, in which case single-core performance is not the bottleneck. Otherwise, you will want to optimize for memory access.

</comment></comment><comment><USER7> I wonder what the author would do, when performance is critical. Today too many people rely on fast cpu and large memory. There are lots of applicants, where you need to optimize.

</comment><comment><USER8> > For example, one cache miss might take as much time as a hundred add > instructions.

> Today's languages contain far too many features that do almost the same > thing but have slightly different performance characteristics, for example > regular and virtual functions in C++.

Odd example. Virtual functions help enable certain designs, but avoiding virtual functions is commonly recommended when writing cache friendly code.

<comment> spaced-out Honestly it really hurts the author's credibility.

Virtual functions hurt performance (generally not significantly) but allow for OOP design, in theory to make the program structure more clear/organized. Exactly what the author is supposedly advocating.

</comment></comment><comment><USER9> Each programming language is suitable for solving certain type of problems. So when I see a catch-all statement like "All Programming Languages are Wrong", it seems to me the author is implying that "None of the programming languages solve my (or this specific type of) problem."

> It does not reflect the realities of modern hardware, where computation is > almost free, memory size is almost unlimited ...

Well, no, this certainly doesn't apply to all problems!

> ... because they seem to be in love with the idea of "object" or "abstract > data type." ...

Again, there are many different paradigms of programming, OOP being one of them with its own pros and cons.

</comment><comment><USER10> IMO the biggest problems with almost all popular programming languages are

1) null

2) exception based error handling

such that, when you call foo() where foo is

String foo(){ blabla }

you can get a String, null OR an exception (!!!) and most compilers happily let you treat it as if it only ever returns a String.

I hope some day null is no longer a thing, and that Functional Programming types like Option, Either, Try etc in the native libraries is the new default.

<comment><USER11> I am probably in the minority here but I think Java was on the right track with checked exceptions.

<comment><USER10> I used to think so, but

* Java also has unchecked exceptions, and, incredibly, there's _still_ no consensus as to which exceptions should be used for what and when, though these days the most common approach is to simply stick only to RuntimeExceptions, which is terrible.

* Functional error handling using Option, Either, Try etc are arguably much simpler, safer and more powerful than exceptions.

Simpler because they don't rely on dedicated syntax- they're just regular objects no different to any other object.

Safer because unlike exceptions, they force callers to handle all potential outcomes, but no more. (no risk of ignoring errors and no risk of catching a higher level of error than desired, ubiquitous bugs in exception based error handling)

Powerful because they support map, flatmap, applicative etc, making it easy to eg chain multiple computations together in desired ways, which is unwieldy and bug prone when using exceptions.

It could be that, when learning Java, Python and any other language, we learn that methods return objects... and that's that. No weird dedicated syntax and magic, special treatment for returning anything other than the happy path, and the HUGE complexity that comes with it, eg the dedicated syntax itself and how it behaves, differences between checked and unchecked exceptions, hierarchies of exceptions etc etc.

When lists and booleans also implement map, flatMap etc, you can actually reduce syntax of languages even further- there's no need for looping syntax like for, while etc, and no need for if else either. This is probably too extreme for most people, but think about it!

<comment><USER12> Slightly off topic, but what should a map or flatMap implementation on boolean do? Presumably run on true and skip on false? That's not really what I expect from map (that it's filtered the input). I could imagine book.filter.map as a way to conditionally execute

<comment><USER13> I rather like that, `if condition` is a 0/1 iteration with no input. flatMap can return empty, what should map return when run on false, None?

<comment><USER14> I'd probably think of Bool as being isomorphic to Maybe (), which would mean your map implementation looks a bit like:

        map :: Bool -> (() -> b) -> Maybe b
        map True f = Just (f ())
        map False _ = Nothing

Or, in Haskell because you've got laziness you could go with:

        map :: Bool -> b -> Maybe b

Which already exists as a combination of Control.Monad.guard and Data.Functor.(<$).

        map tf b = b <$ guard tf

</comment></comment></comment></comment></comment></comment><comment><USER15> This is part of the introduction to a language he's been designing since forever. I attended the International Lisp Conference in Boston around 2005 and he did a presentation there of what seems like a precursor to this.

Some of his views might be controversial, but he has plenty of Lisp implementation experience and clearly knows his stuff.

And from what I've read so far, he writes excellent documentation. I'd recommend anyone to at least skim the whole thing [0].

[0] [http://users.rcn.com/david- moon/Lunar/index.html](http://users.rcn.com/david-moon/Lunar/index.html)

</comment><comment><USER16> Referring to David Moon namelessly as "the author" in comments about language design (on Hacker News of all places) does not inspire confidence. Whether or not you agree with him, Moon has been involved in language design and implementation for decades. His perspective is directly relevant to discussion that's primarily focused on large scale trends in language design. I don't necessarily agree with everything he says here, but it is definitely worth thinking about, especially where it challenges accepted dogma.

</comment><comment><USER17> Is this just my feeling or this this text completely ignore languages which are of functional / declarative nature? Iirc Prolog doesnt "care" so much about performance (on a language level at least). Haskell knows Integer, Rational, Num etc. Same goes for Idris Languages from that area (lambda calculus) are, by definition, not based on the idea of some specific computer architecture. Totally possible that i missinterpreted something tho.

</comment><comment><USER18> To put the original in more context, David A. Moon is a major figure in the Lisp world: [https://en.wikipedia.org/wiki/David_A._Moon](https://en.wikipedia.org/wiki/David_A._Moon)

</comment><comment><USER19> What a bunch of bs. There are so many places where computation is far from free and size matters (embedded, HPC for example). And the end of Moore law is just gonna emphasize the need for performance even more. This article just tells me that the author didn't have to write any performance critical code in his life and he just extended his experience to everything

<comment><USER20> Yeah, what would David Moon of all people know about performance critical code.

[https://www.h2o.ai/blog/a-brief-conversation-with-david- moon...](https://www.h2o.ai/blog/a-brief-conversation-with-david-moon/)

<comment><USER19> It doesn't really matter who wrote it. It's a comment about the article , not the author himself and the article is approssimative at best. It makes a statement that's not true in a lot of cases ("computation is almost free"), makes some statements that while agreeable are too high level in how they are expressed like "cost of communication is high" and then the piece ends without any explanation or examples on what he means exactly or what is wrong and how to solve it in enough details to actually be an informative article. It seems like an oversized rant a programmer would make after a bad day at work on Twitter.

</comment></comment></comment><comment><USER21> The author has a good point, although he miscommunicates it: The common use- cases, such as servers, business logic, glue code, etc., don't usually require hyper-optimized performance. It only needs to be reasonable and predictable.

They need a language that is easy to work with, and share with others, and there are few that really do that.

But of course, there are. Go, Python, Julia and others I'm sure, all prioritize comfort over performance. Although, as compilers improve, they might one day actually become faster -- since the user writes more abstractly, there is a wider search space for optimizations.

<comment><USER22> > But of course, there are

Your statements are contradictory.

> they might one day actually become faster

faster compared to C/C++ ? Of course, Performance is improving day by day. What's the point?

<comment><USER21> It's not contradictory. I'm saying that the things he says are true, and there are many languages that follow that line of thought.

Yes, faster than C++. Better abstractions can, sometimes, give the compiler more flexibility to optimize.

</comment></comment></comment><comment><USER23> Pretty vague and empty argument (rant?). Doesn't really say anything I haven't seen complained about (and disputed) elsewhere and doesn't really propose any actual solutions.

<comment><USER6> > ...doesn't really propose any actual solutions.

The proposed solution is the language he designed:

[http://users.rcn.com/david- moon/Lunar/introduction.html](http://users.rcn.com/david- moon/Lunar/introduction.html)

<comment><USER23> Ah. That could've been made more clear in the link title

</comment></comment></comment><comment><USER22> > Most current-day programming languages seem to be based on the idea that > computation is slow, so the user and the compiler must work hard to minimize > the number of instructions executed.

Instructions executed is not the only metric to consider! It doesn't makes sense to have loads and stores in the program with all of them having a cache miss.

Does the author mean that the memory hasn't caught up with the computation here? I don't think so.

> For example, one cache miss might take as much time as a hundred add > instructions.

This is why compiler must work hard!

> Today's languages contain far too many features that do almost the same > thing but have slightly different performance characteristics, for example > regular and virtual functions in C++. This just encourages programmers to > waste time on micro-optimization when they could instead invest time > understanding the large-scale behavior of their program and optimizing that.

Not all programs need to worry about insane performance. But most do. It is totally upto the developers to choose the features of the language which they need. Choosing the right features/language for the right kind of programs is an important skill. Efficient code generation for all possible hardwares and all possible workloads with a restricted language features is not going to work or else Python would have been one of the very few languages to survive. Elon Musk wouldn't have tweeted that he needs C/C++ engineers ;-)

It seems the article suggests that neither the hard working compiler nor the hardware friendly language is required to get good performance!

<comment><USER24> There's also energy consumption. Maybe the inefficient implementation isn't noticably slow to me, but i'll be unhappy if it drains my battery.

<comment><USER22> Yes, there are so many things to consider. Another would be size of the binary..

Different kinds of problems are solved by different languages. Simply rejecting them without stating the details doesn't fly!

</comment></comment></comment><comment><USER25> I can't agree about the dot.

Dot makes it easy to chain things left to write, and also almost always dot based syntax is more readable than stuffing all arguments in parenthesis.

xs.delete(x)

vs

delete(xs,x)

And virtual / regular function distinction exists in performance centered languages for a good reason. Either you have to go out of your way to prevent dynamic dispatch or use clunky function pointer syntax and manage vtables manually. Similar can be said to many features he complains about.

</comment><comment><USER26> He claims all programming languages are wrong and then he bashes C++ virtual functions vs regular functions, C++ templates, single dispatch and fixed precision arithmetic. Looks like "all languages" means C++ to him.

There exist languages with arbitrary precision arithmetic, e.g. Python or languages with much sophisticated polymorphism e.g. Haskell, Scala or Rust.

<comment><USER27> > _There exist languages with arbitrary precision arithmetic, e.g. Python_

      Floating point numbers are implemented using double in C.
      All bets on their precision are off unless you happen to
      know the machine you are working with.

[https://docs.python.org/2.4/lib/typesnumeric.html](https://docs.python.org/2.4/lib/typesnumeric.html)

</comment></comment><comment><USER28> Yeah exactly, we all know that the most used programming languages like Python and Javascript are way too focused on performance.

</comment><comment><USER29> Computation is definitely not free. I spend a lot of my time avoiding non- essential computation as much as possible.

I actually would like more control in many of the current languages.

</comment><comment><USER30> Hmm...BCPL isn't from the 50s. C++ isn't from the 70s.

<comment><USER31> yeah that was my immediate thought, stopped reading at that point.

BCPL was from the late 60s, most people were introduced to it in the 70s, C++ from the mid-80s

<comment><USER32> And it was never intended to be used as full programming language rather to bootstrap the CPL compiler, hence the B.

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

In an alternative universe, had the CPL project not suffered management issues and C would never had happened.

</comment></comment></comment><comment><USER33> While computation might be sometimes pecuniarily cheap, it is often environmentally costly.

</comment><comment><USER34> But some are wronger than others. (I'm looking at you, Brainf*ck.)

</comment><comment><USER35> Is there a cached version? I could not find it anywhere.</comment>


Tangle is a JavaScript library for creating reactive documents. - <AUTHOR> http://worrydream.com/Tangle/ <comment><USER2> My first thought was "this is pretty cool!" but wondering who actually needs it. I then had the realization that this is, in fact, a very different way of data expression. It would force you to think not only about what you are saying, but how you are saying it and how to demonstrate the ideas within the text of the document itself and not simply say "Refer to fig 1.1". This could truly present a new way of displaying data on the web. It could bridge the gap between complex animations and simple text. 99.9% of all sites I see that contain some cool animation are completely independent of the content surrounding them. Having the content and interactions married together in a simple way is really something I've not seen too often. Kudos.

<comment><USER3> So must of us are quite familiar with reactive programming, we just don't realize it. Anytime you've ever made an excel spreadsheet, with functions, you've done reactive programming. Seeing that the spreadsheet is one of the few areas where nonprogammers actually program, I'm hoping that as we better understand reactive programming we'll be able to expose it's power to general users.

For more information on functional reactive programming, I'd recommend looking at FlapJax and FatherTime

</comment></comment><comment><USER4> Another cool experiment with the graph example given there: <http://worrydream.com/ExplorableExplanations/> — go down to the guitar icon (or find "incidentally" on the page).

<comment><USER5> If you missed it, Bret Victor also uses this profusely in Up and Down the Ladder of Abstraction (<http://worrydream.com/LadderOfAbstraction/>). Regardless of his use of Tangle, it's a great guide that definitely merits a thoughtful read.

</comment></comment><comment><USER6> It's interesting (for me, anyway) to contrast this with Wolfram's Computable Document Format (CDF, see <http://www.wolfram.com/cdf/> ).

CDF documents can only be written using Mathematica, are only playable using a special CDF Player (or Mathematica), and you have to license CDF for commercial use. Tangle is free and open source (under an MIT License), JS is "playable" in most web browsers, and JS can be written using any text editor.

<comment><USER7> While I agree with the comparison, it would be unfair to not point out the wealth of functions that Mathematica exposes:

[http://reference.wolfram.com/mathematica/guide/Mathematica.h...](http://reference.wolfram.com/mathematica/guide/Mathematica.html)

<comment><USER6> Good point! I wonder how much of Mathematica's functionality can be bundled into stand-alone CDF documents (playable by the CDF Player).

Wolfram|Alpha has an API that can be called using JavaScript (for a fee), so some mixed solution is also worth considering.

</comment></comment></comment><comment><USER8> This is one of the ideas I'm working on integrating into my toy data/programming language, Fern. <https://github.com/andrewf/fern>. It's not apparent from the README, but if you modify a Fern structure in memory, all dependent values will (should) be updated, even with name references pointing back up the hierarchy of data structures. These are mostly lists and maps (which define names for subsidiary structures), which can be generated by constructs like conditionals, functions, and (someday) loops.

Besides the ideas I listed, I see it being used in scenarios where you have formulas based on a few inputs, and want to see what the output looks like when you mess with stuff, like physical dimensions in a design or financial stuff.

It's nice to have a real term for this sort of thing in "reactive document" or "reactive programming" or what have you. Not so nice to realize my idea isn't unique and brilliant. :)

<comment><USER9> Sounds a bit like what they in .NET, especially WPF, call DataBinding? I.e a control can display a mirror of a variable/property without much manual intervention.

<comment><USER8> They're similar, but I think Fern takes a pretty different perspective.

</comment></comment></comment><comment><USER10> What's the difference between "reactive" and "interactive"? Just wondering if we really need a new buzzword...

<comment><USER11> I think "Reactive" refers to Reactive Programming where the display values change automatically when the input values change without the programmer having to explicitly set them.

<comment><USER10> Ah. Thanks... that explains.

</comment></comment></comment><comment><USER12> This looks neat. Definitely worth a look for some educational stuff.

It's not clear on the webpage but this was released under a MIT license

<comment><USER13> If you jump into the [code itself]([https://github.com/worrydream/Tangle/blob/master/TangleKit/T...](https://github.com/worrydream/Tangle/blob/master/TangleKit/TangleKit.js)) it mentions that it is MIT licensed.

</comment></comment><comment><USER14> The graph is neat...I worry that the link is a UI paradigm that my mom or dad simply wouldn't grok though...I'm not a particularly good son and I don't talk to them much...so does anyone wanna test my theory out?

<comment><USER15> It certainly breaks UI expectations. Maybe arrows above and below the number?

<comment><USER16> Slider inputs would work better.

</comment></comment></comment><comment><USER17> This is a specific document use of reactive programming, a paradigm where values are automatically updated when their dependencies change. Flapjax has offered reactive javascript for a long time now: <http://www.flapjax- lang.org/>

I think Flapjax didn't gain much traction largely because the website is ugly. Of course the the other reason is that regular event binding tends to be a good enough solution.

Some of the new client-side javascript solutions like knockout.js also offer reactive capabilities.

</comment><comment><USER18> Take a peek at all of the author's projects [1]. It's amazing, humbling, depressing...

[1] <http://worrydream.com/>

<comment><USER19> Interesting, his idea about interactive pictures is what was my initial frustration with programming. "Why can't I just make that stuff go?"

If you are into games, a solution to interactive picture generation by artists would be akin to a particle editor. You let them define a few parameters and valid ranges, then the artist supplies graphics in the right places: voila. A good looking animation. Now restrict the end user to a few well defined ranges of these parameters as well and you have an interactive picture.

</comment></comment><comment><USER20> have I been missing something or this brakes every accessibility rules? how can I "slide" without a mouse? It seems I can't even tab to the sliding enabled elements.

<comment><USER21> It works perfectly fine on my android phone.

<comment><USER20> indeed, but I couldn't find a way to make the sliders work without touching the mouse. maybe there are some keyboard shortcuts that I couldn't find. also I believe you should be able to tab over the page to reach any input element, for consistency.

<comment><USER15> I can't even scroll his main website[1] with the keyboard if I enable Javascript. Thankfully it degrades nicely without the latter.

[1]: <http://worrydream.com/>

</comment></comment></comment></comment><comment><USER22> Very cool! This makes for some interesting UI ideas. Also, it's not often that you see something this unique in the land of JS plugins. Good work.

</comment><comment><USER23> If you like explanations like these, maybe you'll like the live explanation of the Burrows-Wheeler Transform that I wrote a few years back: <http://canonical.org/~kragen/sw/bwt.html>

I keep meaning to put it on the back of a better library so that it doesn't hang up the page if you type a too-long string.

</comment><comment><USER24> I immediately find this useful. An app I am working on for a client allows for the preparation, setup and intake of candidate interviewees. The app has a few tools that help the administrator predict how many stations or interviewers will be required based on other parameters, like time it will take to conduct the interview process.

</comment><comment><USER25> Impressive. It would be really neat if you could tie a variable to an external input (say, a WebSocket connection retrieving real-time data). Is the only way to adjust values user input, or could I do something more complex where real- time data is coming in and the document reacts to that as well?

</comment><comment><USER26> Similar library from MS : RxJS:

<http://channel9.msdn.com/Events/MIX/MIX11/HTM07>

It's available for the CLR as well:

<http://msdn.microsoft.com/en-us/data/gg577609>

</comment><comment><USER27> Interesting: HN's duplicated post detection seems to be disabled (this was posted only 9 days ago: <http://news.ycombinator.com/item?id=3101618>)

<comment><USER28> I think it allows reposting after a certain amount of time. I think this actually makes sense, because just because people missed it the first time doesn't mean it's not interesting.

</comment></comment><comment><USER29> Pretty cool. I will definitely use it in my projects. Thanks for sharing.

</comment><comment><USER30> This wasn't really impressive to me until I started playing around with the dual pole filter. Awesome! Something like this should have been directly embedded in my prof's DSP lecture notes.

</comment><comment><USER31> Nice, a dependency graph library for JavaScript. I wrote something similar for Clojure: <https://github.com/gcv/dgraph>

</comment><comment><USER32> This is absolutely brilliant for educational uses. Even the front-page filter example is something I plan to suggest to my prof for the DSP class he teaches.

<comment><USER33> I'd like to suggest that in the case of audio, adding the ability to experience changes aurally in addition to visually.

<comment><USER34> That page does allow you hear the changes. See the toggle-switch next to the picture of the guitar.

<comment><USER33> "That page..." - which?

<comment><USER2> Turn on the guitar then go back up to the graph and change it. As you drag you hear its effect on the audio.

</comment></comment></comment></comment></comment><comment><USER35> This is pretty cool but it needs to have a more distinctive style. Maybe the same as it is but green.

</comment><comment><USER36> Any pointers to how it could be tied to a back-end rules engine?

</comment><comment><USER37> Awesome, can you output to .pdf?

</comment><comment><USER38> This is a really awesome idea

</comment><comment><USER39> It seems to me that this would be a good tool to use in an attempt at the following code challenge, where Wikipedia would like to see article changes and trends visualized. I saw their challenge yesterday, and made a note of it, but am too busy on other projects, so I'm just putting the idea out there. Why not make Wikipedia articles visually reactive?

[http://mediawiki.org/wiki/October_2011_Coding_Challenge/Real...](http://mediawiki.org/wiki/October_2011_Coding_Challenge/Real- Time)

</comment><comment><USER40> This could be really useful in an app that helps people control their finances (Register a product/service and then slide the quantity and price... and if you integrate it with wallmart products/price -or something like that- i think it would be one hell of an app)

edit: typo

</comment><comment><USER41> Chrome dev tools should this type of UI in their CSS editor.</comment>


The Orange Juice Test - <AUTHOR> http://insideintercom.io/the-orange-juice-test/

<comment> D-Train Interesting. This makes me think about the Airport Test as a former consultant. The Airport Test is whether or not you could spend a day (or however long) delayed at an airport with someone. It's more for recruiting.

However, I do like this Orange Juice Test. It's different, and not one that I think about very much. I think oftentimes, people make a decision for others. I believe we can influence, but not make the final decision.

You could only lead a horse to water, but can't force it to drink...</comment>


Show HN: Glitterly – Create and share videos of your app - <AUTHOR> https://glitterly.app <comment><AUTHOR> Hi HN,

I'm a big fan of following feature updates for my favourite apps, and I've always wondered how they make videos that have all these nice transitions and zooms.

And so I wanted to create a product that a non-professional video editor / solo developer / bootstrapping tech founder can use to edit a screen recording of your app.

Features: \- Add padding and set a frame from Unsplash \- Gifs \- Highlight user interactions with a zoom \- Transitions and animations.

Use cases: feature demos, presentations, social media posts, "how to" videos.

Putting my MVP out here, and keen to hear your feedback.

<comment><USER3> Looks really nice for such use cases. Shared the same with my social media team to take it forward.

Hopefully you'll keep it affordable :)

<comment><AUTHOR> Thanks! i'm happy to keep it free in exchange for feedback :) would love to hear their thoughts at email@example.com

<comment><USER4> Nice, I'm working on creating a demo video of a product we're launching soon, will give this a shot!

</comment></comment></comment></comment><comment><USER5> Looks really solid.

I built a similar product called Automagical awhile back ([https://automagical.ai/](https://automagical.ai/)) that we exited to a media agency.

A few notes from my experience:

1\. Using gifs in this way as part of a composite video is unfortunately against giphy's ToS. We received a cease & desist from them after awhile, so just be aware of that up front.

2\. If you want to support more variety in your transitions, check out my OSS project [https://github.com/transitive-bullshit/ffmpeg- concat](https://github.com/transitive-bullshit/ffmpeg-concat)

Overall, the product looks really polished & I love where you're headed. Best of luck!

<comment><USER6> > Using gifs in this way as part of a composite video is unfortunately against > giphy's ToS

That seems silly, as I don't think they own/have a license to _any_ of their GIFs.

<comment><USER7> But they do have a license to their API which you are using to access those GIFs.

</comment></comment></comment><comment><USER8> Hey oskarahl, as a solo dev working on [https://ente.io](https://ente.io), I was looking for something just like this!

The MVP imo is the ability to zoom.

What I'd kill for is the ability to add text widgets to point out/explain features.

Thanks for building this, and congratulations for launching. All the best!

<comment><AUTHOR> Thanks! Yes sliding in texts / headers / annotations are on the upcoming features list. Any specific kind of text widgets that you are thinking of?

<comment><USER8> I was thinking of a widget where in I can set the font-style and related properties, along with the background color and padding.

</comment></comment></comment><comment><USER9> Hi @oskarahl - I'll give it a go. Two questions:

1\. How does video capture work - does it need local installation or does it do something clever through the browser?

2\. How well suited is it to recapturing an updated version of a video, without redoing all the config again by hand?

On the second point, my common scenario is an app gets updated and there's a new button or slight change in a part of the screen (not the core feature being captured) and to keep it consistent, I need to re-record basically the same video with the latest app release. Got anything to help speed that up?

<comment><AUTHOR> Thanks for checking it out.

1\. Currently it's a web-based video editor (so no download required) where you edit screen recordings, so at the moment you'll need to record your screen and then upload it.

2\. I see, maybe adding a "skeleton" loader overlay over content that's not affected by the core feature would handle this? e.g. something like this: [https://twitter.com/SlackHQ/status/1275154148938461185](https://twitter.com/SlackHQ/status/1275154148938461185)

<comment><USER9> On point 2, yes that could work. Originally I'd been thinking of it remembering the same screen capture size/locations etc, so it would just reapply those to my updated capture but your way would help keep people focused and avoid distraction with surrounding UI.

</comment></comment></comment><comment><USER10> I've been dragging my heels on doing a new demo video for my company - <USER2> to try this out first thing Monday. Thanks, @oskarahl!

Couple things I'll be looking into:

* the zooming looks awesome

* how easy it is to insert title cards or subtitles

* I don't think I need the borders, so it'd be good if those are optional.

<comment><AUTHOR> That's awesome let me know how it goes. The border can be removed by pressing the "undo" button (perhaps the ui/ux for this could be a bit clearer - i'll see what I can do).

Currently no title/subtitle support yet (outside of the intro scene), but it's something i'll start working on asap as it's been requested by quite a few users already.

</comment></comment><comment><USER11> Hi @oskar, looks very nice! What's the pricing on this? Couldn't see anything on your site.

I know there may be a concern about putting pricing front-and-center in that would scare off potential users, but highly recommend having some pricing somewhere to test actual market viability. Many people want cool stuff, but refuse to pay for it - unfortunately, that indicates the product or service isn't solving a real pain point (and that that user base is actually lousy for a business). I don't think Glitterly falls in this category, but you need paying customers to have a business, and it's best to find out this information sooner rather than later. You can always raise or reduce prices, but having something there is the best way to start figuring this out.

Good luck! It's a long journey so congrats on taking the first step.

<comment><AUTHOR> Thanks for the suggestion it's a good point of view that I hadn't considered yet.

Currently it's completely free and open to use for anyone, but I'll run out of free digital ocean server credits one day :)

Did you get a chance to try out the video editor itself, what do you think?

</comment></comment><comment><USER12> Nice job, this is exactly what I'll be using on my weekend project to show my other projects! (makers.page, a place for makers to show their projects, blog etc.)

<comment><AUTHOR> Great, let me know how it goes :)

</comment></comment><comment><USER13> Are there an pre-set dimensions/settings for iPhone apps? What I'd really like is just easy exporting of all screenshots and the video thumbnail. I know there's a lot of tools that do this already but there's always room for new effects/styles. Thanks

</comment><comment><USER14> Looks great, I used for a few minutes and it's very intuitive! I did try to download my video on Firefox and after waiting a few minutes I gave up, maybe you got an error in your tracker?

<comment><AUTHOR> Thanks! The video transformations can be a bit time-consuming (especially right now as there is quite a bit of traffic from hackernews) - I'll add a proper loader so you can see how much time is remaining. Admittedly I haven't tested much with firefox, i'll check if there is an issue with the download itself.

</comment></comment><comment><USER15> This looks good. I use screen flow but can see the simplicity of this.</comment>


My startup is still not popular, but cloned already :) 欢迎到中国 - <AUTHOR> http://www.jobitems.cn/ <comment><USER2> What made you notice that?

<comment><AUTHOR> Server logs

</comment></comment><comment><USER3> I appreciate your sense of humor-ility ivan!

<comment><AUTHOR> If so, where is a point for my story :) I just can't understand why someone bought cn domain and did it.

<comment><USER4> Pretty soon surrounding our domains will be a mandatory $10000 investment by itself. Who do these domain spammers think we are? Dude Yamaha?

<comment><AUTHOR> truemors could be pretty nice example :)

</comment></comment></comment></comment><comment><AUTHOR> I love these Chinese.

<comment><USER5> The FAQ says Slovakia.

<comment><AUTHOR> Jobitems.cn is only an alias to my domain created by someone I don't know why.

<comment><USER6> Really weird. Perhaps it is because of luring search engines to the page? Eventually they will put up their own application, and then they will have a head start for search engine optimization?

</comment></comment></comment></comment><comment><USER7> err what?</comment>


The thing I hate about HTML - <AUTHOR> http://blog.jgc.org/2010/07/thing-i-hate-about-html.html

<comment><USER2> Technically, one of the reasons for closing tags is that HTML, like its SGML heritage, allows a non-tree structure, which means tags need not be closed in the order they are opened, e.g.:

      bold only, bold-italic, italic only

But that's so ridiculously rare in practice (and totally messes with things like DOM traversal) that nobody missed it in XHTML, which, like its XML ancestor, requires a pure tree structure. Yet XML still requires named end tags, and so does modern HTML.

You can of course generate HTML from S-expressions, most Lisps have libraries for it. I particularly like the Clojure notation of

['tagname {:attrname "attrvalue"} child-nodes...]

where {} denotes a map literal, but even if you use that, your client JavaScript deals with the emitted ugly HTML.

The biggest problem I have with HTML and CSS, though, is that they're both designed for marking up text, not websites. Divs and such are an afterthought.

Tangent: I failed trying to leave a comment on the blog proper. Some kind of internal error delivering the comment.

<comment><USER3> Is that actually allowed? I remember my old HTML books when I was a kid said you couldn't do that.

</comment></comment><comment><USER4> If typing is the problem, there's the zen coding plugin to alleviate it

<http://code.google.com/p/zen-coding/>

As far as ending tags go, HTML actually allows optional closing tags in some elements (<http://www.w3.org/TR/html401/index/elements.html>) and the proposed idea of using </> would cause confusion:

bla
      </> <- what did I close here?

<comment><USER5> > _[...] cause confusion: [...] ← what did I close here?_

This was covered in TFA, except that JGC apparently thinks that having optional tags is an attempt at DWIM that's more trouble than it's worth:

> _The browser magically says: "Oh, he must have meant to close that
 tag > so I'll do it for him." [...] Given that the tags are meant to be balanced > there's no reason to force the author to figure out which tags they want to > balance and force them to write it down. It adds nothing. _

Personally, though, I think implicit end tags are just fine, as long as they're clearly documented and browsers have a standardized & predictable parsing approach.

<comment><USER4> >> This was covered in TFA

Not exactly... he basically said "let's drop the current spec and use lisp".

The thing I noticed when looking at language design though is that it's really easy to say "language X should look like Y" but overlook something that makes the whole proposal a really bad idea. Case in point: can you spot the problems on his lisp example? (hint: elements vs text nodes, required escape sequences)

<comment><USER5> Well, okay. What I meant was that your criticism implied that he didn't understand/address implicit tags, while he clearly actually did, but just suggested they be dropped.

I also hope his examples were more like a sketch than a careful proposal – otherwise, as you said, there's a lot of ambiguity.

Anyway, there are clear advantages and disadvantages to both models. I'm not personally convinced that either HTML or S-expressions is an especially good document format, at least not as far as a human trying to create a document is concerned, but fortunately these kinds of languages are easy enough to generate that the original source language can pretty much look like whatever someone can imagine.

</comment></comment></comment></comment><comment><USER6> haml is in part an attempt to rectify this situation. no need to worry about closing tags. unfortunately, it comes with significant whitespace which puts many ( including me ) off.

i do prefer to do my html creation in an intermediate language that deals with closing tags and what not for me. be it a template language etc that can be used at deployment time to create properly formatted html from an intermediate language that is less error prone.

<comment><USER7> hm. Being honest, i can't see any other solution for that: you either care about the number of spaces (python-style, haml-style) or care about the parenthesis, or open-closing tags (ruby-style, html-style).

i love haml, and sass, since it's just speeds up development several times, improves readability and eases the whole process.

<comment><USER6> i prefer something that doesnt include sig. whitespace. s-exps are my preference ( even if they are without parenthesis ).

things i really like:

clojure's basic html creation. seaside's basic html creation.

<comment><USER7> well, clojure certainly rocks. it will take awile for it to become mainstream though. hope ruby people will help out with that. actually ruby did bring some fresh air into our world :)

<comment><USER6> based on my using seaside and clojure, mainstream obviously isn't an issue for me.

i haven't done anything beyond toy projects with clojure so far. mostly lurking on the mailing list for quite a while. i assume by 'our world', you meant the clojure world. if yes, can you give some insight into the fresh air that people coming from ruby brought to the clojure community?

<comment><USER7> actually, not. by 'our world' i meant programming (or even web-programming) world. lots of innovations, at least web, were brought by ruby people. afterall, clojure is getting popular among rubyists. maybe, it's more about ruby guys being more interested in new stuff, maybe not. they're developing libraries, hack it, use it, post stuff about it and, let's say, advertise it.

</comment></comment></comment></comment></comment></comment><comment> mike-cardwell I find it useful to have the name in the ending tag. It lets you know which block ends where, easily, when you have a deep structure. Eg:

</comment><comment><USER8> The funny thing is that as an HTML page gets increasingly large and complicated, I frequently see developers add HTML comments demarcating precisely which element was just closed, so that in the future it's easier to insert elements at the right level of nesting. Example:

Would it be a horrible thing if HTML supported an optional id or class attribute in the closing tag?

Of course it would _have_ to match to validate. Probably not realistic in that my guess is this wouldn't be SGML-backwards compatible.

<comment><USER2> An editor with good tag matching should in theory solve this for you. Of course, HTML's complex rules of where a closing tag is required and where it isn't makes this a lot harder than the simple paren matching you'd need for S-expressions.

</comment></comment><comment><USER9> Couple of problems with the suggested syntax:

* You can't write lowercase letters without the possibility of it being mistaken for a tag. If I write (hello) and then a <hello> tag is introduced, I'm screwed.

* Parentheses are common in written English. It would be better to use [] {} or <>.

What you could do is substitute () for [] and use a : to introduce character data:

        [font color="red"
          [center:
            hello, world!
          ]
        ]

But people would be forgetting that all the time. Another option is significant newlines. That is, if a trimmed line doesn't start with a "[", it is interpreted as character data:

        [font color="red"
          [center
            hello, world
          ]
        ]

Combined with the : to introduce character data, this is actually kind of good:

        [font color="red"
          [center
            hello, [em:world]!
            [img src="photo.png"]
          ]
        ]

Compared to

            hello, world!

</comment><comment><USER10> Fair enough, but your use of long-ago deprecated HTML tags to make your point doesn't exactly inspire confidence in your expertise!

</comment><comment><USER11> It would seem possible to write a Lisp library that does exactly what you described; albeit indirectly. The library would interpret Lisp data structures and return well-formed XHTML. Think Haml, only Lisp. If someone were interested in doing this, they should definitely have a look at Haml though. There are some interesting methods for telling the Haml interpreter how you want the content handled. Built-in support for escaping characters, expansion/non-expansion, etc is really nice.

I know very little about Lisp, so this type of thing might already exist.

<comment><USER6> There are already lisp/scheme libraries out there that do that. The smalltalk framework's Seaside and Illiad both contain the same as well.

as a basic example from seaside:

renderContentOn: html

        html heading level: 1; with: 'Hello World!'.

creates

Hello World

More on how Seaside generates html can be found at:

<http://seaside.st/documentation/generating-html>

Here is an example from racket ( aka plt scheme ):

(define (build-request-page label next-url hidden) `(html (head (title "Enter a Number to Add")) (body ([bgcolor "white"]) (form ([action ,next-url] [method "get"]) ,label (input ([type "text"] [name "number"] [value ""])) (input ([type "hidden"] [name "hidden"] [value ,hidden])) (input ([type "submit"] [name "enter"] [value "Enter"]))))))

More ( and the proper formatting of the above ) can be seen at:

[http://docs.racket- lang.org/more/#(part.__.Hello_.World__.Se...](http://docs.racket- lang.org/more/#\(part.__.Hello_.World__.Server\))

<comment><USER12> And there are also libraries in other languages as well. For eg:

* There's Builders in Groovy (<http://groovy.codehaus.org/Builders>)

* Markaby in Ruby (<http://en.wikipedia.org/wiki/Markaby>)

* and Markapl and Template::Declare in Perl (<http://search.cpan.org/perldoc/Markapl> & <http://search.cpan.org/perldoc/Template%3A%3ADeclare>).

Here is the snippet in blogpost using Markapl:

        div('.red') {
            p { "hello world" }
        }

Also see related HN: <http://news.ycombinator.com/item?id=705698>

<comment><USER6> My only problem with markaby is that all the do ... end for blocks sort of defeats the purpose for me. not completely but partially. that said, i often use it.

</comment></comment></comment></comment><comment><USER13> Actually this is the least of worries with HTML. Actually, it's main problem is that it's so widespread, while being far from ideal syntax from marking up content...

<comment><USER14> I guess it's widespread because it's simple and quite forgiving.

</comment></comment><comment><USER14> I have started commenting some of my HTML end tags so I know which div is ending where. Otherwise it drives me crazy even with auto-indentation in emacs.

<comment><USER6> I found that long term, the comments get out of sync with the html and eventually breeds confusion.</comment></comment>


Mercedes-Benz replaces robots with more capable humans - <AUTHOR> http://www.ibtimes.co.uk/mercedes-benz-replaces-robots-more-capable-humans-1546355 <comment><USER2> more cost effective humans.</comment>


Microcredit examined: stimulates enterprise but doesn't help poverty - <AUTHOR> http://microfinance.cgap.org/2012/04/11/latest-impact-research-inching-toward-generalization/

<comment><USER2> This title makes interesting conclusion as it seems contradictory. Stimulating enterprise in a developing region generally means more economic activity including more jobs, which means people are working rather than not working - and I would consider this as a direct impact on poverty in a region.

Beyond CGAP's work, I think one should consider microcredit as one tool in a suite known as "microfinance", which includes savings programs and economic literacy education, among other services. For a global summary check out the Microcredit Summit Campaign's 2012 report here: [http://www.microcreditsummit.org/state_of_the_campaign_repor...](http://www.microcreditsummit.org/state_of_the_campaign_report/)

<comment><USER3> For more reporting about the disadvantages (and sometimes the advantages) of microfinance the IRIN site has plenty.

([http://www.irinnews.org/AdvancedSearchResults.aspx?KW=microf...](http://www.irinnews.org/AdvancedSearchResults.aspx?KW=microfinance))

Micro financing thought to be neutral:

([http://www.irinnews.org/Report/95067/Development- Microfinanc...](http://www.irinnews.org/Report/95067/Development-Microfinance- possibilities-and-limitations))

Some microfinancing is corrupt:

([http://www.irinnews.org/Report/82247/BENIN-Corrupt- microfina...](http://www.irinnews.org/Report/82247/BENIN-Corrupt-microfinance- institutions-profit-from-poorest))

</comment></comment><comment><USER4> There are thousands of ways to implement Microcredit, and some implementations have been in ways that were already proven to not work very well. But to make money.

Yunnus/Grameen had some good ideas (read his book) that are not really about the money they give out to poor people. The money is only a way to get the poor people to come to the meetings regularly and follow certain important principles, like "all my children go to school" or "we eat every day three meals" or "we will try to build a stable home made of bricks/tin roof" etc.

Seems trivial, but those are important steps. Not to mention the fact that many Grameen credits are given to groups that mutually guarantee their credit! If one person fails to pay back, the others have to pay back for this person. People learn by that to work together and to trust each other (building social capital, the very basis of every lasting economic development, read "F.Fukuyama, Trust - Social Virtues and the Creation of Prosperity" for example).

Just handing out little credits will of course not help a lot, but in some situations it may help, so its worthwhile anyway.

A next important step would be to make laws in all countries that banks /have to/ give one free savings accounts to everybody. No credit account of course, but a right to have a bank account would be an important and easy to implement step.

</comment><comment><USER5> This just in: centuries old economic and social inequity NOT immediately solved by well intentioned startups! Hipster nerds decry the idea as a failure for not generating a billion dollar valuation after 2 years.

Seriously, poverty in these regions is the result of so many factors, stimulating enterprise is going to be helpful but it may take a generation or more to see the effect.

<comment><USER6> Perhaps this would be a good point to discuss how to keep the idea "Sexy" enough to have payoff. I agree with you, incidentally, but if you want to have lasting social effect AND it's going to take time, there needs to be something to keep people trying until a visible payoff is available as "proof".</comment></comment>