Categories
Uncategorized

Fixed spam links in RSS feed

Looks like wordpress got hijacked and was sending out spam in the RSS feed. Sorry to all those that experienced it. This is the 2nd time wordpress has gotten hijacked. Seems like it’s not a very secure system, as much as i otherwise appreciate that it’s free
URL with fix (See last post)

Sorry if I accidentally deleted your account. I had to delete all with usernames or email addresses that looked automatically generated.

Categories
Uncategorized

Rich people during the downturn

I was reading an article today about rich people having a harder time during the downturn in the economy. What really struck me was the some of the comments.

1. It’s ridiculous to say you cannot sell your house (now that you can no longer afford to maintain it). You just can’t sell it for more than its market value. Doing so involves admitting that you overpaid when you bought it. You made a bad decision, accept the consequences. Staying in a house you can’t afford only worsens your loss.

2. People that make more money than you do do so because they made better decisions earlier in life, and took successful risks. With the exception of circumstances outside of your control (abusive parents, birth defects, traffic accidents) everyone in the US has a reasonably equal opportunity in life. Most disadvantages at the start can be overcome if you work harder.

3. College is only unaffordable if you make it so. Jr. college costs a few hundred per semester, and that’s for 2 years. Another 2 years of college at 2K per semester is 8K. Live with your parents, go to whatever is nearby, and get a degree. It only matters for your first job, and if you excel at your first job you’ll catch up quickly enough. If you’re too old to live with your parents now, that’s your own fault for screwing around when you had the chance. You’ll have to work harder to make it up.

4. Rich is relative. I make more than the person in the article, yet I’m only middle class. I can’t afford to buy a house. Federal income tax takes over 30%, state tax another 10%, Social security another 10K, sales tax is at 8.5%, and so on. My rent is $3000 a month and while I’m renting a house, it’s not a mansion by any means. Federal taxes do not take into account cost of living. You may make more, but you pay progressively more in taxes, and have to pay more to live.

5. For every business owner, there are 9 that failed. For every rich business owner, there are 9 that are not rich. And every business owner works 7 days a week 24 hours a day. Perhaps not directly in the office/shop/restaurant. But the business is always there, demanding your attention to make it successful. So successful people deserve the money they made, and if they play golf all day, it’s because they worked hard earlier. Are there rich people that don’t deserve it? Of course. But that’s the aberration, and sooner or later it’ll even out.

6. If you can’t save, look at your spending habits. There are very few people that cannot afford college were they to control their expenses to the true necessities. That is why foreigners get ahead. They really did have nothing where they came from, so they understand how to save and what is really a necessity.

Categories
Uncategorized

Why every programmer should start their own business

1. You can write off everything that you buy related to your business, which for me is a 30% discount for almost everything I spend money on. You’d be surprised at just how much can be considered a business expense.
A. Eating out while at a job site (though they limit this to half the discount, so 15%)
B. Buying computer games, when used for ‘market research’
C. Buying computer parts
D. The portion of my home I use for my home office applied to my rent
E. Similar to D, but for utilities
F. Auto depreciation and expenses (again just for the job site, but for me that’s practically the only place I go)
G. Common supplies – paper, pencils

2. You can demand more money from those you work for, if you work as a contractor, which is now easier if you contract through your own business. See my Contract pay calculator. It’s not one-sided. It actually costs your employer/customer less to hire you.

3. Using some of the money from item 2, you can buy your own health insurance. That means you don’t lose your health insurance just because you lost your job. It also means you can pick the health insurance you actually want.

4. In CA, and perhaps other states, having your own company means you can buy group health insurance. By law, you don’t have to disclose preexisting conditions with group health insurance. This is why you can have your family insured when you would otherwise start a new job as an employee without them requiring that your wife and kids get a checkup and turn over their medical records first. If you just went and bought individual coverage you’d have to do that.

5. If you do get hired as a contractor, you get emotional benefits from being your own boss. The freedom is great too – decline meetings you don’t want to go to, come in whatever you want, work for other customers at the same time, and often maintain ownership of part all of your work Of course this can be abused and you can get in trouble, but as long as you get your work done the customer has no basis to complain.

6. Now that you actually have a business license (which takes only a couple of hours for everything), if you want to sell goods or services, or do contracting, it’s much easier.

7. If you incorporate as an LLC, then you are personally shielded from the liabilities of your business. This means if you were to contract for or sell to company X, and they sued you for whatever reason, the most they could get is whatever was in your business bank account, and your business assets at the time you were served. The franchise fee in CA is $800 a year, less in other states. Keep your business account separate from your personal account, and you no longer have to worry about losing your house. (Within reason, see Piercing the corporate veil)

