Turn on Accessibility Mode Turn off the lights

Kevork Aghazarian, Web Programmer and Consultant

AboutMyProjects

This page showcases some of my past, present, and future projects. It also describes some PHP, and Javascript classes that I have developed, and perfected throughout the years. Source code for any of them can be requested, and I share most of it in most cases.

LoreaonOnline

Loreaon is browser-based PBBG (Persistent Browser-Based Game). It has several layers of complexity, competition, entertainment, and much more.

The artwork was done by Darren Geers. The front-end design, scripting, back-end programming, logic, database structure, database optimization, and server tweaking, was all accomplished by myself. Some of the logic was completed by Fayez Awad and myself as well.

Quick facts: 6,000+ players, 220,000 lines of code, 500+ daily active players, 50+ quests, 200+ achievements, 350+ items/gear, 8 unique professions, 40+ profession specializations.

JFMP3

JF MP3 is a Javascript MP3 player, built over the SoundManager 2 API. You can dynamically load a playlist, and perform most of the basic, and advanced functions of a Flash MP3 player.

PepiOS

Pepi OS is an online operating system concept. It is in a very basic format, and has many incomplete functions/areas. It is a work in progress, and serves the purposes of advancing my skills, and knowledge. As well as learning new techniques for mission critical programming.

PzCoreClass

My PHP class, Pz_Core, is what I use in all of my online projects. I have also used it when building content management systems for my clients.

The class is a very flexible core, that consists of many (optional) modules. It has built-in security features, like:

  • IP authentication
  • Domain Control

It also has a built-in HTML output compressor, which can be seen in action, by looking at the source of this website. Other features include:

  • The ability to handle any amount of separate MySQL database connections simultaneously, with little configuration (outside of the class to boot!)
  • The ability to handle any amount of separate Memcache server connections simultaneously (just like the MySQL connections)
  • Centralized query functions for MySQL, separated for SELECT, and UPDATE/INSERT/DELETE statements. This allows for proper deadlock, and error detection inside the class (making development much easier)
  • Centralized get/set/replace/delete functions for Memcache, allowing for proper error detection.
  • Error handling that properly logs errors to separate files, depending on the type of error (PHP, MySQL, Memecache)
  • An in-depth debugging, and profiling layer (that can be disabled), that logs various statistics during script execution, logs class events (and any custom events you declare), connections, queries, module loading, and outputs the final data on screen, or logs it into a database (or both)
  • And much, much more...

The class has been developed, and improved for over 4 years.

MySQLiLoggerClass

This PHP class extends the built-in PHP class, MySQLi. It is meant to be used in tandem with the Pz_Core class, if developers choose not to use the centralized query functions, yet still want queries to be logged by the profiler.

The class also has a garbage collection feature for the "multi_query" method.

_cleanQueryFunction

This is a sanitation function that cleans the value that is passed to it, making it completely database safe. It has many features, an can detect and handle integers, arrays, and strings. It also makes use of the _cleanHTML function (described below), and can also clean certain (or all) HTML elements. This helps in preventing XSS style attacks.

_cleanHTMLFunction

This function is generally used conjunction with _cleanQuery, to sanitize a string. This function can take a few parameters, and can clean anything from <script> tags, to HTML comments, and even all HTML tags in a string. It also converts < and > symbols to their HTML entity equivalents.

_createHashFunction

This is a special hashing function I built that generates a 1-way security hash, using a special set of methods. The hashed string is 64 characters long, and goes through various levels of encryption, making hash cracking/reversal nearly impossible (if not completely impossible, without access to the source code).

I also have a verify function, that takes a string input and compares it towards a hashed string, to see if they match (password authentication as the best example).

_kovoEncryptFunction

This encryption function is a byte-by-byte hashing script, that uses a cipher I created. The cipher is very basic, but does a good job of encrypting a string that is hard to crack. The best use for this function, is for cookie values, where sometimes sensitive data has to be stored in a cookie. This function can scramble the string, preventing anyone from reading it in any meaningful way.

Of course, there is a reversal function, that takes-in a scrambled cookie value, and returns the original value (for processing on the server side).

TrafficControlClass

This is a Javascript class, that extends the AJAX class of Mootools. It helps prevent multiple AJAX requests from being sent to the server, that are going to accomplish the exact same thing. For example: if a user selects a link and presses the Enter key on their keyboard, and does not let go. This would generally flood the server with the same AJAX request, and may also cause performance issues.

This class controls that, by detecting if an AJAX request is already running with the exact same url and query string. If it is detected, then the subsequent request is cancelled. There also is an option to queue requests (instead of just cancelling them).

Of course, you can still run multiple AJAX requests at one time, this class only prevents the exact same request from running more than once at a time.

getHREFMethod

Working with AJAX often, there is the need to get the HREF attribute of anchor tags. As it stands, Internet Explorer reports the full URL of a page, no matter what the anchor tag consists of. This is a problem if the anchor tag is a hash (i.e. #elementIdHere), as IE will return "http://www.domainame.com/#elementIdHere", instead of "#elementIdHere".

So I implemented a way to get around this. The getHREF method is implemented in the Element object. It has an optional parameter, that can be set tot rue, if you only want the hash of the HREF value.

NotablePartners

SocialConnections

LinkedIn Skype Facebook Twitter

Home | Skills | Experience | Projects | Contact Me

Copyright©2001-2012 KevorkAghazarian.com, All Rights Reserved. XHTML 1.0 Strict | CSS 3.0