Parallel Programming & Parallel Computing Information and Resources

Autotune.NET | Coding4Fun ArticlesWe've all cringed as a hopelessly out of tune contestant appears on the latest episode of “American Idol.” Occasionally, there's a contestant who manages to be pitch perfect all the way through—right until they flub the final note. And in the cutthroat world of televised auditions, sing one slightly flat note and you're out. So what takes care of a bad-pitch day? The company most famous for its autotune effect is Antares. Here is a nerdy example of what Autotune can do. How does Autotune work? An autotune effect has two parts. The second stage is pitch shifting, or “correcting” a given note. Creating a .NET Autotune Algorithm For this project, we will be creating an autotune effect for .NET. To get started, I searched to see if there were some pre-existing open source autotune implementations, which brought me to awesomebox, a project created by Ravi Parikh and Keegan Poppen while they were students at Stanford University. Porting C++ to C# Pointers can be a pain. c#: VB.Net: The steps are:

How to Hunt ElephantsMATHEMATICIANS hunt elephants by going to Africa, throwing out everything that is not an elephant, and catching one of whatever is left. EXPERIENCED MATHEMATICIANS will attempt to prove the existence of at least one unique elephant before proceeding to step 1 as a subordinate exercise. PROFESSORS OF MATHEMATICS will prove the existence of at least one unique elephant and then leave the detection and capture of an actual elephant as an exercise for their graduate students. COMPUTER SCIENTISTS hunt elephants by exercising Algorithm A: Go to Africa. Start at the Cape of Good hope. EXPERIENCED COMPUTER PROGRAMMERS modify Algorithm A by placing a known elephant in Cairo to ensure that the algorithm will terminate. ASSEMBLY LANGUAGE PROGRAMMERS prefer to execute Algorithm A on their hands and knees. DATABASE ADMINISTRATORS do not need to go out and capture elephants when they can retrieve them simply with an ad hoc query: STATISTICIANS hunt the first animal they see N times and call it an elephant.

Wasting Hackers' Time to Keep Websites SafeMost security software defends PCs and websites by acting like a locked door to shut hackers out. A new security company, Mykonos Software, instead invites hackers in through a fake entrance and plays tricks on them until they give up. “If you break in, I want to have fun with you,” says David Koretz, CEO of Mykonos. Koretz claims that the computer security industry is too timid—he advocates making hackers’ lives tedious and difficult instead. Mykonos sells software intended to protect websites against attacks—like those on Sony’s websites last year that yielded thousands of credit-card numbers—aimed at gaining access to valuable data such as user credentials. The company’s software is aimed primarily at hackers who use automated tools that identify and exploit vulnerabilities in websites, says Koretz. Wasting assailants’ time “changes the economics” of attacking websites, says Koretz.

Holding a Program in One's HeadAugust 2007 A good programmer working intensively on his own code can hold it in his mind the way a mathematician holds a problem he's working on. Mathematicians don't answer questions by working them out on paper the way schoolchildren are taught to. They do more in their heads: they try to understand a problem space well enough that they can walk around it the way you can walk around the memory of the house you grew up in. That's particularly valuable at the start of a project, because initially the most important thing is to be able to change what you're doing. Your code is your understanding of the problem you're exploring. It's not easy to get a program into your head. Even the best programmers don't always have the whole program they're working on loaded into their heads. Avoid distractions. Even more striking are the number of officially sanctioned projects that manage to do all eight things wrong.

Pointer BasicsThis document introduces the basics of pointers as they work in several computer languages -- C, C++, Java, and Pascal. This document is the companion document for the Pointer Fun with Binky digital video, or it may be used by itself. This is document 106 in the Stanford CS Education Library. This and other free materials are available at cslibrary.stanford.edu. Section 1 -- Pointer Rules One of the nice things about pointers is that the rules which govern how they work are pretty simple. 1) Pointers and Pointees A pointer stores a reference to something. The above drawing shows a pointer named x pointing to a pointee which is storing the value 42. Allocating a pointer and allocating a pointee for it to point to are two separate steps. 2) Dereferencing The dereference operation starts at the pointer and follows its arrow over to access its pointee. 3) Pointer Assignment Below are versions of this example in C, Java, C++, and Pascal. Section 3 -- Study Questions Question 1 Question 2 Question 3

NIST Expands Database of Common Coding Errors to Detect Software Bugs - SecurityThe National Institute of Standards and Technology expanded its database of software flaws to help developers avoid introducing bugs into their code right from the start. The Software Assurance Metrics and Tool Evaluation (SAMATE) Reference Dataset contains examples of software issues that could leave applications vulnerable to attackers. Version 4.0 of SAMATE, released Nov. 22, contains 175 broad categories of weaknesses with over 60,000 specific cases, more than doubling the number of categories that were included in the previous release. SAMATE was launched in 2004 to improve software assurance by making it easier to identify and exclude known issues.

14 Concept Appliances That Need To Be Made | My Bad PadConcept appliances give us a peek into the future. They are often aesthetically pleasing and offer interesting and unique features; however, it is a rare concept appliance that makes it off of the drawing board and into the showroom. Unrealistic designs, high production costs and lack of consumer demand are often the reason for many ideas to be scrapped. Yet, here are 14 interesting concept appliances that have made it to the model stage and look so good that we hope they go into development soon. The iBasket is a hamper/washer/dryer combo. Why do consumers need the iBasket? The iBasket saves time and energy as you’ll never have to transfer your clothes from the hamper to the washer to the dryer again. Features: Transparent body Built-in air refresh system that removes the smell of dirty clothes Wi-Fi enabled to help you monitor it from your PC or laptop The one drawback to the iBasket is that it is very small. Why do consumers need the FlatShare? Why do consumers need the Coox?

Learn to Program With Code AcademyDid you ever want to be a huge nerd your whole life, but didn’t know where to start? Don’t have the shelf space for the O’Reilly books, or found the various "in a nutshell" books too dry? I think Codecademy has an offer you can’t refuse. It’s an interactive site you start off simply with some naming conventions and math equations inside an interactive "terminal" window. The depth of the lessons look excellent, and the site is advertising a teacher beta once you log in, so if you want to contribute to the learning experience, you should absolutely get in touch with them. What about you? As an old coder, however, the interface and interaction this site provides looks pretty invaluable. Are you still here? [Update Oct 4, 2011: It's "Codecademy", not "Code Academy".

Free Programming and Computer Science BooksHacking the XboxVirtual Terrain ProjectHallmarks of a Great Developer - Test GuideIf you ask me, I'll tell you a great developer Plans before coding A great developer takes the time to plan an approach before designing or coding. A great developer knows that the time required to do so will be more than paid back by the time saved by getting it more right the first time. A great developer plans all scales of work, from envisioning multiple versions of a product to writing or modifying a small method. Always knows why A great developer always knows exactly why they wrote a particular line of code, and why they wrote it the way they did. Writes situation-appropriate code Any developer can write code. Deviates where and when necessary A great developer not only knows the canonical implementation but understands it is the canonical implementation. Knows when not to change code A great developer knows that changing code is sometimes worse than fixing it. Approaches debugging scientifically A great developer knows that debugging is a science not an art and approaches it as such.