The only real downside is that contract work tends to be temporary. Some managers have this perception. However the way I see it, it’s no less temporary than being an employee, as employees can be fired too. As long as you are making the company money and doing a good job they have every incentive to keep you on as a contractor.

Categories
Uncategorized

Playing music from Visual Studio

1. View / Other Windows / Web browser
2. Enter http://www.pandora.com
3. If desired, drag the tab off to the bottom of the code edit pane, and slide it down to minimize it.

So you can play Pandora without having another tab open in your taskbar and accidentally closing it.

Categories
Uncategorized

How to deal with customers in a financial crisis?

One of my best customers has run into financial problems. This affects me because I contract for them on a routine schedule, and they missed the last payment by a week, with no solid ETA on when they can make it.

It’s an interesting question on how to handle this.

1. I could immediately suspend contracting services. This would insulate me from further potential loss, and I could use that time for other customers. But I’m a critical person they are counting on, and if I were to stop services they’d probably not be able to ship the game with multiplayer, or at least not on time.

2. I could give them a hard deadline to pay by. I’m exposed to further loss (over 25K in fees owed), but they might make the payment and I can continue contracting. They pay very well and I’d like to keep the contract if I can do so with reasonable assurance I’ll get paid.

3. I could give them a soft deadline to pay by. By this I mean being flexible and agreeable to whatever dates they offer as to when I will get paid. On the positive side, this maintains good relations, they’ll probably finish the game, and if they finish the game I’d probably be more likely to be paid than otherwise. On the negative side, if they DO go insolvent, as a contractor I’m an unsecured creditor behind the employees, and I could end up losing 50K in fees.

For option 2 or 3, suppose I set a deadline and they meet it. Should I continue on as if nothing happened? Or should I demand assurances for future payments, such as payment in advance, or requirement that the money be put in escrow? How about insisting on adding interest or late payment penalties to the contract? I’m critical enough I could probably get whatever I asked for, though they may not want me to contract after the game is done.

Suppose I set a deadline and they miss it narrowly. Should I bother coming back? And if I come back, should I demand assurances, as above? There are arguments both ways. Usually if a company is late on payments it’s because they are going to fall further and further late over time. Plus if they can’t meet a deadline to the point of losing key personnel, it doesn’t say much for their solvency. However, they did pay in the end and causing their game to likely fail regardless is kind of an asshole thing to do to a customer. Assuming of course they stay in business long enough to finish it.

In the last extreme, if I don’t get paid at all, yet the company stays in business should I file a lawsuit? That’ll definitely ruin relations and any chance of them recontracting in the future (assuming they did eventually pay, but much later).

As further background:

1. The company is very large – if they really wanted to I know they could make the payments, if nothing else by selling assets or reducing the salary of the CEO. But my payment has a lower priority than that of their employees and management (who did get paid on time, at least this last pay period)

2. I don’t think the finance officer’s handling of the situation is very respectful. Maybe it shouldn’t be a factor, but I feel like I’d be a lot more motivated to be flexible if I was told something like “Sorry, we’re having problems making payments. I was told we might have the money by Friday, and I hope you don’t mind waiting until then. I’ll try to see that this does not happen again.” vs. “I hope you’ll get paid next Friday” which is he actually said. It’s just words and doesn’t change the reality of the situation, but it does affect how cooperative I feel about the situation.

3. I’m not relying on the contract, it’s just one revenue stream among many.

4. The contract didn’t have provisions for late payments

Categories
Uncategorized

Making RakNet releases, then vs. now

Then:

  1. Rebuild all
  2. Run a batch file to delete temporary files (.obj, etc.)
  3. Zip the whole directory
  4. Add a comment to revisionlog.txt
  5. Upload it, overwriting the old file (RakNet.zip)
  6. Change the date on the front page
  7. If I remember, also change the version number in readme.txt

It took me about 5 minutes to make a build. As a result, anytime I found a bug I’d basically release a build immediately.

