Full Text Search in the Cloud - <AUTHOR> https://www.blurpr.com/blog/index.php/2010/06/13/full-text-search-in-the-cloud-as-a-service/

<comment><USER2> Hey! I'm one of the websolr guys. Obviously, we're working on this problem, and it's a hard (but fun and rewarding) one for a number of reasons!

Search is fundamentally hard to put into the cloud, because it requires so many IO operations. In addition, delivering really high quality results requires machine learning and linguistics.

We have a few tricks up our sleeves to handle these issues, and I'm excited not only to shed the beta-ish feel, but to roll out some truly exiting features :) There's a "Review my startup" post coming pretty soon.

<comment><USER3> Hey! I'm one of the Loggly guys. Wanna grab a beer and chat about how we're doing it?

</comment></comment><comment><USER4> I am a co-founder in a startup (Fablo, <http://fablo.pl/>) that does exactly that. In order not to get wiped out by Google the day they decide to give that functionality away for free, we decided to specialize on E-commerce search, particularly in inflected languages, which is a much harder task than searching English.

</comment><comment><USER5> I have Solr mostly working on AppEngine.

Obviously (for those of you who know the Solr codebase), there are some pretty extreme hacks to get around the lack of file system access, but nothing that couldn't be cleaned up.

I was a little surprised about the lack of interest in it when I emailed the solr-dev list.

<comment><AUTHOR> The Compass GAE walkthrough ([http://www.kimchy.org/searchable-google- appengine-with-compa...](http://www.kimchy.org/searchable-google-appengine- with-compass/)) was also able to get a rudimentary Lucene indexer up and running. However many people eventually ran into problems with App Engine's 30-second request processing limit. For your Solr instance did you utilize the Task Queue or have to do anything special to work around the 30-second limitation?

<comment><USER5> I'm not doing anything with Task Queue at the moment. I'm using the Lucene implementation from Compass (and I've used it elsewhere too), so I am familiar with it.

From memory, I think Compass had a unique problem with the 30 second limit because it would try and re-sync the non-Lucene data with the Lucene indexes (I can't remember what the trigger was for this).

I had quite a lot of issues with Compass-GAE - my impression was that it wasn't really production ready. However, I did notice that Google is using it for their ThoughSite example app, so maybe it has improved.

</comment></comment></comment><comment><USER6> I feel dumb, but I don't totally understand what is being wanted. Basically a google search with "site:example.com query" but you have full control of the results?

<comment><AUTHOR> While Google/Bing/etc are great for searching public sites (when you can tolerate the latency between when content is posted and when google indexes it), they doesn't work at all for sites which are private/intranetted/password-protected or otherwise inaccessible to web crawlers.

<comment><USER6> Makes sense, thank you.

</comment></comment></comment><comment><USER7> <http://www.websolr.com> ?</comment>


Nuitka: A Python compiler - <AUTHOR> http://nuitka.net/ <comment><USER2> Talk Python has a podcast with an interview of the Nuitka developer [https://talkpython.fm/episodes/show/172/nuitka-a-full- python...](https://talkpython.fm/episodes/show/172/nuitka-a-full-python- compiler)

</comment><comment><USER3> Wow, this is really something! Too early to tell how this will go, but I really hope this thing takes off!

<comment><USER4> It's actually been around for quite a while, just not getting attention.

</comment></comment><comment><USER5> [https://news.ycombinator.com/item?id=15354613](https://news.ycombinator.com/item?id=15354613)

</comment><comment><USER6> The last time I checked, it didn't support Django. Migrations didn't work. Don't know whether it works or not now.

<comment> yjftsjthsd-h It currently _claims_ to have 100% support of most modern versions of Python (and they're working on 3.7). That would _suggest_ that it used to not work and now does, but I haven't tried.</comment></comment>


NPM Dependency Graph - <AUTHOR> https://graphcommons.com/graphs/a7ec343d-2a0c-47bb-9658-bb8315e8a096 <comment><USER2> If it meets the guidelines, this might make a good "Show HN".

Guidelines: [https://news.ycombinator.com/showhn.html](https://news.ycombinator.com/showhn.html)</comment>


Switching From Coffee to Caffeine Pills - <AUTHOR> http://gun.io/blog/switching-from-coffee-to-caffeine-pills/

<comment><USER2> One thing I've noticed about coffee is that the amount of caffeine is super variable. There's one coffee shop nearby that for some reason after one drink feels like I've OD'd on coffee. Others I can have 2-3 coffees. I wish there was a relatively cheap/easy/inexpensive way to measure the caffeine content of a drink in realtime.

With pills, one would assume that they are somewhat more consistent. Or at least I hope so.

<comment><USER3> Absolutely!

I find that Starbucks coffee is quite a good deal more caffeinated that what I brew at home, or the other coffee shops.

I can't imagine an extraction/weighing would be that hard, to be honest. Could be a job for a Rob Cockerham-type project..

</comment></comment><comment><USER3> I wrote this! Thanks for submitting it!</comment>


Challenging Mainstream Thought About Beauty's Big Hand in Evolution - <AUTHOR> https://www.nytimes.com/2017/05/29/science/evolution-of-beauty-richard-prum-darwin-sexual-selection.html <comment><USER2> I think about this when I see wild turkeys in the area during early spring. The males fan their tail feathers and display their bright colors.

From a mate selection standpoint, the healthy ones have a full set of feathers that are brightly colored. Older and less healthy ones are missing feathers, or the colors are dull.

I think what we see in nature is a situation where what began as a selectable trait sometimes carries on evolving, i.e., becoming ever more colorful or pronounced, simply because it was easier to notice and measure, and at the same time, did not become a negative to survivability. If the female is attracted to the intense colors of males, and two perfectly healthy males are standing next to each other, but one is a little more saturated in color, she may select him solely for that reason.

<comment><USER3> There is a range of studies on various birds showing correlation between higher intensity/contrast of male feather colors and higher testosterone levels. For example:

[https://www.sciencedaily.com/releases/2008/06/080602121302.h...](https://www.sciencedaily.com/releases/2008/06/080602121302.htm)

or

[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3187837/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3187837/)

or [http://elitetrack.com/blogs-details-2765/](http://elitetrack.com/blogs- details-2765/)

"Researchers may have discovered how the bright plumage of male birds evolved as a sign of health and vigor to potential mates. Testosterone, which weakens the immune system, increases the circulation of immunity-enhancing pigments called carotenoids, they find. Healthy birds let the pigment collect in the skin to flaunt their vitality.

[/] The bright coloration of some birds is a classic example of an animal advertising its high quality to potential mates. Carotenoids are the pigment in red, orange and yellow skin (and carrots), but they are also powerful antioxidants that boost the immune system. Only healthy male birds can afford to maintain a costly display of color by diverting resources away from the immune system, the theory goes. The male must therefore have good genes, and that's why a flashy male attracts mates.

In the mating game testosterone plays a similar role to carotenoids. The hormone makes male birds strut and croon but weakens their immune systems, and researchers knew that variations in testosterone levels between birds and seasons tend to match up with variations in the brightness of colors. "

</comment></comment><comment><USER4> I like how in one paragraph, Prum is espousing an adaptive basis for homosexuality and in the very next one talks about how maybe not everything is selected on. Maybe he has good reasons for thinking that homosexuality is adaptive that have been covered up with the author's "For a full account, you need to read the book", but given how bogus the overwhelmingly vast majority of evopsych is, I'd kind of doubt it.

<comment><USER5> In fact, true homosexuality (no heterosexual coupling) would lead to lower fitness. Only humans and domesticated sheep have it. Probably because of relaxed evolutionary pressures on both, where fitness began to be less relevant.

<comment><USER3> >Probably because of relaxed evolutionary pressures on both, where fitness began to be less relevant.

probably you don't understand evolution and natural selection.

>true homosexuality (no heterosexual coupling) would lead to lower fitness.

i can speculate the opposite - given that homosexuality seems to be highly correlated (i'm stereotyping here, yet lets suppose that it is statistically true for the sake of argument) with creativity and noncomformal thinking and behavior, we can see how in the today's society where those traits are more and more fetching a premium it may result in higher fitness.

<comment><USER5> You can speculate this, but explain why only humans and domesticated sheep have been observed to practice homosexual behavior with no heterosexual coupling.

[http://www.bbc.com/earth/story/20150206-are-there-any- homose...](http://www.bbc.com/earth/story/20150206-are-there-any-homosexual- animals)

</comment></comment></comment></comment><comment><USER6> One thing my wife learned and told me (she's a biologist so actual science vs my CS background :) ) was actually fairly interesting and is apparently widely considered true among evolutionary biologists:

If you are male of you are likely to carry genes from your father that produce a similar appearance to him. You will /also/ carry genes from your mother that _prefer_ your appearance (your mother choose your father based on appearance). If you are female offspring you will inherit those same genes but won't express the male appearance ones. You will still pass them on to your offspring.

So you end up with a cycle where offspring look like/prefer the appearance of their parents, and will forward variants of those genes on to their own offspring.

This is effectively a feedback loop that will carry on until limited by some other factor - eg if your tail is too long you may end up dying too quickly to mate, if it gets too small you may not be able to fly at all (some of the old pigeon breeds studied by Darwin are hilarious).

This means that the selection for beauty does not necessarily mean that there's an awareness of fitness being proxied by beauty.

Once she had labouriously explained it to me it seemed really obvious.

* note I used male/female etc for ease of typing - there are a few species where the role of being attractive is reversed

</comment><comment><USER5> Enough just-so stories! I have been mostly saying this part for the last several years:

 _But one particular aspect of his argument is his distress at the idea that almost all evolutionary change is assumed to be adaptive, contributing to fitness. In other words, if a fish is blue, it must be blue for a reason. The color must help it escape predators or sneak up on prey, or be otherwise useful in some way. Beauty, therefore, must be adaptive, or a sign of underlying qualities that are adaptive. Pick a behavior or an ornament or a physical trait, and it is useful until proven otherwise.

That's backward, says Dr. Prum. Take beauty. Since animals have aesthetic preferences and make choices, beauty will inevitably appear. "Beauty happens," as he puts it, and it should be taken as nonadaptive until proven otherwise._

<comment><USER7> Optimising for sexual selection is an adaptive trait as far as fitness goes. Why is beauty then non-adaptive?</comment></comment>


List of minimalist frameworks - <AUTHOR> https://github.com/neiesc/ListOfMinimalistFrameworks A list of minimalist frameworks(simple and lightweight). <comment><USER2> I know this issue has been brought up many times before, but to some extent the existence of a framework suggests a lack of composability in the language being discussed. This gets discussed a lot in the context of Clojure, where people new to Clojure often ask, "Where are the frameworks?"

The more meta-programming that a language allows, the more its functions will tend to be composable. The more composable it is, the more its libraries can be tied together without the need for an over-arching framework. The framework is there to provide needed cohesion at exactly those points where the language itself does not provide enough meta reflexion to enable fearless mixing of libraries that have little knowledge of each other.

There is also the historical trend toward lighter frameworks: Rails was lighter than Struts, and more recently we've seen a flood of frameworks that are much lighter than Rails.

The Clojure eco-system has gone furthest down this road. Although at first there was a feeling that there should be a web framework for Clojure (and people made wonderful efforts with Noir) eventually the consensus of the community was that it was sufficient to get by with various libraries, some of which (Ring) have become standards.

We see this with a lot of new Ruby frameworks as well: composability over centralized organization. Javascript is going down this road as well.

Languages that offer less in the way of meta-programming (PHP) have been slower to go down this road.

No matter what language you use, the future direction of the trend seems clear enough: less frameworks, less centralized effort toward organization, more emphasis on composability, better ability to mix libraries for maximum effect.

<comment><USER3> A fantastic example of this (in javascript) is trending right now on hackernews – myth.

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

Look at this implementation: it's just a composition of a bunch of other libraries. no logic at all. This is how it should be: [https://github.com/segmentio/myth/blob/master/index.js#L37-L...](https://github.com/segmentio/myth/blob/master/index.js#L37-L45)

<comment><USER4> Wow. that's brilliant. As we would say on tumblr " This is why we can have nice things".

I'm actually experimenting with `scotty` for haskell now. Though a tad limited (getting sessions to work is a bit whiney) I had a decently working URL- shortener up and running in an hour of composing haskell modules and writing a max of 20 lines of code.

This whole micro-framework thing is getting close to my view of the ideal way of programming. Use as much reusable components at any time. There is always someone who did what you were trying and probably already did it better. I prefer investing time in finding the right micro-frameworks then investing time to learn to program things in new ways (is this a bad thing?). Anyhow, I see a lot of classmates implementing their new login systems for their little websites in pure PHP and i'm just staring at them like 'what the hell'. Especially in things involving security, composable 'micro-modules' are a blessing. I just combine a few libraries and whoop I got an https server that securly talks to a database that securly stores credentials and sessions. I think it's just beautiful.

Okay of course I do implement things myself. that that is more out of curiosity. I'm like 'hey how does this security stuff work? how do I break things?' and I read up about it and prototype a little. but I would _never_ use such code in production just because I know someone already did better.

So yeah. to sum it up. programming microframeworks give us this:

* small, modularized code * where each module on its own is at its best * where the composition of these modules is clear. * and the result is highly maintainable code.

I would even want to take it a step further. Where certain kind of frameworks stick to the same standard. Think Promises/A+ or WAI. Now at any time in the future, I can give my whole codebase a speed boost by just changing a single line. Isn't this great?

<comment><USER5> Not surer I understand the popularity of microframeworks, over fuller frameworks.

Using a large framework like Django should allow you to use "as much reusable components" at any time, plus you have the advantage of knowing that they will play nicely together, and should have some sort of consistency between them. Yes you get a bigger download, but it will be stored on the server, not downloaded each time a user clicks a link. Less dependencies, as more is included out of the box.

<comment><USER6> bigger frameworks like django tend to get in your way for anything that the framework was not intended for. not every web app is a "fetch content from db and display to users"

try doing something workflow heavy on appengine with datastore. The django orm wont work for datastore, so what you are left with out of the framework is regex based routing(ewww) and a bunch of crippled components(meaning depending on an orm you can't use).

django has it's place dont get me wrong, i would use it to quickly squeeze out internal db backed apps all day. maybe even use it as a cms. But i'd rather not do those kinds of projects at all.

<comment><USER5> I believe there is a plugin for working with the App engine. And also Django is modular enough that you only need to use the parts you require. So again, I don't see the advantage on messing with micro-frameworks, and cobbling together multiple libraries, when you have one set of libraries that you know works nicely together.

<comment><USER6> > I believe there is a plugin for working with the App engine.

You believe it, I tried it, and it failed, the non-rel project isn't even under active development anymore. And if appengine had not introduced cloudsql as an option, django would be useless on that platform.(IMO)

> And also Django is modular enough that you only need to use the parts you > require.

As I said before, without the django orm, there's not much useful stuff left in django that will work without it. There's better request routing options than regex based IMO. There's better form libs and validation libs. There are certainly better performing template engines, what is left of django that's a better choice over something else?

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> What is Log4J doing there? It's an incredibly complex framework for doing something incredibly simple - logging. It's the exact opposite of a minimalist framework.

<comment><USER8> Yeah, I still wonder if it is a joke inclusion or not. Log4j is probably larger than all other frameworks on that page, and it just handles logging.

</comment></comment><comment><USER9> Isn't "minimalist framework" a contradiction? It seems like if you were going for minimalism you would not use a framework.

<comment><USER10> I agree. Having just finished a project with Flask, I ended up using no less than 8 million dependencies that I'd never heard of. "BYO everything" frameworks would be more appropriate, but even then, Flask brings with it an entire basement of sub-frameworks that I would argue make it so that you might as well just use a full-fledged framework like Django.

<comment><USER11> That's how it works with micro-frameworks, you pay for what you use. Now, it's not necessarily a problem, last time I checked, there was a decent list of functional Flask components. What do you feel is the advantage of having a huge 'contrib' folder, as long as the extensions are maintained? Because the advantage of _not_ having an ORM bundled per default, and easily switching something like the templating language are pretty clear to me.

<comment><USER12> I have a django project that swapped out the django templates for mako. Mako templates are awesome to use. The problem is it becomes extremely difficult to use packages that have bundled templates of their own. I would think it'd be the same with flask, no?

Making assumptions about the available ORM and templating package allows 3rd party modules to do more of the work for you.

<comment><USER5> I have been tempted to switch the Django ORM for SQL alchemy, but I would loose the Django Amdin interface.

<comment><USER12> ..and every 3rd party module that contains their own models, which would be a very large number.

If you want to use SQL Alchemy, you're better off using a different framework. I'm currently trying to decide if this is the angle I should follow for my next project, which requires fairly sophisticated SQL (comparable to the django ORM anyway).

</comment></comment></comment></comment></comment></comment><comment><USER3> @neiesc please make this a wiki instead of a readme. Edit wiki much more conducive to contribution than fork + PR + wait + hope

<comment><USER13> You can edit a markdown page direct from github.

<comment><USER14> That's the "Fork" step he mentioned. The "Edit" button on GitHub automatically forks the project and dumps you into the Markdown editor. The rest of the steps are still required to get changes merged into a file.

</comment></comment></comment><comment><USER15> Unsurprisingly (I think only a few dozen people know about it), the PHP framework I use isn't there: [http://sifo.me](http://sifo.me) It's a framework created by a friend of mine and it's used in quite a few actual businesses (including my own). I can't say I've looked around much in the PHP framework landscape in the last few years, so can't compare, but I'm really happy with it. Simple, flexible and powerful.

<comment><USER10> First sentence on the homepage: "Sifo is a well-proben [sic] open source framework for PHP professionals."

<comment><USER15> Will pass it along, thanks. Neither of us are native English speakers.

</comment></comment></comment><comment><USER16> For PHP - Silex is really awesome.

You get the minimal app controller/router similar to Express. And you can pick and choose Symfony2 (and other) components to add. It makes putting together an API for your front-end a snap.

For those interested in this approach, I've put together a boilerplate called PHANG that combines Silex and AngularJS: [https://github.com/ErikAugust/phang](https://github.com/ErikAugust/phang)

</comment><comment><USER17> [http://programmingisterrible.com/post/65781074112/devils- dic...](http://programmingisterrible.com/post/65781074112/devils-dictionary- of-programming)

"lightweight — I don't understand the use-cases the alternatives solve."

"minimal — You're going to have to write more code than I did to make it useful."

"simple — It solves my use case."

</comment><comment><USER18> Spark ([http://www.sparkjava.com/](http://www.sparkjava.com/)) is the _java_ sinatra

<comment><USER19> See also Google SiteBricks [http://sitebricks.org/#home](http://sitebricks.org/#home)

</comment></comment><comment><USER20> I hadn't heard of Cuba before. Grape[1] would also be worth listing in the Ruby section. It's an actively maintained microframework for REST APIs.

[1] [https://github.com/intridea/grape](https://github.com/intridea/grape)

<comment><USER21> Found this nice Sinatra micro-clone thanks to the page:

[https://github.com/guilleiguaran/nancy](https://github.com/guilleiguaran/nancy)

<comment><USER22> There's also the Nancy lightweight web framework for .NET [https://github.com/NancyFx/Nancy](https://github.com/NancyFx/Nancy) [http://nancyfx.org/](http://nancyfx.org/)

</comment></comment></comment><comment><USER23> [https://github.com/aemkei/fishbone.js/](https://github.com/aemkei/fishbone.js/) \- A super lightweight (½kb) JavaScript library with automatic method chaining, automatic context binding, event support and simple inheritance. c-{{{-<

</comment><comment><USER24> It appears that the focus of this was web frameworks.. but I think that Java microframeworks should be added here. I created a pull request for that.

<comment><USER25> I have to agree with RyanZAG, log4j seems a strange inclusion in this list.

</comment></comment><comment><USER26> Shameless plug: [https://github.com/akrennmair/metoo- pm](https://github.com/akrennmair/metoo-pm)

</comment><comment><USER27> I really liked Slim. It just wasn't convoluted or giving an improvised feel like Laravel or WordPress and many other PHP frameworks.

<comment><USER28> I use Slim, Idiorm, and PHPUnit to build all my projects :)

</comment></comment><comment><USER29> This list is a lot more extensive for javascript: [http://microjs.com/#](http://microjs.com/#)

</comment><comment><USER30> Ooh yay! My CSS framework Min is the smallest of them all!

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

</comment><comment><USER31> Missing quite a lot of PHP ones. For instance, tinyMVC is great if you want to learn how MVC works with PHP.

<comment><USER28> Hah, I wrote an ActiveRecord plugin or TinyMVC back in the day. Should be in the forums still. Nostalgia!

</comment></comment><comment><USER32> CherryPy doesn't get enough love.

</comment><comment><USER33> Why is no framework for Go in the list? Oh, that's right: They are all minimalistic ;)

</comment><comment><USER34> Quite sparse for Ruby. I'm surprised Innate and Ramaze are not listed, for example.

</comment><comment><USER35> i dont think you can call Pardino a minimalist framework.

<comment><USER21> agree padrino is pretty near to Rails, what's the criteria used to determine if a framework is minimalist or not?

<comment><USER36> From what I can tell, "minimal" == "makes code hipsters' pants tight". YMMV.

</comment></comment></comment><comment><USER37> Number of minimalist frameworks for Java: 1

<comment><USER38> Thats because at least Vert.x, Ratpack and Spark are missing.</comment></comment>


Google+ is the fastest website to ever reach 25 Million visitors - <AUTHOR> http://in.reuters.com/article/2011/08/03/idINIndia-58589020110803

<comment><USER2> "In contrast, it took Facebook about three years to attract 25 million visitors"

What a stupid comparison. Facebook launched from nothing; Google+ launched from the world's largest web company with the world's largest web and mobile audience.

Also, what a horrible article. To quote "according to data released on Tuesday by comScore. ... comScore noted in a presentation. ... according to comScore. ... comScore data show. ... the data show". Brilliant writing.

<comment><USER3> Well - it's not entirely stupid. It certainly doesn't mean that Google+ is more successful in any sense whatsoever (at least - not yet).

But it's an important statistic if you are looking for data about how quickly large companies can take a slice of an established market if they have a decent product. How quickly? - well - compare how long it took a startup like Facebook to do it to Myspace to Google.

It's still useful.

I take it, however, that you see it as stupid because of the implication that by mentioning the comparison, the article contains an implicature of "Google is doing better than facebook". When of course - it's not there semantically at all. What's more, that sort of implicature seems to be cancelled by the article directly stating that the statistic does not imply success.

It's just funny how people run with their own interpretations of a text. (I'm a bit aspie... can you tell?)

<comment><USER2> > compare how long it took a startup like Facebook to do it to Myspace to > Google. It's still useful.

The original comparison still isn't entirely useful in that context. It's as useful as saying a car going 85mph will get to 90mph faster than a car at rest. Google+ came out at 85mph, Facebook started in neutral while parked in a private garage.

A more useful comparison would be how quickly Microsoft took away market share from Sony with the X-Box. Or the Zune vs the iPod. Or Android vs the iPhone... etc.

</comment></comment></comment><comment><USER3> A lot of my friends have had a negative reaction to Google Plus because of the lack of their close friends being on there. So I wrote this:

[https://plus.google.com/117405082753493075236/posts/JG3LWfMf...](https://plus.google.com/117405082753493075236/posts/JG3LWfMfs7p)

</comment><comment><USER4> I had a stretch of about 36 hours without any activity in my stream. A single friend is responsible for about 90% of the activity in my stream. So yeah, "visitors" might be a good word to describe the traffic, because "active users" sure isn't.

<comment><USER5> Maybe for you, but I have an update about every hour or less -- during non- peak times, even! (I am in China; most of my friends are in the US)

</comment></comment><comment><USER6> This stat would mean a lot more to me if it weren't such a sausage party. I'm doing my part to post as much interesting content as I can.

</comment><comment><USER7> and also the fastest in losing them again? I dont see much activity in people's feeds.

<comment><USER8> Are you in their circles? It could be that they aren't sharing publicly.</comment></comment>


Libya Shuts Down Internet - <AUTHOR> http://www.readwriteweb.com/archives/libya_shuts_down_internet.php#more <comment><USER2> More as a pedantic nitpick, and not that it's necessarily relevant, in the sense that it may not undermine the veracity of the claim "Libya shuts down Internet":

Traceroutes (or pings) halting at a certain point does not a dead route necessarily make. Traceroute operates by setting the TTL (Time to Live) field of a packet to 1 and forwarding it along.

In principle, routers that reach a value of 0 when they decrement the TTL drop the packet and send a backward ICMP TTL-exceeded-in-transit notification to the sender, which is how the address of the router is discovered. Then traceroute sends out another datagram, increases the TTL by 1, and so on until the desired endpoint is reached or a maximum TTL value is exceeded (to avoid getting the datagram into routing loops).

In practice, some networks - especially at the edge, outside the core infrastructure of large backbone haulers - block outgoing ICMP TTL-exceeded- in-transit messages, and sometimes all ICMP, including ICMP echo reply, administratively prohibited, and port unreachable messages. These are all diagnostically useful, but can also be used to profile an endpoint or map the interior of a network. I would especially expect a government like Libya's to make a policy of blocking such revealing messages at all border routers associated with national-level Internet egress points.

There is a constant and lively debate in the BGP and inter-domain networking community about the relative benefit of ICMP messages for troubleshooting and normal operations (after all, there was a reason the protocol was created) vs. the perceived security liabilities of having unrestricted two-way ICMP interactions with the rest of the Internet.

So, it's not clear what it means for traceroutes through the Telecom Italia AS to "fail," nor does this necessarily indicate that Libya has gone dark. It would be more convincing if all BGP announcements associated with Libyan blocks were withdrawn, although that would only happen if every one of their blocks was a provider-independent, RIR (regional Internet registry, RIPE in Libya's case)-issued block, not a delegated part of a foreign provider's larger aggregate announcement, so even then, who knows.

For what it's worth, I am unable to reach the same conclusion as the article, at least at this moment. Here is the latest list of allocations to Libya from <http://countries.nerd.dk[1]>:

       sasha@octavia:~$ egrep 'ly$' zz.countries.nerd.dk.rbldnsd
       184.108.40.206/18 :127.0.1.178:ly
       184.108.40.206/14 :127.0.1.178:ly
       126.96.36.199/19 :127.0.1.178:ly
       22.214.171.124/19 :127.0.1.178:ly
       126.96.36.199/23 :127.0.1.178:ly
       22.214.171.124/23 :127.0.1.178:ly
       220.127.116.11/27 :127.0.1.178:ly
       220.127.116.11/27 :127.0.1.178:ly
       126.96.36.199/28 :127.0.1.178:ly
       220.127.116.11/28 :127.0.1.178:ly
       22.214.171.124/29 :127.0.1.178:ly
       22.214.171.124/27 :127.0.1.178:ly
       184.108.40.206/24 :127.0.1.178:ly
       22.214.171.124/24 :127.0.1.178:ly
       126.96.36.199/24 :127.0.1.178:ly
       22.214.171.124/24 :127.0.1.178:ly
       220.127.116.11/28 :127.0.1.178:ly
       188.8.131.52/29 :127.0.1.178:ly
       18.104.22.168/29 :127.0.1.178:ly
       126.96.36.199/27 :127.0.1.178:ly
       126.96.36.199/24 :127.0.1.178:ly
       184.108.40.206/24 :127.0.1.178:ly
       126.96.36.199/25 :127.0.1.178:ly
       220.127.116.11/27 :127.0.1.178:ly
       126.96.36.199/28 :127.0.1.178:ly
       188.8.131.52/28 :127.0.1.178:ly
       220.127.116.11/27 :127.0.1.178:ly
       184.108.40.206/27 :127.0.1.178:ly
       18.104.22.168/28 :127.0.1.178:ly
       184.108.40.206/30 :127.0.1.178:ly
       22.214.171.124/23 :127.0.1.178:ly
       184.108.40.206/27 :127.0.1.178:ly
       184.108.40.206/29 :127.0.1.178:ly
       22.214.171.124/29 :127.0.1.178:ly
       22.214.171.124/29 :127.0.1.178:ly
       188.8.131.52/27 :127.0.1.178:ly
       126.96.36.199/30 :127.0.1.178:ly
       18.104.22.168/30 :127.0.1.178:ly
       184.108.40.206/29 :127.0.1.178:ly
       220.127.116.11/29 :127.0.1.178:ly
       188.8.131.52/29 :127.0.1.178:ly
       220.127.116.11/29 :127.0.1.178:ly
       126.96.36.199/29 :127.0.1.178:ly
       22.214.171.124/29 :127.0.1.178:ly
       220.127.116.11/29 :127.0.1.178:ly
       220.127.116.11/29 :127.0.1.178:ly
       126.96.36.199/29 :127.0.1.178:ly
       22.214.171.124/29 :127.0.1.178:ly
       188.8.131.52/29 :127.0.1.178:ly
       22.214.171.124/29 :127.0.1.178:ly

If you go find your nearest BGP looking glass (such as: 'telnet route- server.gblx.net' as I prefer the Cisco interface, you can find others at www.bgp4.as/looking-glasses) and do, for example:

       show ip bgp 220.127.116.11/18

... you will find the announcements for all of the above alive and well.

P.S. Why does everyone who says "if you have a .ly domain, you are supporting the Gaddafi regime!" assume that the .ly TLD is managed directly by Libya? [2] Many smaller, less Internet-involved (if not wholly Internet-unconnected) countries outsource management and use of their TLD to foreign companies in exchange for licensing fees.

EDIT: It does appear that '.ly' is managed from inside Libya now, but if so, that's a relatively recent development. There was a UK company that managed the 'ly' zone for quite some time.

Now the primary nameserver seems to be dns1.lttnet.net, associated with Libyan Telecom and Technology, and whose IP is 220.127.116.11 and indeed part of one of the Libyan allocations above (220.127.116.11/19).

If it's stability you're concerned about, then look who else is involved as a backup other than lttnet.net:

       sasha@octavia:~$ host -t SOA ly
       ly has SOA record dns.lttnet.net. khaleds.lttnet.net. 201102220 3600 900 2419200 600
       sasha@octavia:~$ host -t NS ly
       ly name server dns1.lttnet.net.
       ly name server ns-ly.ripe.net.
       ly name server dns.lttnet.net.
       ly name server phloem.uoregon.edu.
       ly name server auth02.ns.uu.net.

Don't jump to conclusions.

\---

[1] Most of these are /27s and smaller that are part of larger aggregates. I can't quite put my finger on why such small subnets are listed, given that the smallest announcement allowed in the global BGP table is a class C (/24). I would guess this list was compiled from the more granular delegation data found in WHOIS records, not a full BGP view.

[2] Also, you only started caring about this now?

<comment><USER3> "P.S. Why does everyone who says "if you have a .ly domain, you are supporting the Gaddafi regime!" assume that the .ly TLD is managed directly by Libya? [2] Many smaller, less Internet-involved (if not wholly Internet-unconnected) countries outsource management and use of their TLD to foreign companies in exchange for licensing fees."

If this is the case, and someone is paying for a .ly domain, then their payments go to Libya in the form of licensing fees, thus supporting the regime.

<comment><USER2> In a broad sense, perhaps, but this implies a 1:1 correlation about the licensing arrangement that remains to be established.

More importantly, Mr. Muammar has been in power since the 1969 coup. _Now_ we are supposed to start caring about his trafficking in adverb suffixes?

<comment><USER3> I can't see that anything specific about the correlation is implied.

And why not care now? Which is worse - to care too late, or to not care at all?

</comment></comment></comment></comment><comment><USER4> If you're using a .ly domain for your startup, this should give you pause. Not because of potential downtime, but because by buying a .ly domain, you are directly financing this oppressive regime.

<comment><USER5> I would say buying their oil has more of an influence, rather than owning a .ly domain. The earning for the domains are probably insignificant compared to the oil.

<comment><USER4> True, but it's a lot easier for the average hacker to stop buying their domains than their oil.

<comment><USER6> Use less oil? I don't know how much oil comes from Libya, but you might be able to deny them more money by using less oil than not using a .ly domain (which is only a couple of dollars a year).

<comment><USER7> The USA buys about 20% of its oil from Canada, buy more from us.

</comment></comment></comment></comment></comment><comment><USER8> For those who are interested, [http://www.guardian.co.uk/world/2011/feb/20/unrest- morocco-i...](http://www.guardian.co.uk/world/2011/feb/20/unrest-morocco-iran- algeria-yemen-china) says that protests are also happening in Morocco, Iran, Algeria, Yemen and China.

If this continues to spread it could end up being the biggest change in geopolitics since the fall of the Iron Curtain.

<comment><USER9> One of the biggest commonalities between these countries is a very large bulge at the young end of their population statistics. These are countries with a large population of young people. That fits pretty well - a young person with no job and no prospects is going to have the energy and stamina to sit in protest.

My question is : how did these countries end up with so many young people from a (relatively) small older population? Did everyone have 10 children? Did all the old people die (or leave)?

I'm genuinely curious about this one.

<comment><USER10> Maybe comes from the fact that child mortality has reduced dramatically.

But the habit in this countries of having more than 5 children hasn't changed yet? Probably it takes a generation for families to adapt to the fact that you don't longe need to have several children to make sure that some of them survive to adulthood.

Take a look at this TED presentation for some amazing facts. [http://www.ted.com/talks/hans_rosling_shows_the_best_stats_y...](http://www.ted.com/talks/hans_rosling_shows_the_best_stats_you_ve_ever_seen.html)

</comment></comment></comment><comment><USER11> When was this shutdown? my twitter stream has news out of Tripoli 15 seconds ago.

[Edit:

There IS internet, but he is cutting power of sporadically.

Reports of his son Saif being shot, and Gaddafis fleeing to Venezuela.

Several Libyan ambassadors already resigned.

Various military units defected, and sided with the public against the hired mercenaries.

<comment><USER12> It seems that some (hackers?) opened dial-up servers for them in foreign countries. Some pages are giving these numbers and the login to connect.

<comment><USER11> Not any hackers, the Dutch ISP xs4all is givin away free dialup, others too (I even tweeted one such yesterday)

But, no, a good chunk of Tripoli is online. Benghazi is devastated but victorious.

FWIW, Gaddafi is on his way out :-) Few more days (maybe hours!)

<comment><USER13> Basically, if you've reached the point of cutting of internet, you've reached the point where you're going to be killing your own populace to hold on.

This thought puts the proposed US Internet Shutoff switch in a new light for me.

<comment><USER14> > This thought puts the proposed US Internet Shutoff switch in a new light for > me.

I'm glad, this is _exactly_ the light I saw it in in the beginning. A 'shutoff' for any form of communication is always a form of supreme oppression.

Being able to silence peoples objections just means they're going to stop shouting and tweeting, and start bashing the message into your skull until you get the point that they don't like you.

</comment></comment></comment></comment></comment><comment><USER15> The uprising in egypt was relatively peaceful. The media spotlight was on and Mubarak may have restrained from using force to save his own skin. Comparing the two because Egypt also shut down the internet is natural, but Mubarak is not Qaddafi. Even if the internet shut down is ineffective at quashing dissent, it seems unlikely that Libya's path will be at all similar to Egypt.

<comment><USER16> Unfortunately the protesters will pay the price. I'm not sure there is anything the rest of the world can do to help, or at least the US, because foreign military force delegitimizes any home grown revolution. When the group in power are willing to use deadly force the protesters won't be able to win based on numbers only. If Egypt's military had crushed the protesters I doubt it would have turned out the same way.

<comment><USER17> While you may have a point. There was this one time when a foreign military helped a homegrown revolution and it seemed to work out alright....

[http://en.wikipedia.org/wiki/France_in_the_American_Revoluti...](http://en.wikipedia.org/wiki/France_in_the_American_Revolutionary_War)

<comment><USER18> One key point: we were _asking_ the French to help.

<comment><USER17> [http://webcache.googleusercontent.com/search?q=cache:m51jMMm...](http://webcache.googleusercontent.com/search?q=cache:m51jMMmSOm0J:www.cnn.com/2011/WORLD/africa/02/20/libya.protests/index.html%3Feref%3Drss_latest%26utm_source%3Dfeedburner%26utm_medium%3Dfeed%26utm_campaign%3DFeed%253A%2Brss%252Fcnn_latest%2B\(RSS%253A%2BMost%2BRecent\)+obama+protests+site:cnn.com&cd=12&hl=en&ct=clnk&gl=us&source=www.google.com)

I had to use a Google cache article because when I click the original CNN link it goes to a new updated article.

The quote:

"We have no freedom here," she said. "I speak to all the world, to America, to Mr. Obama: Please help us. We (did) nothing. We want to live a good life."

Not that I support an interventionist policy, but this was shared to refute your point.

<comment><USER18> I'm not fully cognizant of the situation. I wasn't saying that the Libyans aren't asking, I was just pointing out a key element that made the French intervention a fruitful one.

However, there are varying degrees of asking for help. The American revolutionaries were sending formal representatives to France to plead their case. As far as I know, there is one person pleading for help being quoted by a reporter. That's a bit different.

</comment></comment></comment></comment></comment></comment><comment><USER19> One problem I see with this strategy is that it signifies a recognition of the resistance. If I were Gaddhafi, I'd be doing everything to downplay the significance of the protests, make it seem like a fringe element that won't amount to anything. When you shut down the internets, you're telling people "This is for real. It's going down right now, time to choose a side. You're closer than you think."

<comment><USER9> In the fullness of time, it will probably be traced back as one of Mubarak's mistakes, as well. Because it propelled the story from the background to the foreground - 'Egypt shuts off internet' is a pretty major headline. It also let the protestors know that they were hurting the regime.

But then I wouldn't expect a north-african dictator really understanding the consequences. They are much more likely to see it in a pure military sense - the enemy are communicating using the internet. Let's close the internet.

</comment></comment><comment><USER20> First they laugh at you...

Then they ignore you...

Then they shut down your internet...

Then you win?

(I hope...)

<comment><USER13> _Then they shut down your internet...

Then you win?_

At best, it's an admission of defeat.

At worst, it's an admission that you're repressive and you don't care who knows it.

<comment><USER9> I think with Gaddafi he never really bothered to hide behind a fig leaf of democracy or even legitimacy with other governments. The Libyan government was always a lot more totalitarian than the Egyptian, and didn't really pretend.

I have a friend who has worked in Libya and has nothing nice to say about it. He told me that the airport is still littered with the wrecks of planes from Reagans' bombing in the 1980's. Whether they are still there as a reminder of the 'imperial west' or because the Libyans are too lazy to clean them up is not known. Having seen the amount of litter in pictures of Libya, it's harder still to say for sure.

On the flip-side I really hope Libya becomes an open-access free and secular state in my lifetime. There is some really cool architectural/historical things in Libya that is effectively off-limits to anyone but the most intrepid and determined traveller. Just imagine the ability to take a trip through the mediterranean middle east without having constant border issues, government minders, etc etc. I suppose it's a somewhat selfish view, but I bet a few of the locals wouldn't mind a more organised tourist trade.

</comment></comment></comment><comment><USER21> Google suggests that it's a periodic flatline rather than a complete blackout. Maybe a sort of internet curfew outside of business hours.

<http://www.google.com/transparencyreport/traffic/>

<comment><USER22> That's a neat proxy of Libyan internet connectivity.

Unencrypted Google searches went to near zero for several hours twice recently. The rest of the time they've been getting through, but a bit less than usual. The graph for Gmail is similar.

[http://www.google.com/transparencyreport/traffic/?r=LY&l...](http://www.google.com/transparencyreport/traffic/?r=LY&l=WEBSEARCH&csd=1297523945536&ced=1298128745536)

YouTube is a different story. It looks like YouTube in Libya got blocked about three days ago, yet there's still a little bit of YouTube traffic getting through.

[http://www.google.com/transparencyreport/traffic/?r=LY&l...](http://www.google.com/transparencyreport/traffic/?r=LY&l=YOUTUBE&csd=1297523945536&ced=1298128745536)

</comment></comment><comment><USER23> So sad. Many people dying over there. I wish all citizens over there all the best.

<comment><USER24> I've heard that part of the army is now supporting the protesters, which is a very good sign.

<comment><USER23> Absolutely a good sign. Hope it puts things in their favor. There have already been too many deaths.

</comment></comment></comment><comment><USER25> Related: Uganda's president just won elections extending his 25 years in power.

<http://www.bbc.co.uk/news/world-africa-12516562>

Unbelievable how much tyranny, fraud and corruption goes unpunished around the world.

</comment><comment><USER26> A really interesting piece by the BBC on the issues in the region..

<http://www.bbc.co.uk/news/world-12482313>

</comment><comment><USER27> Can anyone comment, not on the social harm caused by using an .ly domain, but rather the risk of failure of the DNS system to continue to honor your records.

I would presume that Libya has outsourced the DNS root servers and administration outside their country. Does anyone know who administers .ly from a practical standpoint? Is there a risk of them becoming unavailable if the regime falls (or as a tactic used against their own citizens)?

</comment><comment><USER28> This article is from February 18. All routes came back up about 7 hours later. Though since then there have been reports of internal outages, dns blocks, throttling, etc..

</comment><comment><USER29> Gaddafi's son, Saif, live stream: <http://english.aljazeera.net/watch_now/>

<comment><USER15> On mac, I've had persistent problems with the live stream directly on the AJ site, but youtube also carries it:

<http://www.youtube.com/aljazeeraenglish>

(2nd video box on the page)

</comment></comment><comment><USER30> For reference, as of now, here are the recent Libya stories:

<http://news.ycombinator.com/item?id=2237053> : Libya blocks Facebook, ...

<http://news.ycombinator.com/item?id=2237424> <\- Dead

<http://news.ycombinator.com/item?id=2237787> : What happens to bit.ly?

<http://news.ycombinator.com/item?id=2238267> <\- Dead

<http://news.ycombinator.com/item?id=2238272> : Libya disconnect

<http://news.ycombinator.com/item?id=2238274> : Death toll mounts

<http://news.ycombinator.com/item?id=2238407> : Libya shuts down internet

<http://news.ycombinator.com/item?id=2238664> : What happens to bit.ly?

<http://news.ycombinator.com/item?id=2238768> : Libya blocking internet access

<http://news.ycombinator.com/item?id=2239405> : No, it won't kill bit.ly

<http://news.ycombinator.com/item?id=2240056> : Internet restored

<http://news.ycombinator.com/item?id=2242320> <\- Dead

</comment><comment><USER31> When I despair, I remember that all through history the way of truth and love has always won. There have been tyrants and murderers and for a time they seem invincible but in the end, they always fall - think of it, ALWAYS. --Gandhi

[Even though individual tyrants usually seem unable to conceive that this will apply to _them_ ]

</comment><comment> pc-pro-schools If you own a .ly TLD I'd recommend slapping a 301 redirect on it and grabbing yourself a .com or something not attached to such a unstable country.</comment>


Show HN: Just launched a React.js Showcase - <AUTHOR> https://madewithreactjs.com/ <comment><AUTHOR> Heya!

I just launched MadeWithReactJs.com - a collection of projects made with React.js – Websites, UI Components, Frameworks, Apps and more!

The Site lives from all the awesome Projects that are coming out of the React.js Community. - If you have a Website or Project which is made using React.js (in any form) [https://madewithreactjs.com/submit](https://madewithreactjs.com/submit) \- please send it to me!

..

I also have other sibling pages: [https://madewithvuejs.com](https://madewithvuejs.com) and [https://madewithlaravel.com](https://madewithlaravel.com)

(and [https://hundezeugs.at](https://hundezeugs.at) \- for all the Austrian Dog People haha )

<comment><USER2> Hey there,

Is there a similar template for this purpose?</comment></comment>


Adobe deal puts Flash into many of TV-top chips - <AUTHOR> http://news.bbc.co.uk/2/hi/technology/8008070.stm

<comment><USER2> Fun fact from a guy I know who's seen the code of Flash: it's roughly 15% #ifdefs. Not code _within_ #ifdefs, but actual lines of #ifdef and #endif and so forth.

I feel sorry for the people who have to do the porting.

<comment><USER3> Is it machine generated? What do the #ifdefs depend on in general? Perhaps platform?

</comment></comment><comment><USER4> _sarcasm begin_

They obviously haven't heard about HTML 5's canvas element!</comment>


Not 1 person after all this work? Is a sick joke being played with me? - <AUTHOR>

I don't know if this is a rant or whatever, but it's my story about my iPhone app.
I started out around in March, 2014, and pivoted a few times, and finally started working on this idea of anonymously sharing pictures in August, 2014, and have been working it insanely hard, long nights, my weekends, and giving far more than 100% to complete my app.
Now that I've completed my app, I started contacting people I knew. Result? No reply, no signups, no feedback.
Read through how to pitch Mashable/TechCrunch, how to write that pitch email, what they need, a story, screenshots, etc. etc. My bookmarks are all filled with this stuff now, advices from people who have gotten covered, and I do thank you for those tips. On top of them, contacted many many review sites. What happens? Absolutely nothing.
I'm not angry, maybe a little sad, but more than anything else, I'm extremely surprised.. especially when I see some apps getting covered to death. Sure, TC, and Mash have very high caliber, but no one else?
I understand, esp. now that iPhone 6 and 6+ and the new iOS are out, that the amount of apps getting submitted have increased a lot, but not a single person has interest in my app? The very few who do, just look at the screenshot or whatever - I don't know what they look at - and just say, "not interested". Okay? So, just by looking at the box of pizza, you're going to judge that the pizza tastes bad? Jesus Christ man...
Anyways, here's the app store link: https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=905151810&mt=8
I would really appreciate if the community could check out, and provide feedback. I've put a lot of hours into this, and tried to make it awesome. I don't like boring things myself, and I've got 186 broadcasts, so obvio. it ain't boring. :D
Thanks. Cheers! <comment><USER2> When I open the app the only description presented is this line:

> Note: Works only with iPhone and iPad. Does not work with iPod Touch. Not > sure why App Store included that. I'm looking into this, thanks for > understanding.

So literally the most important single line of the description, the only line which people can see without hitting the "...more" button is there just to avoid technical support enquiries!

That's just utter foolish. Move that junk down further into the description! The first line should be a single line summary of what the app is.

Also sharing your life "anonymously" in a social network, with photographs of all things, is a contradiction. It is pretty mind bending to imagine how those things come together in a usable way.

Even after reading the full description I still don't really "get it." What does this offer me that e.g. Snapchat or Facebook won't? What is the USP?

<comment><USER3> Riding on this comment as felt it is great advice. To add to it, this is the classic case of a product with some potential (haven't used it so going by concept only) that is communicated really badly. For me to understand to product I had to think about how I would use it. I shouldn't have to. I've found in similar situations that a technical person will focus on the product in the belief that largely 'if I build a good product the market will come to me'. As someone that has marketed a couple popular apps (I'm marketing end of things by trade) I can say, I would prefer great distribution and marketing on an average app than the reverse.

Broad stokes: consider a rebrand. Re-think it yourself or even better bring in a good marketers to figure the best user case from a USERS POV. Find a usercase that can make you standout and bring a real benefit to someones world. Brand and describe around this scenario. Only then go to work on your distribution strategy. Also be willing to buy some initial distribution. Popular news sites and similar are blasted by new apps. While try to get on their radar, don't rely on this.

</comment></comment><comment><USER4> Startup news sites are not a business plan and relying on them is a mistake. Similarly, tons of material about startups is just advertising, the majority of it should be ignored.

Building something people want is really hard, can take a lot of trying and failing, and is the reason why almost every startup fails. You have to keep trying until you figure it out. Think about who your ideal customer is and how/where you can find them. Then do that until you have many of them.

<comment><AUTHOR> Thanks for the advice. :)

<comment><USER4> You might like this as well, I came across it the other week it details how one startup got their initial traffic. This stuff really is hard so don't feel bad if your ideas fail, I'm pretty happy if I have one non-shit idea a month that ends up helping at my startup as most simply do nothing!

[http://www.entrepreneur.com/article/237922](http://www.entrepreneur.com/article/237922)

</comment></comment></comment><comment><USER5> During all the months of work on this, at what point did someone tell you, "I've been looking for something exactly like this."

At the risk of straining the analogy, the pizza might be tasty, and the box might be attractive and functional, but if a pizza delivery guy showed up at your door unexpected and unannounced, would you just pay him, or would you be more likely to say, "I didn't order this."

</comment><comment><USER6> So here's what "they" don't tell you: building a successful startup -- even by moderate definitions of "successful," such as, "reaching a point that lets you only work 4 hours/week" \-- is what economists call a "superstar economy." Kinda like being a musician or a basketball player: 99.99% of the starving artists or guys in the neighborhood playing hoops make $0.00 from it, but one- in-a-million make a killing. There's a small "middle class" in the ecosystem (people who don't strike the goldmind but do just fine) but, for all practical purposes, it's really, really tiny, too.

So, therefore: building your own app and putting it into the app store is helluva lot like trying to make your garage band a big hit. You must remember these three things to start your own band (or your own startup):

1.) Expect your band will never make a dollar. (Similarly, expect the startup to never make a dollar.)

2.) You must love creating music and feel such a deep calling to create that music, that you will obsessively create that music with the band, even remember #1, that your band will never make a dollar. (Yup, you must be so obsessed with your company's mission and vision that you'll do it even expecting it to fail.)

3.) You must be emotionally ready to play the lottery. If you're not emotionally ready for the lottery, stay home.

4.) Similarly, you must instinctively feel like you are blessed by Fortuna, because luck needs to be on your side not just tonight but for the whole journey.

5.) It's a f---load of hardwork to get people to notice what you do, and to get them excited about it. Are you prepared for that overwhelming, intense, nonstop amount of hardwork?

6.) You know what's even harder about the hard work? There's no one to tell you what to do. You don't even know if what you're doing is the right thing or not. There is a way to change what you're doing and create something that will get people peeing in their pants with excitement. But you need to figure it out. No one will tell you, ever. In other words, more painful then 24 hours/day of work is 24 hours/day of work and not even knowing if you're doing the right work....

7.) Unless you happen to have a very strong mentor or model, it makes the incredible amount of hard work still even harder. Jimmy Page was the highest paid studio musician in England before he went to start his own band. He had a series of great mentors to teach him the path. A good mentor will teach you what to listen to and what to ignore. You probably want to ignore this rambling post here.

Okay, 3 minute break over, back to work.... :)

morgan

</comment><comment><USER7> I think it is unclear what "... sharing your life anonymously" means. For example, if I told my friend that I'm using this app, and he follows my broadcasts, and he pretty much knows that I'm the only one using this app, won't he be able to deduce that it is me that is broadcasting? (You mention a "broadcast map" as well; well, if I live in Timbuktu, and I'm the only person there, won't my friend know it's me?) Also, in the text accompanying the first screenshot, you say, "... sharing it with the entire world." Saying that doesn't match up with the idea of having "followers." Now, I think I know what you mean, but the two groups ("followers" and "the entire world") don't match, and create a dissonance in my mind that gets me close to just rejecting the whole thing outright.

I'm sure you gained a lot of valuable experience programming-wise. To a programmer, that's something tangible. Not only that, but you persevered and got the app into the App Store.

</comment><comment><USER8> Said gently, but this app isn't interesting. That might be why. This is the hardest thing about software development, building something people want. You have built something people don't want.

<comment><USER9> Exactly. It's a good first app, but essentially it's an image forum, not something I need a dedicated app for, especially as it doesn't have an existing active community.

Kandarp, next time dream bigger, that's my only advice to you.

</comment></comment><comment><USER10> I don't get it. I don't know what your app does. The app may be interesting and compelling. But there's nothing on the iTunes page that explains what the app does. Why is Katy Perry on the app page? What does she have to do with it? How does a well-known celebrity jive with an anonymous app? Did you get permission to use her likeness? I'm so confused.

 _Okay? So, just by looking at the box of pizza, you 're going to judge that the pizza tastes bad? Jesus Christ man..._

Actually, yes, people judge pizza all the time based on factors unrelated to the quality of the product. Why do you think Papa John's, Dominoes, Pizza Hut, etc. spend so much money on advertising?

To extend the analogy, I don't even know what's in the box. Your app could be pizza. Or it could be tuna fish. I have no idea what I'm getting.

</comment><comment><USER11> I don't have any iOS devices, so I can't download it, but apparently at least one person has downloaded it, as their is a review on the apple store that says the app crashed and never worked on his iOS6 iPhone 4.

As far as getting users, why are you coming to HN looking for users? You clearly read HN, you read about how to do PR and pitch, did you miss everything on how to find product market fit? Did you miss everything on research before building, or building MVP and getting friends to try your app?

I don't think you app is a bad idea, but it isn't something I'm going to jump on until I know other people are using it. If nobody is using it, their are no anon 'broadcasts' to be shared. You have a classic chicken-egg problem. Nobody is using your app, so their (likely) isn't any content their which is making people interested in viewing that content.

This is part of the problem with anon apps, where people can't try before installing. There is no point in me telling a friend, hey download this app because I'm in it, because... if I'm anonymous, they aren't going to see who I am anyway. What is your pitch to your friends as to why they should use this app? What do they say. Get 5 people you know to install and use it, then adjust based on feedback.

<comment><AUTHOR> Yeah, and that's another thing when the app is new. It's kind of a human nature to quickly write a bad review, than a good one. I'm in touch with the App Store on the removal of that review, because it doesn't accurately represent the app's functionality.

Back to the main point... I do have 186 broadcasts, and each of these broadcast stories have 1 or more pics. I love taking pics, and sharing with the world, and I have uploaded quite a lot of content. I do agree with you that the apps like mine can have chicken-egg issue, but when there are in total 300+ pics to get started, you'd think at least someone would be interested.

The app has anonymous profiles, so it is an anonymous network, where you can follow other users, like their broadcasts, comment, etc.

The __purpose __of this app is, you take pics (random, nature, selfie, whatever you like) and anonymously share with the world by creating a broadcast story (that can have 1 or more pics). Kind of like Tiiny by Kevin Rose, but in a network.

Yeah, I know what you're saying - if you're anon., how will you tell your friend "Hey, I'm on this by this name, let's share pics."

Thanks for the feedback.

<comment><USER12> i'd say the most damning thing i see here is that you are indeed getting feedback, but your answer is basically "sorry, you people are wrong."

your response to a bad review is to try to get apple to remove it? good luck with that. even if you could, which is doubtful, your response should be to figure out that guy's crash and fix it.

also, why on earth would you exclude the ipod touch? it has a camera, and therefore should be fully equipped to run your app. and i bet you are now going to state a reason for that which as lame as all your other "reasons."

i did much the same thing you did: i wrote an iphone app by myself, and did what i could to promote it. it was a modest hit, and ended up making me about 15 grand. but that was way back at the dawn of the app store, when the competition was less. my not terribly flashy app wouldn't stand a chance today.

<comment><AUTHOR> lol, where did I say you people are wrong. I've, in fact, said "thank you" for the feedback.

I didn't mean it that way, anyways, sorry if you think that way.

If the app's got problem, sure, I'll fix it. But I've tested it on multiple devices, and there are definitely a few people who have used it, and it has worked. I didn't test on ipod touch, so I can't say for sure if it'd work on it. I had built it mainly for iPhone, but the way it works is if you select device family 1, ipod touch gets included. And this person's review says something like ipod user.

So, the app could've crashed, because it was ran on a device I didn't build for? idk. I'll be taking a closer look next time.

Thanks anyways.

</comment></comment></comment></comment><comment><USER13> You need to relax on the analogy. Consider - why does someone look at a box of pizza and decide that it tastes bad? Why does someone looking to buy a watch walk past a jewelry store? From the app preview alone, I can tell you that there is nothing really standing out here. Why do I want to share anonymous pictures of Katy Perry? If I want to share anonymous pictures, I already know of Snapchat. If I want to share anonymous text with a random group of people, I'll use Yik Yak or Secrets. If I want to share photos, I can use Facebook or Flickr. I can make an 'anonymous' account on Flickr to share photos. Why do I want this app on my phone?

You need to work on the pitch a bit more. Just throwing together the words "anonymous" and "pictures" doesn't do it for me. Also, try not to take it so hard. When you said "Jesus Christ man...", I got the impression that you were taking this pretty rough. It's nothing personal, but in a world with so many apps already, why should I add your app to my home screen? Why should I spend another 10 minutes a day with this app?

<comment><AUTHOR> Hmm. The people I've talked to so far think this app has a place, it's not "nothing" definitely. But, I think I do need to work on the pitch more. Clarify it to the point that people can associate them or their lives with the app, and realize why they need to use it.

About taking it hard. Believe me, it has been insane the last few weeks. After working so hard, launching this, writing emails and contacting so many people and whatnot, when absolutely nothing happens, it feels bad.. True, no one is obliged to use it, or even look at it, but ya, it felt bad. Nothing much. :) It might look like it, but I didn't take it that bad. I've gone through this type of stuff in this field before, and the thing is - take the rejection, learn from it, move on, and build something even better next time.

I posted this is another reply, but the main purpose of this app is to share your life anonymously. Take a bunch of pics to create a broadcast story, give it a caption, and broadcast. Now anyone with the app can see it. It's like how Secret and Whisper are, but with Broadcast, you are part of an anonymous network. Another huge difference between those apps and Broadcast is that you can take more than a single pic. Why's this of importance? Because many times when you need to share something, you can just snap-snap-snap (or choose) multiple pics easily, and share. This creates a broadcast story, and aligns more with expressing yourself.

Thanks for the feedback. :)

<comment><USER13> Oh no, don't get me wrong. I didn't mean that you app is "nothing" \- I only mean that there isn't anything standing out here. I think something that might help the pitch is to make it more personal. Show how I can quickly share photos from the beach with my family. Don't forget the App Store now supports preview videos as well, that might help.

</comment></comment></comment><comment><USER14> Boring icon, stock-photo screenshots, bad description, bad review => nobody will download your app like this.

First, you need to talk to people and have them try out your app. Email your friends. Get them to use the app, at least try it. Get feedback. It's not marketing you're missing, it's product. Good luck!

</comment><comment><USER15> Not every app 'clicks' instantly with users. Sending them directly to itunes might not be the best way to convert them. Have you tried sending folks to a landing page first (so can prime them on the idea, show them a cool video, etc)?

The other advantage of this method is that once users are on _your_ site (instead of the itunes store), you can get better analytics and behavior tracking (to understand when/why/where users are exiting the conversion funnel). Additionally, once your landing page is setup you can run more traditional marketing campaigns (adwords etc) to that site, and try all kinds of different ways to pitch the product to the potential users.

Don't give up man, marketing isn't easy.

<comment><AUTHOR> I do have a landing page.

Thanks for the feedback.

</comment></comment><comment><USER16> Golden advice: What a user says, is very VERY different to what a user does.

Good, USEFUL, apps do not require a pitch by the founder to get someone to sign up. The product needs to sell itself.

Just from looking at your app on iTunes, the biggest flag for me is: Why would I want to use THIS when I have Instagram? What problem does THIS app solve that others don't (if any)?

Someone else mentioned it here, but I've gotta ask: At what point did you hear someone say that they really needed something like this in their lives vs something like this 'has a place'?

</comment><comment><USER17> Hey KANDARP,

I guess, It must have been an experience to get through all that. You may have gone wrong this time and who knows.....you just have to be right just one time.

Ship early, fail early.

One more: You need a copywriter.

Best of luck.

<comment><AUTHOR> Thanks.

</comment></comment><comment><USER18> Okay, I am just going to say what's in my mind. It may sound harsh, but it's what I think of it.

Maybe this pizza tastes good, maybe this pizza tastes bad. But what if I don't really want pizza at all?

I don't see one reason for using this app. Even if I wanted to build up an anonymous online profile which people could follow, I'd probably use one of the other networks out there which have a greater reach. You are really not offering anything different which makes me want to use your app.

</comment><comment><USER19> I don't have an iphone and so can't install it, but here is a question: if it's anonymous posting and in a social network, maybe there is a lack of incentive since I don't know who will be following me and I can't be identified. but this is just a guess. what is the closest anonymous social network you're trying to emulate?

btw, when you had your initial idea did you run it by people who resembled your target audience or did you go straight into production mode?

btw, you now have comment that says "never ran just crashed. deleting"

</comment><comment><USER20> Some comments:

\- This looks a bit like Rando, but Rando was more interesting. Even the icon of your app is plain.

\- No Android support is a dealbreaker for a huge number of users, including me.

\- Your only customer review is rather negative.

Work to make your app more appealing (read more about Rando, if you are not aware of it), port it to Android and try again. I'm sure you'll have better results next time.

Good luck!

</comment><comment><USER21> On the app's first screenshot, I'd put pictures that tell someone's story instead of sunsets and clouds (and definitely not any stock photos). If people are to download the app to peek into one's life, that life should be worth peeking into.

Kind of like Secret. Most people download it to read someone else's secrets, not to share their own.

<comment><AUTHOR> Each picture is a broadcast story. You can tap on it to open it, and swipe through the pictures in it to view that story.

</comment></comment><comment><USER22> I was willing to download it, but the first line "Note: Works only with iPhone and iPad. Does not work with iPod Touch" prevented me. I have a modern iPod touch (same generation as iPhone 5). Why won't your app work on it?

<comment><AUTHOR> I've not tested it on iPod touch. If you could please try, that'd help.

</comment></comment><comment><USER23> According to the app site, the product is in Beta and you're only "allowing" Mashable readers to use it. I'm not a Mashable reader, so punt. Also, how is this at version 2.0.3 already with no version history?

<comment><AUTHOR> You can download from here: [https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftw...](https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=905151810&mt=8)

Thanks.

</comment></comment><comment><USER24> How many users said they wanted this before you started building it?

</comment><comment><USER25> Seems similar to unseen. They are doing very well last I heard but they had a very tight niche target of universities.

</comment><comment><USER26> >Anonymous profiles

You just defeated the purpose of anonymity</comment>


Engineers with some free time... Click Ctrl - G - 6 at ZeroCater.com - <AUTHOR> http://www.zerocater.com <comment><USER2> For the curious,

      <embed id="likeagsix" src="http://www.youtube.com/v/GvgJEznqtms?version=3&enablejsapi=1 type="application/x-shockwave-flash" allowScriptAccess="always" width="640" height="390" style="position:absolute;top:-390px;">
        <script type="text/javascript" src="/static/js/jquery.likeagsix.js"></script>
        <script type="text/javascript">
            $(window).likeagsix(
                function now_Im_feelin_so_fly() {
                    document.getElementById('likeagsix').playVideo();
                }
            );
        </script>

and some other associated JS: <http://www.zerocater.com/static/js/jquery.likeagsix.js>

</comment><comment><USER3> Is this just me or does this not work under ubuntu? In both firefox and chrome ctrl + g brings up search.

<comment><USER4> Ctrl+G is a key combo in FF/Chrome on Win/Ubuntu and I only tested Chrome/FF/Safari on OSX when I made it.

Press the keys in sequence (not simultaneously) and it should work.

</comment></comment><comment><USER5> Warning: Turn your speakers down before doing this. It plays a song.

</comment><comment><USER6> You have to press ctrl THEN g THEN 6. One after the other.

</comment><comment><USER7> Great sounds for when you're brogramming with your bros.

<comment><USER8> Is this a novelty account?

</comment></comment><comment><USER9> Uncaught TypeError: Object #<HTMLEmbedElement> has no method 'playVideo'

Chrome on a mac :/

<comment><USER4> Do you have Flash enabled?

<comment><USER10> Are they detecting whether Flash is available?

</comment></comment></comment><comment><USER11> To see the video: document.getElementById('likeagsix').style.top="0px"

</comment><comment><USER12> Could someone post a summary, for those of us on iPhones?

<comment><USER13> The song "Like a G6" plays.

</comment></comment><comment><USER14> I'm not an engineer but still found this amusing!

</comment><comment><USER15> well, I tried every combination of clicks/keypresses I could, but nothing is happening. help? chrome on mac.

<comment><AUTHOR> Did you turn on the volume?

<comment><USER15> hah, oh. had my headphones in my walkman. expected something visual to happen :) took headphones off, worked as advertised.

<comment><USER16> Nothing for me. Chrome on PC. It opens the search box, though and I get to the phone number after typing 6.

</comment></comment></comment></comment><comment><USER17> function now_Im_feelin_so_fly()

</comment><comment><USER18> good marketing ploy :)

</comment><comment><USER19> I don't get it.</comment>


Show HN: One way how I can help - <AUTHOR> https://viggy28.dev/article/companies-where-i-can-refer/ <comment><USER2> Note blog posts can't be Show HN. [https://news.ycombinator.com/showhn.html](https://news.ycombinator.com/showhn.html)</comment>


Virtual Reality Basics - <AUTHOR> http://www.tomshardware.com/reviews/virtual-reality-basics,4220.html <comment><USER2> Does anyone know of a "VR Basics for Programmers" that walks through some terminology and the problem space?

<comment><USER3> This best practices guide for the Oculus was helpful for me: [https://developer.oculus.com/documentation/intro- vr/latest/c...](https://developer.oculus.com/documentation/intro- vr/latest/concepts/bp_intro/)

It covers a lot of the concepts and what actions the developer can take to minimize (or exacerbate) problems with VR.

</comment></comment><comment><USER4> Unfortunate field-of-view picture; that was a still of a much-discussed error in the Oculus Kickstarter video :).

</comment><comment><USER5> VR needs high immutability to minimize suffering of its inhabitants.

</comment><comment><USER6> tomshardware gives me nostalgia to the days of building my first computer... good to see it's still pushing the forefront of hardware education :)</comment>


Show HN: Valohai – GitHub of machine learning - <AUTHOR> https://valohai.com/ <comment><AUTHOR> Hi HN!

We're Eero, Otso, Aarni and Ruksi from Finland! We are the founders of Valohai, a machine learning infrastructure as a service startup. We support existing frameworks like TensorFlow, Keras, Torch and Caffe – actually, anything you can package into a Docker image. Our platform helps with the process of training machine learning models at scale with a focus on collaboration, realtime results, record keeping and repeatability. We are doing to machine learning what continuous integration and version control have done to programming. We just went to open beta. It's still early so all feedback is super welcome!

<comment><USER2> Your pricing is close to 1/2 of AWS. Assuming you scale, would you stay profitable? How?

I think the front page lacks clarity. "GitHub for Machine Learning" suggests a framework for hosting and cloning machine learning models, datasets, and training scripts. I may be just stupid, but it didn't come through as clearly what you actually offer. I see the term "experiments" up front and I wonder what you mean exactly. Then in collaboration I see "projects." What does a typical project consist of?

Don't get me wrong, the idea seems to have huge potential. My advice is to clean up the front page and develop a very clear explanation of what a typical person would use this for. You might want to take all of the features that say "Coming Soon" and move them into a separate page to avoid overwhelming users.

Perhaps try to differentiate this against Floyd in some way.

<comment><AUTHOR> Hi jtraffic!

And thanks for the feedback! Here are some answers :)

> Your pricing is close to 1/2 of AWS. Assuming you scale, would you stay > profitable? How?

Exact pricing is currently work in progress like for the most of startups but we do feel confident that we can make this model work. First of all current Amazon prising is very high. When we scale we can cut costs way below Amazons normal pricing by reserving instances for longer periods. Then it becomes a problem of keeping demand stable vs optimizing how many instances we reserve. Of course there are other providers too and prices are dropping as we speak. We just don't think that keeping this level of pricing will be an issue.

Computational resources are also not the only revenue stream. In fact, our first pilot customers were enterprises with their own hardware, where we plan on having per-seat licensing fee much like GitHub Enterprise works.

> I think the front page lacks clarity. "GitHub for Machine Learning" suggests > a framework for hosting and cloning machine learning models, datasets, and > training scripts. I may be just stupid, but it didn't come through as > clearly what you actually offer. I see the term "experiments" up front and I > wonder what you mean exactly. Then in collaboration I see "projects." What > does a typical project consist of?

Thanks for the feedback. Getting feedback on the website was one of the major reasons on posting here :) But, Yup! You got our vision! So in that sense our website copy communicates our intention. But then again, we don't have as much of those collaborative features that we'd like so this critique is well deserved. I'll try to explain how it works currently and what is in the roadmap going forward.

Currently you can fork any Valohai enabled ML project on GitHub and start from there but it doesn't yet copy previous executions or outputs (such as model weights and biases). It only "forks" how the environment is set up, the training scripts and how they are ran so you don't need to worry about any of that.

Features like making project public, more full fledged forking of project (executions, models, datasets), commenting on entities, watching an aspect of a project, starring project, pull request (using VCS integrations) and other social features are in the roadmap.

Project is basically an entity like "repository" in GitHub:

\- A single project is meant to be "namespace" for solving and collaborating on a specific ML problem. For example, you might be in a machine learning team for an organization where you have multiple projects to solve but don't want to mix the executions between the projects.

\- Projects have executions, which are like "runs" in some of other systems I've used.

\- A link to one git repository+branch that contains your training scripts and YAML file that defines who different kinds of "experiments" are ran. Single project can have multiple branches linked to it in the future, even multiple git repositories if we find an use case for it.

\- Experiment term itself has not meaning in our system at the moment. It's an umbrella term for "anything that you might need computing" such as training or feature extraction.

\- Task is a collection of executions that are mean to tackle a sub-problem, such as applying grid search hyperparameter optimization on a specific training to find the most optimal network.

Here are some examples of how project is defined at the GitHub side, the integration part with Valohai is in valohai.yaml file:

\- [https://github.com/valohai/tensorflow- example](https://github.com/valohai/tensorflow-example)

\- [https://github.com/valohai/darknet- example](https://github.com/valohai/darknet-example)

\- [https://github.com/valohai/keras- example](https://github.com/valohai/keras-example)

If you use any of those repositories as a source, you can run those pre- defined experiments with a click or two.

We also have other stuff right around the corner such as command line client, which should be released this week or early next week.

> Don't get me wrong, the idea seems to have huge potential. My advice is to > clean up the front page and develop a very clear explanation of what a > typical person would use this for. You might want to take all of the > features that say "Coming Soon" and move them into a separate page to avoid > overwhelming users.

Haha, don't worry; I've been lurking at HN for long enough to know that there is a difference constructive and outright negative feedback.

Good advice on the clarity. We have been working on this for some months now and not everything that is clear to us is clear to a moderate visitor on our website. More in-detail use cases or user stories do make a lot of sense. Maybe even add one to the pricing page for more specific pricing that normal machine learning training project might take per month on AWS compared on our infrastructure.

Having a separate coming soon page might be an option, we'll have to try it out.

> Perhaps try to differentiate this against Floyd in some way.

So far Floyd seems to concentrate on being a computational platform for singular users by "eliminating engineering bottlenecks in deep learning" while we are focusing on creating collaborative work flows and supporting private hardware use. But we do have a lot of similarities. We should focus on these differences, thanks for the tip! If FloydHub keeps on focusing on the engineering side of the machine learning, I wouldn't be surprised to see FloydHub as one of our future backends after AWS and Google Compute Cloud.

<comment><USER2> Cool. Good answer. Just FYI, the first link you provided, about TensorFlow, is broken.

<comment><AUTHOR> Thanks fixed!</comment></comment></comment></comment></comment>


Google is now worth over $182,410,000,000 - <AUTHOR> http://quote.bloomberg.com/apps/news?pid=20601087&sid=a0J534KXl9_0

<comment><USER2> If that's from their market cap, Exxon Mobile is at $511 billion.

<comment><USER3> Out of the top ten companies on the Fortune Global 500, Wal-Mart (#1) is the only one that's not a car or oil company. That seems reasonable, since there aren't many industries besides automobiles where you can do such huge volume on products that cost tens of thousands of dollars each. And then someone's got to fuel all those cars.

</comment></comment><comment><AUTHOR> It is. And if all those shares were cashed out and donated to the government, it would only reduce the national debt by about 8%.

<comment><USER4> US National debt is 9 trillion which means only a 2% reduction in national debt if Google were cashed in and donated. But hey, in the textbook Benjamin Bernanke wrote used for my intermediate microecon class he said that old models said that a government can't operate with continually increasing debts and trade deficits, which led him to conclude that the old models are wrong instead of concluding that the US economy is facing an impending collapse.

This guy literally wrote the book on Economics so he can't be wrong, right?

</comment></comment><comment><USER5> I guess "that analyst" (can't remember who) is laughing on the other side of his face at the $600 price he predicted.</comment>


Projects: Back to C - <AUTHOR> http://thoughts.owensd.io/2018/08/17/projects-back-to.html <comment><USER2> I really enjoy coding in C (it's probably the language I know the best) and I think C++ is an over-engineered and bloated language, however I'd still pick the latter for something like that. Or rather, like most devs, I'd pick a decently small subset of C++. The main reason for that is that in C if you need a data structure that's more involved that a simple contiguous array then you're on your own. A linked list is sort of not too bad to implement (the kernel's list.h is easy to use and reuse for instance) however as soon as you want things like hash tables, trees or anything that benefits from RAII IMO it becomes a pain to manage everything. It's perfectly possible to do all of that in C (or hell, in assembly if you want to) but in my experience it will take a lot of time to implement correctly (and since you don't have generics it's harder to have general purpose structures that you can reuse easily) and it'll have worse ergonomics because of a lack of destructors and other RAII patterns.

In my experience C is great for low level things (dealing with hardware, writing small low level services etc...). You don't have to deal with too many abstraction layers, memory management is generally straight forward (your average driver won't usually deal with anything more complex than a buffer queue or ring). For the type of application the author is talking about he'll probably have to deal with rather abstract data structure holding the state of the game, "a fluid flow of information coming into the app and going out of the app", concurrency issues etc...

Is it possible to do all that in C? Undoubtedly. If I was tasked to implement something like that would I choose C ? Hell now. I'd probably go with a subset of C++ like I mentioned before, Rust if the dependencies I needed were available (or I didn't mind coding them myself) or maybe even Python if I wanted to reduce development time as much as possible to get a PoC implementation live as fast as possible.

<comment><USER3> Here's a general purpose decision tree for deciding what to use for graphical applications.

        mobile? -> Ask someone else, not me.

        desktop?
              portable?
                yes: -> Qt
                  needs to be fast?
                  Lots of heavy lifting?
                    yes: -> Use "simple C++"
                    no: -> Use Python
                no:
                  linux: -> unless specifically for gnome, Qt.
                  mac: -> Mac.
                  windows: -> C# and MS's flavour-of-the-day framework
                              If you really dislike C# for some reason, Qt.
                  none of the above: -> probably Qt

        embedded? -> Qt.

What-part-of-Qt-to-use

        A "productive" application, something people will work with
        for lots of hours  and just need to get stuff done.
           -> probably Qt Widgets

        A "special snowflake fancy" application that should look special
        and very distinguished
           -> probably Qt Quick. This is going to be more work, if
              it's a "productive" application as well.

        Embedded or quasi-mobile applications mostly used with a touchscreen
        or other limited inputs
           -> Qt Quick.

<comment><USER4> Asking out of mostly ignorance, but is Qt still relevant in 2018?

I've noticed that even for standalone graphical applications, it's becoming more and more common to use webapps - either served locally and accessed through a browser, or through something like electron.

<comment><USER5> Depends on the app. I run some things in the browser but if there is a native app for something, it's always more responsive and faster to use.

Qt is very fast and very cross platform and Qt 5 together with Python is coming in a new form:

[https://www.qt.io/qt-for-python](https://www.qt.io/qt-for-python)

</comment></comment></comment></comment><comment><USER6> People often critique C without acknowledging the simplicity and versatility of C as a platform: C always comes ahead when you need to write portable, simple code without dependencies and without overhead(zero-cost abstractions). Writing big monolithic projects in C is hard, but making dozens of components, libraries and utilities turns out much easier(Unix way) and they can be optimized/combined at every level as tools instead of monolithic parts of a projects, creating lots of code/program reuse scenarios. C is also simple in terms of code generated, assembler doesn't expand to 1000 lines from 1 line of C. C keeps performance predictable and easy to reason to about.

<comment><USER3> Performance is basically never easy to reason about unless we're literally talking about 10 line long for loops. Then, _maybe_. But that's not a typical case for most applications.

Writing portable C is genuinely hard. I doubt many people can write significant quantities C89 code that actually does the same thing on GCC and MSVC out of the box (or on LE and BE, or on different pointer models, or on different architectures).

<comment><USER7> Even MSVC will do C99 these days. C89 is dead.

Big-endian is nearly dead, even in consumer network gear. POWER still survives in high-end network gear, and there are some big-business things (think COBOL) still in use. Most people really shouldn't care about big-endian.

Weird pointer models are dead. Even in the embedded world it has all gone byte-addressable, single-address-space, without hardware segments. The hardware does exist on x86, but modern systems effectively hide it. The pointer models are ILP32, LP64, and that abomination that Win64 uses.

Within reason, even bitfields are now portable. Both gcc and msvc will assign them starting from the LSB. You might need a pragma to pack the bits, but both compilers support that.

Speaking of that: lots of pragma is portable now! You can pack. You can do "once".

<comment><USER3> I.e. somewhat portable code that might (and sometimes does) break randomly, because it isn't actually portable, standard C.

<comment><USER7> It is actually portable. It isn't 100% standard of course, and almost nothing is. Start with the fact that standard C is unable to have a GUI, unable to make a network connection, and unable to make a plain text editor that can respond immediately to any keystroke other than Enter.

You can't even implement the functions to provide those features. Any program using any of those features is fully undefined by the C standard. Any interesting program is thus undefined by standard C.

</comment></comment></comment></comment></comment><comment><USER8> > Rust requires bindings and unsafe code; this ends up being a good amount of > work to accomplish.

Not really all that much work. Combined with Rusts library ecosystem and other productivity improvements you very easily come out ahead.

<comment><USER9> I was thinking the same thing. It wouldn't be trivial, but when compared to the work required to support the three major platforms with different UIs, the binding layers are probably a marginal additional cost.

</comment></comment><comment><USER10> Why not Lua ??

Is the marketing department in Lua so bad that this person didn't even consider it ??

Lua's secret trick is that you are really not writing Lua but C - most of the time when I am writing Lua I am actually thinking in C.

C <> Lua interlop is probably the best designed API out there and other language designers can take some advice - it does't do traditional FFI but something even cooler using something called Lua Stack.

Lua is also tiny ! it can run on embedded devices like hearing aids.

And you also have LuaJIT - which is faster then V8 ! but is not as stable as vanilla Lua.

<comment><USER11> Do you mean a separate project called "Lua Stack" or just the Lua stack?

</comment></comment><comment><USER12> Have you considered Nim? ([https://nim-lang.org/](https://nim-lang.org/))

</comment><comment><USER13> I write small cross-platform applications in plain C for the same reason the author gave. I use Nuklear for the GUI; one nice thing is that it's header only, see [https://github.com/vurtun/nuklear](https://github.com/vurtun/nuklear) With that, I can write small apps that run macOS, iOS, Windows and Android while sharing the same C code. On macOS, iOS, and Android I use SFML to manage windows and events. Works like a charm for me and I produce lightweight apps that are fast to deploy and have no dependencies. I compile the subset I need of SFML straight into my projects.

</comment><comment><USER14> IMHO C# may be a good choice for this project: shared common code in a C# lib and WPF/UWP, Xamarin.iOS and Xamarin.Mac frontends using native UI frameworks and one language to rule them all

</comment><comment><USER15> I've recently got back into RPGs with my kids. I used to play a lot, mostly WFRP and mostly with the same group. When I read this article it suggests a very different game to type I play, so I'm curious if other RPGers out there look at this and think "that would be really useful" or not. Do you derive enjoyment from crunching over mechanics? I've always been focused on the story, with dice a way to add an element of uncertainty and hence tension.

</comment><comment><USER16> C + Lua = Welcome to C Programming in the 21st Century

</comment><comment><USER17> Why not Lua? If you think you can do it in C, you can do it with Lua and end up with a system 10x better.

<comment><USER18> How do you run Lua on iOS?

<comment><AUTHOR> Include the Lua interpreter in your executable and the Lua code in your resource bundle?

<comment><USER17> Exactly. People seem to have this misunderstanding that you can't use Lua on iOS "because only approved languages make it into the App Store" \- not true. I've shipped tons of Lua-based iOS apps ..

</comment></comment></comment></comment><comment><USER19> Why not Java?</comment>


Ask HN: What do you use for your typography base? - <AUTHOR>

With a vast selection of CSS frameworks out there and a number of helpful tools, I couldn't but notice there is a lack of good typography base out there. Maybe I just can't find one, and I am not an expert in the field.
I'm talking about a good base for readability on blogs and larger amounts of text (like documentation or stories).
So, what do you guys use/prefer? I think a combination of what readability does with wikipedia would blend in nicely. <comment><USER2> Not a css framework, but this is a fantastic ebook on the subject: [http://practicaltypography.com/](http://practicaltypography.com/)

</comment><comment><USER3> I would personally like some insights from the community on this as well. Not a designer per sè, but I'm a big fan of clean, readable and beautiful typography.

</comment><comment><USER4> I use Bootstrap. As a designer I really appreciate the pragmatism of Bootstrap Typography set of rules. I can't tell the other frameworks but by watching the docs of Foundation I see typography rules.

I like to use Google Fonts now (typekit on the past).

Big fonts for reading and headers, not so long paragraphs and you will achieve a good level of readability.</comment>


The Images of Voyager - <AUTHOR> http://imgur.com/a/CvEvO

<comment><USER2> Some of those are almost a time-capsule of our own (hey they had instagram in the 70s!)

I wonder how and why some of those were chosen.</comment>