Skip to main content

Posts

A Funny Thought...

I just had a really funny thought. I was watching the evening news this evening and just happened to hear Dan Rather or some other equally ancient dude talking about how younger people seem to not care about private savings accounts and all the hoopla surrounding Social Security. My inital thought was, "Well, they don't care because they are watching Cartoon Network instead of the evening news." http://www.cartoonnetwork.com/ At least I thought it was pretty funny. In reality, the reason we don't care is because I can name three things that are on the evening news occupying over half the timeslot: 1) Someone died in Iraq by carbomb/whatever or announcing airport security stinks. 2) Someone discovers that bananas cause cancer or another FDA approved blah blah blah gets mad cow disease or some other such nonsense. 3) Someone is pushing budget balancing, social security reform, this reform, that reform. (Other, more minor, negative news follows - very rarely any p...

Uh oh...

Oh boy - two posts in one day. That's a rare treat for all of you, but I absolutely have to share this: http://www.schneier.com/blog/archives/2005/02/sha1_broken.html Don't bother reading the above unless you are in the security industry. There is only one thing you need to know: e-commerce = seriously busted. See, I am into the whole security industry thing and you don't need to be. However, when something this huge happens, you need to know about it - and perhaps the underlying technology of how it works. And this is huge. Okay, we all remember...we probably don't remember but think we do...back when e-commerce was this huge buzzword and everyone was talking about how it was the hot next best thing? That was somewhere around 1998 and escalated into 2001. It is now 2005. In computer to human years, that is 80 total years for e-commerce. E-commerce is based on a technology called Secure Socket Layer (SSL). SSL is called a layer because it transports data secur...

Ran across this...

I had no idea people could get SQL Server - you know, that huge hosebeast of a database server - for free: http://www.microsoft.com/sql/msde/default.asp Granted it only supports 25 concurrent users, but seriously, how many people is 25 concurrent users? The way I figure it, if a single user is considered as connecting and disconnecting within 100ms after executing their query, that's a total of roughly 250 users per second or roughly 15,000 users per minute without collisions. Of course, that assumes perfect timing connecting and disconnecting at that rate, so I'll assume there is some delay and say roughly 7,000 users per minute to be safe. Of course, if people are hanging onto their SQL connections longer than 100ms, then the number drops dramatically. Basically, if you are using Access or Jet or whatever, you can use this as a drop-in replacement. Sort of an intermediate step to a full-blown SQL Server environment. At the very least, it will be faster executing queries a...

Bit manipulation...

Completely unrelated to what I want to talk about (but got me thinking about CubicSpot): http://99zeros.blogspot.com/ Mark Jen got fired from Google after leaving Microsoft and putting information about Google on his blog, which is above. It was easy enough to find - thanks to Google it was the "I Feel Lucky" link from my keyword search "Mark Jen". CubicleSoft ( http://www.cubiclesoft.com/ ) has been tasked with the task (there's an interesting paradox - tasking people with a task is a task that has to have been tasked) to move roughly 1.5 million lines of C code to C++. The process isn't incredibly involved because a majority of the code has already been written in a modular format and has been well debugged. It is just the stuff that isn't modularly written (or the stuff that needs to be _re-written_) that is the major time killer, what with all brand-new test cases and what-not. As such, I haven't been loyally blogging to my heart's conten...

More on the mini

Everyone's chatting about the latest development at Apple, so this is likely to get lost in the mix. I've been in contact with Bill Fox at www.macsonly.com . Great website, by the way for understanding what is happening in Mac land. Anyway, here is what I've been looking for in terms of hardware details that PC users are wanting to know. Bill's reply to my major issue with the Mac mini revealed some important information about the internal guts: "The hard drives in the mini's are not Mac drives they are typical 2.5" ATA notebook drives found in PCs and Macs. Their RPM is 4200. You can get a 100GB 5400RPM notebook drive or a 60GB 7200RPM drive and those are the largest and fastest available. If one needs a huge drive, one can use an external FireWire or USB 2.0 3.5" drive." Apparently the Mac mini hard drive is not only small, but ALSO kind of sluggish. Most PC notebooks seem to have 5400RPM drives in them, but the mini is only 420...

This is going to take a long time...

I am in the process of moving roughly 1.5 million lines of C code to C++ for several very specific reasons I can't mention here - not yet anyway. I'm off e-mail, web surfing, IM, blogging, and general reality for the next 3-4 weeks. I expect that by the time I get back, I will have my fourth case of Carpal Tunnel Syndrome (CTS) in the past three years. Wish me luck and, uh, I hope it doesn't take much longer than that. I have already had enough setbacks, but this one could knock me out for a while.

Time for an update

What's hot? What's not? Below is my list of recommended companies to do business with and those whom you should avoid like the plague. As a developer, you need computer equipment and software that simply works. I am always looking out for newer and more interesting technologies to add to my core recommended list. If you are a hardcore gamer, these recommendations are not for you. If you are searching for a good PC that won't break down, these can be for you but may be slightly out of your budget. Recommended PC and/or hardware manufacturers: Dell. I have yet to have a problem with Dell. Good solid hardware, but not the best for gaming. Spending less than $500 on a PC will get you in trouble, though (you get what you pay for). IBM. Good hardware. Unfortunately, they shut down their PC division, so parts will be hard to find. Expensive. Micron. Their memory chips are still top notch for those who need an upgrade to existing hardware. ATI. NV...

