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

July 3rd, 2009

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”

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

July 2nd, 2009

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

Never offer to work for free

July 1st, 2009

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

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

June 29th, 2009

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

Santa Claus kills another kid

May 10th, 2009

“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.”"

Thoughts on contracting

May 9th, 2009

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.

Vista file sharing is ridiculous crap

May 6th, 2009

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.

Irrlicht demo converted to multiplayer demo

April 25th, 2009

I took the demo for the game engine Irrlicht and added multiplayer to it in two days.

Download

Technical details

Screenshot

I have to say again that Irrlicht is a great engine. Very easy to use, very well documented. I had to go to the source a few times but it was nothing major.

Middleware X 7 = Uberengine

April 22nd, 2009

I was thinking lately what a good market middleware is

  • Write once, sell many times
  • Focusing on a specialty lets you beat out companies that do that one thing incidentally
  • Even as an individual with no marketing, you can outperform large companies that spend 100x what you do

And thinking to take that to the next step, with a game engine. I’ve noticed that game engines get many times the attention of individual libraries, much more so than the sum of their components. Imagine a game engine where each component is a specialized best-of-class library. RakNet times 7, the other 6 being graphics, physics, audio, AI, UI, and tools. If I knew 6 other developers or small companies that had the same quality as RakNet, at a similar price, it would be a great venture to join forces and make an engine as the integrated sum of those libraries. Such an engine would dominate the market immediately in terms of quality, because no existing monolithic engine, no matter how good, could beat a specialized company that focuses on that a single aspect. If you were to take all these specialized companies together then, all other engines would be fail because none of them could compete in any area.

It’s sort of like how you can take any default Windows application and find a better substitute on the net. It’s not that Microsoft did a bad job, but that their focus was on an operating system. Specialized companies turn around, find a niche market for that application, and beat Microsoft because that is their core focus. If you’re not going to do a way better job then there’s no point in entering the market.

If these libraries could be integrated seamlessly, with the full feature set for each library exposed, it would like astounding.

Irrlicht is a great engine

April 22nd, 2009

I’m revisiting Irrlicht to add multiplayer to one of their demos. It’s a fantastically easy to use engine that is well-written and well-documented. A few years ago I didn’t use it for Galactic Melee because of lack of tool integration support. Hopefully it’s better on that now, although Ogre didn’t turn out to be that well-integrated into tools either in hindsight.