Hacker News new | past | comments | ask | show | jobs | submit | cpressey's comments login

I'm interested in approaches like this too, but there are some practical considerations that seem to complicate it:

* from a systems point of view, an infinite loop is no worse than a routine that doesn't return after a reasonable amount of time. PR is a huge complexity class (it contains NEXP); just because a function always terminates doesn't mean it's efficient (or as efficient as you would like/need it to be.)

* PR functions are somewhat easier to reason about than general recursive functions (no need to mess around with bottom and domain theory) but I haven't seen a lot of evidence that that translates to making them easier to aggressively optimize.

* In fact, I have heard many PR functions have a more efficient GR equivalent, and I don't know of any way to automatically derive the GR version from the PR; and I expect (just on hunch) that no perfectly general PR->GR conversion could exist.

* Granted, a function can be shown to be total without necessarily being PR, but then you have the burden of proving that it is total, and it seems inelegant to move that burden to hardware. Maybe it's not, maybe that's just "normal science" talking.

* In practice, if I want to run an interpreter for an existing TC programming language on this architecture, it has to treat the architecture as TC (i.e. conceptually break its separation between executor and evaluator) anyway.


You make some good points. Especially that a GR function may be able to work more efficiently than a PR function; do you have an example or can you cite a reference for this?

As for optimization, I believe that it may be possible to more effectively automatically parallelize a PR function than a GR one.


Unfortunately, it's hearsay to me; it came up in conversation (about computability and complexity) with a professor, and I took his word for it at the time; I've been meaning to ask him for a reference ever since, but never got around to it.

But at least one thing I can see is that in PR, you need to fix the upper bounds of the loops (/recursion depth) ahead of time, not "on the fly". If you're doing some kind of iterative approximation, you probably don't know what those bounds "should" be, because you're going to terminate on some other condition, like, the change in the value has become negligible. Your upper bound will be a worst-case estimate -- which you have to do extra work to compute -- and I don't see how it differs much, in practice, from a timeout, which has the advantage (again from a systems perspective) of being measured in clock time rather than cycles.

Not sure about parallelization. PR doesn't suggest any advantages to me for that offhand, but then, I haven't thought about it.


W.r.t parallelism, I'll copy here something I wrote elsewhere in this thread:

"I don't know for sure that this is possible yet, but I believe that the processor would be able to estimate the amount of work required to evaluate an expression. Using this ability, it would be able to automatically parallelize the evaluation of an expression by splitting it up into pieces of approximately equal size and then distributing them to sub processors."


I upvoted this because it was hilarious. I can only hope it was intentionally so.

"Hodgson Gestation Services, LLC"


Good to know that "by definition" it's "not outsourcing". Failing to fall into that particular narrow categorization makes all the difference to the economies involved.

(Yes, this is sarcasm.)


It is 100% offshoring, people from his local community do not get jobs, it does not help Canada and in a way insulting for Canadians. I'm surprised to see this article making 1st page :(


I'm struggling to understand why this entrepreneur has any moral obligation to hire locally. It's a world economy; the people he is hiring probably need the jobs more than the Canadians he is not hiring. As he says, it is win/win.

The vitriol here on HN against the fact of a globalized free market is somewhat surprising, especially considering that the successful startups will inevitably be competing globally.


I mean no disrespect, but tell me that when you're employer sends your job abroad and all the companies that you apply to only outsource their positions or pay you below market salary how you would feel?


Not everything could be outsourced. But if you live in the place where there's no job I think you should move. I bet there's not so many programmers working in Monaco. Because cost of living there is too damn high. Much easier to get some french programmers. Globalization is kinda hard to stop.


It is very easy to say "just move" and much harder to do. Money can move freely across borders but people can't.


Good point. OP cannot just up and move to Argentina, where presumably HN followers would pat him on the back for hiring Argentinians. He is being as global as laws and logistics allow him to be.

Again, there is just no particular reason why anyone should expect him to hire Canadians simply because he presently lives in Canada. If he makes a profit on this venture, he will pay Canadian taxes, right?


This is an interesting and correct point. But, developers are moving to cheaper countries in some cases, but the fluidity is far less than money.


Being emotional hurt doesn't mean you have a valid factual point.

I would feel "hurt" -- but that doesn't mean I have a right to the job. Anymore than if you are "hurt" when you boyfriend/girlfriend dumps you... it doesn't mean you get to keep dating, it just hurts.


I think of it like a casino. It's offers a service, sure, but financially operates like a black hole by in all likelyhood removing more value from the economy than it creates.


But it's not a black hole. It's profitable company that gathers money from global market (facebook) and sends it partly to Argentina and partly to Canada. Canada still gets positive money flow. Yes, OP didn't create developer jobs(some other jobs he did create) in Canada, but he most probably couldn't start the company if he didn't outsourced, so jobs wouldn't be created any way. And it's hard to judge what has more value, positive real money flow to the economy or several absent vacancies.


I think a lot of the negative reaction has to do with the sense that the employer did it for the wrong reasons and was excusing himself and the insult to his own business community and developer community. Specifically, he says he couldn't justify paying more than his own wage to his employees. Bulls-t. He brags that there was no shortage of talent. Bullsh-t. He could have changed the game, by offering more than a wage, to give just one example, but he chose simply to pay as little as possible and to strictly minimize his short-term expenses and income at the expense of a robust economy. Many business owners happily draw a minimal wage as their business grows, knowing they want long term value in ownership. He is operating his business like a casino.

I would actually place the local staffing at an order of magnitude more valuable to the local economy than the direct positive cash flow into the business coffers, but I'll admit it's subjective. To me, it's the difference between a ghost-town and a self-supporting economy that can thrive because it can stand short-term unemployment.

Sometimes that's the only choice (steal the loaf of bread or starve), but when everyone does it, the effect is not sustainable and he attempts to justify it for hollow reasons.

Furthermore, developers in Argentina are worth as much as their Canadian counterparts, but for whatever reason, they undervalue themselves to the tune of 1/5 and the employer's eagerness to jump on that reeks of exploitation as much as stinginess, adding insult to injury.

I don't know enough to claim he's breaking the law, but (spoken in reference to the recent RBC stuff): "'The rules are very clear. You cannot displace Canadians to hire people from abroad,' said Immigration Minister Jason Kenney." ( http://www.cbc.ca/hamilton/news/story/2013/04/05/bc-rbc-fore... )


CBC ran a story today quoting the author: http://www.cbc.ca/news/business/story/2013/04/12/f-case-for-...

The commenters aren't buying it.


Why doesn't it help Canada? Startup is still in Canada, profit goes to the country. And he creates some jobs for Canadians as well. Maybe it would be better if all staff was local, but Canada wins either way. And it's just one of the ways for business: some hire locally, some hire remotely, some do both. It's just business playing by the rules of the country.


Canada would win a lot more, and be more self-sufficient in the global economy, if employers acted in their long-term interest instead of shorting their shares in the Canadian economy.


Yes, but if OP tried to use local employes there was higher risk of failing or not even starting the company. In that situation Canadian economy would get zero. So I don't know what is better.


It also doesn't help Canada since people who live and support the economy by paying taxes in Canada (income, sales, property etc) don't get a paycheck.


If the company succeeds, he'll inevitably start hiring more locally. Naturally :)


who is to say for sure, his past experiences does not prove that, it proves the contrary.


The same way when GM is located in Detroit but it decides to move the plant to China.


It's harder with large transnational corporations since their money flows are much more complicated. But it's globalization. Basically they are force to do that. If it's more economically beneficial to open plant in China and every other car producer does that, GM will lose money not doing that. And ultimately will go out of business (what they almost did any way :). Government can try to change rules to make outsourcing less profitable, but there's WTO and other things (like laws of economy) prohibiting that.


Sadly, I think it's a prevalent attitude so I'm actually happy to see it being shot full of holes, especially in light of the recent RBC (and others) outsourcing stuff.


To this day, I find myself deleting comments or whitespace under some misguided pavlovian notion that my code will run faster.

Ouch!

btw, I think "fill the screen with @'s" must be the "Hello, world!" of Commodore machine-language programming. (Back when you could call it "ML" and not get it confused with a functional programming language, too.)


That's funny, I always get confused and disappointed when hearing/reading people talk about "ML" only to realize they're talking about "machine learning" and not Milner's ML ... I hadn't thought there might be yet another overloaded definition.


Actually it shouldn't matter even for BASIC

More 'advanced' versions transform BASIC into bytecode that's interpreted, stripping all the comments

But yeah, for the early systems...


Useful information to disseminate; however, I fear trying to "correct" the popular perception on this would be quixotic, much like trying to change how "begs the question" is used back to what it originally meant.

Descriptivistically, the "Mount Gox" backronym seems to have more currency. (pun intended, but immediately regretted!)


You'll have a hard time finding a chromatic trumpet outside of a museum.

This is kind of a confusing statement to me. Most instruments called "trumpets" where I come from are valved instruments which are fully capable of producing chromatics. (Maybe this is technically incorrect and we should be properly calling them "cornets" or something, I don't know.)

My point is, you certainly don't have to go to a museum to find one, and I expect, in a museum (of history anyway), any trumpet you'd find would be more likely to to be valveless and non-chromatic.


I've often thought that if there's space for something to be reformed in musical notation, it's the fact that different wind instruments are notated in different keys[1]. I realize there are historical reasons, but it just seems like such an artificial barrier between musicians in a modern band or orchestra.

http://en.wikipedia.org/wiki/Transposing_instrument


It's a standard part of musical training to be able to read a part written in either concert pitch or in your instrument's pitch, or even to be able to transpose on sight into any key. It's not easy but learning to do so pays off when you're on a gig and the singer insists on playing Lush Life in B natural.


We can debate how large an obstacle it is, or whether learning to overcome it is valuable, but clearly it is there, even if it's just an annoyance. I just think it would be really nice for (e.g.) a clarinetist to be able to sub in on an alto sax part on sight without having to go the extra mental work of "Ah, right, up a perfect fourth --"


This is mildly annoying for composers, but it doesn't really matter for the players. They play the notes they see on the page. I suppose if they have perfect pitch it might be a bit jarring.


I play mainly clarinet (which is written Bb transposed), and the transposition thing is not a problem at all. It's the relative intervals that matter anyways. I don't feel it creates a barrier when communicating with others in the orchestra (we talk about concert pitch anyways), and not having to count five extra staff lines makes up for the small inconvenience.


This makes it much it much easier when switching between different instruments of the same family - a clarinetist (when playing any clarinet part) associates one note on the staff with one fingering. If all instruments were in C, the player would need to associate the same dot with multiple different fingerings, depending on the family member being played.


Redundancy can actually be useful in notation as a sort of error-detecting code. In this case, if the pitch-symbol and pitch-position don't match up, someone must have made a mistake in transcribing it.

Whether it helps one when reading music is another matter. I remember learning to play an electric organ as a youngster with a book of sheet music that came with the organ; being aimed at beginners, each note head had the note letter written inside it. Hummingbird is basically using the same idea, just replacing the letter with a symbol. It probably does make it easier to learn. Whether it would be of any use for an experienced musician, I kind of doubt. (I certainly outgrew expecting the note head to contain the note letter, myself.)


I completely support anyone who wants to invent new notations for things. It's fun. But I'd just like to note that if logical, regular notation was necessarily better, we'd all be speaking Lojban and programming in Scheme. Also, I suspect a conventional eighth note would be easier to make out in a dim concert hall...


Simplifying notation doesn't automatically make things better.

Theory: people prefer infix to prefix or suffix notation because it more closely mirrors the Subject-Verb-Object patterns of their native languages.

Corollary: lisp feels awkward because it doesn't map cleanly to native language thinking.

Lojban is mostly SVO as well.


If that theory was correct, one might expect Forth to be really popular among Japanese speakers. I don't see a lot of evidence for that.

I tend to think it's a more general effect where humans actually want a certain amount of irregularity in their languages/notations, to act as markers or error-detecting codes of some sort. e.g. "he", but "him" in accusative case. But who knows; English gets by with "you" being both singular and plural...


I wonder if the value would ever fall to precisely zero. Mightn't they still have value as a novelty or collector's item? Like, "Hey, a Bitcoin! I remember those... sure, I'll buy one, just to say I have one." It's unfortunate that you couldn't mount it in a decorative frame, though.


One guy made physical coins for bitcoin:

(https://www.casascius.com/)


Indeed. My friend knows the man behind this. He owns another software company in Utah and gives his employees bonuses in BitCoin.



At some point it would probably be easier to mine one, if the value and interest drops low enough.


That's backwards. As the value approaches zero, the relative cost of mining grows not shrinks.


That's true, but as value drops, there is less incentive to mine bitcoin so there'll be a lot less mining going on(not cost-effective with respect to the cost of electricity).


Unless we reach the mining gives you 0BTC limit.


It will never fall to zero, I'll personally buy every last one of them at $0.0001 each.


It would not make sense to buy EVERY one of them, as then you're guaranteeing they won't have value to anyone else.


Once you own 50% can't you create fake transactions to transfer the rest of the BTC to yourself?


No you need 50% of the mining capacity, not the bitcoins


Perhaps he sees minimal value in being the only person that has any.


I don't care, I'll buy them all. I'd be the sole owner of a piece of internet history.


Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: