In the last few weeks my programming adventures have slowly dwindled down to nothing because of all the work I've had. Starting tomorrow (or I guess that's today since it's pretty late), I'm going to make another push to get more work done on my projects. I've taken on a couple new projects that more or less tie into the current things I'm doing.
The first is called SARP (an acronym for "seek and retrieve program"). This will function like wget but with a built-in web crawler search engine and a scraper. The final product will take a file name, file type, and (maybe) url domains to search in. Then, the program will search through everything with the search engine's crawler and display possible matches in a menu window (using a scraper to get the info). The user then can click one of the returned titles (may display URL, file name, file type, etc.) and the selected file would be downloaded instantly. SARP will, hopefully, be like an automated form of wget. Instead of needing to find all of the files you want to download manually and then passing the URLs to wget in a text file, you'll be able to just type in a file and (maybe) give it some starting point for where to search from. There's a lot of work left to do but it sounds pretty cool and worth it (I hope this whole project is possible)! I'm building the search engine right now (and getting a grasp for python too).
The second project that I've begun is cluster computing through MOSIX. Cluster computing seems like a pretty big jump from what I've been doing up until now but I think I'll be able to incorporate it into my Android project nicely. My plan is to install Debain Linux in parallel with the default Android OS. MOSIX can be installed in this Linux phone and in the big LEGO computer I have at home to allow my phone to harness the power of the LEGO computer. This will allow me to run normal Linux programs on my phone that normally would take up too much processing power. I'm really not sure what the limits are for phone's processing but things like blender or PTAMM (3D scanning and mapping) would definitely work better on a system like this. MOSIX is particularly nice because it allows for cloud clusters which are just cluster computers that are connected overt the Internet but otherwise geographically dispersed. My phone will therefore be able to cluster with the LEGO computer at home while I'm on-the-go. Since I don't want to leave the LEGO computer on 24/7 I can also use a little wake on WAN python script that I have to remotely turn the LEGO computer on and off as needed. This whole project isn't too much work and I'm using it as more of a way to learn how to build the MOSIX cluster and wake on WAN for a future project (getting overloaded right?).
Way down the pipeline, I think I should rebuild the Morai Web Builder from scratch in Python! This will be hugely helpful (I hope) to everyone that is using XBMC because it will work with all systems (Linux, BSD, OS X, Windows, etc.) natively. No more OS X only restriction. This won't be super helpful to me since I have a cloud computer to access any file I own but it may be good for others (the cloud computer is better in every respect though). People will probably want to host their sites on an external, proprietary server (ie GoDaddy) so they don't have to leave a computer on 24/7. Then again, people could just buy a raspberry pi (or some low power computer) and turn it into a personal cloud but whatever.
Oh yeah, I made a quick instructable for building the cloud computer too: http://www.instructables.com/id/Personal-ARM-Cloud-Server/
I've tried to explain how easy and useful it is to have a personal cloud but people do not seem to understand (even other programmers) so I've given up trying to help anyone understand it. So far everything has worked perfectly, I can even run remote applications out of the cloud or install virtual machines and run them from the cloud. The file syncing is lightning fast too. Transferring a bunch of files over LAN or very quick WAN goes at about the speed of plugging an iPod into a computer through USB. Very useful for syncing lots of files.
The flash drive project I've talked about needs to get done too. I guess I've been procrastinating because it doesn't seem too hard. I'll need to get the source files for TinyCore Linux, recompile them with UEFI boot enabled (to allow booting on OS X computers), and tweak the GRUB2 bootloader. That doesn't seem too hard I've just been dreading the TinyCore compiling for some reason. I'll get over that tomorrow and make that the first thing I try to finish! That will allow the system to work on OS X and utilize the full resources of the computer because the computer will boot into TC instead of using it as a virtual machine (like it will in Windows). Fingers crossed that everything works OK and it isn't impossible to figure out!
All of these projects will teach me quite a bit about networking but as my grand project (that may be attainable in a year or two or more) I'd like to build a new branch of the National Data Buoy Center to focus on monitoring the progress of Ocean Acidification through a new buoy network. I think I may have the ability to build a buoy with sensors for measuring everything, solar cells and a Lithium Ion battery (these already exist on buoys, so I can cheat here), an Iridium satellite receiver/router (to connect the buoys to a centralized server), and a central, cloud server that can take all the measurements. Hopefully, this would allow scientists to rapidly attain an understanding for the chemical makeup and character of different regions so they can gain an understanding for what is happening in those environments. I would need to make each buoy really cheap so the project could scale rapidly! Any aquatic environment that a scientist is interested in could be probed by these buoys automatically (just set them in the field and let them do the work). This already exists in some sense but my system would use small, cheap buoys that would link to a particular lab instead of the international network (although they would definitely be the best private lab to use it). The entire project would be copy-left to allow anyone interested to set their own buoy network right away (the whole project is to conserve the environment and improve our general scientific understanding) while still giving me a little credit for thinking of the idea,
Sorry if this post was dry and monotonous. I'll try to get back to fun and progress by the next post!