C preprocessor tips and tricks - <AUTHOR> https://www.iar.com/support/resources/articles/advanced-preprocessor-tips-and-tricks/ <comment><USER2> A preprocessor "trick" not mentioned in the article is the use of GNU statement expressions.

The article describes the do {} while(0) trick to make macros look like statements. They can then basically be used like inline void function calls. But what if you want to write a macro to replace an inline function that returns a result?

Statement expressions [1] solve that problem. Now you can finally do this:

        int _foo(int x) { return 2 * x; }

        #ifdef __DEBUG__
        #   define foo(x) \({                     \
                int r = _foo(x);                  \
                printf(                           \
                    "foo returned: %d (%s:%d)\n", \
                    r, __FILE__, __LINE__         \
                );                                \
                r;                                \
            })
        #else
        #   define foo _foo
        #endif

They are supported by most popular compilers which are not made by Microsoft (including GCC and clang).

[1] [https://gcc.gnu.org/onlinedocs/gcc/Statement- Exprs.html](https://gcc.gnu.org/onlinedocs/gcc/Statement-Exprs.html)

<comment><USER3> The canonical use of which being safe min/max:

        #define min(a, b) ({ \
          __typeof__(a) _a = (a); \
          __typeof__(b) _b = (b); \
          _a > _b ? _b : _a; \
        })

        #define max(a, b) ({ \
          __typeof__(a) _a = (a); \
          __typeof__(b) _b = (b); \
          _b > _a ? _b : _a; \
        })

which avoid evaluating their arguments twice.

</comment></comment><comment><USER4> It's a good introduction to the preprocessor, but I would dispute that it's advanced tricks. The content is definitely interesting, but also very standard practice.

There are many wonderful and horrible things that can be done with macros, and some people get very creative, sometimes to a fault. It's always a special feeling to see macros taking as argument other macros, all of that spreads through a deep hierarchy over several files!

<comment><USER5> > It's a good introduction to the preprocessor, but I would dispute that it's > advanced tricks.

Yes. The X macro is missing for example.

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

I would also add #error, #line... and command line options to get the preprocessed output.

</comment></comment><comment><USER6> I follow the advise of Scott Meyers to prefer the compiler over the pre- processor. Pre-processor code can inject bugs that which can't be easily traced with debugging tools.

The pre-processor is pure evil and should be avoided when ever possible.