Wow...in the "I have just been positively wowed" sense.

Usually when I say, "wow," I refer to the negative sense of the word. This is most definitely a positive "wow." Apple has recently slashed prices on their hardware. About a year ago I got a new PC, but at the same time I was seriously considering a Mac. All developers, look at this: http://www.apple.com/macmini/ The Mac mini is visually impressive, but that isn't what counts. I have been saying for a long time that people won't move to Linux because it is unusable. Macintosh/Apple/whatever their name is today (such is the sad result of mergers - you can't figure out a company's name any more), has their sticky fingers all over making a usable OS. I would recommend Mac over Linux any day. I could care less about proprietary hardware - in fact, as a developer, it probably makes my life easier. For developers, I have been eyeing the Mac for a really long time. It has one thing that every developer needs: Three OSes rolled into one ...

I have returned...

Eons ago, in a day before my time, Douglas Macarthur once said that he would return. When he returned and set foot on one of the islands in the Philippines, he said that famous phrase, "I have returned." (Unfortunately for him, Ahnold Schwarzenegger's line "I'll be back" seems to have superceded "I shall return" in more recent times - I would wager that the difference makes for a good history test question). In roughly the same way that Macarthur returned, Microsoft today dropped a bombshell on the anti-virus companies. In my automatic updates in-box resides something called the "Malicious Software Removal Tool," which will get installed before the next reboot in roughly 23 days from now. Microsoft is wisely being very careful as they cautiously step on anti-virus vendor's toes not even daring to call it an anti-virus tool. Most people will not remember back to the Windows 3.x days as Microsoft was busy trying to define wh...

An interesting article on blogs

http://www.developershed.com/plugin/PIM_200501.pdf See the last page of that PDF. The author discusses an important topic about bloggers. Basically, bloggers can control the results that come back from search engines. For those who have no idea what I am talking about, I am referring to SEO. No, this isn't someone who has decided to shorten their long name to three letters, but rather stands for Search Engine Optimization. Most programmers are aware of things like Googlebombs and sites like that and generally think there isn't much to search engine optimization. Technically, there isn't. You want people to link to your site and they want you to link to theirs. A never ending battle of trying to get high quality and high quantity links to a website - and get spidered properly. The trick comes in knowing how each search engine algorithm works and what to do if it changes. Some people try underhanded methods to raise rankings. A Googlebomb, for instance, wil...

Standard additions...

Okay, while I am not on the C/C++ committees, it has come to my attention over the more recent months and years that the core languages are simply not capable of handling modern devices - particularly dealing with PCs. If you search the archives of several of the many lists I subscribe to, you will frequently find programmers asking about how to use ANSI C/C++ to do: 1) Single keypress keyboard input. 2) Drawing graphics on the screen. 3) Printing to a printer. 4) Accessing USB devices (e.g. a scanner). 5) Responding to mouse movement. (etc.) Every single time, without fail, someone replies saying that these are not standard. I have, on occassion, jokingly made the suggestion that C was designed to output to a dot matrix or line printer. So, all of these discussions have me thinking about what to do. The result of all this thinking is that, because C is incapable of these things, people have to resort to using OS-level APIs. One of the major goals of C/C++ was to make it abl...

The English language.

"i am having TreeCtrl which have check box can any body tell me how to get check box click event or what iwan to do is to select the child notes when theparent node is selected??? can any oyd help me????????????" The English language is a rich language. Please do not misuse it. As programmers who participate in the art of writing code (it is an art) and the science of writing code (it is a science) know how important it is to have detailed and complete comments. Their comments in programming forums should be of equal value. I found the above paragraph on a random forum. I'm sure Google will turn up where it came from, but realize that the topic of this is not about where the source is, but to use it as a mere example of the broad problem that plagues programmers. Programmers simply don't know how to write in English. If they can't write good English, they will be lousy commenters and therefore lousy programmers - no matter how good their coding skills are...

Packaging is insane

I like drinking V8 Splash. I like watching DVDs. I like using my shaver. I like listening to music on CDs. I like using Windows XP. What do these things all have in common? They come in the world's most insanely difficult-to-open packaging. It is like some sadistical package designer decided to make everyone's life more difficult just to thwart a few thieves by closing off all access to opening the item. The end result is that this Christmas season resulted in a lot of personal human damage because people pulled a muscle or sliced a finger when using a knife on the extremely dense plastic trying to get at what was inside. I'm beginning to wonder if the average person can't open the packaging, the product inside might not be worth it. The same goes for software development. While Microsoft can get away with insane plastic protectors around a single disk, the rest of the development world can't. Don't know what I'm talking about? Walk into Bes...

Merry Christmas