Now:

  1. Rebuild all
  2. Of the over 50 projects, fix the ones that no longer build
  3. Fix warnings introduced by various ifdefs
  4. Build on Code Blocks, adding new files. Fix compile errors/warnings.
  5. Build on Dev-cpp, adding new files.
  6. Go to the source directory, do dir *.h, copy out file list to a text editor. Modify output to match formatting tags for makefiles. Copy output to makefile.
  7. Do the same for *.cpp
  8. Do a similar process for the VC6 project (if I bother)
  9. Build in Visual Studio again to make sure things still build
  10. Copy source files to CYGWIN. Figure out how to compile in GCC again, and fix any compile errors if any.
  11. Run through the easier to test projects to make sure the major features still superficially work
  12. Figure out when the last build was made, look up the log from SVN, and collect all the check-in log entries
  13. Format the log entries and add them to revisionlog.html. This is non-trivial, to prevent revisionlog from being unreadable
  14. Change the version number in readme.txt and RakNetVersion.h
  15. Update the remote dedicated server from SVN, rebuild, and restart
  16. Generate the Irrlicht demo exe. Download the .zip from the website, update the exe, and reupload
  17. In SVN, create a tag with the version number, which involves looking up how to do it each time
  18. Regenerate the Doxygen html documentation
  19. Run HTML help workshop to generate the chm documentation. Move the chm file out of the html file.
  20. If I remember, upload the new Doxygen documentation to the website
  21. Export from SVN to a temp directory.
  22. Zip the files in the temp directory. Sometimes there are unusual steps here, such as unzipping the ogre sample (lately I don’t bother to do that).
  23. Upload the zip to Sourceforge
  24. Figure out how to navigate the Sourceforge interface to get to the new releases page (which takes me a couple of minutes every time)
  25. Add a new release. Paste in the revision log from earlier. Add the file, and submit.
  26. Upload the same zip file to the website, making sure the version number of the filename of the zip file is correct.
  27. Open the 6 different pages on the website that reference the link and update them.
  28. Update the news page in the forum to point to the correct link
  29. Add a post to version announcements with the revision log.
  30. I used to also edit the download graphic with the correct version number. But this got to be such a pain I just changed it to 3.x so I wouldn’t have to keep modifying it.
  31. Sometimes send a post to gamedev.net about the new release (lately I don’t usually bother).
  32. Think about which of these steps I forgot, and sometimes redo part of this if I did.

It takes about an hour to make a build. I do a build every 1-3 months, depending on if I find any major bugs and how stable I feel the code is. If I’m changing existing code every day I usually won’t release.

Categories
Uncategorized

Sega must have paid a lot of money for the Empire: Total War reviews

Any game review site that gave above a 75 for Empire: Total War must have been paid by Sega. I’m questioning if the game was even made by the same developer as the priors in the series, or just farmed out to Indians. While the game has promise, it’s unplayable due to bugs and horrible AI. The AI was never meaningfully updated from the prior games, which didn’t have guns, barricades, or cannons on walls. So a large part of the time your units are just standing around, trying to get into formation, while being shot in the meantime. The cannons on walls are almost never used. Your calvary just run right into barricades through normal speed movement. And the AI is way worse than in prior games. I can easily win with a 6-1 or 8-1 kill ratio just because 1/4 of the AI force is just standing around rather than attacking, or stuck walking up the ramps for the walls.

The performance is also bad. On my top-of-the-line system with dual 280’s I still can’t run at even medium settings without chugging.

Categories
Uncategorized

Former health care exec speaks out against industry

http://www.pbs.org/moyers/journal/07102009/watch2.html

Categories
Uncategorized

Someone needs to write a C++ IDE for Linux that is user friendly

I’ve been trying to compile RakNet on Linux. g++ -lpthread *.cpp works, but nothing else does

Eclipse:

Doesn’t support C++. If you add a plugin for C++, you can select it under help / update but it won’t install. “Eclipse C/C== Development Platform requires plugin-in “org.eclipse.core.contenttype (3.3.0)” A search for what the hell that is turned up nothing. So I moved on to

Code blocks:

There’s no download for Ubuntu. It says you have to install wxWidgets if you want to do that, to /etc/apt/sources.list. I know that’s a file, but no idea what I’m supposed to do with it. It also recommends to type in deb http://apt.wxwidgets.ogre/gutsy-wx main . I typed that in the console but it just returned some error. So I moved on to:

KDevelop

Even hello world won’t compile. Project / create new project / c++ / Simple Hello World Program. Then click build, and it asks you something about automake. If you click yes, it doesn’t work anyway. ../libtool line 2429: mkdir /.libs: No such file or directory. So I moved on to:

Net Beans IDE 6.5

I manged to setup a project and add all my source files. But when I right clicked on the project name and clicked build it said “make: Makefile: No such file or directory”

Categories
Uncategorized

75% of Rent-a-coder bidders didn’t read what they were bidding on

I posted the following bid request on Rent-A-Coder
PHP Directory Server 2

At the end of the bid I wrote
“To show that you read the requirements, write ‘I read the requirements’ in your bid. Bids that do not have this will not be considered as valid bids.”

I got 8 bids in the next 12 hours. Of those 8, 6 did not write “I read the requirements” Not surprisingly, of those that did not read the requirements, 5 were in 3rd world counties (the people you should never hire).