<comment><USER3> If you want to debug preprocessor-generated code, -gdwarf-4 -g3 usually does the trick with GCC and Clang. If it doesn't, you can just gcc -E it and run it through clang-format or something, and compile and debug the expanded version. It's really not a big deal. You can have a Makefile rule to do this automatically, for example [https://github.com/alpha123/yu/blob/master/Makefile#L70-L103](https://github.com/alpha123/yu/blob/master/Makefile#L70-L103)

Saying the C preprocessor can "inject bugs" and make code that "can't be easily traced" is deceptive and wrong. It is, for all intents and purposes, a solved problem. That Makefile rule could be 3x shorter if I didn't go for some extra niceties like not expanding system headers. (As usual, 20% of the result takes 80% of the work). The preprocessor doesn't "inject bugs" anyway, unless you write very careless macros. Modern C, with things like __typeof, _Generic, and GCC/Clang's statement expressions means your macros can be totally safe against overwriting variables, double-evaluation, type errors, and more. You can, of course, still do silly things, but C isn't about protecting the programmer anyway, and that's totally fine if you're prepared for it.

Perhaps in C++ the preprocessor is 'pure evil', but in C it's a very useful part of the language.

<comment><USER6> I work in the embedded space and use a compiler from Green Hills.

The preprocessor in either C or C++ is evil for the simple matter you can't debug it when the thing you're debugging is in production, symbols are stripped, and the disassemble resembles nothing you can marry up to actual C or C++ code. In simple cases, maybe, but in not so simple cases it's just evil.

A modern compiler will optimized out the global consts anyways too...

<comment><USER7> If you have a modern compiler then it supports outputting the pre-processor result.

If you have a modern toolchain stack unwinding is already friendly to macro expansion.

A production build does not mean you don't have symbols, it just means you don't have symbols in the executable. Stash your build symbols somewhere so you can symbolize the stacks offline. Macros don't change this. They are consistent output for the same input.

Macros are not evil. Abusable, yes, but they also solve various sets of problems just _better_ than any other solution.

<comment><USER8> Can you give an example of a problem which the preprocessor solves better than modern C++?

<comment><USER9> I use preprocessor macros for what I guess I'll call "hyper-local extraction" in an attempt to be as DRY as possible. I don't know how modern C++ would handle this better. It looks a bit like this:

        #define a_ frob(-1,0,0); grob("a"); blah(...);
        #define b_ frob(1,0,0); grob("b"); blah(...);
        #define c_ frob(0,-1,0); grob("c"); blah(...);
        #define d_ frob(0,-1,1); grob("d"); blah(...);
        #define e_ frob(0,0,-1); grob("e"); blah(...);
        #define f_ frob(0,1,1); grob("f"); blah(...);

        if (normal_order) {
          a_ b_ c_ d_ e_ f_;
          c_ b_ a_ f_ e_ d_;
        } else if (special_order_1) {
          b_ c_ d_ e_ a_;
          d_ e_ c_ b_ a_ f_;
        } else if (...) {
          // ... and so on ...
        }

        #undef a_
        #undef b_
        #undef c_
        #undef d_
        #undef e_
        #undef f_

<comment><USER10> Modern C++ could use lambdas:

        auto a = [] {frob(-1,0,0); grob("a"); blah(...);};
        auto b = [] {frob(1,0,0); grob("b"); blah(...);};
        auto c = [] {frob(0,-1,0); grob("c"); blah(...);};
        ...

        if (normal_order) {
          a(); b(); c(); ...
        } else if (...) {
          b(); c(); a(); ...
        } ...

<comment><USER9> I guess that's pretty good.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> Some people hate the preprocessor. I love it. I miss it in every language that doesn't have one. I'd much rather be able to write

        statement
        statement
        statement
        #if DEBUG_FEATURE_X
            statement
            statement
            statement
        #endif
        statement
        statement
        statement

than

        statement
        statement
        statement
        // remember to comment this code out
        statement
        statement
        statement
        // --- end of debugging code
        statement
        statement
        statement

nor do I want a runtime check

Of course ultimately I just wish C/C++ and every other language let you use the entire language at compile time like lisp (and a few others).

As for more advanced macro foo macro lists are my favorite

[http://games.greggman.com/game/keeping_lists_in_sync_in_c__/](http://games.greggman.com/game/keeping_lists_in_sync_in_c__/)

I know some people don't like them. Typically those people would solve the issue by using some other language, python, to generate C/C++. I'd prefer not to have yet another dependency.

<comment><USER12> preprocessor tricks are cute, but there's definitely something to be said for staying completely w/in the language -- I've really come to appreciate this using Go, where I get incredible auto-formatting, rename refactor, and source introspection tools that would not be possible if a preprocessor were standard-issue.

(Of course, Java people have been saying something similar for a long time, but I never could get into it, 'cuz of a bunch of other stuff, like the IDE- centric culture & the language itself)

<comment><USER13> > but there's definitely something to be said for staying completely w/in the > language

The C Pre Processor is defined in the ISO C standard. In order for any implementation to call it self a normative conforming C implementation I has to include a pre processor to spec. The Pre Processor is part of the ISO C language.

> auto-formatting, rename refactor, source introspection tools

All of those things are had quite easily with C. Either as IDE/Editor features or with separate tools such as Clang Complete, Valgrind and many others.

<comment><USER12> spent a long time w/ c and c++, never found tools anywhere near as good as what i've got now for go.

maybe/probably not impossible, but a lot harder in practice. i have no personal experience, but people that seem to know what they're talking about say a big reason is the preprocessor makes life a lot harder. (and other stuff too, of course, like not having build semantics built into the language, and, for c++, just insane complexity in general.)

obviously the preprocessor is well-defined and standardized, but it still: operates on a totally different semantic level. it really is like two entirely different languages pasted together.

<comment><USER13> Would you mind listing a few tools you use with go?

I do not have much exposure to go but from what I have seen there is a nice set of introspection libraries. are you talking about tools that use these?

A final note, real time semantic checking of multiple expansion macros has been solved for quite a few years now and is in most IDE's and even in Vim and Emacs. Semantic analysis is done in the comelier, LLVM/Clang lib has given rise to a substantial set of tools that are now quite widely used and solve most of the problems.

And I believe C++17 with concepts is also going to have a dramatic effect on complexity and readability of template error messages.

<comment><USER12> these days my only c use is via obj-c in xcode, so i may well be unaware of the state of the art for straight c or straight c++ / other tools. xcode's refactorings and jump-to-defn (presumably powered by clang?) are still very flaky for me.

for go, i use:

goimports -- which is gofmt (which is awesome) + auto-adding/removing imports (just a heuristic so not always right, but usually right and quite handy)

godef -- for jumping to definitions

gorename -- for rename refactorings. i have _not once_ gotten this to break code.

oracle -- for showing other things about code, like 'which types implement this interface?'. as far as i can tell, it hasn't lied to me yet.

i use emacs as my editor, which integrates easily w/ all of the above tools.

i'm not sure what libraries power the tools above, but i think it's true that packages like go/types do the heavy lifting and make them relatively easy to write.

</comment></comment></comment></comment></comment></comment><comment><USER14> > #ifdefs don't protect you from misspelled words, #ifs do.

That's not (typically) correct. If an undefined identifier is used in a preprocessor expression, it expands (contracts?) to a constant 0. gcc does not warn about using undefined identifiers by default, and if there's an option to make it do so I'm not familiar with it. ( _EDIT: I am now, it 's "-Wundef". Thanks, sigjuice._) For example, this program:

        #include <stdio.h>

        #define MISPELLED

        int main(void) {
        #if MISPELED
            puts("MISPELED is true");
        #else
            puts("MISPELED is false");
        #endif

        #ifdef MISPELED
            puts("MISPELED is defined");
        #else
            puts("MISPELED is not defined");
        #endif
        }

produces no compile-time diagnostics and prints this output:

        MISPELED is false
        MISPELED is not defined

If you have a C compiler that warns about this, that's great -- but you're likely to get spurious warnings for some code.

<comment><USER15> gcc has -Wundef (Warn if an undefined identifier is evaluated in an #if directive.)

<comment><USER3> Which is a enabled by default with -Wall.

I'm a fan of compiling with -Wall -Wextra and manually disabling any irrelevant warnings (which is rare, and preferable to do on a per-file basis in the Makefile).

</comment></comment></comment><comment><USER16> I'm desperately looking for a C preprocessor that dumps the AST (preferable in JSON format) instead of expanding the macros. And it treats the C/C++ code as just data.

I plan to take the rest of the code and send it through clang to get C/C++ AST dump. Currently I'm getting clang's AST dump which "includes" all the headers and the size of the AST just blows up (e.g., 300k lines of AST for a 4k line C++ file that has about 10 include files).

<comment><USER17> Try CParser: [https://github.com/MatzeB/cparser](https://github.com/MatzeB/cparser)

</comment></comment><comment><USER18> My favorite "feature" of the pre processor is when I include Windows.h and then get a super strange compile error in my code because a macro Windows defines (with a super generic name) matches part of a name in my code (which is in a namespace btw) and expands into some unholy thing that is invisible at the source level... Fun times.

<comment><USER19> #undef

</comment></comment><comment><USER20> The rationale for #if vs #ifdef was interesting, though.

</comment><comment><USER21> Deferred expansion is a common (well, not that common) trick this misses that I would have included. Generally the C preprocessor is pretty terrible though, you should seriously consider generating code with an external tool before doing anything nontrivial with it.

Regardless, here's a link that seems to cover this and other somewhat more obscure techniques: [https://github.com/pfultz2/Cloak/wiki/C-Preprocessor- tricks,...](https://github.com/pfultz2/Cloak/wiki/C-Preprocessor- tricks,-tips,-and-idioms)

</comment><comment><USER22> Reading this makes me a little sad. I know the preprocessor can be misused but I really miss it in C#. A lot of highly repetitive code could be written much more elegant with a few well written macros.

<comment><USER3> There's always M4, which will preprocess just about anything you throw at it.

The syntax starts off pretty godawful, but eventually you learn to love it. C# and Java are much nicer with a little M4.

Everybody loves to hate on text-substitution macros (and hey, I write parsers and such, I'm a Smug Lisp Weenie, and generally I know how easy it is to break something and how much better real macros are), but sometimes they actually are the right tool for the job. Just because they're sometimes very much the wrong tool doesn't mean they should be kept out of your toolbox. Until all languages are either Lisp-ish or Forth-ish, I will maintain that there is a place for CPP/M4/etc. :-)

M4 is seriously awesome, just remember: with great text substitution comes great attention to detail. And heed the warning from the manual[1]:

> Some people find m4 to be fairly addictive. They first use m4 for simple > problems, then take bigger and bigger challenges, learning how to write > complex sets of m4 macros along the way. Once really addicted, users pursue > writing of sophisticated m4 applications even to solve simple problems, > devoting more time debugging their m4 scripts than doing real work. Beware > that m4 may be dangerous for the health of compulsive programmers.

1\. [https://www.gnu.org/software/m4/manual/m4.html](https://www.gnu.org/software/m4/manual/m4.html)

<comment><USER23> For C# based environments, you should use T4[1] actually. It comes with Mono[2] as well as the normal CLR. It has an API and a command-line tool.

[1]: [https://msdn.microsoft.com/en- us/library/bb126445.aspx](https://msdn.microsoft.com/en- us/library/bb126445.aspx) [2]: [https://github.com/mono/monodevelop/tree/master/main/src/add...](https://github.com/mono/monodevelop/tree/master/main/src/addins/TextTemplating/TextTransform)

</comment></comment></comment><comment><USER24> Best to avoid macros if possible. use inline functions. Use global variables instead of MAX_BUF, etc

<comment><USER14> The name of a variable, global or otherwise, is not a constant expression, so there are contexts in which it can't be used.

<comment><USER25> Enums can be used for that purpose.

<comment><USER14> True, but only for type int.

        enum { MAX = 1000 };

<comment><USER26> Why is this preferable over a preprocessor define? Is it because it can't be redefined easily? A max or count is certainly useful when there are other enum values but I don't see the huge advantage it has here.

<comment><USER14> Enumeration constants have scope.

</comment></comment></comment></comment></comment></comment><comment><USER27> That's the very basics of C preprocessor and the last part (#ifdef vs #ifs) didn't convince me at all, it's just a matter of programming style and use case.

</comment><comment><USER28> Just because you can doesn't mean that you should

</comment><comment><USER29> Protip #1: don't use them.

<comment><USER30> In C++, probably never. In C, they can be necessary for doing type orthogonal things (like intrusive data structures). Type generic expressions in C11 can be a bit of a safer alternative for some stuff, but you generally need to give explicit implementations for each type.

For example,

        #define sqrt(x) _Generic((x), long double: sqrtl, float: sqrtf, default: sqrt)(x)

<comment><USER31> Even in C++, they are good when you want to encapsulate a statement that may return from the enclosing function. Every time I write a parser or interpreter in C++, I end up writing a macro like

        #define EXPECT_TYPE(node, Type) if ((node)->type != Type) { return FAIL; }

and using it extensively.

<comment><USER30> Also things like generating code at compile time, but a lot of people could argue it both ways.</comment></comment></comment></comment>


RoR or web2py - <AUTHOR>

Hi, so I'm fairly new to web dev and looking to learn something new. I have exeriences using c# asp.net and mvc and even using the java play framework. I want to learn a scripting language at the same time so im weighing up between RoR or web2py. I do not have a mac which RoR seems to be alot easier 2  use on.
I'm looking for information on what is easier to use? Going to last longer? Will help my development career? Ease to deploy?
Any other helpful tips are appreciated. Thanks <comment><USER2> I would go with Django over web2py. If you're looking for more of a microframework, I would look at Flask.

Having built enterprise applications in Rails and Django, I would recommend Django over Rails 99.999% of the time. Django is a very homogeneous framework; it's easy to use, learn, deploy, maintain and has built-in ways to do just about anything you'd need to do in a web application.

Rails is more like a piece of flypaper, that you trow a bunch of stuff (gems) at and pray they stick. You can't even upload a file in Rails without using a plugin.

</comment><comment><USER3> I guess, the first question is Python vs Ruby. I use either and don't have a strong view to be honest unless you do so number crunching in which case Python offers more in terms of libraries. As to which webframework to use, RoR is indeed a bit like a fat man but so is Django. If you're new to web dev, I'd say go with something lightweight, ie. web2py or even flask in the Python world or Sinatra in the Ruby world.

</comment><comment><USER4> If your main goal is to learn something, django will not help you that much same as web2py. But when it comes to development, both will help you a lot.

If you prefer Python instead of Ruby I suggest you to start with micro frameworks like Flask or Bottle to get an idea how frameworks really do their job. And don't let that "micro" word to mislead you. You can create great applications with them.

</comment><comment><USER5> My opinion:

Web2py is easier and more fun to use.

RoR is a lot more widely adapted, so it's better choice for your career (than Web2py or even Django). But I don't like it, because I find it bloated (like a slow and fat man) and overcomplicated.

</comment><comment><USER6> Have you looked at Django?

</comment><comment><USER7> Go with web2py. Its the best!!!!</comment>


Ask HN: how would you monetize Learnivore.com ? - <AUTHOR>

I'm looking for useful (for the users) ways to monetize http://learnivore.com (ruby/rails screencasts aggregator I'm running).
The goal isn't to make huge loads of money, rather to pay the hosting and a bit of the time I spend maintaining and finding content for the site.
I tried various options (pledgie, amazon, affiliation through interesting ebooks) but none really worked out.
Would you have any suggestion ? <comment><USER2> People part with their money when you add significant value (solve a tough problem or create lots of delight). The value of Learnivore is that it collects programming screencasts into one place, which is _valuable_ but not _that valuable_. It's not creating enough value that you could charge directly for it.

In order to make good money, you'd have to view the screencast aggregation as your marketing, not your product. You'd have to invent another product to go along with this.

Ads are a weak example of this. Ads would be about connecting programmers with businesses serving programmers, which you can see is a different product than screencasts.

Another product could be consulting. This site could generate leads for consulting gigs, which would give you more money in one hour than you can probably make in a month with ads.

<comment><USER3> Well, it's obvious that people are making money off of screencasting. If you're referring people to them so they can make sales then you should be taking a cut of that.

Offer a 'featured screencast of the day' which takes prominent place on your site.

<comment><AUTHOR> Yup, I'm in touch with javery for this exactly. Thanks!

</comment></comment></comment><comment><USER4> (With the IP owners permission...)

Convert the screencasts into a standard format via Hey!Watch or Encoding.com, make them available for offline content on mobile devices. Charge for that, give a kickback to the IP owner.

<comment><AUTHOR> A couple of people contacted me about that. It would be probably doable for "free" content, delivered for a low-cost for offline watching via an iphone app with in-app purchase, then split 50/50 between learnivore and the author.

I would definitely ask IP owners first, just like I did before adding any content on the site.

Thanks for the suggestion!

</comment></comment><comment><USER5> I know I would pay to have some of our screencasts from TekPub.com show up on the site in some sort of featured section (ideally inline with the rest of the content but clearly marked as sponsored). Drop me a line and we can work something out. (email is in profile)

<comment><AUTHOR> Will contact you - thanks!

</comment></comment><comment><USER6> You attract rails programmers? The obvious monetization strategy there is a jobs site. Either start one (specific for rails), or link to one that pays referral fees.

Most likely though, you should probably consider this a labor of love.

<comment><AUTHOR> A job site is a good idea too, I didn't thought about that.

This specific site is definitely a labor of love :)

<comment><USER7> +1 for the job site suggestion.

Just contact some startup job sites and offer them a deal. Don't go with freelance project listing sites. Most people know that it's tough competition on those type of sites.

Link with sites that just serve job listings. ex: startuply and others.

On another note, allow those who make paid screencasts to advertise on your site. integrate some kind of reddit-type self serve ads that show up on specific screencast's pages. Would be cool.

ex: I make ActiveRecord screencasts so i choose some pages on your site which display activerecord screencasts and choose to display my ads only on those pages :) this way you show related content too :)

<comment><AUTHOR> Very nice idea, again. I will investigate both, thank you!

</comment></comment></comment></comment><comment><USER8> Approach the screencast owners about setting up affiliate programs. Since they have 96% margins or so, it really makes sense for them to pay 20% of the purchase price to you if you can demonstrably drive converting traffic.

<comment><USER5> When you pay your authors your margins are closer to 45%.

</comment></comment><comment><USER9> Become an amazon affiliate and link to highly recommended programming/math books.

<comment><AUTHOR> That's a good idea I believe - I could add a hand-picked book section, where each book would be an item like the current screencast.. Thanks!

<comment><USER10> Don't get too excited about that idea, if Stackoverflow's experience is anything to rely on:

[http://blog.stackoverflow.com/2009/11/our-amazon- advertising...](http://blog.stackoverflow.com/2009/11/our-amazon-advertising- experiment/)

However, your experiences might be a bit difference since people going to watch screencasts are more likely to be looking for a focused instruction than people going to Stackoverflow, so maybe these people would buy books. It's worth a try, but I wouldn't invest a lot of effort in it.

They also mention the Adsense problem on technical sites that you refer to elsewhere in this post.

</comment></comment></comment><comment><AUTHOR> Link: <http://learnivore.com>

</comment><comment><USER11> You should start making your own screencasts and sell them alongside the others. Your brand is already established, you'll have seen enough screencasts to know what works and you can identify gaps in the market. If you put an open poll on there you can get feedback from people visiting the site about what they want to buy, but isn't there. And you can share that with other screencasts producers. If nobody else steps up, you can make and sell the most popular suggestions.

You don't even have to make the screencasts, you can pay others and you just sell them.

</comment><comment><USER12> You need to sell your ads directly to advertisers. 125 x 125 ads on the sidebar would be a good option for you. Another thing to consider would be making sticky, sponsored post on the homepage.

<comment><AUTHOR> I will think about that. The specific thing about this site is that there is a lot more people using it via RSS and Twitter than via the site.

I think I could offer ads spot in the RSS for one month in all published screencasts, for instance.

</comment></comment><comment><USER13> if any given screencast you link to does something they charge for, you could arrange with them to get an affiliate kickback fee

<comment><AUTHOR> That would be lovely...

Unfortunately none of the existing publishers on the site run an affiliate program.

</comment></comment><comment><USER14> why no adsense?

<comment><AUTHOR> I never tried on this specific site, but on other sites I found that the click rate is so low it's not worth it. Maybe I should give it a try though. Thanks for the suggestion.

<comment><USER15> Your hosting costs are probably very low. Since you're looking just to cover expenditures and maybe make a little pocket money, AdSense might suffice.

<comment><AUTHOR> I already tried adsense on programming related sites. With a CTR of about 1/10000, I'd likely make 0.5$ per month (plus adsense is not really sexy :-)).

But why not - I'll think about it.</comment></comment></comment></comment>


Admit It, You Do Laundry During Work Video Calls - <AUTHOR> https://www.wsj.com/articles/admit-it-you-do-laundry-during-work-video-calls-11597246242 <comment><USER2> Couldn't read the whole thing behind the paywall.

I hope the article comes to the right conclusion, that doing your chores while you sit through boring meetings is awesome and good and doesn't hurt anybody.</comment>


CryptoInvesting in the Age of Whales - <AUTHOR> https://bitcoinmagazine.com/articles/crypto-investing-age-whales/ <comment><USER2> Crypto is a weird thing. It has a lot of properties that no other asset in history has had. I believe there's a realistic chance that this "bubble" will end with nearly everyone in the world going crazy over it, in a few more years.

That might even be an economically very bad thing in the end.

<comment><USER3> I read about the wars of miners building bigger and bigger setups, grouping together for stable income, buying cheap electricity wherever possible... and it's not too hard to imagine a future where a sizeable portion of energy expenditure and carbon burning is going to very strong computers doing very complicated stuff for magic make-believe money.

It reminds me of Easter Island. The prevailing theory goes like this. The islanders made big stone heads (Moai) to honor some famous chiefs. Everyone was impressed. Then some rich bigwigs decide to make Moais for themselves. Then every Joe Shmoe with some money decided THEY wanted a Moai too. The island went nuts for Moais and they ended up cutting down all the trees on the island, destroying the ecosystem and the entire civilization collapsed and disappeared.

But... Moaicoins only go up!

<comment><USER4> What does cutting down trees have to do with making stone heads?

<comment><USER5> I think they might have had to use the trees to move the stones about.

</comment></comment></comment></comment><comment><USER6> Cryptocurrency evolution may end up looking like railroad track gauges. 1, 2, many in a Cambrian explosion and then mergers/acquisitions into just a few used everyday. The others will be there but little used.</comment>


Look What Tumblr's Done With All Its Money - <AUTHOR> http://www.businessinsider.com/hey-look-what-tumblrs-done-with-all-its-money-2009-8 <comment><USER2> 50M visitors and 800K posts per day are massive numbers. If those numbers are true, this post is way, way off base.

<comment><USER3> Why? I don't see how having many users of a free product amounts to anything.

<comment><USER4> Really? Do you think Google's free users have value? What do you think Facebook could sell for tomorrow if they wanted to?

I'm all for charging for stuff, but free users (in volume) can have tremendous value. If they are a particular/targeted audience (Tumblr's isn't) they can be incredibly valuable. I've read that home improvement content can get $20 CPMs.

</comment></comment></comment><comment><USER5> I would steer clear of the domain registration option myself. Many people here have strongly negative impressions of GoDaddy because GoDaddy bombards them with upsells when you try to check out. There is a reason for this: the core business of registering domains names generates _mouse droppings_ for profits on a single domain.

If you want to be a GoDaddy partner taking a _fraction_ of those mouse droppings from people who are going to be buying a single vanity domain, then you are spending an awful lot of engineering time building a system which will probably never scale to profitability.

Sidenote: The GoDaddy business model is split into two parts. For serious buyers of domain names, they make their money on volume and renewals (and private registration -- a ludicrously valuable revenue stream since it is high value to the customer and 98%+ profit to GoDaddy).

For end-users of domain names, they make their money on the high-margin services (hosting, email, SSLs, their worthless SEO products, etc) they can bundle with the sale.

That's just my analysis, incidentally -- I love them to pieces (they're cheap and they give you exactly what it says on the tin) and have spent literally thousands over the years.

<comment><USER6> It's important to note that GoDaddy now has an "Express Buy" option right on their homepage now to skip over all the up-sells. They appear to have heard our cries.

I think the author was just using GoDaddy as an example. With the money they have, they could possbily BECOME a registrar. Or, they could piggy back off of a number of APIs available for domain registration.

Still, I do agree that the domain registration route is not the way to go. It's a completely different business model (not that they have one now), but there are a number of other ways they could possibly monetize with such huge numbers.

</comment></comment><comment><USER6> He knocks them for pandering to their current user base, but when you are a business that grows by word-of-mouth, your current users are your sales-force, so pandering is a MUST. But I completely agree that they could have used their time a little more wisely than to go after the shark/kitty idea.

Maybe they should have spent more time on their API so one of their shark/kitty loving users could have created kitty widgets on their own time.

</comment><comment><USER7> To be honest, the headline of this article itself struck me as amateur. That said, Karp flips between handling it well and not handling it well in the comments. Jaime Wilkinson of Know Your Meme seems to do the best job of clearing things up in the comments...

</comment><comment><USER8> Sounds like they're using that marketing approach of visualizing just one specific user, and trying to maximize the experience and value for that one person. Apparently, real users will tend to align themselves with that idealized user. They're using that marketing approach, and it's working.

I think Guy Kawasaki talks about this, and it's also in _Crossing the Chasm_.

</comment><comment><USER9> This seems like personal animosity to me.

<comment><USER10> Ha, exactly what I was thinking. Sounds like the author is in a fund which invested in Tumblr. And he's got Twitter envy and feels the need to micro- manage!

</comment></comment><comment><USER11> Hey Sharks n' Cats is a growth market.

<comment><USER12> Should've gone with Ninjas and Pirates...

<comment><USER13> Too obvious?

</comment></comment></comment><comment><USER14> All press is good press?

I do wonder why TechCrunch's startup reviews are almost always glowing. What kind of pressure is there on these media outlets to write positive articles? Is there any incentive to not rip into companies like BusinessInsider did here?

<comment><USER15> They aren't always glowing. But in my case I'd rather write about a startup I like than one I don't, so if there is a trend toward positive reviews that probably explains it.

<comment><USER14> That sounds like a sensible explanation. Please don't see my comment as an invitation to post a scathing review of my startup. ;-)

</comment></comment></comment><comment><USER16> Tumblr's got a small staff and a presumably long runway. No reason to rush when there's not much competition in this space. (Posterous doesn't have the community to match)

</comment><comment><USER17> I'm not sure if tumblr and twitter are substitutes. For me, they're compliments - I put on tumblr ideas I can't express in 140 characters.</comment>


Graphql.js: A Simple and Isomorphic GraphQL Client for JavaScript - <AUTHOR> https://github.com/f/graphql.js/ <comment><USER2> Good job on creating a lightweight client. Apollo can be overkill for smaller projects.

You should be careful with the name though because it's named the same as the official reference implementation of the backend: [https://github.com/graphql/graphql-js](https://github.com/graphql/graphql- js).

<comment><AUTHOR> Exactly! That's why I created this. Apollo is nice but too heavy for a simple query for small projects. graphql.js also, can scale big projects (I'm using it in a large project) since it has fragment collecting feature which makes your codebase manageable.

</comment></comment><comment><USER3> Nice project, and congratulations on release. Could you compare this to Apollo Client? What are some advantages and disadvantages?

<comment><AUTHOR> It's actually just a query-builder and request tool to a GraphQL server. It's only 9kb. And it's agnostic, doesn't require any other package(s). Just download and use without any dependency. Apollo is a very dependent tool to make a simple HTTP request. According to Apollo, it has less features, but the most required and important ones.

</comment></comment><comment><USER4> Bravo! Despite the fact that it doesn't have caching built in, which isn't needed by everyone, I'm glad to see that the GraphQL ecosystem gets much richer by having alternatives to the fat libraries Apollo and Relay. Well done and thank you!

<comment><AUTHOR> Thank you! As just you said, it's first aim is to be a lighter client alternative to Apollo and Relay.

</comment></comment><comment><USER5> Just deployed this to production. It was by far the best js client I found for my needs.

I would love to see some sort of mutation batching if that's not too far out of the scope of the project. Right now I'm just using a class to build mutations in bulk and send them across in a single POST.

</comment><comment><USER6> Nice job. I'd also suggest picking a different name. Maybe a prefix before graphql or something like that.

<comment><AUTHOR> I may pick a shorter name.

<comment><USER7> sigql?

<comment><AUTHOR> Sounds like SIGKILL :')

</comment></comment></comment></comment><comment><USER8> When Javascript projects write "Isomorphic", what do they mean?

It certainly isn't isomorphic in the usual sense in Math of a bijection between structures (categories), because even if it were it is a special case of some kind.

<comment><USER9> I wondered about it too! From what I read, the term seems to be controversial in the webdev community:

> "From the beginning there were people opposing the term, suggesting > alternatives such as monomorphic or polymorphic" [1]

As I understand it, when an SPA is "isomorphic", it means it can be statically pre-rendered to some degree. This property is then used as follows:

\- you pre-render some html of your app server-side

\- when a client requests a page, send the pre-rendered html first

\- then, send over all your JS (React or whatever), which will take over the rendering when it's ready.

[2]

So "isomorphic" refers to some sort of behavioral equivalence, i.e. "you can run it server-side and you'll get the same output".

Painting with broad strokes, I guess you could interpret "this app is _isomorphic_ " as shorthand for "this app can be pre-rendered into a static form that's _isomorphic_ to its usual dynamic form" (in roughly the same way a pure function is isomorphic to a lookup table). In reality that property would probably be too strong for most cases, but I guess it's "morally correct".

\---

[1] [https://medium.com/@ghengeveld/isomorphism-vs-universal- java...](https://medium.com/@ghengeveld/isomorphism-vs-universal- javascript-4b47fb481beb)

[2] [https://en.m.wikipedia.org/wiki/Isomorphic_JavaScript#Mechan...](https://en.m.wikipedia.org/wiki/Isomorphic_JavaScript#Mechanism)

</comment></comment><comment><USER10> I'm all for a lightweight GraphQL client, but does this do any client side caching? Query diffing? Query merging? To me those are the killer features enabled by GraphQL.

<comment><AUTHOR> No, it can collect fragments (query building) and auto-declaration. when I add features it's not lightweight anymore :)

<comment><USER10> That's the trick, right? Building just the features you need while keeping it minimal. Alas, that lightweight feature set is going to be different for most people. I'd like an approach of several different libraries where you can easily bring your own. Relay is certainly not it and I haven't played with Apollo much to comment.

<comment><AUTHOR> Actually you are right; priorities change for everyone. But to run with GraphQL main requirements were "build query and send to the server". And I created this library does it. But writing queries were problem and wasn't DRY enough, and I added fragment collecting feature which feels another requirement. Auto-declaration is also a feature to make it DRY. And I stopped adding features not to make it fat, but you can create a tool with caching, merging, etc. that uses graphql.js. I try to make it as lean as it can be.

</comment></comment></comment></comment><comment><USER11> When using AWS, the GraphQL client in AWS' Amplify library is also nice if one doesn't need offline/caching support.

</comment><comment><USER12> I spent a good amount of time getting AWS AppSync to work with different GraphQL clients last week.

Looking forward to check out this one.

Thanks for sharing!

<comment><AUTHOR> I hope you'll find this useful, if you have any problems please create an issue!

</comment></comment><comment><USER13> Since is lightweight, I guess it doesn't support transport batching, doesn't it? It's a must-have for me

Anyway, good job!

<comment><AUTHOR> I think I can do it with few simple hacks, I'll definitely try to add that, thanks for recommendation!

<comment><USER13> I'll check it out then :)

Also, I'm new to hacker news but.. shouldn't you tag this as 'Show HN: ' ?</comment></comment></comment>


Former NASA Workers Struggle To Find Work A Year After Program's End - <AUTHOR> http://www.huffingtonpost.com/2012/07/15/former-nasa-workers-strug_n_1674537.html

<comment><USER2> The aftermath of the space race will serve as a cautionary tale against the afterglow of SpaceX and other private space industry achievements.

Does anybody know if there are large demographic gaps between ex-NASA employees referenced in the article and younger (presumably) employed or graduating cohorts, or is it a largely fat inverted pyramid?</comment>


Ask HN: Do you read philosophy? - <AUTHOR> I wonder how HN readers "nourish their minds", so to speak. Philosophy is something that I know almost nothing about, and am really curious to dip into. <comment><USER2> Over the years Stoicism has grown on me. I can't recommend it enough for business and engineering types as it addresses a lot of the negative side effects of tending to overthink things.

Meditations by Marcus Aurelius is a great straight-forward read and seems to be considered the gold standard on the subject.

</comment><comment><USER3> Lately I've been going through Dreyfus's book about Heidegger's _Being and Time_ , called _Being-in-the-world_ , and I've found it majorly inspiring and wonderful. Now I rave about Heidegger to anybody who will listen, more or less coherently.

Dreyfus has made important and influential critiques of "cognitivist" AI grounded in Heideggerian arguments... which can be a fascinating angle to approach existentialism for computer scientists.

I gladly recommend bringing a book of philosophy while travelling. You get new impressions to somehow apply ideas to, which gives a new depth to the travels and the book... plus you might form some interesting associations.

I read this Dreyfus Heidegger book a lot during a stay in rural Thailand, and I had lots of time to reflect... And, for example, part of the book is about this background of cultural habits that we rely on daily, and that only manifests consciously when it turns unfamiliar—like when in a foreign culture. So that was fun to think about.

Yeah, a relaxing vacation mixed with the mental stimulation of good philosophy—add a cup of coffee and that's heaven...

</comment><comment><USER4> Tao Te Ching. A verse on how to rule.

 _Rule a nation with justice.

Wage war with surprise moves.

Become master of the universe without striving.

How do I know that this is so?

Because of this!

The more laws and restrictions there are,

The poorer people become.

The sharper men's weapons,

The more trouble in the land.

The more ingenious and clever men are,

The more strange things happen.

The more rules and regulations,

The more thieves and robbers.

Therefore the sage says:

I take no action and people are reformed.

I enjoy peace and people become honest.

I do nothing and people become rich.

I have no desires and people return to the good and simple life._

</comment><comment><USER5> Good brief introduction is youtube channel School of Life: [https://www.youtube.com/user/schooloflifechannel](https://www.youtube.com/user/schooloflifechannel)

Some of social philosophy essays I have read recently are:

Konrad Paul Liessmann - theory of ignorance: the errors of the knowledge society (original: Theorie der Unbildung: die Irrtümer der Wissensgesellschaft, 2006 )

Elias Canetti - Crowds and Power (original: Masse und Macht, 1960)

Georg Simmel - Philosophy of Money (original: Philosophie des Geldes, 1900)

edit: formatting

</comment><comment><USER6> If you like to ponder about things in general, getting into philosophy learning some of the thinking that's been going on

If you are a person who like to do things instead of just reading about them, philosophy will offer you a whole new way of thinking about what you do.

I have always tried to strike the balance between thinking and doing. I.e. reflect on what I am doing.

Each to their own of course, but I can't recommend philosophy enough as long as you are able to apply it to some extent.

</comment><comment><USER7> My little library runs towards atheists, cognitive scientists, and eastern philosophy. I also prefer practical application (yoga, meditation, self- improvement, etc) and less academic (discussing, critiquing, history of, etc).

Richard Dawkins, Daniel Dennett, Douglas Hofstadter, Marvin Minsky, Tsai Chih Chung, Alan Watts.

Pick up anything by any of these guys and you'll be off to the races.

</comment><comment><USER8> I wish I had read more as a college student. This podcast has helped me catch up. Makes my commute tolerable too.

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

Start at episode 1 and work your way up. It improves a lot around podcast 12 or 13 as the speaker finds his stride.

</comment><comment><USER9> You ought to. [https://en.m.wikipedia.org/wiki/Is%E2%80%93ought_problem](https://en.m.wikipedia.org/wiki/Is%E2%80%93ought_problem)

</comment><comment><USER10> Will Durant's Story of Philosophy is a great start!

Bertrand Russell has also written a highly regarded introduction, though I haven't read it.

<comment><USER11> Russell's History of Western Philosophy is good. It's by no means an easy read but I thought it was very good at getting across the philosophical ideas as well as their development over time.

Ironically it put me off of philosophy somewhat. I left it with the impression that a worryingly large number of philosophical questions were either tautological or just very clever word play.</comment></comment>


How to validate a credit card with your mind - <AUTHOR> http://i.stack.imgur.com/Cu7PG.jpg

<comment><USER2> According to this my card is fake.

</comment><comment><USER3> Very cool, thanks!</comment>


Let's talk about peeing in space - <AUTHOR> https://twitter.com/MaryRobinette/status/1152277166996017152 <comment><USER2> The author (Mary Robinette Kowal) has a Nebula-winning twin-book series which cover an alternate timeline where humanity went to Mars instead of the Moon. The books[1] are a really great read (have a Hidden Figures meets Macgyver/Martian vibe and I loved them).

If you'd like a sample, her Hugo winning novella, "The Lady Astronaut of Mars" (which was expanded into the above 2 books) is available as a free read on Tor.com: [https://www.tor.com/2013/09/11/the-lady-astronaut-of- mars/](https://www.tor.com/2013/09/11/the-lady-astronaut-of-mars/)

It was one of my favorite reads of 2013, and you'll greatly enjoy it.

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

</comment><comment><USER3> > The sheaths came in small, medium, and large. It turns out, the men were all > saying that they needed a Large sheath. They did not. Subsequently, the > astronauts called the sheaths were called "Extra-large," "Immense," and > "Unbelievable."

This is a really similar story to one from Trojan condoms, IIRC, whereby everyone was buying the Large size, so the Magnum was born.

I'd believe it in a heartbeat for Trojan, but I have a hard time believing it in the context of a NASA aerospace program. Maybe they joked about it, and the larger size names were born out of that joke, but I can't believe that NASA didn't have doctors and engineers sizing the sheaths for each astronaut, or at least making the decision for the astronauts from the sizes they had. This isn't like they were walking into a walmart and had to decide on their own; this was a multi-million dollar first-of-its-kind space program.

<comment><USER4> >but I can't believe that NASA didn't have doctors and engineers sizing the sheaths for each astronaut

I understand there's science and professionalism and all but....could you justify measuring dick length to a bunch of astronauts? Not to mention the length changes over time and also nobody wants to be the small sheath surrounded by extra large...

<comment><USER5> These astronauts undergo rigorous medical checks where every inch of their body is checked and double-checked. And they already come from an armed forces background where detailed medical checks are very common and there is zero shame about nudity. I am pretty sure they would not have had qualms about it if it was indeed necessary. Their space suits are already sized to their specific dimensions.

Also, why does the sheath size have to be such a public thing?

</comment></comment></comment><comment><USER6> The technology is also useful down here on Earth when one astronaut wants to drive 950 miles without stopping to confront the lover of another.

[https://www.denverpost.com/2007/02/05/diaper-wearing- astrona...](https://www.denverpost.com/2007/02/05/diaper-wearing-astronaut- jailed-in-love-triangle-plot/)

<comment><USER7> To be fair, some people just like diapers... ([https://en.wikipedia.org/wiki/Diaper_fetishism](https://en.wikipedia.org/wiki/Diaper_fetishism))

</comment></comment><comment><USER8> People are complaining that this is painful to read on Twitter, so I expected it would be painful.

Then I actually followed the link and it was delightful! I'm not really a fan or a detractor from the medium, but I don't understand the hate in this particular context.

PS: What a lovely thread about the reality of peeing in space!

<comment><USER9> Also, the author is the president of the Science Fiction Writers of America, a Hugo and Nebula award winner, an audiobook narrator, a podcaster, and a puppeteer, and a blogger. I'm pretty sure she has a good grasp of what medium is suitable for what content.

(I, too, thought it was fine and quite reasonable.)

<comment><USER10> A Pierson's Puppeteer? With two heads??!

</comment></comment></comment><comment><USER11> As a scuba diver, we often spend 6+ hours away from toilet facilities, and good hydration is important. With a wet suit, you can just pee and it will wash out.

However, with a dry suit it is similar to a spacesuit. It is a pain to de-suit just to go for a pee (some of the old-timers have zips that allow them to pee above water, but it isn't very common.. and I prefer to pee underwater).

Many people use pee-valves which work in a similar way to the twitter thread. External catheters which are like condoms with glue inside, and a tube which allows the liquid to escape outside the suit.

Trouble is, I didn't know my "size". The medical company that makes them will post a selection of each type and a "sizing chart". The chart is a cardboard disc with cutouts that you can use to measure up against your body. For the same reasons as the thread, they use measuring in millimeters rather than t-shirt sizes.

A few days later, I was on a road trip with my daughter and the company called to see if I received the pack and was able to place a real order. I answered on hands-free and I was asked, "What size will you need sir?". How could I possibly answer that sat next to my daughter? :o

For female divers, the main option is a pad and glue. Sounds awful.

<comment><USER12> >How could I possibly answer that sat next to my daughter? :o

i'm not trying to start a fight but i will never understand this. you're embarrassed to talk about your body in front of your daughter. what's the point? i remember my mom had a UTI and was embarrassed to discuss it with me when we were on a trip (so she suffered in kisilence). this woman whose body i literally was created in couldn't bring herself to tell me about something normal/typical about her body because of what? puritan culture? i will never get it.

Edit: why am I getting downvoted? What have I said that's so offensive?

<comment><USER11> This isn't related to a medical issue. This is reluctance to share with my child the specific size of my genitalia. You think that is peculiar?

<comment><USER12> You had a phone call that completely perfunctorily implicated the size of your penis. As far I'm concerned that's about as uncomplicated as a medical issue - there's no allusion to anything sexual. To wit: do you use your mouth during sex? Would you shy away from answering how large a mouth guard you needed over the phone in front of your daughter?

<comment><USER13> You must do you, and may the repercussions for that be no more serious than a few downvotes. But as far as everybody else is concerned, this matter is, if not actually outright sexual, at least sex-adjacent, and therefore not an appropriate topic for discussion when one's children are around.

(Your children will probably be grateful for this.)

This might not be logical, but there you go. Something these things aren't. If you feel strongly that this is so ridiculous that things should change, then let nobody tell you that you are wrong, but I think you'll find that this is a minority viewpoint, and you'll attract few fellow travelers for your quixotic quest.

<comment><USER14> Maybe it's because we're from different cultures (I'm french) but that situation sounds also ridiculous to me.

I've seen both my parents naked and sex was taboo, sure, but genitals in itself (like talking about the size of ones penis for an health issue) were not that much. That situation was not sexual at all and I'm sure your children wouldn't really care (or maybe it's the fact that it was less sacralized in my family). I do not feel traumatized by that and even feel a little insulted by the: > (Your children will probably be grateful for this.)

I'm not saying that one situation is superior to the other one, but I perfectly understand the point of the person you're answering to and feel all those downvotes are a little unfair for a real (and in my pov, valid) opinion.

</comment></comment></comment></comment></comment></comment><comment><USER15> This is a must read thread, full of so many fun facts: e.g.

> Fun fact: Gravity creates most of the sense of urgency for peeing, so in > microgravity, astronauts can't always tell when they need to go.

> It's such a complicated process that they pee on a schedule.

<comment><USER16> I currently have the inverse problem and solve it in exactly the same way: I'm pregnant and I _always_ feel like I have to pee, even if I just went five seconds ago. I can't tell the difference between the feeling of a full bladder and the feeling of the baby pushing on my bladder.

I deal with it by peeing every hour, so that if it's only been 20 minutes, I can feel pretty confident that the feeling isn't real and I should try to ignore it. I have a lot of sympathy for the astronauts' pee problems these days.

</comment></comment><comment><USER17> One of the best reads in a long time.

<comment><USER18> I love reading long stories in a twitter format /s

that's why twitter came to be. 160 characters in 30 blocks

<comment><USER9> For these types of stories, I find it much more readable than a giant wall of text - the structure of the medium forces you into better storytelling. (Not everything is this type of story, though! I would hate reading a research paper in this format, where each two-sentence block was intended to be interesting enough to be retweeted on its own.)

This isn't unusual in human storytelling. Other forms with a history of constraint causing a better result than an unconstrained pile of text include poetry, songs, and presentation slides.

<comment><USER19> Twitter threads feel more focussed (than long form content) to me. People skip fluff and focus on the important parts.

</comment></comment></comment></comment><comment><USER20> My favorite part -- _" Peeing or pooping in space is now a lengthy process, involving a fan, a targeting system, and a fair amount of prayer."_

</comment><comment><USER21> More fun facts: www.popsci.com/brief-history-pooping-in-space/

</comment><comment><USER22>
        Let's talk about peeing in space.

        Several people, in response to my NY Times essay, have said that women
        couldn't go into space because we lacked the technology for them to
        pee in space.

        When the Mercury program was proposed, doctors were worried that
        people would not be able to urinate or even swallow without the aid of
        gravity.

        And yet, they still made plans to send a man into space.

        Up.

        Hello space!

        Back down.

        They made no plans for peeing.

        He asked Mission Control for permission to go in his suit. After
        consultation with flight surgeons & suit technicians, they gave him
        permission to do so.

        So he wet himself & still went into space.

        It worked great in testing, but when the actual astronauts used it,
        the sheath kept blowing off and leaving them with pee in their suits.

        Was this about extended time in the spacesuit?

        They did not.

        Subsequently, the astronauts called the sheaths were called
        "Extra-large," "Immense," and "Unbelievable."

        That worked well for Gemini and Mercury. And by well, I mean there was
        still urine in the capsule and it stank of feces.

        Apollo needed a different solution.

        If you timed it right.

        Open it too early and the vacuum of space reached through the valve to
        grab your manhood.

        Apparently, the venting of pee into space is very pretty. It catches
        the sunlight and sparkles.

        Buzz Aldrin was the second man on the moon, but the first to pee
        there.

        After the accident, they couldn't use the regular vent, because it
        needed to be heated to keep the pee from freezing.

        It wasn't meant to be a permanent ban, but the crew didn't understand
        that. So they were stashing pee in every bag or container possible.

        He got a UTI and then a kidney infection.

        To launch and for a spacewalk, they developed the MAG

        Maximum Absorbency Garment.

        It's a diaper.

        They also developed a zero-G toilet so that astronauts no longer had
        to tape a bag to their ass.

        Fun pooping in space fact: Without gravity, the poop doesn't break off
        as it exits your body. You have to reach back and help with special
        gloves.

        Sometimes though, the toilet breaks down. At that point, they return
        to using "relief bags" taped to their ass and "manual urine
        containment."

        Fun fact: Due to chemicals, it is bright purple and acidic.

        Fun fact: Poop regularly escapes, which is why you never eat a milk
        dud found floating in the ISS.

        We didn't have the technology for men to pee in space when they
        started either.

        And some days, the best solution is still a diaper or a bag taped to
        the ass

<comment><USER9> Not only is this harder to read, and not only are you losing semantic information (line breaks within a tweet are different from tweet breaks), you're literally missing content, e.g., after "They did not."

<comment><USER23> It does, however, say something other than "Something went wrong."

</comment></comment></comment><comment><USER24> Reading that "article" on twitter was amazingly not miserable but seriously...is it a thing to write articles in twitter feeds

</comment><comment><USER25> I don't understand. This is good information, but why do I have to read this on a Twitter feed? Why not an article or proper blog?

<comment><USER26> Aren't you the one who's being pretentious by complaining about how you have to read it on a microblogging site?

<comment><USER24> Reading an article in the form of a twitter storm is not something I'd blame someone complaining about.

She paced it well and really made it work and who knows, that may have been the perfect place.

I have to believe there is some consensus on a twitter stream exceeding a certain length being better off as a blog and this would qualify in those numbers

<comment><USER27> Trading your audience for a better medium is a hard bargain to accept.

<comment><USER24> That's the conversation right? Is this a better medium, are blogs just not as effective.

To advocate for this medium, I definitely care little for the amount of advertising done in blogs. Everything looks like a 1990s Warez site

</comment></comment></comment></comment></comment><comment><USER28> Great read, but I couldn't help but think about how Twitter is the worst possible format for this, compared to literally anything else.

A blog post. A news article. Even a video.

<comment><USER29> I was confused as to why this was a link to Twitter as opposed to a direct link. The over-dependence on platforms like Twitter has reached the point of parody.

</comment></comment><comment><USER30> "special gloves"

Is this one of those examples where Nasa spends $50m developing special acronymed gloves, and the Russians went to the chemist and bought some bog standard rubber gloves?

<comment><USER31> You mean like the space pen vs pencil thing, where Fisher spent his own money to design and make it and sold it to both the Americans and Russians because pencils are a huge fire hazard in zero G?

<comment><USER32> My grandmother's email had better poise.</comment></comment></comment>


Ask HN: About to quit my job and work full-time on my side business, advice? - <AUTHOR> I have a profitable side business I created over the last year while working full time. I've decided to make the leap and work on it full time.<p>The business profits are comparable to my full-time salary, so money isn't really an issue. I'm based in the US. What advice would you give to someone in this situation (Taxes, incorporating, lifestyle, anything and everything welcome)? <comment><USER2> Keep your personal and business expenses separate. Make sure you have a proper C Corp setup. If you ever intend to raise money, make it a Delaware C. Don't underestimate the mental health impact of the uncertainty and sheer weirdness. Don't be surprised if you level up skill wise faster. Don't be afraid to invest personally if there is ROI, sometimes people under capitalize lifestyle businesses and they could do better by rolling more money back in. About 5% of customers will not hesitate to be abusive, pay extremely late or exploit the fact that you're small. Learn what they feel like in the sales process. The first time you'll be convinced it's you, and blow at least a month. Learn to fire them during the sales process or insulate yourself with much worse terms for them and stronger for you (paid up front, higher rate, easy out for you). Dealing with abusive customers is one of the hardest "didn't expect that" things I've experienced. Otherwise, enjoy.

<comment><USER3> With abusive customers, it's usually best to set up an SOP to detect then filter them out. I'm totally against the whole "customer is always right" mindset because that's a beacon for abusive customers. Generally they hang around the cheapest priced products.

I agree that tough terms are good at filtering them out. You might even have to be a little aloof, but not outright rude. Things like pay up front, by a certain date, is great for this.

<comment><USER4> What is SOP?

<comment><USER5> Standard Operating Procedure

</comment></comment></comment></comment><comment><USER3> Read up the startup playbook if you haven't: [https://playbook.samaltman.com/](https://playbook.samaltman.com/)

You should probably decide early on whether it's a lifestyle business (steady $40k per month) or a VC backed business ($100M+ valuation). VCs won't back lifestyle businesses, but they can be life-changing. On the other hand, lifestyle businesses are actually harder, but in different ways, e.g. you can get disrupted by Google or a VC backed company 20 years later.

Don't spend too much focus on incorporating and lawyers and all that. It's probably worth paying well enough to trust someone to handle it. Some of my biggest regrets are spending days handling my own accounting and logo design. Even a mediocre lawyer probably knows better than you.

Try your hand at applying for accelerators. The good ones are easy to apply to and the process forces you to analyze your company.

You should also get a cofounder if you don't already have one. This could be a spouse or early employee. The standard is 4 year vested equity.

</comment><comment><USER6> You've already taken the best advice I have to give on the subject: don't quit your day job until you replace it's income.

Beyond that, I personally made a point of ensuring that my product stuff runs itself with no human input whatsoever. Even to the point of ensuring that customer support tasks get automated after the second time I see the same request.

The goal is to be able to really down tools and disappear for a month at a time without the business falling apart. Chances are you will have had to do a lot of this in order to run the thing while employed full time, but now that the payoff will be true 100% downtime for you whenever you want it, it's well worth finishing the job.

Good luck!

</comment><comment><USER7> If it's a software startup don't be persuaded to raise money giving away what you have created - software has like zero overhead compared to other industry. LLC is perfect for getting started as it protects you and it's tax favorable to start. Get ready to work 24/7 or at least always have your phone with you, depending on the service type you want to make sure you reduce the risk of downtime. don't be afraid to buy more servers/instances for redundancy. Always be closing, always be coding, always be caring - remember your abc's

</comment><comment><USER8> I think you should read this: [https://docs.google.com/document/d/1wkJ6Ruh2IiR-caT- PS3n5Yt5...](https://docs.google.com/document/d/1wkJ6Ruh2IiR-caT- PS3n5Yt5VKcmIsVhuQwjgqK7030/edit)

Take it with a grain of salt and use your intuition. Related thread on HN: [https://news.ycombinator.com/item?id=19214512](https://news.ycombinator.com/item?id=19214512)

</comment><comment><USER9> I'm gonna say, don't be too hard on yourself. You may expect to be as productive as on your previous job, but there is a big chance that you won't be. It will take some time to adjust to the new setting (even if you worked in your free time on the business).

Anyway, congrats, good luck.

</comment><comment><USER10> I'm wondering what's the topic of the business?</comment>


Raspberry Pi - Logo competition winner - <AUTHOR> http://www.raspberrypi.org/?p=221

<comment><USER2> I've reproduced my comment from the site here, mostly to address the 'raspberries aren't purple' thing :-)

\--

I'm Paul, the guy who designed the amazing/abominable* logo above.

Thanks for the 'grats and criticism. I'll respond to a few of the specific points above in a bit to clarify or address things as I see them (which is my opinion and not that of the foundation, to be clear

Generally, yes, the design should appear more raspberry in colour then it seems here. By that I mean, not quite red, but definitely not purple. This is my fault for designing in CYMK on a wide-gamut monitor calibrated for print and then not checking the colour profile was set properly on other monitors when exported from EPS. Looks like RGB #e7113c is closer to what I'd expect. Mea culpa.

If I've underplayed the Pi/Pie aspect, it because the ideas I tried along those lines always ended up too fussy and indistinct and I felt that the Raspi needed something that would be eye-catching, friendly and recognisable worldwide even when photocopied badly in one colour and without any supporting text.

While you can't please all the people all the time, I did go for something simple enough to have room to grow. It's be easy as pie to anthropomorphise (y'know, for kids) and some people have already seen this, which makes me smile

Influence wise, it might help to think of it as the love child of the Apple logo and Bibendum. <http://guru.gg/lovechild.png>

* delete as appropriate.

<comment><USER3> Nice logo and clearly most people like it, there are always some haters.

I grow raspberries every year and there are wide variety outside of the sterile and often flavorless red that we see in grocery stores. <http://tinyurl.com/5wyewjg>

Also, thanks for that bit of trivia (Bibendum).

</comment></comment><comment><USER4> Raspberry Pi is doing a great job of keeping up buzz on their site while the hardware isn't ready yet.

So many sites peddling vapourware could learn a thing or two here.

</comment><comment><USER5> Really liked <http://dribbble.com/shots/282948-Raspberry-Pi>

</comment><comment><USER6> It's not great, it's not creative at all. Hate the colors too. I love the color of raspberries, not this purple uglyness.

<comment><USER7> I don't think it's that bad, but I agree the colors are wrong. They should have used the color that the raspberries are in their blog picture above.

<comment><USER8> Not an expert on design, but my intuition tells me that having it more red would hurt its clarity as it could have more easily been mistaken for a strawberry.

</comment></comment></comment><comment><USER9> >Actually, I think this may be an issue with your monitor. Could you take a screen grab and email me a bitmap if you get a moment? I just want to check there isn't a colour rendering error

What? How does that work?

Also, other people see bugs and faces: I see goatse. :-(

<comment><USER9> Any explanation for downvote?

1) How does a screen grab help diagnose broken monitor? 2) Three blobs on left and three blobs on right are hands, you know the rest. Totally Goatse.</comment></comment>


Ask HN: How much, on average, do freelancers make? - <AUTHOR>

I'm thinking about getting into the freelance gig. I have 2 years Python/Django experience and am pretty good with front-end stuff.
I'm just wondering what it's like for the average freelancer. Do you take up more than one project at a go? How much do you usually get paid for one project? What about overall?
 I also asked a question earlier on about doing contract/remote work as an American, overseas. If anyone has any experience with this, please let me know
Thank you! <comment><USER2> There may be an average for your particular niche, however I believe it varies drastically on the whole. Largely depending on the work you do, experience, and your contacts. Also, I believe the rate you charge gets you completely different clients. Charging $50 an hour? You will get people who don't pay, don't know what they are doing, and are hard to work with. Don't change anything except your rate (e.g. $150 an hour) and you will see completely different clients.

I personally work only off retainer at a rate of ~2k per day. I think for my line of work this is on the lower end. Retainer must be paid upfront. I have fewer, but longer lasting clients and projects. I am VERY good to them. I believe I approach the freelancing game different than most and it nets a lot of referrals. I often turn down work and I am a stickler on who/what I work on.

NOTE: 90% of the time I work for myself solo and 10% of the time I freelance, mostly out of the desire to get new perspectives and work with others.

<comment><USER3> Someone coming in cold to freelancing will spend time building up to this level.

They may need to take $50/hr jobs for a few months to build up a portfolio and references, and gradually raise your rates. Good, reputable clients will stick with who they know before hiring someone from the 'outside'. After that, referrals from their current contractors, then friends at other companies. You'll be working at this tertiary level for a while when you start. It sucks, but you just have to put in your time.

As a general rule of thumb, I also do not recommend taking gigs with individuals. The line can be blurry, but generally 'guy with an app idea' is not anyone you want to work with.

<comment><USER4> For a freelancer that is just starting out, would you recommend getting payed hourly, on a project-as-a-whole basis, or some other method?

<comment><USER2> Another method you might consider is milestone based payment. You have a project-as-a-whole cost but have set milestones and when they are met you get paid. This is nice for both parties at the beginning of a relationship to "test the waters". If they flake out on you, you aren't out as much time. They also have less risk.

You can get creative with how it is broken up as well. I've taken the approach before of having the first few milestones be less expensive to get a foothold and get them "hooked" on my skills. At the same time, I am evaluating them on communication, requirements, and how we work together.

FYI: Retainer based pay is usually a hard sell to make but once they do it, they love it. I have yet to have a client not want to do it after we have started down the path. However, I have had several potentials deny me outright. Since I do freelancing part time this is okay by me. I really favor long term/large clients. The hustle of getting clients is annoying to me. I'd rather give a decent discount (e.g. 35k vs 60k) for a client who knows they will use a whole month of my time (all I do per year). When I did the cost analysis, it was about even. However, I'd rather be coding than marketing another client.

<comment><USER5> I second the milestones idea. I used to do this back when I was freelance web developing and it helps the client feel more comfortable knowing they're paying as they see progress. (Helps you a ton too cuz you get money as you go along).

This was one of the major features of my new startup matchist (<http://matchist.com/talent>). You create milestones for your client and they prefund each milestone before you start working on it. Once you're done, we release the payment to you.

Works great for both parties.

</comment></comment></comment></comment></comment><comment><USER6> I don't consider myself to be the average freelancer. Due to my marketing skills. Still, I will talk about the specifics you asked about.

1\. I do take more than one project at a time. Usually one big (more than a month's work), and one small ( less than a month's work). I have no problem meeting deadlines.

2\. Depends, and is negotiable. I will say that my rates a a hair under average for California. I do this because I work remotely and avoid flying in (but will do it if I have to).

3\. I am an American doing remote work from the Caribbean.

The biggest issue freelancers have is that most don't know how to properly market themselves. They tend to think that an ad on HN will be enough to bring in high six figures (it won't). You have to have a good marketing system going on for you. After many requests from other freelancers, I'm about to offer such a system. But its has not launched yet. If you want to know more, just send me an email. The system is built around getting good leads from different boards, email marketing, and content marketing. It took me to almost broke, to , well, a very, very nice place in about 7 months. Anyhow, just email me. Others, keep posted for the launch.

<comment><USER7> Do you freelance as a programmer, or as a marketer? It's not clear from your post.

<comment><USER6> I freelance as a programmer. Used to take a limited amount of clients for marketing consultations, but not anymore. Too busy with my own startups.

</comment></comment></comment><comment><USER8> qzxt,

I've been thinking about getting my feet wet with freelancing lately. Like you, I have 2 years Python/Django experience and am pretty good with front-end stuff. If you want to discuss partnering up, shoot me a message. (email is on user page)

<comment><USER9> While freelancing is perhaps more work than the standard 9-5, it sounds like it can be more rewarding. I'm in the same realm as you, django+front end work, but it seems like a big step to take to move completely to freelancing. If you have something in mind you are welcome to send me a note.</comment></comment>


How do bring in influencers for your startup – Justin Kan - <AUTHOR> https://askwhale.com/q/91d0fc/bringing-in-influencers-was-probably-important-for-both-twitch-and-whale-at-the-beginning-how-do-you-begin-forming-relationships-with-influencers?_branch_match_id=315161835209892407 <comment><USER2> Offer something valuable for them. Do their work, make quality content they can share. Do not try to use them in a bad way.</comment>


Show HN: SnapEDA partners with TE Connectivity to speed up electronics design - <AUTHOR> http://snapeda.com/org/te <comment><AUTHOR> Hi HN,

When designing circuit boards, engineers waste days making digital models (like symbols & footprints) for each component in their circuit board designs.

Some components such as connectors, are particularly challenging to create models for due to their non-standard shapes, pitches, pads and cutouts. Just one of these components could take hours to create, and requires deciphering complex computer-aided design (CAD) drawings, which is a very tedious and error-prone process.

Today we're excited to announce a new partnership that is making over 25,000 new free models available to electronics designers. By partnering with TE Connectivity, we've been able to bring thousands of elecromechanical models to designers for free, including connectors, switches, relays, and sensors.

Best of all, we've made them available in nearly every PCB design format, including Eagle, KiCad, Altium, Cadence OrCAD & Allegro, Mentor PADS, DXDesigner, PCB123, and more.

Unlike other models you might find scattered across the web, or even within your PCB design tool, we do things a bit differently: 1\. We show which standards the model was made with (IPC or datasheet recommendations) 2\. We run each model through our automated verification technology to catch common manufacturing issues before they cause costly prototype iterations 3\. We allow engineers to flag potential issues on each part publicly for the entire community to see.

For any hardware designers out there, we'd love to know what you'd like to see next!</comment>


An open letter to YC (and silicon valley in general) - <AUTHOR> https://www.ryanmercer.com/ryansthoughts/2018/10/30/an-open-letter-to-yc <comment><AUTHOR> This likely won't be well-received here. _shrugs_</comment>


Show HN: Particle Simulation with OpenGL compute shader – 8M particles - <AUTHOR> https://github.com/MauriceGit/Partikel_accelleration_on_GPU <comment><USER2> Nice! It's a bit unfortunate that OSX doesn't support OpenGL 4.3 which is needed for this project. It currently only supports OpenGl 4.1. I'm currently toying around with a similiar project where I would have enjoyed to try out compute shaders.

<comment><USER3> From what I've read, you can get pretty good performance on an iPad Pro. Here's 8M pixels:

[http://flexmonkey.blogspot.com/2015/11/a-first-look-at- metal...](http://flexmonkey.blogspot.com/2015/11/a-first-look-at-metal- performance-on.html)

The author provides the source. Portable to the Mac?

[https://github.com/FlexMonkey/ParticleLab](https://github.com/FlexMonkey/ParticleLab)

<comment><USER2> It's an XCode project: I'm pretty sure it works on Mac. However the code uses Metal, which does not have a C/C++ API. I'll wait for Vulkan to be available on Mac.

</comment></comment></comment><comment><AUTHOR> If you like it, I will record and post a video of it this evening.

<comment><AUTHOR> There you go :)

[https://vimeo.com/151682787](https://vimeo.com/151682787)

</comment></comment><comment><AUTHOR> All right, here is a small video of the simulation:

[https://vimeo.com/151682787](https://vimeo.com/151682787)

But after all this recording, converting and uploading, the quality is a bit down... If you like it and have the necessary hardware, I would recommend to just run it yourself. Looks a lot better :)

</comment><comment><USER4> "In the future, we are committed to bringing it to other platforms, starting with Linux..."

Nice to see a change of heart.

<comment><AUTHOR> It kind of is Linux ;)

</comment></comment><comment><USER5> What are some cool snippets of code in this repo? I realize A) that's a loaded question and B) it's all very cool. Just curious if any readers have come across any "Whoa that's cool" parts of the codebase.

<comment><AUTHOR> I won't know, if you find some^^

I consider myself as decent (but not genius) programmer and you might find some cool code snippets, but probably not in this project ;)

For me this was more about the endresult and getting compute shader to work. Never considered publishing it really...

</comment></comment><comment><USER6> a video would be cool. nobody is going to bother to get the code and build it, especially in the state its in.

i'm not really sure what this proves beyond the power of the hardware. there are no clever tricks here that i can see beyond 'keeping it simple' but even then... its not so simple as it could be either.

<comment><AUTHOR> Yes, you are right, it is more like a proof of concept for myself. And as it seems, there are people (similar thread on Reddit), for whom it might help.

Just wanted to share, as there were not too many working projects out there with compute shaders. And it would have helped me :)

<comment><USER6> ok, that makes some sense. it can be hard to find resources if you are looking for tutorials, examples or guides rather than specifications... not just for this but in general.

the trick imo is to learn not to require those things... which you seem to have managed. but you are right that its a lot easier not to have to work stuff out from the basics. :)

</comment></comment></comment><comment><USER7> How long before a nodejs based on chakraCore ?

<comment><USER8> Already exists: [https://github.com/Microsoft/node](https://github.com/Microsoft/node)

<comment><USER9> How long till the 2nd one exist?</comment></comment></comment>


An idea to stop Nigerian scams - <AUTHOR>

If recipients of Nigerian scam emails all responded (or, to be realistic, if a lot more than normal responded) to the senders, considering the goal is to make a list of gullible recipients, I think this would sufficiently break their business model.
Thoughts? <comment><USER2> Yes, but there isn't any motivation for any person to asnwer them, so that behaviour won't emerge. Lots of people troll them: [http://www.reddit.com/comments/gim2k/i_scammed_a_nigerian_sc...](http://www.reddit.com/comments/gim2k/i_scammed_a_nigerian_scammer_a_couple_of_years/)

<comment><USER3> Clearly we should make it an automated feature of the "Report Phishing" button in Gmail.</comment></comment>


Opinion Space - <AUTHOR> http://opinion.berkeley.edu/

<comment><USER2> More interesting than flattening the set of opinions down to two dimensions would be to see how many dimensions there really were.

Another problem is that people who answer the miniessay question with a negative response get their answers rated lower, because saying "No" isn't as attractive an answer as "Yes, because ...".

</comment><comment><USER3> Exchanging ideas? No way. Interesting viewpoints, if they stand out at all, will manifest as odd data points that are indistinguishable from user error. This is only useful for studying large groups of people in aggregate and characterizing them according to ideas already understood by the experimenters.

I.e., it's just a fancy way of gathering and visualizing polling data, and it doesn't seem very original. What are the odds that political consultants _haven't_ already applied PCA to polling data (and probably been disappointed with the results)?

</comment><comment><USER4> I hate RIAs. The feeling seems to be mutual as the app just went blank after the first message box.</comment>


Crafty POSTBOX Jump On Sparrow Opportunity - oscar-the-horse http://www.horsesaysinternet.com/marketing/postbox-jump-on-sparrow-opportunity/

<comment> oscar-the-horse TheNextWeb have also featured this story, with my image (giving me attribution):

[http://thenextweb.com/insider/2012/07/21/email-app- creator-p...](http://thenextweb.com/insider/2012/07/21/email-app-creator- postbox-buys-a-promoted-tweet-to-attract-sparrow-users/)</comment>


Show HN: iPad RSS Reader App I spent 7 months on - <AUTHOR> http://itunes.apple.com/us/app/read/id448477454?ls=1&mt=8 This was my first attempt of making something truly appealing and useful. I've learned a lot and I'm pretty happy with the result. What do you think? <comment><USER2> I am personally using Reeder on my Mac. <http://reederapp.com/> and planning to buy its iPad app when I get my iPad. It is because it integrates with Google Reader very well.

The reason I use it is, Google is doing RSS aggregation really well. It is robust, fast and gets the pubsubhubbub pushes really quick so that I can see new stuff in seconds.

I think this app can be great with Google Reader integration, because it has a better UI than Reeder for iPad. But I think many people don't trust adding hundreds of RSS feeds to a mobile device instead of a cloud-hosted service (Google Reader).

Good app, you're doing good.

<comment><AUTHOR> I really like Reeder for iPad - it's certainly one of the best solutions is you want to follow your suscriptions from Google Reader. But Read is something that is more relaxed - more casual. There's no unread counter, you just pick it up and find interesting content. And there's the fact that their API is still unofficial. I did consider it for a long time, but in the end, I decided against it.

<comment><USER3> Please reconsider. Being able to sync my feeds with other apps is very valuable to me.

<comment><USER4> I agree. Your app looks like a much better rss reader than the ones currently out there but if I can't sync it to google reader I won't use it.

<comment><AUTHOR> I'll have to wait and see; Google is currently redesigning Reader's interface and they haven't really responded to my questions about the future of the API

</comment></comment></comment></comment></comment><comment><USER5> This looks good, congrats on getting it out there!

Does it autodiscover feeds on sites you visit? Can you subscribe in-app? Those are the things that I've yet to find in an iOS feed reader - I seem to have a very old-fashioned "if someone's interesting subscribe to them" workflow, instead of this new-fangled "if something's interesting, send it to instalaterous" thing that is everywhere now.

<comment><AUTHOR> There was a beta test over the past month - I should have included you. They are both very interesting features and I'm going to take a crack on trying to implement them in the next releases.

</comment></comment><comment><USER6> I highly recommend that you consider having a designer (or a different designer) take a stab at your icon. It's the first thing people notice when looking at your app, and right now it's pretty unappealing. The app itself and your website look a lot better -- bring the icon up to that level and I think you'll do much better.

<comment><AUTHOR> I would love to, but I'm all out. If the app is successful, I'll certainly change a few things and amongst those, is the icon top priority.

<comment><USER7> My thought on the icon: Get rid of the paragraph symbol and keep the rest, maybe add two more lines of text to the page behind the paragraph symbol, to make the top/bottom border slightly thinner. At least, for now, until you get a designer to make you a new icon.

Other than that, the app looks nice, and its on my list of apps to play around with over the weekend!

</comment></comment></comment><comment><AUTHOR> I just wanted to thank everyone for the compliments. In case anyone is unable to buy or is really curious about the app, send me a tweet @mmackh and I'll provide you with a promo code - as long as I have any left

</comment><comment><USER8> Nice icon and name but not a fan of the typography. Where do the articles come from? I don't know where this fits in my life.

I love Reeder, it's a great app. I also enjoy Zite and Flipboard for taking the news posted on twitter.

<comment><AUTHOR> Thank you - I've gone through seven revisions until I finally came up with this one. The standard user interface font is TimesNewRomanPSMT, but you can change the reading font to: Baskerville, Palatino, Optima or GillSans.

The articles come from standard RSS feeds. Clear Read is a term I coined for downloading and de-cluttering the full article - it's very similar to Readability in Reeder.

</comment></comment><comment><USER9> The iPad is all about user experience. I like the design,typ and details like the dingbats in the title field. Keep up the good work.

<comment><AUTHOR> Thank you!

</comment></comment><comment><USER10> Looks promising. How did you get the name? I'd expect after millions of apps, a name like 'Read' would already be taken.

<comment><AUTHOR> Pure luck - I registered it back in July, and somehow I managed to send it off in time.

<comment><USER10> Haha ok, congrats :)

</comment></comment></comment><comment><USER11> The icon looks practically idential to PlainText, the text editor for iPad but with a thin black bar top & bottom.

<comment><AUTHOR> I had no idea - I use that Pilcrow sign everywhere. I plan to update the icon in future revisions though

</comment></comment><comment><USER12> I was working on something like this last year. Took ages and eventually didn't work out.

How did you do the scraping?

Congratz on launching!

<comment><AUTHOR> Thanks! When you tap Clear Read, the article's link is sent off to a server, which then returns the article's body in XML + formatting and images.

<comment><USER13> So you have to see the gunk page first, and then the clean version after?

I'm looking for an RSS reader that defaults to the "Reader" or "Readability" type view without the extra click.

Currently, I use Reeder.

<comment><AUTHOR> You see the text from the RSS feed first, albeit without any HTML, then tap on Clear Read to enable the full-content view.

</comment></comment></comment></comment><comment><USER14> Can't seem to get it in the UK store...

<comment><AUTHOR> It just passed through Apple's review. It should be going through the App Store today, but there's always a delay...

<comment><USER14> I personally use byline, but like to try other.

<comment><AUTHOR> I haven't used Byline myself, but judging from its features, it is much more of a power user tool than Read.

</comment></comment></comment></comment><comment><USER15> Dude, why rip off Instapaper for?</comment>


App Automatically Cancels and Sues Robocallers - <AUTHOR> https://www.vice.com/en_us/article/4agak3/this-app-automatically-cancels-and-sues-roboallers <comment><USER2> The app admittedly can do nothing about overseas callers. I feel as though those are the large majority of scam calls I receive.</comment>