Apparently my mom (erm, "Santa Claus") has determined that I should get black socks. Unfortunately, my choice in socks is a little bizarre. See, I am your traditional "geek" and therefore wear equivalently odd clothing. Okay, so the black socks are to look all professional and what-not and that is fine, but let's step outside in these black socks for about two seconds. ... Brr. That was cold (sub-zero temperatures here). And guess what? My feet froze. Now I've got to thaw out. And in the meantime, I had to endure the uncomfortable nature of these socks. So, what is my definition of a good pair of black socks? First off, they have to be comfortable. I can't find a single pair of black socks on eBay that sound comfortable. I like 100% cotton in my socks. I see pairs with spandex and nylon and rayon and all sorts of other uncomfortable materials. Comfort is also defined by how warm I stay with them on. Since I have almost no body fat, I chill easil...

Unhappy penguin

There is a poll going on at http://www.happypenguin.org/ This poll is completely unnecessary. Andre Lamothe wrote a book eons ago on how to write a game. Apparently people don't pay attention to the people who have made successful games to learn how successful games are created. That said, you need marketing and a publisher. Not just a good game. About half the work involved is marketing and distribution of the product. The other half is the development of the actual game: Storyline, graphics, genre, the little extras (or, in the case of a game like FF7, NeverWinter Nights, other RPG goes here, little side quests - although in FF7, Emerald Weapon was insanely difficult to beat), the look-and-feel of the default controls, music, audible and ambient sounds, enemies, proper collision detection, the menu system (never underestimate the importance of a good menu system), etc. all work together to make a unified game. Then, once the game is made, beta tested, and ready for gold, i...

Time, money, people...

For those in development, there is the pervading sense that you have to perform really well to get ahead and to do that requires very little sleep and lots of time in the office. Traditionally, the game industry has been this way, but more and more software development firms are doing this...to their detriment. It is a well-known fact that very few developers last more than 5 years in the game development industry. The single most common cause for a developer to leave a game development firm is that they are spent, worn out, burned out (whichever term you are familiar with). The problem is NOT tight schedules. The problem is that developers everywhere seem to think they have no control over the schedule. However, some developers have it figured out: Break the schedule into three categories and allow the person who wants the job done to define two of them. The categories are time, money, and people. Every project is measurable in the amount of time it will take, how much mo...

Stay on task

A good way to stay on task is to set a task list. For instance, if you are working on two simultaneous projects (generally a bad idea unless one is a brand new project), splitting your day into two parts is the best way to go. The first half of the day (before lunch) is spent on the priority project and the second half of the day is spent on the lower priority project. There is a two-fold reason for this: 1) People are better able to think in the morning regardless if they think they don't. Well, more real work tends to get done in the morning. After lunch, the food settles and drowsiness settles in for the rest of the day. I know people who take a late lunch for this very reason. 2) You want to look professional by doing higher priority items first. It makes you seem like you have it together. Most people really have no clue what they are doing. I tend to do the odds-and-ends tasks that build up to the main high-priority item. When people review my work they wond...

Dishonest business...

You know the "Yellow Pages"? I am sorely tempted to report them to the Better Business Bureau (the BBB) for having dishonest business practices. I just got a call from their obviously Indian outsourced division and got some of the slickest advertising thrown at me. If I had not been paying attention to what I was doing and it had been at 8 a.m. instead of 10 a.m., I would have likely stepped into some very difficult to opt-out of program. As it was, I was deeply in thought about how to optimize cubic bezier curves when the phone rang. Basically, the conversation went like this: Me (groggily - I don't do mornings): Hello? Woman: Hello, I am......and I am verifying your current Yellow Pages listing. Me: Okay. Woman: You are..., your business is..., your business location is... Me: Yes, yes, yes. Woman: Your free listing in the Yellow Pages has been updated with the latest information and you are getting a free 14 day advertisement on our website. Pleas...

Setting a goal

One of the first things to do in software development is to set a goal. Simply saying, "I want to learn C/C++/VB/whatever" is not good enough. You will learn the syntax and the language, sure, but you will feel like you have learned nothing. Instead, what you want to say is, "I want to advance my skills to build an application that I can use from my computer to blog with without having to go to Blogger to do so." Assuming you have knowledge of how to go about writing such a program, even if you do not fully understand the syntax of the language you use, you will succeed in making the program and learn new things along the way. Now, however, let us say that you have completed said application and want to sell it. In order to sell the application, you need to simply say more than, "I want to sell this really amazing application." You are likely to enter into what I call "overhype mode" where you overhype the product beyond what it can r...

Floating-point

I have traditionally avoided floating point arithmetic because it is a royal pain to work with. Those who have know what I am talking about. What is much more frustrating is if users see floating-point rounding as some sort of fatal error. Take, for instance, 6.934376572E-150. Programmers and people who understand the limitations of floating-point know that a number like that is simply 0. To an accountant or banker or a regular PC user, that number has an E in it, so it must be an error. What could I possibly have done wrong this time? Making sure your users do not see floating point errors is a huge issue and difficult to solve. One user will want two digits of precision all the time, others won't care if zeroes are chopped off, and still others want to have the option to see the floating-point errors. Given that most users (80/20 rule of thumb) will want zeroes chopped off, a simple bit of code in C/C++ to convert a floating-point number to a truncated floating-point n...