Tuesday, January 5, 2010

The Game Plan

Though there isn't anything at this moment to unveil, I'm gonna go ahead and talk about the future of Deviant Core and how thinks are running at the moment. First of all, The GYZ compressor for iPhone port has a release candidate available from our repository. The release candidate is of course command line, as will be the final application. The first original release of Gyz4iPhone will include an API so to speak to allow for others to develop GUI applications for Gyz or incorporate it into an existing one. Next up, the Beta site is gonna be including some cool new features soon such as a login page, registration, account activation, profiles, statuses, and many more.The new features are most likely the closest to come, as I'm writing this while on a break from working on them. As for a more long-term goal for Deviant Core, we'll be developing a full-fledged 3D video game. Our current plans include the usage of the Unreal 3 engine but there is a possibility we will use the Source engine. The game itself is expected to be released in late 2010 or early 2011 and is running under the name "Project Deviance" being as the expected release title at the moment is "Deviance." The title is, of course, subject to change and we're sitting at the drawing board right now so there isn't much to talk about. For the record, the completion of this game was the New Year's resolution of all the Deviant Core developers. Speaking of which, we now have an official staff count of 3, all of which will be working on Project Deviance. Our new developers are Mitchell Andrews, who has been with us in spirit since he made our site a few months ago, and Steve, who though his last name shan't be revealed, is referred to as "Shadow" by myself and Mitchell (Mitch being referred to as "Grimm"). These changes have already been added to our site and with the coming of the New Year, our copyright information has been changed to 2010. As it has been since the release of Open, our legal information is available in the LEGAL.txt file seen here. If you're too lazy to view the page, everything on our site is licensed under the Creative Commons 3.0 license with the rights BY-NC-SA. Basically, those rights make it so our work can be copied, redistributed, modified, etc. by anyone (BY), but they must distribute it for free (NC) and it must be under the same license (SA). Well, I think this is the shortest post I've written... back to work on the site!

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:

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.

Wednesday, November 18, 2009

Robots, Snakes, and A Cup Of Coffee -- On The Go

Well, it's been quite some time since I've made a post, almost 3 weeks, and quite a bit has happened. First up, Ubuntu Linux 9.10 Karmic Koala was released and it is GREAT. I had some problems with a crashing desktop environment (GNOME) but that was caused by a third-party program. I also became more accustomed to Windows 7 but getting back to Karmic... The version of Flash released with Karmic has amazed me. Although this probably wasn't admitted to often, due to Adobe's history of taking a long time to get things stable, Ubuntu's previous versions of Flash had instabilities and situations where it just wouldn't work. I'm proud to say that the new version of Flash has not only fixed instabilities but they've got flash games working amazingly and you can't even tell the difference between it and the Windows version. Karmic is also a bit nicer looking and includes a kernel update. Onto the snakes, I decided to learn Python since Perl was just too much like C++ and Lua is almost entirely an extension language. I must say, Python is quite amazing. Not only is it powerful but it's capable of running on the web,  it's widely used and extremely well documented. My first Python project has been released however I can't pin a version number on it since it's a Web Application. Feel free to check it out here. Although there is still the matter of the non-Facebook version still having the publish button even though it will not work, I'll be fixing that eventually. Off to the robots! I recently (a few days ago to be exact) purchased a new phone and if you've been hearing about new phones lately, I'm sure you know what I'm talking about from the title of this post. The Motorola DROID! Looks like after a few years of falling behind and stumbling along trying to keep up with Samsung and LG, Motorola took a bite into the apple that is the future. Motorola made a deal with Google to create a phone running the latest version of their mobile OS, Android OS. Android OS, although commonly compared to iPhone OS, is really nothing of that sort. Android OS and iPhone OS appear similar in the sense that they both have home screens (springboard on iPhone OS) and they both have the same type of application launchers but when it comes down to it, Android 2.0 blows iPhone OS out of the water. Deep deep down, they're both running that good ole Unix kernel but there's a comparable difference. iPhone OS is basically just OS X watered down with a new Desktop environment. This is fine for some people, but I'd prefer some REAL work go into my phone's OS. Android 2.0 can run widgets, background apps, and do pretty much everything a Jailbroken iPhone can do. Oh right, and it doesn't require extra work. However, I dislike Android 2.0 at the moment for the sole reason of : The API is in Java. As you may or may not know, I hate java. I know a bit of it, and I don't have a problem with people who use it, but I just don't like it. Might be that Java was my first real experience with coding aside from batch files and shell files and I didn't really get into learning it properly but I learned how to make use of a library and some of the syntax rules by trial and error. I'm still considering that C++ blog but being as this blog doesn't really have any frequents I don't see a point in making another one. Now, you're probably wondering why I'm talking Android up if I hate the API/SDK and as a programmer that should be important but there's a great reason. Google's releasing a new little toy for programmers around this Christmas to run as a cross-platform C-esque language. It's called Go and it combines aspects from both Python and C which pleases me as I'm experienced in both. Also, for those who wonder why I use experienced rather than mastered it's because my philosophy about programming is that there's no way to master a language, programming is not only infinitely expanding but there's always gonna be multiple ways to conquer one problem. Thus, there isn't a way to truly master any given programming language. the coolest part about Go is that it's been stated [un]officially that Go will run on mobile devices which means that Go will run Android 2.0 and I as well as many others suspect that Go will be integrated into the SDK and will become a major part of Android 2.0 programming. Since Go will be brand new, everyone will be at around the same level although programmers with experience in C[++] and Python will have a bit easier of a time. All together, the past few weeks have been pretty eventful especially since this post didn't cover all of it. Anyway, thanks for reading!

