Hacker Newsnew | past | comments | ask | show | jobs | submit | chton's commentslogin

That's why it's important that it's a one-time donation, not a recurring additional paycheck. If you give 'the poor' an additional paycheck, yes, it will have an impact on the willingness to work and save. If you give them a one-time donation, on the other hand, they can use it to improve their lives in the longer term, without reducing work. That's what the data (as quoted in the article) shows.

I believe the reasoning for why that should be goes back to the cycle of poverty (http://en.wikipedia.org/wiki/Cycle_of_poverty). It's harder to make more money if you don't already have more money. By giving a one-time lump sum, you give people the opportunity to dig themselves out of that hole. Eating better, dressing better, buying things that last longer, these all have big impacts on how much one can save and earn. Even getting some basic education helps enormous amounts. In the end, it might even lead to people being more willing to work harder and actively save more money.


What's important is that it be an unconditional donation, not that it not be recurring. Yes, a one-time gift is (usually) not contingent, but you can also have recurring unconditional income that's not means tested.

Take out the means testing, and you remove the incentive not to work. They can still work, and, if anything, it lets people get out of the psychological hole where they have to make decisions that aren't utility-optimizing in the long term just in order to survive.


> That's why it's important that it's a one-time donation, not a recurring additional paycheck

It can only be a one-time donation if no one ever does this again, so that's basically saying, "it's important that this whole model of charity never becomes so dominant as to give people multiple kicks at different cans of the same type."

The problem with long-term poverty is rarely lack of money as such. It is lack of access to capital (which is a different issue) and most importantly lack of the rule of law (which makes access to both money and capital difficult.)

There are charities that promote the rule of law (Amnesty, World Justice Project) that are more likely to change things in the long run than charities that respond to immediate needs (athough I'm all in favour of people supporting both.)


Yes, but if the program becomes well known and expands in scale, some poor people may think there is a chance they will become grant recipients, and this could affect their work effort.


Today, not very many places. I can imagine a scenario where you want a large group of these to crawl through rubble to find people stuck under it. Most research like this comes with the hope of miniaturizing it enough for medical applications. Imagine this thing, but the size a grain of sand: entering your bloodstream, adapting to whatever task that needs to be done, and when it's finished moving to the stomach to get dissolved. In those applications, using external power makes complete sense, since it's a medical setting anyway, and it provides a great way to keep very fine control.


Just a note on 2.: If your onetime price is equal to just 6 month subscription time, you're going to lose money. Either you're lowballing your onetime payment, or making a subscription too costly. Consider a case where you offer both at the same time: Unless the costs associated with self-hosting are incredibly high, very few people would choose the SaaS option if they can save 6 months of budget on the first year. In this case, I would increase your price to at least a year of SaaS subscription.

As to your original question: Unless your software is special in some way that you don't want anyone to find out about, you can offer both SaaS and self-hosting at the same time. My advice would be to do that, but use a yearly-license model for the self-hosting. Calculate the costs a self-hosted version would cost in total to a client (license, hardware, maintenance etc.), and make the SaaS version slightly cheaper than that.


In addition to the great ones already listed on the link and in the comments here, I'd like to list 2 of my favorites:

* Simple.Data: https://github.com/markrendle/Simple.Data , the smallest and simplest ORM you'll ever use.

* Hyperletter: https://github.com/Jiddler/Hyperletter , a very easy way to do inter-process communication. Great for writing distributed software over http, but can be just as useful locally.


The best practices are going to be somewhat language-dependent. In general, the least confusing style is the one that is already used widely in the application you're writing.

If it's up to me to decide a naming system (I mostly do C# professionally), my boolean-returning methods will be in the form of a tiny question that has a yes or no answer:

    IsEntityPersisted()
    WasActionPerformed()
    IsFooOfTypeBar()
etc.

For variables, local values and method parameters, the names will be similar, but in the form of a true or false statement. The equivalent would then be:

    entityIsPersisted
    actionWasPerformed
    fooIsOfTypeBar
The important thing in both cases is to name the boolean for what it means, why you'd set it to true or false, not for how you intend to use it. Compare:

    if(logicFlag)
    { 
     //do something
    }
vs

    if(actionWasPerformed) 
    { 
     //do something
    }
Clarity in a naming schemes is all about making it clear what something means in the context. I know that sounds like a tautology, but there is a difference between "what something means" and "what something does in the application". If you manage to make the meaning clear, the reasons for what it does will become clearer too. The reverse is rarely the case.


Thank you for this succinct explanation. Very clear!


My pleasure. One thing I forgot to mention is that I try to never use negatives in boolean names, both for methods and variables. The moment you start with "IsNotXXX" or "HasNoXXX", you're creating a new way to potentially confuse future readers. If you can, always try to find a positive way of expressing the same, it'll usually be less ambiguous. If it really is necessary to express a negative, perhaps because the reverse is too broad or hard to formulate, it's usually better to invert the meaning of the boolean entirely. So instead of

    if(IsNotFoo) {}
you can do

   if(!IsFoo) {}
It's a simple thing, but it can save you valuable time and brainspace at some point in the future.


That's because you can conceptualize what happens through your experience and knowledge. For a newbie, a slight benchmark increase doesn't mean anything because they can't tell what the impact of it is, why it is important.

Closing the feedback loop between typing and seeing a cool result is one of the best ways to get people excited about coding. If 3D or AR helps with that, it's definitely a good thing :)


I'm 100% with you - if it gets new people excited then I'm all for it!


I can't speak for the Surface 3, but I have owned a Surface Pro 3 for a good while now. I _never_ use the trackpad. Browsing, office, even doing software development can all easily be done using finger and pen (for when you need finer control). I've gone so far as to check if there is a Type Cover for it that doesn't have the trackpad, but uses the space for something else.

I know it's the popular thing to say that Windows 8 isn't fit for touch devices, but it's outdated and usually only reiterated by people who don't have any proper experience doing it.


That is the case. All the way at the bottom of that page: [6] Surface Pen sold separately.


Mechanical keyboards are like the whiskeys of the keyboard world. They're not for everybody, and can be an acquired taste, but there's a huge amount of people who swear by them. They're also a premium product, so there is a bigger barrier to entry than the normal products.

To me, a mechanical keyboard has been brilliant. I bought a Razer Blackwidow a few years ago, and haven't looked back. It's much easier to type quickly on than a non-mechanical, because every sensation of it is so defined and fast. As a programmer, that means the connection between my brain and my computer feels more natural.

However, I know programmers that can't stand the increased sound and don't need or want the speed.

If you can afford to buy a keyboard on a whim, I would say "try it and see". The only way to know if it is for you is by trying one for a while and weighing the benefits against the negatives. Even if you don't particularly like it over a regular rubber dome or ergonomic keyboard, at least you'll have a premium keyboard that will last you a long time and will be better constructed than most.


I've been using shumway for a while now. Thank you so much for making my web browsing experience lighter and faster. It's a huge improvement.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: