1,361 karma · joined June 14, 2010
On top of that, they shoulder the cost of upgrading the hardware, along with the risk - another Dreamcast (high initial sales followed by a severe dropoff) would be disastrous. I'm not sure how they can pass those costs on to their customers at a price point that's attractive to anyone who doesn't play lots of games per month (also making it possibly a net loss), or that's competitive with the more scalable, more performant, and lower risk model of running the games on the client, whether it's a console or a PC.
I am so very confused as to how this is scaling. Isn't the rule of thumb for scalability and performance to move client state and UI processing onto the client? Are they going to run an XBox VM for every simultaneously connected customer? How does it perform for games that require low controller lag, like FPS - or Megaman for that matter.
Interviews and conversations online may lead you to feel like you need to beat yourself into reading books on operating systems or some other specific sub-field, but a sincere interest in things like garbage collection isn't the only path to success. Algorithms comes up a lot because it's easier to filter for people who know the topic well, but those people have gaps in their abilities, too. Those topics aren't more important than things like domain knowledge or writing maintainable code, they just aren't always as easy to recognize, test for, or brag about.
Sure it's good to learn them, but learn them when you have some motivation to - start writing a game and then read about path-finding. Learn RegEx out of an interest in shortening some code at work. Turning learning into hard work by forcing yourself to learn about things that don't interest you is just going to make learning more difficult. What's important is just that you learn something - so relax and do something fun.
"The engineering population in Japan may be in jeopardy. We should first review our education system here in Japan."On the other hand, getting hired is a touch difficult, too. Companies that post at websites like Career Cross are mostly looking for fluency and lots of enterprise experience - I never even had any luck getting a reply. Most companies who are looking to hire foreigners also only want people who already have the right kind of Visa (an Engineering Visa - btw, if you have one, GrouponJP is hiring a PHP+Perl programmer to do some marketing analysis stuff).
Things aren't all bad, though. I got my job in Japan by going to one of the Recruit/MyNavi events for Japanese students who had studied in English speaking countries. Recruiters chase down the few foreigners there, but admittedly only one company was actually hiring programmers, and I ultimately wasn't happy there - YMMV.
Some video game and consumer electronics companies also hire foreigners, but large companies usually make all applicants take a test that's difficult for native speakers - I applied to Capcom, but they expected me to be fluent and take the test like everyone else. Of course, that depends on the company - you might have more luck elsewhere, and if you're close to fluent, it's worth a shot either way. Try to apply as a "new college graduate" if you can - there's a whole lot of bias against anyone who's held a previous full-time position, and I'm sure it doesn't disappear when they look at foreigner's resumes.
The other route is through foreign companies - I know at least one person at Google Tokyo who originally interviewed in the U.S. On the other hand, I know someone else at Lockheed Martin who's been fighting to get into their Japan office for years now - so how difficult it is depends on the company.
My advice - do Study abroad, JET, or just a 2~3 month trip; go to Tokyo (I personally prefer Osaka, but the jobs are in Tokyo) and go to the HN Tokyo meetup; if no one knows of any openings, apply to a bunch of foreign companies there; if that doesn't work, get a nice black suit and go to a recruiting event.
While it depends on what you're comparing to (is the competition writing assembly by hand or writing Python in a functional style?), I don't think you'll see someone working in an advanced language getting to market shockingly faster (and their code won't run faster), or something similarly strikingly noticeable from the outside. More likely, when a company working in an advanced language does get ahead, you'll see them having a much easier time keeping up with competition and adapting to new trends due to much lower maintenance overhead. Resources expended on debugging and refactoring isn't a measure we really look at when talking about most successful projects, but it is still worth improving.
So if you could be getting more elsewhere, then the others who are splitting up the profits are getting more compensation than they created value - others who are getting far less than their market value aren't part of the negotiation, unless your employer is thinking of hiring them.
In short: If you're thinking of working in Finance, and your employer has no intention of hiring a starving programmer from another country, then you're underpaid. If your employer is looking into outsourcing, and you're not searching for jobs, you're overpaid.
If the (only) owner(s) of infrastructure or a limited resource offers access for only a select group, do you consider them to be offering a service to that group, or to be starving non-members of access?
What do you do about it? Do you hope for competition, or create rules against discrimination? If you create rules, how can you prevent the rule-maker from using the rules to do its own discrimination? If you hope for competition, what if there's not enough of the resource, there are network effects or other high barriers to entry, or everyone in the market decides to do the same discrimination?
So, who do you trust less to be the gatekeeper, the government, or the ISPs? Neither answer is really a good one.
The telcos are doing what's best for their business, but that's not necessarily what's best for their customers - positioning yourself as the owner of infrastructure is a powerful and profitable place to be, but if you get to be in too good of a position, the same debate will come up again - the parallel to the 1800's is a good one.
1) Those who have the power to delete the articles perhaps weren't knowledgeable enough to make a judgement, or for some other reason gave too much weight to his decisions, and the AfD process didn't provide (enough time, a good environment) for reasonable discussion, and so he had more control over the process than he should have. Many seem to believe he was willfully taking advantage of that position.
2) His tone gave the impression that he wasn't taking the situation seriously. I really get the impression that people were upset about his attitude, maybe even more than his actions, but completely failed to articulate that, at least in a civilized and constructive way.
I'm not at all surprised that he was treated as if he was trolling, but I do agree that we should be better than that, and I have that much more respect for those who tried to mediate.
Now I know what language to learn once I finish reading "Real World Haskell". I was gonna go for Factor or Forth, but this absolutely wins.
x |> f = f x
gives you lambda calculus, but it gets ugly, since you need to specify order of operations with parentheses. (4 |> (5 |> (+))) |> (3 |> (*))
You can take it a step further with tuples, but you still need to be explicit about the number of arguments: (x,y) |> f = f x y
((4,5) |> (+), 3) |> (*)
Maybe you could go almost all the way by telling it to create a List when passed two values, and telling it apply to the (nested) List when called with a List and an operator, but off hand, I can't think of a way to get it to type check, particularly not without killing currying.This would actually let you read code strictly left-to-right (even though English speakers would be tempted to think of it as right-to-left) - when you read through functional programs, you end up reading a lot of the code right-to-left, due to function application, to see the order that code is actually executed. In postfix, the order objects/functions are written is the order they're executed.
Continuing along the lines of the post, a more Japanese programming language would also have named arguments (particles), and if it was object oriented, you wouldn't need to type 'this'/'self', since subject can be implied by context (well, it's really the direct object - the computer is the subject).
Speaking of books, Real World Haskell covers testing pretty early on; granted, being Haskell, whether or not it qualifies as "Real World" is still a little subjective at this point.
If you're looking for resources to tutor yourself, there are some TDD katas out there (I admittedly haven't tried it myself, though) - http://www.osherove.com/tdd-kata-1/
http://www.google.com/search?sourceid=chrome&ie=UTF-8...
Edit: I hadn't seen your posts below saying that this wasn't working for Clojure
My personal opinion - it'd be nice, but I don't miss it enough to switch editors or bug the author - maybe someone will make a plugin for it. I haven't missed it at all in Python or Haskell. Last time I worked on a Java project, I missed it a bit at first, but mostly found that the minimap got rid of that feeling of looking at code through tunnel vision that made me want to collapse it, and by the end of the project I'd shifted to using ST more than Eclipse. I might feel differently if I jumped back in to C#, with #region and all, but I really feel like the C language family lends itself more to IDEs anyway.