This is a really neat trick that has been around for over 30 years. With an array, you can leave values uninitialized and then read during normal operation and your code will work properly no matter what junk data is in the array. I may try to implement this using C or Perl just for fun. If you want to read more about how it works and what the arrays look like check out the full article below.
There are a couple of great posts floating around over at the Theoretical Computer Science - Stack Exchange. The trend with these topics is “What should everyone read/watch”. Some of the users have posted some really useful resources and I thought it would be a great idea to aggregate the posts and share them here:
- What papers should everyone read? (cstheory.stackexchange.com)
- What books should everyone read? (cstheory.stackexchange.com)
- What lecture notes should everyone read? (cstheory.stackexchange.com)
- What videos should everyone watch? (cstheory.stackexchange.com)
- What are the recent TCS books whose drafts are available online? (cstheory.stackexchange.com)
This is something definitely worth sharing, very useful for anyone who wants to learn more about different sorting algorithms. If you want to learn more about different types of sorting this is the perfect place to start. It even has animations to show how different algorithms work and pseudo-code to help you get started with implementation!
Is it a good idea to share your own personal R&D projects, ideas, and efforts freely with the world? Most of my ideas have probably already been done (better?) by someone else in the past, but my “R&D” projects/ideas serve their purpose of helping me learn new things along the way; and I thought what better way to help others learn new things than by sharing? There is a new section, Research and Development, devoted to these types of projects and ideas. There isn’t any content up at the moment, and it will therefore serve as a place holder until I can organize some things to post. However in the meantime, if you have any interesting projects or ideas that you’d like to share please let me know (email@example.com)!
Over the years I’ve found that one of the best ways to really focus and increase your productivity is to listen to good music. I’ve experimented with a lot of different music genres, types, and volumes. So far I haven’t really found anything that keeps me consistently focused at the level that I’d like. However, I have found quite a few good sources of music that have helped me focus on my work. Check out my list at the bottom of this post. I’m still constantly searching for better things to listen to though. Lately I’ve also been trying to listen to a bit of classical music to see if that helps (Bach, Mozart, etc.)
- SomaFM: Groove Salad - This has a bit more beat than I can handle for intense focusing, but still good.
- SomaFM: Space Station - So far this one is my favorite for casual programming where I don't necessarily need to be intensely focused.
- SomaFM: Drone Zone - This station is the absolute best so far if I need to focus intensely.
- Pandora: Ambient radio - I've just begun listening to this, so far it seems really good and relaxing.
- Classical music, e.g. Mozart, Bach, etc. - This type of music seems to be good once in awhile, but it's definitely not my "go to" source.
Theoretical computer scientists have been working on quantum computer technology for years now. Now, it appears that a group of researchers has shown that existing computing technology may be able to eventually match the performance of a quantum computer. Check out the excerpt below from cacm.acm.org and then you can also find additional articles at the end of this post for more information.
So recently I had to figure out a way to quickly solve a problem involving 6GB of tab delimited text files. I have Windows, Linux, and Mac operating systems at my disposal, and therefore have a plethora of “almost” solutions. I spent some time playing with the OS X/Linux tools awk and sed, but couldn’t get them to do exactly what I wanted. Surprisingly, I’ve never used Perl for any real length of time, but I started looking into how I could use Perl to quickly process text files at the command line. It seems like Perl was basically designed with text processing in mind. After a bit of time hacking away at my first Perl script I realized that Perl is awesome! It is one of the most flexible programming languages I’ve ever used. Perl is available by default on just about every Unix/Linux/OS X system and you can do just about anything with it (including GUI applications). You can also find ton of examples, modules, and other source code over at CPAN.org. I’ve decided to share an example of how to process tab delimited text files under the new Perl Scripts section of the website. As I play around more and more with Perl I’ll be posting new scripts and projects.
Additional Perl Resources
I thought that this was an interesting perspective on programming refinement. Sometimes it can actually be more effective to write programs as if you were just learning how to program. You can get things done faster and more effectively. Your programs don’t always have to be ultra user-friendly or refined, but many times your programs need to get things done (quickly). Check our the excerpt below for an introduction on the article I cam across over at Programming in the 21st Century (prog21.dadgum.com)
I got a chance to play around with a Google CR-48 laptop today. It’s a pretty interesting device but way too barebones for my daily computing needs. I honestly don’t know if it would even be sufficient for me considering how I spend my time just browsing the web. I guess maybe I don’t fully understand the indented audience for the operating system (Chrome OS). Chrome OS seems way too simplistic to be of use as a personal computer. It seems to be better suited as a sort of thin client that serves as an information kiosk.
“Yesterday the Census Bureau announced the new apportionment of the 435 representatives to states based on the 2010 census. Illinois lost one representative. Texas gains four. Not only do these affect the makeup of the House of Representatives but also the Electoral College that chooses the president.