Wednesday, December 9, 2009

Real Robots, The Ocean, Some Altercations and A Fish of Some Sort

Well, it's been a seriously long time since I've posted here. Four weeks to be exact. As you can guess, a lot has happened. So, much like the last post, I'm gonna start spitting things off here. First up, The Ocean. Google Wave was recently released in what seems to be a later Beta version. Google Wave is a real-time collaboration web application designed to make working together easy. Everything is updated in real time, without refreshing the page and as the person types. Some major uses I foresee are development as it can be used together with Google Code to release applications and modify code together as well as School Projects. Essentially, everything that would require multiple people to edit and would take advantage from having everyone work on the same copy at once. Google Wave is currently a bit slow and feels a bit clunky but knowing Google as I do, when they finish optimizing and iron out the bugs, finish the features, etc. it'll be a masterpiece. For those who didn't know, you'll need a WebKit or Gecko browser, Opera with Presto may work but I'm not sure. Google Wave doesn't offer support for Internet Explorer because frankly it sucks. Leave it to Microsoft to use proprietary rendering engines and give extremely limited features in everything they do. I'd also like to quickly draw your attention to the world of Operating Systems. All major and pretty much all minor operating systems aside from Windows are using a Unix-based kernel. Get with the picture Microsoft, Apple did. Also, for those who don't know : WebKit, Gecko, Presto, etc. are all rendering or layout engines used by browsers. The way a web browser operates is strictly as a front-end for an engine. To make it a bit easier, let's go ahead and compare some browsers. Internet Explorer, Mozilla Firefox, Apple Safari, Google Chrome, Netscape, and Opera all seem extremely different, right? Well, for the most part : WRONG! Internet Explorer runs a proprietary rendering engine known as Trident which is why it often renders sites differently and causes major compatibility issues. Opera also uses a proprietary rendering engine known as Presto, however it's much better than Trident and is much more effective. Now, Apple Safari and Google Chrome... they certainly seem like polar opposites. Little do most users know, Safari and Chrome are almost identical. They both operate on a newer rendering engine known as WebKit which was developed in part by KDE and Apple as well as some other minor developers. WebKit, in my opinion, is the fastest, most efficient rendering engine that exists today. Mozilla Firefox, a modern browser, and Netscape, a horrid, old browser, surprisingly have something in common as well. The rendering engine Gecko. Personally, I believe that Gecko is a bit slow and it just doesn't do the job for certain sites. It's pretty clear why I had trouble thinking of another Gecko browser; Gecko is declining in use. WebKit's ever-growing popularity, ease-of-use, and high availability makes it an easy choice over Gecko. Now, before I get assaulted by Firefox fans for going against Gecko, I'd like to make a little fact known. I use Firefox. Firefox, although using Gecko, is still a better browser than Safari and pretty much on a leveled par with Chrome. The reason why I choose Firefox over Chrome is simple; Firefox's addons and availability. Chrome is a Windows-only browser and thus is unavailable to me on my Linux machine. Chrome is also making use of, mostly, unique images, which I do have respect for. However, this makes Chrome significantly larger and less portable than Firefox. Firefox uses a toolkit-esque technique that allows it to use images from your OS to create the UI. This means that if you think Firefox looks ugly, get a new OS. Anyway, to get back onto talking about Google Wave... you probably wonder why I said "Real" Robots this time. Well, it's not a physical robot but I developed two (and working on a few more) robots for Google Wave. Ninja Bot (rfanwave@appspot.com) and Zombie Bot (rfazwave@appspot.com) make use of Google Wave's Python client library to create an atmosphere for using two simple . commands (dot commands) to create random facts about ninjas and zombies respectively. The Ninja Bot makes use of a service (http://deviant-core.net/cgi-bin/rfan/index.py) created using my original web application version of Random Fact About Ninja (http://deviant-core.net/cgi-bin/index.py) while Zombie Bot uses a unique service (http://deviant-core.net/cgi-bin/rfaz/index.py) to create the facts. Both use an almost identical script but utilize different facts. Please note that the Zombie Bot service has a very minimal amount of facts at this moment as it's still being established but the Ninja Bot service is ready for use. Here's an extremely basic Python function to get a fact from the Ninja Bot service:

import urllib2
def getFact():
 f = urllib2.urlopen("http://deviant-core.net/cgi-bin/rfan/index.py")
 fact = f.read()
 f.close()
 return fact  
 
 
This basic function utilizes the urllib2 module to read data from the python service file. The function then returns the gathered fact including a terminating \n character for use in something else. Use fact[:-1] to remove the \n character. Also, I recently, and by recently I mean a few days ago, started working on a programming language of sorts. It isn't a true blooded programming language but more of a python interpretation. Using a series of powerful Python scripts that make use of the regular expressions library, it takes an input file (.pml) file and converts it into a full-fledged python script. The advantage to this is that my language uses an extremely simple syntax to make a newbie feel comfortable. The Hello World, much like Python's, is only one line.
put->"Hello, World"
This simple line of code uses a piece of the series known as the Autumn script. Everything in the language is working in both name and affect. The syntax is also working and is subject to change. The language is known as the Pyre Markup Language as it utilizes both Python and Regular Expressions. Now, if you aren't too big on programming, you might not realize this but : Python is referred to as Py by many and it's also the file extension for python scripts. Regular Expressions is commonly acronym-ed as RE and there's a Python library known as re. The naming is a very literal expression of what it uses. I'm not entirely sure that I can call this a Markup Language, as it doesn't meet every little point as shown on Wikipedia, but it's really the only language type I could describe it as. Pyre is a cross-platform language available on all the machines that Python is, as it's merely a syntax converter. Now, I'll go into depth on how Pyre operates/will operate. Pyre is made up of FIVE core scripts. Autumn, Winter, Spring, Summer, and Core. Each file is in charge of a certain part of the syntax handling except for Core. Autumn is currently in charge of input/output, variable operating, and file operation. The responsibilities of the rest of the Seasons, are currently To Be Announced (TBA) and Core is going to get a large explanation. Core is an essential summary of the four seasons and handles the actual syntax conversion, file reading/writing, as well as commenting. All comments will be validly converted through an intelligent scanning process that occurs before the actual syntax is changed. Comments will be marked with hashes (#) just as in Python. Finally, the language all together will be released as a package with an additional script named dist. The dist script or distribution script will be the actual front-end for the engine. A Qt or GTK+ GUI may be added to the dist script in the future, but at release it'll be a console application. You will essentially choose the pml file you wish to convert to Python and the Four Seasons will handle all the conversion. Finally, to sum up this epically long post, let's talk all about that fish... I got into the Closed Beta program for an up-and-coming MMO which I believe I've discussed here before, Global Agenda. I haven't gotten a chance to Beta test yet but I will soon and I'll post as much as I can about my experience here. I cannot say TOO much about the game since I'm currently under a Non-Disclosure agreement, but it should be fun. Also, I'm not really as biased as I seem. You probably have noticed that I'm pretty fond of Google products from what I've said here, but it's just because Google happens to put out lots of good products, whilst Microsoft doesn't. I'd also like you to note that I always test something before making a comparison statement about it because there's two sides to everything. So, when I say that whatever Microsoft product is horrible, let's go with Office, it's because I've actually used it and prefer Open Office over it.

No comments:

Post a Comment