Friday, August 29, 2008

Google App Engine.

Yesterday I had the pleasure of attending a Google Hackathon that focused on the App Engine API and hosting service.  At first my learning curves were very steep; I rarely ever use python, but I have a little experience with the language.  I was first thrown off because the app that we were using was built with Templates, and I haven't ever used them before.  So, I decided I wanted to talk about Google's App engine, and some other time I'm going to talk about Python Templates.


The first thing you need to do in order to use App Engine is Install Python.  This varies with different operating system, but basically it installs the same way any other program would be installed in your OS.  Then you need to download the SDK, and maybe even sign up for an App Engine account.  The best resource is the App Engine site on Google Code

After unpacking/installing the SDK, you are ready to start writing your program.  I created an RSS reader with a social twist.  In reality, if you took Google Reader, and added an automatically generated feed of articles both you and one or more of your friends read, then offered to initiate an email conversation based on the shared articles.

The App Engine API allows you to utilize Google Accounts, which is how I authenticated users for my app.  Another cool thing I learned about App engine, is that the SDK includes a development server environment that is great for troubleshooting your code before you deploy it to your app engine account.  That's why I said that making an app engine account is the last and optional step.  However, if you want to actually use your app, you should get an account.  It is free after all.

The one thing that kind of caught me off gaurd, but at the same time was perfectly reasonable is the quota system.  Apparently there are two quotas that are set for each app that you host with app engine: Number of users and allow processing power.  I don't know the exact numbers because they can vary according to your account, and what you can arrange with Google, but the idea is that you are given X number of page views, and X milliseconds of processing time.  If you exceed one of these quotas, then your app is disabled for the rest of the month.  However, there is a plan to allow users to pay to have more views and processing power.

Over all, I have to say that the app engine APIs simplify the process of making complex user-based server-side apps.  I plan to write up a documentation/tutorial on using app engine to create your own RSS reader, but first I need to finish some research to better explain why I did things the way I did.

until next time.

Thursday, August 21, 2008

FOSS for Students...

So, I've read a few of these articles about Free Open Source Software (FOSS) for students. I guess everyone else has summed it up, but here is my two cents:

(Please keep in mind the programming section is really my area of expertese.)

Tools for all students:
  • Open Office.org - It's pretty much a free version of Microsoft Office, and if you know MS office this will be easy. It also has many plugins for specific needs like linking quotes with bibliography data, then automatically using a given format.
  • Google Documents - For most of your word processing. spreadsheets, and Presentations you may want to use a program installed on your computer, but if you frequently work from public computers or write group papers, then you really want to use an online editor. That way all the team members can continually check eachother's work and everyone can work from the same document.
  • Google Calendar -This is my favorite tool for scheduling my time. If you get in the habit of doing things on a schedule, then an online calendar is the perfect solution. You can access your calendar from anywhere, and sync it with your favorite calendar programs. Even use it to manage invitations and RSVPs.
  • Gmail -Everyone needs email.
  • Google Reader - This is a RSS reader, nothing too fancy, it's good for keeping track of frequent Google searches, news papers, blogs, and an ever growing list of pod-casts and similar services.
Math and Science:
  • LaTeX - Essential for engineering, mathematics, science... anything where you repeatedly need funky symbols and advanced editing features. It requires a bit of learning, but you will save a lot of time in the end.
  • TiLP - Texas Instruments calculator emulator for your PC. That's all you need to know. If you want a second calculator, or you want to copy and past you calculator work into a text document, this is the best way... in my opinion.
  • Maxima - If you ever hear the words MatLab or Octave, then you want to learn Maxima. It's not everything MatLab and Octave are, but it is a little easier to learn, and most of what you learn will still apply.
  • Kalzium - A periodic table with a little extra. You can find examples of where you see each element, plus additional information on a second page. Great for Chemistry students everywhere.

Programming:
  • Emacs - An advanced text editor wich is totally worth learning. The advanced features require a bit of learning for all the shortcut keys, but once you get proficient with them you can accomplish a lot in a small amount of time.
  • VI editor - I have seen more textbooks listing this as the Linux editor. Emacs is a competitor to VI, both of them do the same thing in different ways.
  • GCC (GNU C Compiler) - A C/C++ compiler that I think is essential for any programmer to learn. Especially if you learn C/C++ in MS Visual Studio (you're too pampered). Real men do it in Notepad! (j/k, but it is good to learn.)
  • Eclipse - This JAVA based IDE is really the ideal environment to do JAVA development, but the IDE itself can handle any language (you just have to point it to a compiler/interpreter.)
  • Mono - Personally, I hate Mono, but I have to admit it is one of the best FOSS apps for .NET development.
  • Perl - If you can learn perl, you can learn any programming language... practically.
So, there are some apps I recommend/use a lot. I should note that many programming students will want to use the Math/Science tools as well.

Friday, August 1, 2008

Homeland Security has gone too far!

I am really outraged by this new Homeland security policy. I know I don't travel outside the US... well, ever really, but I think that we the people of this great nation need to start banding together as a nation to prevent this type of abuse of power.

I understand that when going through customs you are subject to [bend over and] give up all your rights and have everything you bring with you inspected, but this policy goes far beyond inspecting what you bring with you. Plus, there is no good that can come from this policy. If someone wants to transport data that could be harmful to transport into or out of this country, they could use the Internet and render this policy useless. Not to mention, how long will it be before CD and DVD ripping software will be catagorized as a circumventive technology and then declaired illegal under the provisions of the Digital Millennium Copyright Act (DMCA).

Seizure of laptops on international flights poses a risk to anyone who saves personal data on their computer. I do not trust homeland security to do the right thing. Plus TSA agents are not highly trained experts.

I can't believe that we let this happen. First we allow congress to steal the public domain from us, and now we let homeland security take our laptops for no reason! I fear this policy could be used to enforce copyright laws that I feel are unethical. It is the job of the copyright owner to find violators of their copyrights. I also feel that copyright law needs to be reformed to a pre-1984 mentality (no reference to the book specifically intended.) [I feel] copyright laws should only apply to the commercial use of content covered by the copyright. For example, if I hold a copyright, that should only mean you can't publish and sell that content. However (ironically) in 1984 that changed to cover free distribution because the VCR manufacturers and retailers were found responsible for the violation of copyrights performed by the users recording TV shows. Anyway... back topic at hand.

I could understand if this policy applied to non-US citizens entering or leaving the country, but we are supposed to have rights. We are supposed to have the right to privacy, and I feel the government should not have the authority to allow an organization to violate that right.

I am not sure what we have to do, but something needs to be done. I would love to have some suggestions as to what should be done.



That's my two cents.