Friday, October 30, 2009

Update + Push :(

Well, good news is : Windows 7 has Internet now, I got that one working. The bad news : I'm pushing the release date for ReFRACT V2.0, it's pretty much done though. Hence the 16-page source code packet I had today in school. However, the code is quite bugged and it needs some serious work. There's also some features I dropped but will have time to add now that it's pushed. I'm not entirely sure of the push date as of now. I may discontinue the project, which sadly happens a lot. I haven't really worked on something consistently. Project ideas are always welcome, since I'm so uncreative. Feel free to comment with any ideas, aside from that I might be starting a C++ tutorial blog since the only good tutorial I found was on cplusplus.com but was very limited in what it taught you. This tutorial was my basis for learning, but I had to turn elsewhere for everything else. I seriously need ideas though, ideas. ideas. ideas. FEED ME TEH IDEAS. I seriously need a good project. One good project and I could probably put Deviant Core Ltd. on the map. Not that we make any money as a nonprofit organization... but it'd be pretty cool having some real help around here. It's just me at the moment. No alternative authors, developers, etc. Just me. So, if you've got experience and are willing to contribute to projects as a team, you can also help with that. I'm thinking this is the first time I've actually mentioned the fact that we've got no staff aside from me, thus making "We" a royal we. Well, if I go to our website designer Mitchell Andrews and go : "bitch, you're part of the crew now." Then, you could say we've got two people. But hey, what can I say... there aren't exactly a lot of freelance developers looking to work in a development team. So Deviant-Core is a release front-end at the moment. I guess being a network top-level domain finally makes sense. Anyway, to sum it all up :
IDEAS IDEAS IDEAS!
DEVELOPERS DEVELOPERS DEVELOPERS!
WEB DESIGNERS WEB DESIGNERS WEB DESIGNERS!
C'mon... you get FTP access for the last two :)
Just ask Mitch, he got his own domain name and root-access to his own site from me. Domain name was a one time thing though.

Tuesday, October 27, 2009

Windows 7 and You (Plus Some Other News)

Well, first off : ReFRACT v2.0-0 is coming along nicely, it should be ready by the release date and I'll be proudly displaying the completed source code come the 30th. Aside from that, I got my desktop up and running with Windows 7, which is quite nice. However, since it's Microsoft, it's got some problems. First off, my $100 wireless card from Belkin doesn't have a driver for Windows 7, so now I have to buy an $80 USB wireless card and hope that Win7's generic USB wireless card driver works. Whilst my machine is up and running again, I still can't access the Internet. This may cause a delay for the Win32 version of ReFRACT v2.0-0. Quick note, if you didn't realize I changed my formating for versions. This is because I learned it differently when I read the .deb documentation. Essentially it works like this : version.edition-revision. Not very different from my old way, version.edition.revision, but still. Also, in file names it'll be expressed as : 2,0-0 because .'s have been known to interfere with file types on Windows. Anyway, aside from the problem with my wireless card, I'm very pleased with Win7. Not that I'd get off my precious Linux computer to use it for anything other than gaming, but it's nice. Personally, I look forward to playing some Steam games on it. Especially the future game of the year, Global Agenda. However, they haven't gotten back to me on the closed beta. Good news is it's gonna be released Q1 2010, which isn't far off.

Sunday, October 25, 2009

Another 10 Day Summary

Yeah... I keep posting these 10 day summaries because I don't really get as much time as I'd like to post on this blog. However, I will be posting more often on this blog (hopefully) and I'll keep everyone updated. Over the past 10 days, I've managed to do quite a bit. First off, I created a WebKit-based web browser named Al Gore's Intrawebz Acces0r, AGIA for short. Then, I decided to read up on the Debian Packaging (.deb) Documentation. So with my new-found knowledge of Debian Packages, I created a .deb for the POSIX only AGIA. I also created an iPhone Web Application Emulator that I named iPhoner. iPhoner will be cross-platform, however : my Windows machine is down at the moment and I have no way to compile it under Windows. However, the source is Qt and thus is ready for immediate compile under Windows with the proper Qt setup. iPhoner for POSIX is also distributed as a Debian Package. I also checked out Lua a bit more for a World of Warcraft addon, but it's still in beta stages. On a non-programming note, I went to the GameX Expo in Pennsylvania. I got to play Dante's Inferno, which was pretty good but insanely hard. I also got to try an up-and-coming MMORPG based in a future where warfare has become entirely dependant on special operations agencies. It's called Global Agenda. You can learn more about it here. Unfortunately, the website has quite a few typos, but the gameplay was quite solid. You can even try to get into the beta for it on the site. However, it's a closed beta at the moment. I'm still waiting to get in, but I have a special referral code from the convention, however I don't want to post it up on the Internet... So, that's pretty much what I've been up to over the past 10 days.