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).

Categories
Uncategorized

Never offer to work for free

An old customer of mine is using theĀ NAT punchthrough feature of RakNet. After my recent work on this feature with Stardock, the success rate is much higher. So out of a desire to help I offered to upgrade this feature for this customer for free. My terms were either remote desktop, or on-site if they covered the costs. I was only planning to spend an hour or two on the upgrade, basically replacing that one file and adding the extra functionality needed.

As it turned out, they wanted me to fly there to do the upgrade. As the date approached I started to regret not thinking it through. They wanted me to go there for the whole weekend. At first I just thought of this as a vacation. Work half a day and screw around in another city for some fun. But as the date approached I really regretted making that offer. Two lost days when I had a lot of other work to do, plus the tremendous inconvenience that comes with business trips. In any case, I missed the flight that morning. It was because the airline didn’t allow electronic or Kiosk check-in when the operating flight is different from the purchasing flight, and the line for the agents had 30 people in it – way too long for me to get on board on time. I’m not making excuses; that is just the reason why I missed it.

I called the customer that morning telling them I missed the flight and I’d just have to do the work over remote desktop. I did the work over the next three days, although I have to say with extreme reluctance and second guessing myself about why the heck I agreed to do this. The reason it took three days is because I couldn’t just change that one file as I had hoped. The customer had changed half a dozen or so related files in RakNet, and I had to integrate those changes. With those changes, it made more sense to just update the whole system while I was at it.

In hindsight, I suspect nobody told the lead programmer I was working with that I was doing this for free. So I got the impression he was annoyed when I was unwilling to do the work except at my own convenience, which meant during time I wasn’t working for a paying customer instead. I saw him as being awfully demanding and unappreciative considering I had no financial or legal incentive to do the work.

The next day, the customer sends me a thank you letter for the work done… Just kidding, they sent me an invoice for the unused plane ticket. A rudely worded one. And not an ounce of appreciation.

Never offer to work for free.

A. You’ll feel resentful
B. This will translate into being less cooperative
C. The customer will not appreciate it as much as you think they should

Categories
Uncategorized

In case you didn’t know what vendor lock-in means

I needed a replacement power supply from Canon.com

Expensive! What if I just bought the camera new?

How much does the power supply really cost?

Wikipedia on vendor lock-in

Categories
Uncategorized

Santa Claus kills another kid

“A mother testified that Santa Claus prevents her son from taking chemo. Doctors said he will likely die without it.”
http://www.startribune.com/lifestyle/health/44594367.html?elr=KArksUUUycaEacyU

“The Hausers declined to speak to reporters after Friday’s court session. But Dan Zwakman, a member of the North Pole fan club to which they belong, acted as the family spokesman. He argued that this is a case about freedom to believe in Santa, noting that the group’s motto is “Elves are our medicine.””

Categories
Game Development

Thoughts on contracting

It’s interesting, even to myself, how contracting has changed my perceptions of labor over the last few years.

When I started contracting, I didn’t act any differently from the employee I was used to being the prior years of my career. I generally came in the same hours, spoke to the same people, attended the same meetings, and did similar tasks. However, there was a seed in the back of my mind that I was now working for myself and the company was a customer. A crucial difference, now being able to say “Why would I go to the company party? I don’t work here.” It’s like when you meet your boss for the first time in the interview, and he’s just a normal guy like any other. Eventually that feeling turns to “my boss” but if you’re a contractor it’s “my customer” and he’s still just a normal guy.

It’s become a strange concept to me that a company can control your comings and going. I know it happens because I see it happen to others, and I remember it happening to me when I was an employee. I used to have boring days where I would sit there and watch the clock until I could go home. That thought now evokes images of outrage, and slavery. How can someone else tell you, a human being, where you can and can’t go, or when you can do it? I used to complain that I’d have to sit there if I had nothing to do. Now, it’s my own time. Once my customer is happy with my progress, I go do something else. Sometimes work for another customer. Sometimes I keep working for them, but at my own office.

There is no longer a line between work and home. My job for the client is to ensure they are happy with the services I provide so they continue to be a customer. I don’t complain about working nights or weekends if I need to, because all the time is my own to begin with. Time is not relevant, only the assigned work is.

Similarly, there’s no issue of doing the minimum work to get by, because I’m not working for someone else directly. I’m providing a customer with a service, and of course when running my own company I will do the best job possible.

I could never go back to being an employee. The feeling of freedom working for yourself is like the feeling of being alive.

Here’s some random tips to help out other contractors or potential contractors.

1. The employer will act outraged, shocked, and/or feign ignorance of the various costs and taxes when they hear your price. But it’s just a negotiating tactic to pay you less. Knowing the facts, showing you know them, and not backing down directly equates to more money
http://www.rakkar.org/ContractPayCalculator.html

2. Not all employers understand the laws or differences between contractors and employees. When I first started contracting I thought of the differences in terms of the law, but now I just think of the differences in what I am willing to work for a customer.

For example, if the company insists that you be there certain hours although you have nothing to do that day, you can say “My monthly fee is for roughly a month of tasks. While I don’t charge less for months where I have less to do, neither do I charge more when I have more to do. I’m happy to stay, but I’ll be billing hourly and this will cost you more in the long run, especially during crunch time.”

3. If helps if you make so much money or are in so much demand that you don’t need a particular customer or job, and are therefore able to drive harder bargains and set your own terms. Having your own business makes much more money than being an employee, and after a few years you tend to reach this point.

4. Flying around the country invokes a very real time and cost to you, that is hidden to the customer. A two hour flight takes three or four hours each way when you count check-in and the drive to the airport. At the end of the day you’re probably not going to be doing much other than watching TV in a hotel. And you get nothing for the unpleasantness of sitting in an airplane.

Jobs where I didn’t charge for this time made me unhappy in retrospect, four days of effort for two days of pay. However, jobs where I did charge (a discounted rate) for this time made the customer unhappy, especially as I didn’t charge for that time previously. I can see their viewpoint – you are charging more than they make themselves just to sit on a plane and do nothing useful for them. The approach I’ve taken now is to just bill more for short-term contracts. Although, even at the rates I charge ($125 an hour) it still isn’t worth my time or effort financially. I think of it as a necessary support effort I provide for licensing fees I’ve already made, rather than a source of income.

Categories
Uncategorized

Vista file sharing is ridiculous crap

I’ve been using Windows since 3.1 and I still can’t figure out how to share *@%&@* directories on the *%&@*&% LAN.

Problems I’m facing are:

1. If you select a computer on the network, and log on as one user, it is utterly impossible to ever log off, or log on as a different user. Right clicking there is no option to select a different user, or to not log on with the user you want. I even tried disabling the network adapter, clearing passwords, etc. It doesn’t matter. If you go to Network, it will ALWAYS log on as the user you don’t want to log on with.

2. You can’t share files even if you do log on as a user. Right click on a folder and hit share. It brings up a dialog “Choose people to share with” I don’t want to share with any *%@&* people. I just want to logon as MY CURRENT USER on a different computer and access this folder. WTF!

Someone needs to make an application that lets you access your harddrive over the network.