discussion

How is a video game architected?

I cannot fathom how modern games perform in anything near real-time.. For example, to allow the player to fire a bullet, you have to handle the user-input, check if they have any bullets left, then play a sound, and an animation, then calculate the bullets trajectory, then check if it impacts with anything constantly, drawing a particle...

Do you prefer "if (var)" or "if (var != 0)"?

I've been programming in C-derived languages for a couple of decades now. Somewhere along the line, I decided that I no longer wanted to write: if (var) // in C if ($var) # in Perl when what I meant was: if (var != 0) if (defined $var and $var ne '') I think part of it is that I have a strongly-typed brain and in my mind, "if...

Pros and Cons of Copyleft

From your perspective as a programmer, what are some of the pros and cons of releasing open-source hobby projects under permissive vs. copyleft licenses? My personal opinion is that there's nothing fundamentally immoral about improving an open-source project and making the improved version proprietary. This is not free-riding on the ...

What is the best *free* IDE for Java programming?

There are two free IDEs for Java: Netbeans and Eclipse. Netbeans seems to have better auto-complete support and compile/debugging support. However, it lacks support for auto-completing variable/method names, as well as word-wrap support. What are the Pros & Cons of Netbeans over Eclipse, and vice versa? ...

Is knowing some basic low-level stuff essential to all programmers?

Should all decent programmers be expected to know at least something about low-level stuff such as the following: The gist of how garbage collection is implemented, how memory management works without GC, and exactly what the difference is between the heap, the stack and the static data segment? At least be able to read assembly langua...

Adding values in various combinations

Not sure how best to explain it, other than using an example... Imagine having a client with 10 outstanding invoices, and one day they provide you with a cheque, but do not tell you which invoices it's for. What would be the best way to return all the possible combination of values which can produce the required total? My current th...

What was your most uncomfortable programming experience

I made this a wiki because I think that some people may think it's too "thready" but I had to share and it wasn't appropriate on my blog. I've had a few, but I think the strangest was once I was on an interview (when I was consulting) and it was my first interview. I wasn't 100% familiar with the position, I knew they wanted to utilize...

The stories behind keywords and operators?

Know any good stories that describe how a keyword or an operator got it's name? For example, why is main() the starting point on so many programs? Or why is the pipe (|) used as an OR operator in some languages? Most are derived from older syntax, but why were these chosen to begin with? I was just reading about why we use an asterisk...

Fundamentals Vs. Specific Technologies

When hiring a programmer, do you tend to prioritize fundamentals or knowledge of specific technologies higher? Fundamentals include things like algorithms, data structures, decent communication ability, good understanding of design patterns and principles, a good understanding of system fundamentals such as memory management and pointer...

Programming is more a science or an art expression?

It is fundamentally a branch of mathematics, requires rigid discipline and a lot of knowledge to really understand what's up, as a science. And is deterministic. But there's more elegant and (beautiful?) way to achieve same results, that may seems a sort of art expression. What is in your opinion the prevalent aspect of programming? An...

Is a PHP, Python, PostgreSQL design suitable for a business application?

I'm looking for some quick thoughts about a business application I am looking to build. I'd like to separate the three layers of presentation, domain logic, and data using PHP, Python, and PostgreSQL, respectively. I would like to hear, possibly from other folks who have gone down this path before, if there are problems with this approa...

What advantages can be gained and what pitfalls need to be understood when using Ajax?

The following is a very vague and incomplete list of advantages and pitfalls that I am aware of. I would really appreciate it if anyone more knowledgeable in this area could help expend on these... Advantages... User experience can be improved with a faster and seemingly more natural UI. Content and functionality from many different s...

What Features Should Tomorrow's Wiki Include?

What features should "Tomorrow's" wikis include? How might they incorporate Web 2.0 features like AJAX? What other features are they currently missing? What do you want to see from the next release of your favorite Wiki? Edit: How might a Wiki be integrated into other products? What "neat uses" could wikis have? ...

Have you ever written a computer virus (or at least tried)?

The title pretty much says it all: have you ever written (or tried to write) a computer virus? I know pretty many young programmers try to do something like that in their early days. Did you? If yes, did you succeed? Tell us your tale - What did it do? Did you get punished? What did you learn from this? Etc. ...

Why doesn't Google (or insert your big corporation) or the "Community" use Lisp, Eiffel or Haskell?

After wondering about the topic for some time, and looking at this question before asking on StackOverflow, it deceptively seems the main reason the languages I mention above haven't been more widely adopted is probably due to their lack of frameworks, which is of course a pity. However that can't be the only reason IMHO. For example ...

Qt being now released under LGPL, would you recommend it over wxWidgets ?

I am quite a heavy user of wxWidgets, partly because of licensing reasons. How do you see the future of wxWidgets in prospect of the recent announcement of Qt now being released under LGPL? Do you think wxwidget is still a good technical choice for new projects ? Or would you recommand adopting Qt, because it is going to be a de-facto ...

Dealing with "forced upgrades" to web-services?

I've just written a short article entitled Forced software upgrades in the land of web-apps My question for Stackoverflow on this topic is, how would you go about allowing users to access old versions of your web-application (like GMails "Older version" button), and is it worth it? Clarification: I am using the term "web application" v...

If you could work in any programming-related technology/field of your choice, which would it be?

I'm interested to know which programming-related areas of technology people are most interested in. If you could work on any technology/field which would it be? Feel free to go all futuristic on me. :) For example, some areas I'd love to work on if I could would be artificial inteligence, real-world simulations, robotics, nano-technolo...

How do you handle clients who don't understand or forgot their own (sane) requirements?

At my workplace we had the following problem: A customer wanted some major customizations to our product. We implemented them (about 2 man-years work) and delivered the product. Many of the customizations consisted of complex business rules, which were very hard to grasp but eventually we did. The problem now is that the users are ofte...

How to become a better C++ programmer?

I've been reading about C++ and working with classes and pointers, but now I need to know where to go from here (if it's GUI then it's gonna have to be Qt because it seems the best). ...