language-agnostic

Poppler programming

Poppler is a classic example of something without documentation that you would prefer be documented. This question is language agnostic, just asking about the general idea.. In short, how do you make a PDF viewer control with poppler? From what I can tell, you'd need to use poppler to render it to some surface, which sounds good up until...

Adding my own application events in Control Panel -> Sounds...

I have just read this question and I really loved this answer to the question. Naturally, an interesting question popped in my head... How to add my own events (of my own applications) in the Control Panel -> Sounds and Audio Devices -> Sounds -> Program Events? And another related question, that I suppose should be answered here as we...

Which factors determine the success of an open source project?

We have a series of closed source applications and libraries, for which we think it would make sense opening up the source code. What has been blocking us, so far, is the effort needed to clean up the code base and documenting the source before opening up. We want to open up the source only if we have a reasonable chance of the project...

Should you administer IQ tests to programmers during the interview process?

How many companies are using IQ tests to rate prospective programmers? How would you weight an IQ test vs. education, experience, etc.? Are there any legal issues that come into play with this kind of thing? Is there an industry standard test? [Edit] WOW, I wasn't expecting such a strong response against the idea. I guess a big r...

Best general SVN Ignore Pattern?

What is the best (or as good as possible) general SVN ignore pattern to use? There are a number of different IDE, editor, compiler, plug-in, platform, etc. specific files and some file types that "overlap" (i.e. desirable for some types projects and not for others). There are however, a large number of file types that you just never ...

Is it possible to combine a series of PDFs into one using Ruby?

I have a series of PDFs named sequentially like so: 01_foo.pdf 02_bar.pdf 03_baz.pdf etc. Using Ruby, is it possible to combine these into one big PDF while keeping them in sequence? I don't mind installing any necessary gems to do the job. If this isn't possible in Ruby, how about another language? No commercial components, if poss...

What design pattern do you use the most?

I'm interested in understanding what design patterns people find themselves using often. Hopefully this list will help other recognize common scenarios and the associated design pattern that can be used to solve them. Please describe a common problem you find yourself solving and the design pattern(s) you use to solve it. Links to blo...

Proper Logging in OOP context

Here is a problem I've struggled with ever since I first started learning object-oriented programming: how should one implement a logger in "proper" OOP code? By this, I mean an object that has a method that we want every other object in the code to be able to access; this method would output to console/file/whatever, which we would use...

What's wrong with singleton?

Do not waste your time with this question. Follow up to: http://stackoverflow.com/questions/137975/what-is-so-bad-about-singletons Please feel free to bitch on Singleton. Inappropriate usage of Singleton may cause lot of paint. What kind of problem do you experienced with singleton? What is common misuse of this pattern? After som...

Agile development in a distributed team

The Agile Manifesto emphasizes the importance and nature of communication in the software development process. Two of the twelve principles underscore this: Business people and developers must work together daily throughout the project. The most efficient and effective method of conveying information to and within a development team i...

What algorithm can you use to find duplicate phrases in a string?

Given an arbitrary string, what is an efficient method of finding duplicate phrases? We can say that phrases must be longer than a certain length to be included. Ideally, you would end up with the number of occurrences for each phrase. ...

Pursue career as "Software Engineer" or a "Lang/Framework-X Developer"?

I am currently a Software Engineering undergrad and recently began my senior year. I see on the horizon a choice that must be made: choosing a career path. For the past several months, I have been of the mindset that I should: Find a language and maybe a web app framework that I like Learn it Build some web apps to learn it better Try...

OO Design, open/closed principle question

I've been thinking about this object oriented design question for a while now and have unable to come up with a satisfactory solution, so thought I'd throw it open to the crowds here for some opinions. I have a Game class that represents a turn based board game, we can assume it's similar to Monopoly for the purposes of this question. I...

How to optimize an application to make it faster?

I have created an application executable, it works, but it runs too slow, a lot slower than needed. I would like to make it faster. What can I do to optimize it? ...

When is multi-threading not a good idea?

I was recently working on an application that sent and received messages over Ethernet and Serial. I was then tasked to add the monitoring of DIO discretes. I throught, "No reason to interrupt the main thread which is involved in message processing, I'll just create another thread that monitors DIO." This decision, howeve...

How do you rate-limit an IO operation?

Suppose you have a program which reads from a socket. How do you keep the download rate below a certain given threshold? ...

When should I consider changing thread priority

I once was asked to increase thread priority to fix a problem. I refused, saying that changing it was dangerous and was not the root cause of the problem. My question is, under what circumstannces should I conider changing priority of threads? ...

How to convert floats to human-readable fractions?

Let's say we have 0.33, we need to output "1/3". If we have "0.4", we need to output "2/5". The idea is to make it human-readable to make the user understand "x parts out of y" as a better way of understanding data. I know that percentages is a good substitute but I was wondering if there was a simple way to do this? ...

Under what circumstances is it acceptable to break a public interface?

Suppose you are working on some software that has an interface used by other software. It might be a library or a website or a command line program or an operating system. But at least one other developer uses your interface to get some functionality so they won't have to do the work in their own code. Is there ever a time when it's a...

What is the hardest technical question you have had to answer in an interview?

Different companies use different technical questions to try and figure out who the good programmers are. What is the hardest technical question or problem you have ever had to solve in an interview? ...