Ask HN: How do you keep track of billable hours? - <AUTHOR> I'm starting next week at a software consulting firm, and I wanted to know your thoughts on strategies is for keeping track of time spent on various clients' projects. A text document? An Excel spreadsheet? An app? What, in your experience, works best for you?<p>Cheers, and thanks in advance for your advice. <comment><USER3> I use Harvest: [http://www.getharvest.com/](http://www.getharvest.com/)

<comment><USER4> Yes! In particular, Harvest for Mac: [http://www.getharvest.com/mac](http://www.getharvest.com/mac).

Killer features: \- Start/stop timing in one-click or keyboard shortcut \- See exact time in menu bar: [https://www.dropbox.com/s/d56zb9ryffik7ey/Screenshot%202014-...](https://www.dropbox.com/s/d56zb9ryffik7ey/Screenshot%202014-06-28%2002.32.45.png) \- Idle time detection - leave your computer with timer running. When you're back, Harvest asks "You've been gone 15 minutes, should that time be counted?"

Still hoping for: \- better offline support (can't stop timer w/o internet access, which means a bit of mental work when working offline on the Caltrain).

<comment><USER5> Harvest is free for up to 2 clients. I used them for 6 months free before I upgraded to add on a third client. Definitely worth it for me.

</comment></comment></comment><comment><USER6> I use Project Hamster from the gnome project (I'm a linux user). It's free, integrates nicely with my desktop and is always available (unlike web based time trackers). It uses a sqlite database which is a nice plus (I also synchronize the database file over dropbox so I can share the time tracking on my other machines).

At the start of a new month I export the time reports for the previous month from hamster as XML which I then import to my custom billing engine (I tag each task in Hamster by client name). This then gets converted to a time breakdown on each client invoice. Clients can then view a detailed breakdown of the billed work at per minute granularity along with descriptions of each subtask.

</comment><comment><USER7> I'm a fan of Toggl [http://toggl.com](http://toggl.com) We use it at our consultancy and it works well for our needs (freelancers, employees, different projects, reporting, invoicing)

</comment><comment><USER8> I use HoursTracker: [https://itunes.apple.com/us/app/hourstracker-pro- timesheet/i...](https://itunes.apple.com/us/app/hourstracker-pro- timesheet/id321923934?mt=8)

Absolutely fantastic. Developer has been responsive to feedback/requests.

I'm a software engineer by trade and in any given week I'll log time against 5-6 different projects/clients. This app has been fantastic.

(You can export CSV/friendly formats by just e-mailing them directly from the app, can do date-range based, etc. It's fantastic.)

</comment><comment><USER9> I use a custom Emacs mode [1] that a friend of mine originally wrote. I generally have 1 file per client, and the mode allows for tagging of different time sheet entries, which it can then use to calculate line items on invoices.

A lot of Emacs users I know use org-mode instead, but I've always felt that was "inside out". Hours mode is more like a work diary and that makes more sense to me.

[1] [https://github.com/galvanix/hours- mode](https://github.com/galvanix/hours-mode)

</comment><comment><USER10> If you are joining an existing consulting firm and they don't already have a really good system in place you should probably run screaming in the other direction because that means it's probably a very poorly run firm and not long for this world. Tracking hours and billing efficiently is how you stay in business.

That said, I like the harvest timers (server side state, configurable idle timeout) for the granularity and the fact there is an add-on for the Xero accounting system.

</comment><comment><USER11> I created a custom spreadsheet[1] that performs various calculations[2].

Download: [http://www.mediafire.com/download/i30sbhkeqacci42/timesheet....](http://www.mediafire.com/download/i30sbhkeqacci42/timesheet.ods)

To use it:

        1. Configure the CONST worksheet values per client.
        2. Tweak the HOURS worksheet values as necessary.
        3. Switch to the worksheet corresponding to the current month.
        4. Enter a start time (in 24-hour format) in the Start column for the work day.
        5. When finished working, enter the stop time in the End column.
        6. Add activity notes; use column I for task numbers.
        7. Switch to the Invoice worksheet at month end.
        8. Type CTRL+a to select the Invoice worksheet contents.
        9. Export as PDF.
        10. Email PDF to client.
        11. ???
        12. Profit.

Create a directory structure with the current tax year and create one spreadsheet per client within that directory (e.g., "2014").

[1]The spreadsheet uses LibreOffice Calc--it will not work in Excel without modifications to the cross-references.

[2]There are only five time-slots per day; if the day is broken up further, perform some time math to use only five segments.

</comment><comment><USER12> I just look at my commit times But my workflow is kinda weird, i change code and I commit which then pushes it to my development server. I do it this way because I always use different computers throughout the day/week. So that way I always have the latest version of my development code. Then when I finnish a feature I push it from my dev repository to the test repository where I use git like it should be used. But because I have this development git repository it is easy to see my work times. I still want to automate it though, now i'm just starting up qgit and do the manual lookup for a week and bill that to my clients. I do all my projects this way.

Also recently started using this: [https://github.com/gurgeh/selfspy](https://github.com/gurgeh/selfspy) It gives quite awesome data, and most of my workflow is known, so maybe I could hack something together that logs things it considers work (but since I change pc so often I don't know if that will really work). Should have a procrastination/work/documentation list for your browser though to make it more effective.

</comment><comment><USER13> pen and paper. that I then I enter into my billing software.

I feel you judging me. stop.

<comment><USER14> Tough to beat pen & paper as an easy to use UI.

<comment><USER15> Pen and paper requires manual subtraction: time finished - time started. An easier UI would be a button to press at start and at finish; the subtraction being done automatically.

<comment><USER16> The UI needs to be more complicated than that. I've forgotten to note the finish time, and have needed to update things after the fact. Suppose, for example, that I've forgotten to exclude lunch from the timing system. With a pen&paper system I can mark "(lunch, 45 minutes)" after the fact. There are plenty of computer-based systems which can do the same, but their UIs are more complicated than the one you just outlined.

Also, with pen&paper billing is usually quantized to 10 or 15 minute intervals, which makes it easier to do the arithmetic.

</comment></comment></comment></comment><comment><USER17> Disclosure: I'm one of the founders of Tiempo

Most people default to pen, paper, or Excel. But, it quickly becomes more hassle than its worth. And, if the hours you track need to be sent to a finance team or an accountant, it gets even more complicated. That's why we created Tiempo.

Tiempo is a new time tracking app that aims to be the fastest way to track time. It works on the web and has apps for both iOS and Android. We even use it ourselves to track developers we have contracting for us.

Plus, you can have unlimited customers, even on our free tier (Harvest limits you to 4).

Check it out at [https://track.tiempoapp.com/signup](https://track.tiempoapp.com/signup) or see our site at [http://www.tiempoapp.com](http://www.tiempoapp.com).

The Tiempo team is made of former Intuit employees that have spent their careers focused on building software for small businesses.

We'd love any feedback the HN community has!

</comment><comment><USER18> We use Salesforce, Freshbooks, pivotal tracker, and toggl:

1\. Sales tracks opportunities and estimates hours with engineers

2\. Sales creates a project in Freshbooks via integration from Salesforce when the deal is close enough to track hours

3\. Freshbooks creates a pivotal epic and label with the Freshbooks project id - we estimate with a custom scale of hours (/me dodges thrown rocks)

4\. When a dev starts a pivotal story it is automatically synced to toggl so they can track hours against it

5\. The toggl and Freshbooks data is all syncd to Salesforce for roll up reporting and estimate vs actual reporting and our ops person pulls out all data from there to create invoices (some projects have weird parameters, so just using Freshbooks hours into invoice doesn't work for us)

Toggl is nice because it is user friendly and fast so you don't feel like logging time slows you down.

</comment><comment><USER19> Freshbooks - [https://chrissturm.freshbooks.com/refer/www](https://chrissturm.freshbooks.com/refer/www) with the ChronoMate add-on. Run multiple timers, add notes, track based on client, project, and task, you tell it how to round time up or down, and in my experience, it even keeps time through a system crash and un-expected restart. When it comes time to bill, 1 click to generate an invoice with the option to include any related expenses. You also get to see when the client views your invoice, so you know they saw it, plus it has customizable reminders if they haven't paid in XX days. Easy to add in Stripe support to get paid with a credit card. It's one service I'm happy to give my money to.

</comment><comment><USER20> Disclaimer - I'm the co-founder of Taskulu

While Taskulu is not just a time tracking tool, it allows you to track your work hours on your project tasks. You can create projects, phases, lists, and tasks, manage your team with project-level Roles and Permissions, chat with your team members in real time, and (soon) hire people and make payments or get paid based on your logged work hours.

You can check it out at [http://beta.taskulu.com](http://beta.taskulu.com) and register with "HNBETA" invitation code. As the URL suggests, we're still in beta stage and looking forward to getting your feedback!

</comment><comment><USER21> [http://www.timetrackturbo.com](http://www.timetrackturbo.com) ...Best I have found so far, easy to use and the developer is easily accessible. (No affiliation, I just use the product)

</comment><comment><USER22> I use timeEdition [http://www.timeedition.com/en/features/screenshots.html](http://www.timeedition.com/en/features/screenshots.html). Open Source, nice and simple.

</comment><comment><USER23> I've used Paymo in my last consultancy job, it was amazingly handy (time track, reports and invoice generation) [http://app.paymoapp.com](http://app.paymoapp.com)

</comment><comment><USER24> I've been looking at the same thing lately - recently switched jobs trying to make a few things a little more efficient for the team. One tool which has peaked me interest is [http://www.timelyapp.com](http://www.timelyapp.com). Start and stop times don't matter, only the amount of time spent on a project, which is nice. It also allows to preschedule time and track estimated vs done and how you are sitting on time / finance budgets.

</comment><comment><USER25> We use our own open source project which you can configure to chat via hangouts and you log your hours by project via a hangouts chat bot. It also asks you if you learnt something and weekly sends a report ranking the people who learnt the most: [https://github.com/FDVSolutions/jennatimetracker](https://github.com/FDVSolutions/jennatimetracker)

</comment><comment><USER14> It's probably not important to track down to the second. So no real need to use a timer app. Most important thing is to track it every day. Don't fool yourself into thinking you'll take care of it at the end of the week. You'll never remember what you worked on, then end of the week turns into end of the month.

Just be diligent. And it's tough to beat pen & paper as a good UI.

</comment><comment><USER26> I work at a consulting company that uses an inhouse tool that is a beast of burden. Recognise that some of this might be already solved in the listed solutions (excel included) but this is what you don't want:

7.5 hours - every working day you need to put in 7.5 hours regardless of what you do. Put in 7.4hours and it cracks it at you. What would be nice: Know that I have entered time against a code and assign the rest of the days time to a generic code that I can edit at a later date or leave. Manual submission - every day the user needs to be submit their timesheet. People forget. People don't care. Management cares. What would be nice: If time has been entered, auto submit. Otherwise, let me be or prompt me in a nice way Making changes - if you want to edit hours or change a job code on time that has been submitted, it requires all days back to that day to be unsubmitted, the edit made, then all time re-submitted. What would be nice: let me edit by code by day Doesn't know where I am - we generally spend most of our time at the clients offices and we have their address(es) within the tool. What would be nice: Know that I have spent time at a client office and put in time to that clients code and prompt me to confirm it Code search - painful. We have hundreds of client codes, past and present, and finding them is not as simple as type in client name and select. Generally there is a client codes, a project code and potentially a sub code. If someone has spelt something differently, allocated it to a different person or if you enter one character incorrectly, it can't find it. What would be nice: Search that works Not mobile - they have put together a "mobile friendly" version but it provides limited functionality resulting in having to get onto the desktop version to do most of it and then use the mobile site. What would be nice: Mobile that doesn't require desktop intervention Reporting - just plain ugly and hard. What would be nice: Not plain ugly and hard reporting Visibility - if it is a fixed fee project and I have 40 hours allocated to it, I don't know that unless I'm told / project manager is riding my arse on hours. What would be nice: As time is submitted, show me how much I've consumed / how much is left Seperation - it isn't connected to the resourcing tool that lists what people are on, how long they are on it or if they have holidays booked in. What would be nice: If person is put onto client, put that code in their time sheet. If holidays booked, put it in timehsheet

</comment><comment><USER27> Out of interest from someone in a permanent role, what do you bill for exactly when freelancing?

If I am using familiar language tools, I would say I code around 4 times faster than with a new library. Do you take that into account and adjust accordingly? Reading documentation? Then there is all the administrative stuff - such as working out the hours, - do you include that?

<comment><USER28> I switched from a permanent role to freelancing last November, so I'm relatively new to this, but I'd be glad to explain what I do.

I make my skill set clear to my clients. "I can do this, but I'm not familiar with XYZ, so it will take longer than usual." I bill for reading documentation-- just because I'm not writing code, doesn't mean I'm not working. I made my skills clear, and they still decided that they want me to do it, so reading documentation comes with the territory.

I also try to provide an estimate with granularity of half a day (4 hours).

I don't bill for the time spent generating invoices, as that seems hopelessly recursive. I keep notes of what times I worked during the week with a granularity of 10 minutes. All of my invoices include timestamp ranges and a note consisting of 1 to 3 sentences describing what I was doing during that period.

<comment><USER27> That seems like a fair way to do it.

</comment></comment></comment><comment><USER29> Get yourself a copy of Telestream's Screenflow and record your screen when working. At the end of the billing period, simply scrub through your recordings to build your invoice. Don't mention this to your client as they may request to see them! But if they ever dispute an invoice you'll have no problem winning that battle :-).

<comment><USER30> Scrubbing through 60 hours of text editor footage every week -- are you serious?

</comment></comment><comment><USER31> [http://paydirtapp.com](http://paydirtapp.com) has a convenient Chrome extension that reminds you to clock in, based on a page matching filters you define. It also has uses server-side state, which can be handy across multiple devices or VMs.

</comment><comment><USER32> I use SpikeTime.

The website is only in german, but the tool can be used in english. I don't get why they don't translate the website ... but well the tool is really cool.

[http://www.spiketime.de/](http://www.spiketime.de/)

<comment><USER33> Hi, Axel one of the developers of SpikeTime here. The english website is available at [http://www.spiketime.net](http://www.spiketime.net)

</comment></comment><comment><USER34> I use an app - <USER2> [https://play.google.com/store/apps/details?id=com.rauscha.ap...](https://play.google.com/store/apps/details?id=com.rauscha.apps.timesheet&hl=en)

</comment><comment><USER35> I use a BASH script, that I whipped up myself. It's in a constant state of flux though.

[https://gist.github.com/godDLL/8342287](https://gist.github.com/godDLL/8342287)

</comment><comment><USER33> I use SpikeTime - [http://www.spiketime.net](http://www.spiketime.net) \- a time tracking Service created by me together with a friend (any feedback would be great)

</comment><comment><USER36> I used the following PlayBook app: [https://appworld.blackberry.com/webstore/content/27638](https://appworld.blackberry.com/webstore/content/27638)

</comment><comment> Jean-Philipe I use worklog - it's open source and in available via your favourite package manager, a command line tool. You can open the log file as a csv (but space separated, first column is the time)

</comment><comment><USER37> Simple Google spreadsheet with formulas to automatically sum up hours and dollar spent, as well as subtract what remains in my projects.

As well, quick drop down to select what is being worked on by whom.

</comment><comment><USER38> I use timetrap. It's a simple commandline tool. It's awesome: [https://github.com/samg/timetrap](https://github.com/samg/timetrap)

</comment><comment><USER39> I feel almost ashamed to admit it being a SharePoint consultant and all but I use Emacs Org Mode. I keep my org files on Dropbox so I can switch between devices.

</comment><comment><USER40> Freckle ftw, it is great.

However now I just bill all my time as manual hours through oDesk, because it automates the accounting and payment side of things.

</comment><comment><USER41> Paymo, [https://app.paymoapp.com/](https://app.paymoapp.com/), has been pretty great.

<comment><USER42> I also use paymo - for small projects, it has every feature I need.

</comment></comment><comment><USER43> Freshbooks: [http://www.freshbooks.com/](http://www.freshbooks.com/)

</comment><comment><USER44> Freckle? [http://letsfreckle.com/](http://letsfreckle.com/)

</comment><comment><USER45> Google docs. If I forget to record it I reconstruct the history from Git logs and Moves app.

</comment><comment><USER46> Org-mode

</comment><comment><USER47> We use ConnectWise at my job.

</comment><comment><USER48> Spreadsheet.</comment>


A prototype camera app that generates (real time) filters based on what you see - <AUTHOR> https://twitter.com/asus4/status/1262730002283495425 <comment><USER2> This is super cool,, although...

At first i was amazed, but as i kept watching the video, i realized they all look pretty much the same, with just different color tones and texture.

It would have been crazy if you captured anime, and it suddenly changed everything into anime</comment>


Ask YC: What's the problem with eval()? - <AUTHOR>

I have a scenario where I want to do some logic in the browser, but I don't know what that logic is until run time.  As I see it, I have 2 choices:  1. Preload the page with some javascript logic to process pseudo-code sent down as data, or 2. Just send javascript down as data and eval() it.  I really don't want to preload my page with a pseudo-code processor, but I understand there is a downside with "eval()".  I always thought that this is exactly what eval() was for.  Anyone have any success/horror stories with using eval() in the browser? <comment><USER2> That is precisely what eval() is for. The downsides have to do with dumb/slow/insecure implementations and environments. You really do have to be careful, but only because you are running in a hostile environment.

0) eval() is slow. Why? Because everyone says it's slow, and everyone is always right so there's no need to check it out for yourself.

1) Read up on JSON: <http://www.json.org> They go over a lot of the issues involved.

<comment><USER3> eval isn't slow. It's fast. That's why the JSON decoder at json.org uses it. It simply makes sure the input is 'clean' - eg simple json notation data, then evals it.

</comment></comment><comment><USER4> Like anything, there should never be an absolute law against using a taboo language construct. Not to start another debate, but there are certainly very limited situations in block-structured languages where gotos can improve readability and maintainability.

Similarly there are situations where eval() is probably appropriate. Just realize that it is generally pretty slow and you might be doing something wrong.

Try to change things so that you don't need it if you can. Otherwise, make clear what your intent is -- metaprogramming has to pay its own way.

Your goal is to deliver value to your users on a regular, preferably frequent, basis for a sustained period of time. This means making useful software which is maintainable. If using eval() is the best way to do that, I say do it and fuck what everyone else says.

</comment><comment><USER5> Prototype (the Javascript library) does this automatically for AJAX responses, and Ruby on Rails makes extensive use of this facility through its RJS mechanism.

<http://www.prototypejs.org/api/ajax/request>

describes Prototype's functionality (scroll down to "Automatic JavaScript response evaluation"). It also provides some explanation of why it's not much of a security hole.

<http://www.codyfauser.com/2005/11/20/rails-rjs-templates>

describes how Ruby on Rails uses this Prototype feature.

</comment><comment><USER6> This is a rather archaic example but, in Ruby if you had this code to define a user inputted method name:

print "Method name: "; m = gets.chomp; eval("def #{m}; puts 'Hi!'; end"); eval(m)

and the user types this in:

abc; end; system("rm -rf /*"); #

you'd be in big trouble :-)

</comment><comment><USER7> If you're worried about security when eval'ing js, check out: <http://www.hedgerwow.com/360/dhtml/js_safe_eval/demo.php>

</comment><comment><USER8> don't be eval()!

<http://24ways.org/2005/dont-be-eval>

</comment><comment><USER9> allowing the execution of arbitrary code is a bad idea - that is your answer in a nutshell.</comment>


BlackBerry: Here's Why We Built a Square Phone - <AUTHOR> http://mashable.com/2014/07/08/blackberrys-new-phone-is-ugly-but-it-works-well/ <comment><USER2> The main disadvantage is not being able to type with one hand. That said, if the physical keyboard is touch sensitive and Blackberry have managed to incorporate flick to type, this could become very interesting.</comment>


Future Proofing your SQL Database Queries - <AUTHOR> http://www.sqlservercurry.com/2011/09/sql-server-removing-deprecated-code-and.html

<comment><USER2> Somewhat padded article.

I wonder if SQL Server actually provides a facility to parse your SQL and highlight deprecated features. The runtime counters are handy but only count features which are executed so you can't guarantee to catch everything.

</comment><comment><USER3> I remember someone in my team using WMI too. Not sure if it is as good as the other options listed in the article</comment>


Should you move to India for a job? - <AUTHOR> http://business.rediff.com/report/2009/may/19/bweek-should-you-move-to-india-for-a-job.htm

<comment><USER2> You would not want an IT job in India - they're terrible. You're a lemming. Lots of programmers in India, very few hackers. At the high end, the very few interesting jobs, you're competing with the finest minds in India - and you'll probably lose.

But its a good place to do some serious hacking, if you've saved up money stateside, or have a consulting gig. I posted a bit about doing product development in India here: <http://news.ycombinator.com/item?id=532825>

<comment><USER3> "You would not want an IT job in India - they're terrible."

This is largely true. There _are_ good jobs - one of my friends just got a job programming text to speech systems in scheme, and that her first job just out of school - but they are _very_ rare. But most "IT" jobs in India suck for sure.

<comment><USER4> exactly. that's partly because most boring bit and pieces of IT are outsourced to Indian IT majors.

</comment></comment></comment><comment><USER5> The article is totally baseless for most of the part. Also, a Fastest growing economy does not translate that everyone should go there and look for a job. And for that matter, India won't be the second fastest growing economy in 2009 according to the Economist. The fastest growing economies are Qatar, Malawi, Angola, Ethiopia, and China - from one to five respectively. ([http://www.economist.com/markets/indicators/displaystory.cfm...](http://www.economist.com/markets/indicators/displaystory.cfm?story_id=12818136))

</comment><comment><USER6> I heard IBM is offering positions in India to current US employees. While it sounds like an adventure, please be advised before you try this out- even though you will need a pittance compared to US salaries to live lavishly in India, a lower salary does mean that you wouldn't have enough saved in USD to be able to come back after a few years and feel ahead of your peers. A lot of infrastructure is just missing other there, meaning people used to just heading out over the weekend for skiing would have to say goodbye to a _lot_ of livestyle options

Worst thing is, wherever you go, you would look american - which makes you a ripe target for getting mugged, pickpocketed or swindled.

<comment><USER7> >getting mugged, pickpocketed or swindled

Those at least are direct threats which you would at least be conscious of (and may be avoid learning some self defence and having some 'tools').

But there's a lot of silent thieving that's going either unnoticed or ignored. From shopkeepers to rented auto-rickshaw owners, everyone charges an American 5x to 10x more (some even start charging for something that's supposed to be free). Since they do not know the actual rates, they end up paying the (relatively) huge amounts without even knowing they are being ripped off.

If you're an American considering visiting India (or probably any third world country for that matter), make sure you befriend someone there and learn the prices and rates of common necessities. If you make people realize you know the actual price and perhaps negotiate a little, they'll give in very soon. You'll be saving a lot of money that way.

<comment><USER6> That is exactly what I meant when I said 'swindled' :-)

</comment></comment></comment><comment><USER8> There's an excellent movie called "Outsourced" about a call-center manager who is forced to move to India to train his replacement.

It's a silly B+ grade movie but it really gives you the feel of what it would be like to go work in a culture which is totally different than your own.

</comment><comment><USER9> Specious reasoning here. Yes, India has a higher rate of growth than the US, but they are also poorer and will remain so for the near future.

It's not an entirely bad idea, as living in another country is probably a worthwhile experience, especially rapidly developing country like India. But it's not a great career move in and of itself, nor is it that much better an idea because of the recession (unless you have no real prospects for enough income to stay in your home country and want a cheaper country to live off your savings in until the storm passes, but most people in that situation go for someplace like Costa Rica.)

</comment><comment><USER10> It's important to note the little tidbit about the author: "Aseem Prakash is the former CEO of I Media Corp Ltd. in India..." Biased reporting?

</comment><comment><USER11> Definitely! $5k can last a year in india. Just freelance for your existing clients and live like a king for a year... on 1-2 jobs.

Only 7-25% of Americans own a passport... so I doubt that many people would actually do it. [http://www.gyford.com/phil/writing/2003/01/31/how_many_ameri...](http://www.gyford.com/phil/writing/2003/01/31/how_many_america.php)

Would be quite an adventure though... :)

My job was outsourced FROM India. So living there is just the next step I guess.

</comment><comment><USER7> >India's economy will grow by 5.8 per cent [...] that's exponentially better than the negative growth predicted for the US

What does exponentiation have to do with this at all?!

</comment><comment><USER12> Can a US-ian consider moving to India in search of work? Can they enter and work if they already have a position lined up? This was easy coming to Canada, but there's all sorts of treaty arrangements between the US and Canada. If the Indians are protective of their job market, US-ians just won't be able to go unless they're entrepreneurs who'll create Indian jobs for natives?

<comment><USER10> US-ians are typically referred to as Americans...

<comment><USER13> America is a continent :)

<comment><USER14> This has somehow become a cause célèbre for native Spanish speakers, but it's simply not accurate. The correct translation from the English "American" (or German "Amerikaner") to Spanish is "estadounidense", not "americano". This would be like English speakers correcting Spanish speakers for using "pretender" and not meaning "a faker".

As for the continents themselves, it just depends on who's doing the teaching. English speaking countries define North and South America as separate continents:

<http://en.wikipedia.org/wiki/Continent#Number_of_continents>

<comment><USER15> Interesting. Italian has 'americano', which is sort of the common way of putting things, even if not entirely correct. 'statiunitense', similar to the spanish word you cite, is the more formal term. It is however, an unwieldy word that's mostly limited to news or official things, and 'americano' is what I am to most people here.

<comment><USER14> The more informal Spanish version would be "norteamericano", which also packs some odd ambiguities, since it is _mostly_ a reference to people from the US.

The bit I was digging into there, by inference (not necessarily clear for those not familiar with Spanish) is that because North and South America are taught to be one continent in Spanish, and "americano" references the peoples from that aggregate, Spanish speakers (mostly Latin-Americans) have a habit of correcting English speakers in online forms when they use the word "American" to refer to people from the US.

</comment></comment></comment></comment></comment></comment><comment><USER16> So what? China is booming, India is growing, Russia showed 9% growth. The poorer the country, the higher the numbers.

ps/ you don't have to vote me down, that's from the economics textbook :)

</comment><comment><USER17> And compete with people who do your job at 1/50th of your salary? No thanks.

<comment><USER18> That doesn't necessarily mean they are any less skilled :)</comment></comment>


'Automation' in Service Operations - <AUTHOR> https://www.ckmadvisors.com/blog/post/28/ <comment><USER2> In a typical BigCo, much of the "soft service" processes are run by their own group, far removed from the reach of the automation implementers whether they're internal or external.

A top-down mandate to bring increased automation will require the implementers and the business unit to meet, agree on requirements, and exchange detailed information about the existing process which may or may not be formally codified. This process is frequently done without the involvement of frontline service workers, so the information being exchanged is done by people at least one step removed from the details of the work, and it just gets worse from there, like a meeting-filled, high-stakes variant of the telephone whispers game.

The opposite case is where a business unit develops their own highly computerized solution, but the process, when discovered, is unacceptable to the BigCo. The subject matter expert can seldom contribute technical artifacts into the sanctioned rewrite, so the rewrite becomes an imperfect facsimile, and the subsequent migration will cause issues.

In both cases, much of the conflict comes from the users of the software not being contributors to the software, in a broad sense of that word. And, service unit employees are often already tiered between process administrators and task executors with no obvious path of advancement between them, such that the frontline workers can be automated out of a job entirely. On top of the organizational barriers, this creates a structural disincentive against contributing to a solution.

</comment><comment><USER3> Additional 4th point: understand the ethical tail risk, if it exists!

Is there an assumption (explicit or otherwise) that the human process your are automating includes a capability that the general public would consider "ethical"?

In the worst case scenario, where: 1\. that capability is removed by the automation 2\. there are negative consequences 3\. the whole world discovers the consequences,

will your business survive? Can you "blame the vendor?"

e.g. [https://www.reuters.com/article/us-amazon-com-jobs- automatio...](https://www.reuters.com/article/us-amazon-com-jobs-automation- insight/amazon-scraps-secret-ai-recruiting-tool-that-showed-bias-against- women-idUSKCN1MK08G)

Amazon made a smart move in pulling this project -- the public perception risk of selling, or even deploying a product that could be seen as "bias, automated" was too great.

</comment><comment><USER4> In my experience, the best policy is just to ask engineers where they are spinning their wheels. Engineers know best where to automate. Relying on top down automation decisions inspires ineffective automation.

</comment><comment><USER5> For those, like me, who don't understand why people make their websites hard to read with low-contrast text, try "select all". The highlighting tends to be easier on the eyes.

<comment><USER6> Reader mode is an alternative which provides even better readable results.

</comment></comment><comment> awinter-py > you will struggle to automate procs that aren't already efficient

Woof, trigger warning. Been there.</comment>


KGPU - Augmenting Linux with the CUDA GPU - <AUTHOR> https://github.com/wbsun/kgpu <comment><USER2> Why is this cuda and not OpenCL? There's no reason to legitimize nvidia's proprietary nonsense, it just enables their bad behavior.

<comment><USER3> The GPU code seems to be relatively isolated to memory operations in gpuops.cu. Not altogether sure but a quick review suggests such mapping is supported by OpenCL. So one could rewrite that module and the whole thing would work without CUDA. Of course, in terms of compilers it is going to be a while before users can move away from nvcc for nvidia graphics card support.

However, as with the parent I'd really like to see a generic OpenCL vectorization kernel module. Strong suspicion that this work was directly or indirectly underwritten by Nvidia so I guess someone (Intel?) needs to step up and fund similar academic projects.

<comment><USER3> Suspicion confirmed:

"KGPU is a project of the Flux Research Group at the University of Utah. It is supported by NVIDIA through a graduate fellowship awarded to Weibin Sun."

<http://code.google.com/p/kgpu/>

<comment><USER4> It really makes you wonder why AMD does not do the same thing; the hw is essentially free and how much could a fellowship cost. Does anyone know if research grants like this are a tax write-off?

</comment></comment></comment></comment><comment><USER5> You do NOT want to do this. Unlike the CPU which can be preempted current GPUs can not. If you give them 2-30 minutes of work to do they will not return until that work is done. Windows gets around this by resetting the GPU if it doesn't respond for more than a few seconds. Linux/osx no such luck, at least not yet.

But, once reset the state of the GPU is often unknown. Not a good thing if you are embedding GPU code into your kernel.

</comment><comment><USER6> Where is this useful? The bus speed across to the GPU is so slow, I thought it was only meaningful for near-autonomous operations.

<comment> Tuna-Fish Right now, the bandwidth to modern GPUs is actually pretty decent (16GB/s bidirectional), but the latency is still horrid. This means that you need rather large operations for offloading to pay off. I think doing raid-5 or full disk encryption with large blocks might just _barely_ be worth it.

However, with AMD and Intel integrated GPUs, this is about to change. AMD is doing a lot of work on HSA, which can be summarized as "GPU and CPU share same memory, and can communicate by passing pointers". I can see this kind of work being really useful in the near future.

<comment><USER4> More and more CPUs have AES instructions and my old lenovo ideapad has a crypto coprocessor. Do you think the GPU offload will be worth it when the sytem has hw accelerated crypto?

<comment><USER7> The question should be whether dedicated hardware for accelerated crypto will be worth it when GPU offload is suitable for it.

Although in that particular context (security) you might enjoy the isolation of dedicated hardware as opposed to sharing it with others. The GPU solution though of course has the advantage of being able to adapt to new ciphers etc.

<comment><USER4> Adapting/implementing the newest and hottest cipher on the block is not something that the crypto community advocates. Do you really think crypto accelerated hardware is going to fall behind and not support the ciphers that the crypto community (academia/industry) endorses?

<comment><USER7> I've been waiting for what, a decade, since VIA introduced padlock to get hardware accelerated encryption in mainstream CPUs. And, just recently, basic support have been introduced but only for AES and nothing else (and if I'm not mistaken (probably is) the padlock is vastly superior to the offerings of AMD and intel :P).

So yes, crypto accelerated hardware is behind and does not support the ciphers that the crypto community (academia/industry) endorses and in all likelihood will never bother catch up since doing it on the GPU will be good enough. Even if it takes another decade.

<comment><USER4> What algos are you missing?

The AES-NI instruction set was proposed in 2008 and the first intel cpus started shipping almost three years ago.[1] Soekris has had the vpnXXXX crypto accelerators since as long as I can remember.[2]

[1] [http://ark.intel.com/search/advanced/?s=t&AESTech=true](http://ark.intel.com/search/advanced/?s=t&AESTech=true) [2] <http://soekris.com/>

<comment><USER7> Blowfish or twofish wouldn't hurt. But I'd be happy with AES, too bad none of my devices have hardware acceleration for it.

The fact that it was proposed in 2008 is quite telling by itself. And when intel introduced it it was in their high-end product lines, to find a processor where AES-NI is less needed would be a challenge.

A suitable integrated GPU would penetrate the market much better and ultimately support products which today use the atom processor. The very same product segment where you barely can use encryption on today (in contrast to a i7 which saturates a fast ssd without breaking a sweat in AES-encryption throughput - without hardware acceleration).

A similar solution would also most likely allow me to encrypt files on my phone without a large impact, even if the manufacturer couldn't care less about security features.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> Would this be possible with OpenCL, too?

</comment><comment><USER9> I wonder whether this won't conflict with other user applications using the GPU.

</comment><comment><USER10> I don't understand :)

Could someone explain what this kind of technology means in practice? Does this mean I can GPU accelerate my old code?</comment>


Is Ballmer delusional? Calls Android 'cheap,' doomed - <AUTHOR> http://www.itworld.com/mobile-wireless/214897/ballmer-slams-android-cheap-doomed-android-lenghtens-its-lead-two-big-steps

<comment><USER2> I dont see how you guys can't see the clear link bait here.

This is the direct quote of Ballmer from the original article referenced here:

[http://www.theregister.co.uk/2011/10/19/ballmer_disses_andro...](http://www.theregister.co.uk/2011/10/19/ballmer_disses_android_complex/)

"The biggest advantage we have over Android is that you don't need to be a computer scientist to use a Windows Phone," he said. "But the cheapest phones will be Android, and we are going to have to look at bringing the cost of our handsets down."

If you actually try to comprehend that 2nd part, Ballmer is clearly saying the lowest COST phones will be Andriod, probably because it's cheaper to develop on (almost free) and has lower hardware requirements (almost none), and Microsoft needs to decrease the COST of WP7 hardware to compete in the low end market.

This has NOTHING to do with the quality of Andriod, which is what the author is implying here with the title "Calls Andriod 'cheap'".

<comment><USER3> Thanks Steve Ballmer, I never knew there were so many computer scientists in the world (200 million+ android installs?).

I mean he's the marketing guy and he's spinning here and he's right Windows needs to get more competitive across the board and get some market share or mobile will turn into a bleeding ulcer like Bing.

</comment></comment><comment><USER4> There is a substantial likelihood that Ballmer is correct. Android's market growth has been based on the fact that it offers a touch interface and is not controlled by Apple.

Outside of the handful of people dogmatically committed to open software (whatever that may be), practically nobody actually loves Android.

It's simply a cost effective alternative to iOS. However, Microsoft's patent portfolio has raised its cost and Google's lack of B2B orientation and "if it's on the web, it's in the public domain" approach to IP create an uncertain roadmap for manufacturers and the rest of the industry.

And Google's weaknesses are exactly Microsoft's strengths. Throw in the perception of potential conflicts surrounding Google's purchase of Motorola's mobile division and the preferential release of Honeycomb, and WP7 becomes even more favorably positioned among phone manufacturers.

Microsoft appears to have a coherent long term strategy - my mother will probably buy the phone that works like her computer - the one likely to have a Metro UI in the not too distant future.

Despite spin to the contrary, consumers overwhelmingly vote with their wallets when it comes to Microsoft products and manufacturer's tend to prefer supply chain partners willing to understand their needs rather than being left to their own devices and guessing at the development roadmap.

</comment><comment><USER5> As an olde Apple design fanboy it pains me to say this -- but Microsoft has the better interface. You can dress it up but Android feels like it's Windows to Mac OS, it's just so similar. On the other hand what Microsoft as done is original, and give the proper marketing can find a niche.

<comment><USER6> I came to say the same. We have all three in my household, and the Android UI absolutely feels 'cheap' compared to the fluidly animated lushness of both WP7 and iOS.

</comment></comment><comment><USER7> I don't really call myself a fanboy of any one camp, I use whatever I think is best. And minus catching up in applications (which WP7 is working on), I think that the experience from a Windows Phone is better than an Android hands down. Android has more flexibility but everything doesn't feel like it fits together. iOS and WP7 both have a way of making nearly everything act and seem like it fits perfectly together. Is he delusional? No, it's normal Balmer, overconfident and a bit too cocky.

I do think that if Nokia can get our a great WP7 phone soon, I believe it'll be a top 3 phone.

</comment><comment><USER8> Ballmer is clearly very busy running Microsoft. It would be unsurprising to learn that he is too busy to have the time to play around with rival technology platforms and evaluate them himself. Consequently he gets to base his opinions on what his senior execs and VPs tell him about the competition. Which in turn is coloured by their perceptions of their position within Microsoft.

You do not get to grab additional resources within an organization by talking up the competition, especially when the competition is in a market-dominating position relative to your own division. You get resources by trash-talking them and promising to topple them with just one more push.

So my gut feeling is that Ballmer is _not_ delusional; he's just being fed an unrealistic line by his subordinates, and doesn't have either the time to second guess them himself or the sense of urgency necessary to set up an independent business intelligent unit to give him the necessary no-bullshit sanity check (to learn if his generals are reporting their victories on the battlefield accurately ... or not).

In other words: he's more likely being actively misled by others than personally delusional.

<comment><USER9> It makes me think of what Hitler's top generals must have told him, which led him to making bad decisions in the war.

<comment><USER10> It's funny because I agreed with the top comment until you posted this. Now that you mention it though believing the positive pronouncements of your top generals at a time when you're clearly losing is delusional. Especially when it leads you to make decisions like moving Windows to Metro (therefore betting the whole company on an interface that has yet to succeed with consumers).

</comment></comment></comment><comment><USER11> It's his typical asshattery:

Ballmer: iPhone has 'no chance' [http://www.electronista.com/articles/07/04/30/ballmer.on.iph...](http://www.electronista.com/articles/07/04/30/ballmer.on.iphone/)

</comment><comment><USER12> _Is Ballmer delusional?_

No, this is intentional and something he has always done. He plays up Microsoft's products while downplaying all competitors.

<comment><USER13> It might lead one to believe he's paid to do this. He downplays competitors where it sounds credible, he doesn't go around saying "Apple has a crap UI" he goes around saying "Apple phones are too expensive"

</comment></comment><comment><USER14> Ballmer is the Ricky Bobby of CEOs.

</comment><comment><USER15> Ballmer had better hope that he's wrong. As of right now, Micro$oft is making money hand over fist off Android. If that were to go away, M$ might be in some serious trouble :p</comment>


Ask HN: Comercial software protection - <AUTHOR> As a side project I developed an application which update after update turned out quite nice.
Since I know it fits a niche market I would like to make it comercial ($50) per license.
However what bothers me is the protecion.
What type of protection can I use that: 1) does not use a dongle 2) should not take more than 2 months to implement.
I'd like if you pointed to materials to read and implementations examples. <comment><USER2> What exactly do you want to protect against?

In my personal experience, customers can be trusted and hackers don't care about your software. For my own software I've implemented an extremely basic licensing system. I've collected data about how many unique mac addresses use each unique license, so I can count what licenses are used by multiple computers. I've just done a simple filter on all my licenses to see which ones are used by over 5 mac-addresses. I expected there to be more, but the result was 13. There are 13 licenses that are being used by more than 5 computers, none of those licenses are used by over 14 computers.

That's 13 out of about 3500 licenses mind you.

This is just my reality, maybe your target niche is script kiddies or broke CS students, consider your target group, but I suggest you not to worry too much about it, just implement a really basic licensing system to prevent no-effort abuse and you'll be fine.

<comment><AUTHOR> Exactly, I want to protect from multiple installation with one license.

Do you have a server that you use for the licensing? How did you come up with such statistic?

How do you handle if one client changes pc (MAC changes), does he really change pc?

<comment><USER2> I have a server, yes, every time someone starts up my application, it sends a request to my server to with a (LICENSE, MAC-ADDRESS) tuple, which I store.

So far, I've never acted on MAC changes. If I saw a license that was used by say 50 MAC-addresses, I would disable it and send an email to the original buyer, scoff at him and give him a new license. But so far no-one has done this, not one person out of ~3500 has shared their license with a larger group of people.

Just trust your users for now, collect some statistics if you're really concerned, and act if someone is really abusing your system. Don't ever go after ambiguous cases, ever. I made this mistake in the beginning, got many MANY false flags.

I think collecting the statistics is a really good idea, because it will show you that your userbase is trustable, and you will change your perspective on software protection :)

<comment><USER3> You do realise crackers strip out your server request code. This is trivial to do. You really have no idea of how many people are using your program.

<comment><USER2> Oh yeah true, but I know I can't project against that anyway, pirates gonna pirate, and I'm not against that.

But tbf, I don't think there are any people who even bothered cracking my program...

<comment><USER3> You can, but it is not easy, simple, or very user friendly.

It really depends on your market and software. For most software it doesn't make sense to bother with anything other than the most basic licensing system, but for some software it does. I sell quite a lot of software in China and India and I would not be able to do this unless I spent a lot of time and money on anti-cracking activities.

</comment></comment></comment></comment></comment></comment><comment><USER4> The best way to protect commercial software from piracy is to sell into markets where piracy is against market practice. For example, enterprise and government institutions often have license compliance policies accompanied by audits and trainings and memoranda and scoldings.

Part of that means that the pricing policy should discourage piracy. An institution for which the difference between $50 per seat and $500 per seat is a big deal for a product that provides $10k+ of value is more likely to pirate as a matter of cultural ambiance. And a price of $500 per seat increases the likelihood of having the resources to provide $10k+ of value over the long term. $500 per seat also means that piracy is less likely to take food off the table even if a substantial fraction of use is unlicensed.

Good luck.

</comment><comment><USER3> It depends on what market you sell into. If you are selling niche software in the USA and Europe then don't worry too much about piracy. If you are planning on selling in China and India then you need to think very seriously about how to protecting your software.

My company sells a lot of expensive niche software into the Chinese and Indian market and about 50% of our development effort goes into software protection. Unfortunately there is no easy solution, but if you want to contact me offline I can suggest some solutions.

<comment><AUTHOR> Actually the thing that bothers me is not protection per se as I know that someone with enough determinism will crack it.

I am curious how do you handle license revocation or when you detect if someone is using an illegal license.

What about offline users? How to handle licensing?

<comment><USER3> Sure if someone puts enough effort into something anything can be cracked, but you can make it long and slow job. This is 99% of the job done if you have niche software.

In regards what protection we use, I am not too keen to list them in public, but my basic principle is layering. Use enough different systems and layers and you are going to make life very hard for a cracker.

</comment></comment></comment><comment><USER5> For Java there's License4J: [http://www.license4j.com/](http://www.license4j.com/)

There should be similar tools for other languages as well.

My suggestion is to not overthink it. There's no perfect solution that will prevent your software from being copied in every scenario imaginable. Just use common sense. It certainly shouldn't take 2 months to implement. Your customers aren't paying for copy protection after all.

</comment><comment><USER6> See if you can sell it first. When piracy becomes a problem, then look into software protection.

Niche software rarely gets pirated because the demand is low.</comment>


A Furry's Guide to Digital Signature Algorithms - <AUTHOR> https://soatok.blog/2020/04/26/a-furrys-guide-to-digital-signature-algorithms <comment><USER2> I'm a huge fan of good explanations with an entertaining touch.

The title immediately made me think of nillkitty's "A Cat Explains" series about some under-appreciated, but fundamental concepts: [https://www.youtube.com/watch?v=QgT1s2fOfiE&list=PLiHkSFy8bV...](https://www.youtube.com/watch?v=QgT1s2fOfiE&list=PLiHkSFy8bVw6Zjtstpt5wYrdyoWPNPh3h&index=2)

On second thought stuff like AvE and The Coding Train come to mind.

<comment><AUTHOR> Aww thank you! <3</comment></comment>


Ask HN: What are the future options for Software Quality Assurance Analyst - <AUTHOR>

Hi, I am currently working as Software Quality Analyst in a company which works in the field of MFT, I was thinking today that what are the future options for a person like me who loves to test and make sure the customer experience is always the best. Any idea and urls for reference are most welcome. I am very open to discussions.<p>Best Ankit <comment><USER2> Do you know how to program? Do you want to stay technical? What are you doing to maintain and improve your skills?</comment>


Ask HN: How to negotiate a salary with a friend? - <AUTHOR>

I'm in the valley and have a friend who has a so far successful startup. Due to personal reasons I've decided not to work and am thinking of returning to the craft soon and I find his startup interesting.
I know that I could work in his startup or other startups, as in: applying and receiving an offer is not a problem. I'm usually a pretty stern negotiator when it comes to salary...
How should I approach the matter with the friend? I don't want to press too hard I'll lose him, but I also want to get the offer that an hard pressed negotiation would give me. Any advice? <comment><USER2> It's a big risk working _for_ a friend. By that, I mean working in a position where your friend would be the one who has to let you go/fire you if something went bad. Working _with_ friends can be great though you still have to be careful.

Since you have other options, I would pass on working for your friend. If he asks why you went to work for someone else, tell him the truth - that you didn't want to risk the friendship.

There is an exception to this rule: If your friend is in real need and you're willing to _sacrifice_ to help him out, that's different.

<comment><AUTHOR> "There is an exception to this rule: If your friend is in real need and you're willing to sacrifice to help him out, that's different."

No more than other startups. Otherwise I wouldn't consider high-balling on salary.

</comment></comment><comment><USER3> If it is not trivial for you and your friend to determine a proper compensation package, then I fear you may have other areas where you think the friendship is an asset in the business but probably isn't.

choose which is more important, the friendship as it has been, or the business opportunity. if you pursue the job, the friendship will most likely change.

personally I have avoided this in in some similar circumstances because I think the friendship as it is is worth more than the money.

</comment><comment><USER4> >I also want to get the offer that an hard pressed negotiation would give me

He doesn't sound like much of a friend when you say that. The easiest solution is to find employment elsewhere. When you bargain with a friend with that kind of mindset you will either press too hard and lose him (and potentially the offer too) or you'll end up feeling resentful at being "underpaid".

There is no magic bullet or answer to your question. Either roll the dice or preserve the friendship by looking elsewhere.

<comment><AUTHOR> I didn't talk with him about this yet. I just think that even if he would sincerely offer me a maximum X, an hard pressed negotiation would still give me 1.05X (annually it's not a small amount of money...).

EDIT: as you say "with that kind of mindset you will either press too hard and lose him (and potentially the offer too) or you'll end up feeling resentful at being "underpaid"."

What other mindset would you suggest?

</comment></comment><comment><USER5> Your friendship is a barrier for both of you and your friend. Find another place where you can be an employee.</comment>


Parkinson's patients 'walk and talk again' after receiving cancer drug in trial - <AUTHOR> http://www.independent.co.uk/life-style/health-and-families/health-news/parkinsons-patients-given-new-lease-of-life-after-receiving-cancer-drug-in-trial-a6699031.html <comment><USER2> Translational medicine is bench-to-bedside. This was indeed translational research.

This kind of medicine _seems_ more like bedside-to-bedside, as in giving the cancer guy's drug to the Parkinson's guy in the next bed over and seeing what happens.

But actually there's some animal model research behind it from the same people in 2013, so they definitely did their mouse-homework and hopefully it will continue to show promise in larger trials. From their 2013 paper's abstract: "Here, we show that lentiviral expression of α-synuclein in the mouse SN leads to Abl activation (phosphorylation) and lentiviral Abl expression increases α-synuclein levels, in agreement with Abl activation in PD brains. Administration of the tyrosine kinase inhibitor nilotinib decreases Abl activity and ameliorates autophagic clearance of α-synuclein in transgenic and lentiviral gene transfer models." [http://hmg.oxfordjournals.org/content/early/2013/05/09/hmg.d...](http://hmg.oxfordjournals.org/content/early/2013/05/09/hmg.ddt192.abstract)

</comment><comment><USER3> It reminds me of using Zolpidem to wake up vegetative people: [http://www.nytimes.com/2011/12/04/magazine/can-ambien- wake-m...](http://www.nytimes.com/2011/12/04/magazine/can-ambien-wake- minimally-conscious.html)

</comment><comment><USER4> MDMA is supposed to reliably relieve the symptoms of Parkinson's. While it's a temporary relief, I find it disconcerting this is rarely mentioned in the media.

[http://mdma.net/misc/ecstasyantipark.html](http://mdma.net/misc/ecstasyantipark.html) \+ [http://www.ecstasy.org/info/parkinsons.html](http://www.ecstasy.org/info/parkinsons.html) \+ [http://www.bluelight.org/vb/threads/722158-Parkinsons- Diseas...](http://www.bluelight.org/vb/threads/722158-Parkinsons-Disease-and- MDMA) \+ [https://news.agedcareguide.com.au/2012/06/05/parkinsons- pati...](https://news.agedcareguide.com.au/2012/06/05/parkinsons-patients-in- ecstasy/)

</comment><comment><USER5> Propecia was "designed" as a prostate drug, but didn't do so well ... but mystery unexpected side effect! Kind-of-sort-of baldness cure! So yeah, that's what that drug is for.

Nilotinib was "designed" as a leukemia treatment, but ... didn't go so well.[1] Oops, just kidding - it's a parkinsons/dementia treatment!

(also, one of the erectile dysfunction drugs, I forget which one, was also "designed" for something similarly unrelated...)

The real headline here is that these people have _no fucking idea_ what they are doing. They are throwing shit at the wall to see what sticks and then informing the marketing department as to which side effects were the most interesting.

This dovetails nicely with their other favorite activity: finding efficacious natural compounds and then tweaking them just enough into a synthetic compound that can be patented.

[1] "Interim results showed Tasigna is unlikely to demonstrate superiority compared to Novartis's Glivec® (imatinib)*, the current standard of care in this setting." (wikipedia)

<comment><USER6> While this comment is funny, it's also arrogant and incorrect. It's not fair to indict folks trying to change lives based on what's needed to drive pageviews, ie attention grabbing headlines.

30 seconds of research provides a pretty obvious connection, regardless of your "no fucking clue what they're doing" accusation...

Nilotinib is a Tyrosine Kinase Inhibitor [https://en.wikipedia.org/wiki/Nilotinib](https://en.wikipedia.org/wiki/Nilotinib)

Tyrosine kinase inhibitors regulate serotonin uptake in platelets [http://www.ncbi.nlm.nih.gov/pubmed/7589171](http://www.ncbi.nlm.nih.gov/pubmed/7589171)

Tyrosine kinase in serotonin induced cerebral constriction [http://www.ncbi.nlm.nih.gov/pubmed/9472895](http://www.ncbi.nlm.nih.gov/pubmed/9472895)

It's apparent that Nilotinib plays a role with Serotonin, which is of course implicated in Parkisons and many other neurological disorders, but I guess we are hung up on cute headlines and not the real story. [http://phys.org/news/2010-06-serotonin-decades-old- mystery-p...](http://phys.org/news/2010-06-serotonin-decades-old-mystery- parkinson-disease.html)

[edit:sp]

<comment><USER7> Also, drug repurposing is often a highly data-driven field. So it may not involve predictions where there's a high degree of certainty, but data-driven methods can shift a 1 in a million (or more) chance of success into a 1 in 3 or 1 in 5. Such wins are absolutely huge.

</comment></comment></comment><comment><USER8> Honestly, this article exemplifies what is really wrong with science these days. First of all, this wasn't science, because it wasn't a controlled experiment, or peer-reviewed, before being broadcast to the global media.

Parkinson's disease is known to be particularly responsive to the placebo effect ([http://www.pdf.org/summer12_placebo](http://www.pdf.org/summer12_placebo)). Since the "experioment" (big air quotes) had no controls, we simply do not know whether chemotherapy helped them or not.

If we want people to trust the results of science when it comes to vaccination, global warming, etc, we need to ensure that overblown claims are not made in the name of science, as when they are debunked it will inevitably eat away at the public's confidence in science as an institution and as a source of justified claims.

</comment><comment><USER9> This was covered on NPR's Morning Edition too [http://www.npr.org/sections/health- shots/2015/10/17/44832391...](http://www.npr.org/sections/health- shots/2015/10/17/448323916/can-a-cancer-drug-reverse-parkinsons-disease-and- dementia)

</comment><comment><USER10> "people with Parkinson's disease or a similar condition called "dementia with Lewy bodies" were given small doses of nilotinib for a six-month period with startling results." Does that mean that if Robin Williams had just held on for another year, he could have been cured? Wow..

</comment><comment><USER11> This is great news!

 _But despite the apparent striking effects, doctors have cautioned against great expectations for the drug at this stage as there was no control group or placebo used in the study for comparison._

Heh, of course. But right now it could be used as an off-label treatment?

<comment><USER12> >Heh, of course. But right now it could be used as an off-label treatment?

Why bother? There's still fuck all evidence that it works. (Bear in mind the placebo effect is a large factor in all Parkinson's trials).

This is yet another example of overhyped crap science being posted on HN.

<comment><USER11> For the desperate, why not? Of course weigh the side-effects against the benefits. First try placebo, if it doesn't work then try the real thing.

<comment><USER12> Because there's an almost infinite supply of unproven quacky treatments for every illness. I could sell you one if you really want.

<comment><USER13> So balance it out.

Potential benefit? Improved health/physical condition.

Potential cost? 1. Financial cost of treatment. 2. Side-effects of treatment.

Number 1 is an important question: if it's a few dollars a month, it's on a par with a placebo. If it's a hundred dollars a month, I would hope it behaves better than a placebo (although a saline injection has a larger placebo effect than a sugar pill, and a $40 bottle of wine tastes better than a $10 bottle of wine, so there's a potential placebo multiplier just in the pricing). If it's tens of thousands of dollars a month, I'd expect some pretty dramatic results. So pricing is a factor, and I haven't seen that mentioned.

The second issue is side-effects, but this is a drug that's already passed clinical trials, so hopefully these are known and recognised.

It'd be great to see this experiment rolled out to double-blind placebo- controlled clinical trials, but until that happens, I'd still be willing to give it a try.

<comment><USER12> >It'd be great to see this experiment rolled out to double-blind placebo- controlled clinical trials, but until that happens, I'd still be willing to give it a try.

Google "liberation therapy" for an example. This bad science really is damaging, as it costs everyone a lot of money, hooks in vulnerable patients, and doesn't provide any benefit over the placebo effect.

The placebo effect can be strong, certainly, but if you're relying on that you are much better investigating the psychological factors that underpins it, rather than hoodwinking patients (whether deliberately or due to ignorance).</comment></comment></comment></comment></comment></comment>


Show HN: Minibars, a Minimal Templating Alternative to Handlebars.js - <AUTHOR> https://github.com/Udo/minibars

<comment><AUTHOR> Not sure if this is useful to anyone, but on the off chance there are Handlebars.js users here:

I wrote this as a drop-in replacement for the Handlebars.js templating library in a few of my projects. It's significantly smaller, and often times faster, but has a reduced feature set.</comment>


Introducing the Go Race Detector - <AUTHOR> http://blog.golang.org/race-detector <comment><USER2> Has been around for a while, but having worked with it: Don't assume this tool will solve all your problems! Use at your own discretion.</comment>


Twitter: All URLs are now automatically wrapped with t.co - <AUTHOR> https://dev.twitter.com/discussions/2806

<comment><USER2> This was the last straw for me as a Twitter user - I noticed that I'd stopped clicking on links since I had no idea where they went, knew that they'd often get mangled & require manual adjustment, and didn't want to give Twitter more advertising data. I've stopped posting anything with a link there because it's subliminally annoying seeing my posts get mangled when the original url was informative and there are all the same privacy issues. Twitter has managed to raise the annoyance and friction of using it for anything to do with urls enough to kill that off for me and I can't help but wonder how many other people. I know the link text is displayed on the site, but New Twitter is just as annoying as it ever has. Congratulations Twitter - you've started killing off the open clients, you've tried to snoop on every link clicked by a Twitter user, and you've quite thoroughly demonstrated that you've got the determination to keep making things worse. Bye!

<comment><USER3> You should never see a t.co link on Twitter or elsewhere — if your client is showing t.co links, it hasn't implemented support for entities.</comment></comment>


Ask HN: Breadth vs. Depth in Learning, What to Aim For? - <AUTHOR> Hey everyone, This is Vijay. I am a junior developer and I start working for around 6 month ago. Here at my workplace they are using Angular and Node stack along with Mysql. As I have told that I am working here for 6 month I have been exposed to all of these three technologies and I am learning all three at once. I worked on backend for 3 months then I switched to front end. Also a little bit of mysql for defining views to fetch different type of data that consists of joins and aggregate.
I am being careful to learn about all important stuff as in authentication and authorization, defining caching layer at backend side.
To learn good practices for good performance UI, where I have realized we have messed up our front end codebase a lot right now. Because we don't have any senior I can ask questions too.
All I could have counted on was myself and all the things I can explore.
After 6 months of learning and trying all these things have now started to make sense.
Why codebase layout is super important, why MVP, MVVM and almost anything sucks.
I really feel afraid of telling my manager to use any given kind of layout for our code because I can't imagine in my head how a given methodology will help us solve make sense of our code in a good way.
So I think I have a lot of questions right now?
1 Am I going on a right path where I am giving breadth of topics more preference over depth.
2. How to look at your codebase both backend and front end lay it out in a way that feels natural, what I meant is MVM and MVVM is kind of messed up when you have lot of things to put around.
My boss is saying to turn monolith app into micro services and to use dockers and all which I still have to learn.
So any kind if help would be appreciated.
Any kind of advice that you can give a 6 month old developer on which path to follow to become a world class problem solver.
Thank you. I know it's long but thanks for reading till now. <comment><USER2> Programming via practice is actually a very inefficient way of learning to program. It's sort of like a professional basketball player learning by playing matches. It wears people out fast and teaches them very little they don't know.

To truly improve, they have to train properly. A basketball player trains their dribbles, running, shots, peripheral vision. A programmer has a lot of other small things to train - algorithm, optimization, passing around bits of code from one class to another, or disciplining themselves to stay in flow.

My training routine breaks things down into 4 levels:

1\. Understanding the concept. Also includes knowing how to google certain types of code, knowing what to look for, what to copy.

2\. Being able to build it without any hints.

3\. Feeling/instinct. You no longer have to think. Not only that, but you can immediately 'feel' a mistake or error, and where.

4\. Potency. You do it faster and smaller. There's no end to it.

The people who are deep in level 4 are invisible to those at level 2 or less. Sometimes it seems like magic, sometimes it seems like incompetence or stubbornness.

Creativity only happens when you have many parts at level 3 and above. You have to internalize/feel the parts, before you can code very effectively. Then when you have a problem you're trying to solve, your brain just sorts it out in the shower.

But with programming, once you code something once, it becomes a function. Many people don't solve the same problem twice. It gets copied and pasted. And thanks to Stack Overflow, it's possible to go 20 years of experience without ever reaching level 1 skill.

This is not necessarily a bad thing. This means you can ignore parts like memory management or effective sort algorithms and focus on the important things. It's up to you to figure out which skills are really core to your ambition and focus on that.

</comment><comment><USER3> A lot of juniors make the mistake of choosing breadth first. But there's so much breadth involved in making a modern web app that if you go for breadth it'll take you a decade to get to be good enough at anything for someone else to trust you to do it without micromanagement (i.e. To be mid-level instead of junior).

At the beginning you need only as much breadth as is required to survive with your stack. It's ok for entire other sections to be black boxes ("we get requests from the front end in JSON and we process the request this way return other JSON and somehow <hand wave> it gets rendered").

After that you want to work on depth until you can work on a single part of the stack (pick back end, front end, or sysadmin/ops) without help or supervision. To get there, you may need to even focus on understanding one site feature and its technologies and concepts at a time. You may need to spend multiple years on this first portion of the stack before hitting mid- level competency with it. That's totally normal.

Once you've gained the competency to work independently in one area, you're ready to increase your breadth again: pick another part of the stack and do a deeper dive there.

</comment><comment><USER4> It sounds like you have gone with the breadth approach so far. Maybe go deep on a couple of things where there are problems at work.

You mentioned "little bit of mysql" dive on that a bit more. There is a huge amount of tuning that can be done on SQL queries to make them faster. If you have small data sets that are expected to grow over time, they may be fast now but will slow down. This is usually the biggest bottleneck on any web app.

In the early, wild west days of the internet, people stuck SQL code, Javascript, CSS and HTML into one PHP page (or Perl script or whatever). Good idea or bad idea? Those types of things have driven a need for separation of concerns. That is why MVC, MVVM, etc. have come about. Usually you are stuck with whatever design pattern your tooling uses.

Maybe have a discussion with your manager about what is driving the need to use micro services and docker containers? Typical useful answers are scale, traffic and reuse. If you get more of a blank stare or jumbled type of answer "monoliths are bad" then it sounds like someone wants to get buzzwords on a resume.

</comment><comment><USER5> Part of the problems you may be suffering from is a system that is overcomplicated for no good reason.

1\. Unless you have a truly massive number of users, or a very interactive UI, chances are you don't need Angular.js at all. Just node should suffice, perhaps with something like [http://intercoolerjs.org/](http://intercoolerjs.org/) if it's interactive enough.

2\. Unless you have large number of developers, chances are you don't need microservices.

So maybe instead of thinking about breadth vs. depth, think in terms of simplicity vs. complexity— given what you now know, how would you _simplify_ the system you have now? What can you take out?

(Organizational constraints might mean you can't actually simplify, but it's a useful learning exercise.)

</comment><comment><USER6> Read code. In paper.

Do not clone a repo, compile it, and run it.

Get code about something you want to learn about, or code written by someone you admire, make a _printed_ copy, and read it _carefully_.

Follow how stuff is done. Try to understand the hows and whys without a compiler at hand. Without documentation.

Then, start looking for stuff you don't know how it works and consult documentation only after you cannot figure out what's happening.

I learnt a lot of C++ and Win32 this way from Microsoft Systems Journal (a long time ago).

And believe me, it works.

</comment><comment><USER7> If I were you, I'd just start a weekend project and see where it leads you. On a weekend project, you can make any change you want without anyone telling you not to. You'll find what you like.

Another great technique is looking back on your life and find some peak experiences. "Start with why" is a pretty cool course to go through, but you could also just reflect on your own. Find your best experiences, and do similar things.

<comment><AUTHOR> I have tried doing the weekend project but there I have this problem that I want them to do the right way only. Result of this I almost spent my day exploring through all the packages and libraries and just starting enough that I can't move forward in any direction. I know I have to overcome this and do something concrete but yeah this is where I am.

A lot of time I spent my weekends doing datastructures and algo. It seems at that time that I am learning but there too I didn't see myself making any progress it resets every time I take a break of a week or two and I myself admit that I am not persistent in any of my choices on what to do on weekends. I work in a 6 day job here. So I got only one day, i am working on my efficiency and try to put myself in place where I can make some quantifiable amount of progress. But yeah happy to here that weekends are the way to assess and do new things.

<comment><USER7> "If it's worth doing, it's worth doing wrong before you can do it right." (because otherwise you won't do anything at all)

Don't use a library then. Do it all yourself manually, go through all the headaches. Then look at a library and see how they did it, pain is good soil for learning.

When you do things the wrong way, experience the pain ( the reason they are wrong ), and then you discover the right way, you really learn the lesson.

This is also the deep route ( doing everything manually without libraries ). So I'd suggest depth.

If you just want someone to tell you a framework: use nodejs, knex.js(mysql), express; react, redux, react-router, immutable-js, reselect</comment></comment></comment>


Intel drops its sponsorship of the Science Fair prompting an identity crisis - <AUTHOR> https://www.nytimes.com/2017/02/14/technology/intel-drops-its-sponsorship-of-science-fairs-prompting-an-identity-crisis.html <comment><USER2> From the article: "Maya Ajmera, president of the Society for Science ... said Intel never gave the society a reason for dropping the sponsorship." Shameful.

</comment><comment><AUTHOR> I read this and was a bit sad. Intel has done a great service here and I am sorry to see them step back. I hope another industry leader can fill their shoes.</comment>


Ask HN: We made a mobile forms app in React-Native, now what? - <AUTHOR> Me and a friend from college built this app which makes it super easy to build forms on mobile, share them with your team, and collect structured data collaboratively. Link below
https://play.google.com/store/apps/details?id=com.formapp
We launched a production version last week, and since then, from whatever sales we have done, we have found that different people are using this app differently.
People are using it for things like lead management, field staff assessment, inventory management, delivery management, maintaining balance sheet, and field research. Each of this use case belongs to individual users.
Now, we find ourselves stuck. My dad has suggested that we have a mobile-erp solution at our hands, and there are literally a thousand different directions we can think off for taking this app forward. But we feel stuck.
We need a lot of feedback on this app to identify what exactly should we make of this app. Any help would be appreciated. Thanks.
PS: If its worth anything, I'd be giving out 1000 in-app credits to anyone who gives some feedback on this app. You can find my twitter profile link in my HN bio, just drop me a tweet. Thanks. <comment><USER2> Form builder only, are you guys extending it to be web/app builder?

</comment><comment><USER3> used it, easy to create forms with complete flexibility and customization. using first app in react native.</comment>