Wednesday, December 23, 2009
A Somewhat Uneventful Two Weeks
Well, I know it seems like I do quite a lot since my posts are usually massive but that isn't entirely true. In the past two weeks, I've been quite lazy and haven't really amounted to much. Literally everything I did was based around web design or usage of the web and wasn't a whole lot of hard work. I worked a whole lot on the website, which you can see in our Beta here, and the Beta is coming out nicely. Everything has been changed out to PHP and is running beautifully. I don't have to look at any more silly html code for some time, which makes me happy. I'm particularly happy about the new and improved Projects page. It divides my projects in to three main categories. Active, inactive, and discontinued, each of which is explained in a paragraph above the lists. Active means the project is updated often and with good reason. Active projects are likely to have the least amount of bugs however they may sometimes have more bugs than Inactive projects. Inactive projects are projects, typically with some minor bugs, that I have, for one reason or another, stopped updating as often. In some rare cases, inactive projects will have a minimal amount of bugs and the updating was stopped because I felt it unnecessary to continue updating it. Finally, discontinued projects are projects that are, quite obviously, not updated at all any more. These projects lack any official support but questions will be answered by a simple email to me (email in my profile) and will be answered promptly. The projects page, as you may have noticed, also has a dynamic statistics line at the end. The number of projects and over how long they've been made is dynamically determined using some simple PHP scripts. The other two statistics are so unchanging that I felt it unnecessary to modify them dynamically. If you look at the stats right now, you can see that there are 25 projects over 4 months in 4 languages on 3 platforms, which some would say are some pretty impressive statistics. Although I've made 25 projects in 1/3 of a year, I feel like my productivity is decreasing slowly, thus I'll be trying to make more projects over the course of 2010 so that after my 1 year mark for C++ is hit, I'll have a large amount of projects completed or being maintained. Aside from that, I've set up my very own iPhone/iPod Touch Cydia Repository known as Deviant Core Repo or Deviant Repo and you can add it by adding the source "http://cydia.deviant-core.net/" and the repository currently contains about... 24 packages and this number will increase with time. I've also started a twitter as well as a competition against Podulo as it is probably one of the worst Cydia repositories in existence. The twitter can be seen here and is updated relatively often. To get back to the subject of topics, I'd like to discuss what exactly those 4 languages and 3 platforms are. The 4 languages I'm referring to are C++, HTML, PHP, and Python and the 3 platforms (target platforms) are Windows, Linux, and iPhoneOS. With that, there are some projects that unintentionally cover more than just those 3 platforms hence why the real statistic on the site says target platforms. To discuss my iPhoneOS projects as well as the multi-platform coverage, I'd like to talk about my Gyz Compression Engine. Gyz was referred to in the first release as Genuine YZ compression but is often referred to as "gyz." Gyz currently runs on Linux, OS X, iPhoneOS, and anything else using a filesystem similar to EXT4 that can run Python. Running Gyz on a Windows computer requires some very basic modification in terms of the file path links and the things of that sort. A Windows version may released with the first official release of Gyz. All current releases of Gyz are Betas and you should expect a Release Candidate soon. Gyz currently runs on iPhoneOS through a modified version known as Gyz4iPhone. Gyz4iPhone, like Gyz, is complete freeware and is only available from the Deviant Repo. Gyz boasts powerful and easy command line compression by combining the bz2 library with the zlib library. Together, these powerful compression engines become even more powerful. Gyz is currently at version 0.9-9 and the iPhone version is subject to be a bit higher. You should be expecting a patch soon that will count as the first release candidate and all release candidates will be 1.0-X and 1.1-X, hopefully by then I will have decided on my set up and the first version will be released as version 1.2-0. The Gyz project was started in mid November and worked on consistently until one day I lost interest. Soon after I discovered a python version for iPhone (2.5.1), I decided to revive the project and port it to the iPhone. This port was completed on December 19th and required very minimal change. Future versions of Gyz may run off of command line parameters instead of the terminal I am using right now. In my habit of planning for the future and mimicking naming styles, the 2.0 release of gyz will be known as yz2 and will use the yz2 extension. On an unrelated note, the projects on the projects page will be modified to have every project name be a link. For non-web projects, the links will obviously be a download link. Also, I'm pretty amazed that I was able to talk so much. I expected this to be one of my shorter posts since this past two weeks was uneventful but I guess it really wasn't that uneventful.
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:
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.
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.
Subscribe to:
Posts (Atom)