I can't speak for the parent, but I've been using RAII and smart pointers in the 00s and it provided a lot of the benefits that got standardised with C++11.
HN user
ondrasej
http://www.ondrejsykora.com
There's genrule() which basically runs a shell script. With that, you can build anything for which you can write a command-line. And you can go as far as invoke a binary that is built by another bazel rule.
You can also define your own rules in a subset of Python (by wrapping other rules including genrule()), so adding new languages should be simple enough.
The same seat gets used on most days, by many different passengers (and many of them are used by multiple passengers per day).
By a conservative estimate, profit per seat per year would be large hundreds to small thousands of euros.
Online content is not exactly the same as physical goods, but it's not that far either:
- it costs very real money to produce, and
- it costs very real money to be served and to remain online.
These costs may be covered by ads, by subscriptions, by sponsors, taxes, voluntary contribution or anything else, but the they still need to be paid for.
[edit: fixed formatting]
First, be very careful about burning out. It can happen faster than you think if you have to force yourself to do the work every day.
Second, maybe you should find a different job - or at least change something about your current job. Remote work is not the best option for everyone - and it can be even worse if you work from home. Or maybe there's something wrong with your project, the technologies you use or the people you work with. Changing any of these might improve your situation. Start experimenting - you don't necessarily have to quit your job right now. Try working from different places (coworking space, university library, coffee shop, your friend's couch, ...). Speak with your manager about other projects, learning and growth opportunities and other things you might do that you would enjoy. And if this is something you can't bring up with your current manager, start looking for a new manager.
I was in a similar situation several years ago. I worked remotely (from home) for a small startup-like* company and in the end, I had to use the pomodoro technique and similar tricks every day just to make myself spend time really working. Even though I liked my team as people and we had a great CTO, it wasn't that great on the engineering side. Using ASP.net WebForms and Visual Studio 2008 (no management support for an upgrade) didn't help either. Neither did the fact that there was no product or customers to care about and relate with.
In the end, I felt really burned out and kept trying things just to keep working - working from the company office helped a bit, but it was really noisy there. Similar for my university lab (I was a student at that time), but it wasn't a long term solution. In the end, I got an internship at a research team at Google and started enjoying work again almost immediately. I even stayed there as a full-timer and I've never looked back. Even after four years I still look forward to going to work every single day because of the awesome people I work with and all the exciting projects we work on. There are annoying things like open-space offices, but the people and the projects more than compensate for it.
I've changed a lot of things at once to be 100% sure what made the biggest difference for me, but my bet is still on the people on the team and projects (no more asp.net and business plans changing every week). But I believe that even the change of work environment played its role.
* When I joined, the company existed for at least five years. But otherwise, it was very much like a startup - we had a product in development, but there were almost no customers and even the vision changed a lot - during one fruitful week, we went from an app generator to a social network for some demographic group, a government information system and back to apps. I guess it changed with the article the CEO read during lunch on a particular day. Interestingly, the management always convinced our investor to give us more money - maybe they held a child of the investor hostage or something like that.
The price for Hong Kong looks weird, NomadCost per month in HK is roughly 350 EUR lower than the monthly rental costs. This is probably due to the very low listed price of the hostel and budget hotel rooms.
This is definitely not a short-term solution, and it might not be practical even in mid-term, but wireless charging sounds like a perfect solution for this kind of environments.
The hospital rooms could have special "charging" spots on the floor/build into the furniture or just a hole in the wall. The patients would charge their devices simply by placing them on the charging spot/shelf. Now there are no potentially dangerous cables or plugs, and all charging can be done without devices leaving the patients' reach, reducing the risk of theft at the same time.
There's already an international standard for wireless charging. The only problem is that it works only with a couple of the current phones, and it's not very likely to appear in low-cost low-end devices that the patients of the mental hospitals most likely to use. But if it ever gets a wider adoption, this would solve a lot of problems...
I don't know what they do if you ask for a battery replacement or when something's wrong with the SSD, but changing a display on my 2011 MacBook Air was a matter of 20 minutes. I'd be very surprised if you couldn't at least replace the moherboard.
Which, by the way, is the only type of repair the other laptop manufacturers ever offered to me.
These two facts are not necessarily in contradiction. At this moment in the current Humble bundle, the average price paid by Linux and Mac users is significantly higher than the average price paid by Windows users, but the total income from Windows is still way higher than the income from Linux and Mac combined, just because of the raw numbers of users.
It looks to me like there are some Linux users who don't mind buying games (and do not mind paying premium for that), but the majority is not interested in buying games at all, regardless of the price.
Moreover, my own experience with buying games is that (digital distribution aside) it was practically impossible to get Linux versions of games (well, at least in Czech rep., where I used to live). And if there was a Linux version at all, using it meant buying a box with the Windows version and the patching it. So, even though I use Linux for work, I used to play games almost exclusively in Windows (and then on XBox, which made things even easier).
It just reminded me of http://www.flickr.com/photos/aebax/893691711/
The original site seems to be down at the moment, but fortunately, someone put it on Flickr.
I wouldn't argue against using a formatting string in general, but the printf style order-based formatting strings are really bad once you need to localize your app and have to support languages with different word order. In this sense, .NET or Python3-like formatting strings with position-based formatting is orders of magnitude better and I was surprised that Sun decided to use %* instead.
Take a simple example in the lines of "I've seen {0} {1} {2}".format("John", "eat", "an apple") ...and try localizing this message into e.g. German.
I have a feeling that printf-style is one of the reasons, why the texts in localized versions of some programs are as bad as they are.
As for commenting - code that is meant to be a library should have a clearly documented API. Perhaps not from the beginning, but as the API gets stable, the JavaDoc comments for generated documentation should be there. Though at the current state, tests and "getting started" examples (create a graph, list all nodes, determine if there is an edge from A to B, ...) would be sufficient (and would really help).
And since you're writing a graph library, there definitely should be a detailed commentary on the implementation of the graph (e.g. representation of the graph structure, memory complexity of the representation, and time complexity of common operations). Once you start working with larger graphs, using the correct representation and algorithms for your task makes a huge difference and it is something that must not be hidden from the users.
An appstore (sort of) for web apps is already there: http://www.apple.com/webapps/
Definitely Programming in Scala - http://www.artima.com/shop/programming_in_scala. You might find some parts of the book a little boring if you already have experience with functional programming, but it is one of the best books about programming languages I've read (I've only read the second edition, not the one that is available online, but I guess, the first one will be OK as an introduction too).
I guess the point of the article is that when you're doing an invalid cast, you in fact want to get an InvalidCastException, not NullPointerException.
Actually, geting reference counting right and mostly bug-free is much easier, if you use C++ and do the counting via objects on stack (RAII).
The code in the post is based on depth-first search, which basically is a trial and error approach. A well implemented and effective one thanks to constraint propagation, but it is still trial and error. And there are cases, in which backtracking (trial and error) is necessary - at least one of them is documented in the post (the puzzle "hard1" that took 188 seconds).
That's why I called it pathologic... ;)
Edit: using the symmetries described in the same Wikipedia article, the size of the database could be reduced significantly to roughly 5*10^9, which is quite manageable.
If you do the constraint propagation right, the number of trials and errors will be very small (and it will be only one trial and no errors for the easy ones).
I'd be very interested to see what an algorithm that solves any valid sudoku puzzle looks like. (apart from pathologic solutions like querying a database of all valid 9x9 sudoku combinations).
I've voted for work from home, as it is what I do most of the time. But I also do have a place at a shared office and I prefer to spend at least a day each week there, as it's sometimes easier to concentrate there and I do really hate sitting at one place all the time.
I'm glad to see Hipmunk have an app, this could make searching for flights even more fun.
I was interested if they had any problems with selling tickets via an iPhone app using the browser for paymentsm not the in app purchase API. But obviously they did not, as the app was approved.
Using Facebook/Twitter/OpenID accounts for login would probably remove this issue completely.
Though, I'm not sure if you can get e-mail from these, and making the users enter their e-mail after login would degrade the user experience.
However, the current version control systems usually have compatibility layers and/or import tools.
We have a project that started wih CVS, then moved to SVN and now runs on Hg, and we have the complete commit log (including commits from the CVS and SVN days) in the current repository.
There are some well known public data sets used for this purpose, such as those in the UCI Machine Learning repository. Unfortunately, not everyone is using them. And even if they do, it is often impossible to reproduce the results as pre-processing of the data is not described well enough in the paper, or because the authors add random components (such as costs) to the data without describing the distributions properly.
Publishing scripts for the complete workflow starting with the raw data and printing the table with the results in the end would be the best. But I've seen academics working in a way that is completely orhogonal to this - copying & pasting data to Excel or Matlab (or even re-typing them) and doing the analysis by hand in the GUI... I don't have any doubts they would be able to learn how to write the script, but I'm very sure they would put up heavy resistance to do so.