Saturday, April 13, 2013

Learning to Program

I have lately taken up a concerted effort to remind myself how to program.  While I am not foreign to the task of programming, once I completed my minor in computer science, I more or less hung up my keyboard ( figuratively) in an effort to focus on mathematics.  I rather regret that, as I really enjoyed programming when I cared about what I was actually programming.

For those of you looking to refresh your skills, or learn to program from scratch, I have a few interesting sites that are great fun resources.   These are Code Academy and Project Euler.  

Code Academy is constantly adding more and more languages and tutorials to their offerings, making it more and more indispensable, but it already has HTML, Javascript, Python, Ruby, and several others.  It focuses more on web based programming but the skills it teaches are useful in most areas, once you learn the given syntax and work through the tracks.   They have an interesting rewards and badge system, which I dare say seems way to easy to get badges.  I have not done much I would consider of note on there yet, and I already seem heavily decorated.

Project Euler needs you to be familiar with programming and after the first few projects be a fairly good programmer.   It is not a teaching material, but rather it is a series of problems that are supposed to test you programming abilities to work through complex problems that could not be worked out by hand in any reasonable amount of time, but a decently coded program should be able to find the answer in under a minute of computation time.

While I am sure there are many many other valuable sites, these are the ones I am currently spending my time on, and enjoying greatly.  Do my readers have any suggestions?

Sunday, April 7, 2013

Not all Projects are Equal

I by no means am telling anyone what they should or should not crunch, but the more and more I have been looking into various projects the more I am wondering why some projects have such massive appeal.  So I am a mathematician by training, so you would imagine I would be all over prime grid and a number of other mathematical based projects.  In fact the state of things as they currently stand I crunch two "projects"  World Community Grid, and GPU Grid. More on why to come later.

Sadly I feel the people that crunch any mathematical based project, really do it just for the cobblestones, and couldn't give a damn about what they are actually accomplishing.  Finding a new prime number really won't change the world, and has just a minor impact on encryption schemes.  Cracking a code ( Moo! Wrapper) by brute force is far worse than actually looking for prime numbers because in that case you are simply applying an algorithm to try and unscramble a message. Looking for a counter example to Collatz conjecture, or any other mathematical conjecture is not research.  It is just letting your computer work through piles and piles of computation just for fun.

I am not sure there is a single mathematical conjecture on Boinc that has profound impact on the world, as they all tend to be in the purest of area's, in which showing that they are true might have some impact at some point in time, but guess what our computers could never show that these conjectures are true. We can check a google of numbers, do you know how many are left?  (Infinite!)  The longer these projects crunch the more we see that they could be true, but they can not be established as true until there is a proof that establishes them as fact.  And before you bring the four color theorem into this which was "proved" by computers, that is far different than this.  The difference is some mathematicians in that case developed an algorithm and classified all possible maps into a finite number of categories.  They provided a proof that all maps had to fall into that finite number of categories, and then used the computers to check the coloring on each of those finite number of categories.  As far as I have heard no such thing exists for any Mathematical Conjecture on Boinc, they are simply constantly checking a few more off the infinite list to check.

I would much rather see people contribute their crunching time to something that is doing actual research that can be conclusive in either way.  If searching the stars are your thing then there are wonderful projects in which you can check for Extra Terrestrial life, or scan for pulsars.  If you are a chemistry or physics enthusiast  then there are wonderful projects working on research in each of those areas.  If you want to feel like you are really contributing to the state of humanity by tackling medical, or world problems there are projects that can do that too.  I fall in the later which is why I currently am focused on World Community Grid and GPU Grid.

World Community Grid Signature