JF make 320
JF Nav
JF Nav
Creation Date: 2004-01-31
Greetings, I hope you are well. If you are reading this, perhaps you are. You are probably aware that reading this is supplementary to life as opposed to required. I write this so that I can get enjoyment and you read it for the same purpose. I hope we are on the same wavelength, you and I. On good days like today I work on required things 15 hours each day and the rest is usually spent eating. On not so good days (like yesterday) I watch movies, anime, and read Slashdot for about five hours. But yesterday was not a bad day since I got ~10 hours of work done. As long as I can get a large amount of required work done everyday, my goal will be accomplished. I have done the scheduling required for this task and I am annoyyed that I was unable to complete the task in the time I gave it, but I have assumed that exactly that would happen and have given myself extra hours to work on it. But that means that I have to work harder. Working harder doesn't always work. For today's lesson I will try to glance on the topic of working harder.

A person can work longer hours if they want to. I explained that yesterday. One can skip some sleep even to accomplish their goal. 24 hours everday is available for you, the same as everyone else. Can you work longer? This is really based on the question of your stamina. Working harder is not so simple, but works on the same principle.

While how long you work depends on stamina, how hard you work depends on your strength. You must determine how to gather strength. Many people believe that strength is gained from consumption (food, drink, caffeine, nicotine, alcohol, amphetamines, barbituates). For a part, this is true, but eating a bunch when you are not hungry will only waste time and not give any energy. Eating elaborate meals will waste time. Eating cheap meals may lack vital nutrients. I have found that I can perfectly balance my diet. If you are looking for a diet, you might try: noodles, tofu, rice, vegatables, hot sauce, soy sauce, peanut butter and honey sandwiches, granola, and oatmeal. Besides being nutritious, tasty, and vegetarian, these are cheap and fast to cook. But strength can come from things other than food.

If strength only came from food, there would be only one strength. Strength can come from training. But strength for programming and hacking will not come from running or pushups. They come from experience with technology. A person who has taken many computers apart will have strength in device hacking. Not intelligence or wisdom, strength. They will be able to work harder than anyone with less experience. I have a bit of that. Not as much as someone who overclocks and has built dozens of systems. A person who has debugged a dozen programs that they have written which are horribly buggy will have amazing programming strength. That is what I have. Ten years I have programmed and debugged my own work. I have the ability to write and debug things so efficiently that working with another programmer, I blew him away with my speed and skills. His expectations were low because I didn't have professional experience. But strength is not in the paycheck, it's in the work.


But I rely on a much more fluctuating source of strength to push me to program extremely complex technology. That is motivation. Today, I ran out of music to listen to. I thought about it a little while and I turned on Digitally Imported, a good techno radio station. That will keep me in the music for a few days. By then, I'll be ready to listen to my collection again. But this cannot last forever. I got a headache when I turned off the music. I stopped, thought about it. I meditated on the subject of losing my motivation and decided to take action. I drank jasmine tea for a half hour and sat meditating. My headache is gone. Whatever I do, I must not allow my motivation to leave me, or I am helpless. I would be lucky to get 5 hours of work done without motivation.

One thing that will zap motivation (and with it strength) is unfixable bugs and slowness. Yesterday and today I have worked on a bug that will not fix. It is not a segfault. It is not a simple data problem. I might be able to fix it with step-by-step debugging, but so far I have failed. So my solution is to start on another part of the project that does not prerequisite that part of the project. Luckily, there are many parts like that.
Below is one of them. This is a screenshot from the portal system that I just 5 minutes ago imported from my portal 2 demo into AltSci3d Hack Mars. As you can see, something is happening. That something is much more ordered than the randomness you see. The reason you don't see something amazing is because the red lines that make up the rooms' walls are slightly behind the triangles which they border. I could fix that by hiding the triangles, but what's the fun in that? With this image, you see my hope, dreams, sweat, blood, and tears of the last year. My hope is in these red lines creating a gameplay which a player can easily navigate a massive maze of tunnels which will be Mars Colony Alpha (aka Ares). This navigation of tunnels is widely used in RPG video games for it's simplicity and to give the player a sense of environment and urgency in the task at hand. I am putting tunnels in because it is quite realistic for Martian colony to have tunnels. I mean, who wants to get into a spacesuit just to get groceries or go to work? Yes, Hack Mars will be similar to Nethack in this respect: navigating tunnels searching for something that is beyond description and finding many other things which are far less valuable, but far more interesting. (You have been killed by a lichen!)

Another horrible zap of motivation is slowness. It takes 2.5 minutes to compile Hack Mars. You know that there is quality code in such a project. It takes 10 seconds to compile one large size file (1200 lines of code) and link the executable. I could split the file into classes to get slightly better speed but at the loss of ease of use. If a bug takes 10 seconds to compile and 10 seconds to test, a lot of time is wasted. One solution is to put in a large amount of changes at once so that one compile will give a lot of information, but it only goes so far. When the information says nothing usable, the debugging process goes into the ground.

One solution is Python, a scripting engine. I wrote an interface to it for Hack Mars. That way I can script everything into Hack Mars without a recompile. That saves more time than you could imagine. This allows Python to become a major part of the control of the system. In fact, without Python, Hack Mars would never have been started, let alone finished. When the AS3D Hack Mars engine is done, I will code in Python from then on. All the scripting will be edited so fast that it will make much more work possible in a small amount of time. If C++ could do that, there'd be many more good programs out there. That is why many people are ditching C/C++ and writing their programs in Python. Python isn't compiled, so it isn't as fast, but many programs do not need fast so much as they need existence and stability which C/C++ cannot give them. BitTorrent is a good example.

Now I'm back to work. Motivated? Why yes I am.

Home Characters Making Of Technical Mail News Links |< First < Prev Next > Latest >|  bandwidth version Goto Scene