Tuesday, September 11, 2007

Doing it and doing it and doing it ...WELL!

We are back!

Fresh with another launch, A1Infrared.com is alive and kicking. After a little fussing with HostGator,
I believe that is unacceptable
we were able to get ionCube Encoder working. Yes, we do support open source, but our core framework libraries are not open source. So, we want to give thanks to HostGator for meeting our requirements.

In other news, we are moving strong with Lease2Buy, approaching the finish line. With the last cup of Gatorade crushed and dropped a few miles back, we are leading the marathon. See, most of the other web companies start off fast, but they're quickly wheezing in the back. Not us, not here at ProjectSkyLine. We set a pace and keep to it. In fact, we're starting to set a pace for a lot of *stuff* that's going on. We going strong.

Keep in touch.

- psl

Labels: , , , , , , , , , ,

Tuesday, February 27, 2007

TechTrax Article Debut

Hello all,

Our first TechTrax article has debuted! ProjectSkyLine' chief engineer Ben has written a great article, '
Automatically Generate Documentation for Source Code with HeaderDoc', which explains how to setup a mechanism for generating source code documentation for any project (PHP is the example).

The same technique debuted in the article is used here at PSL. Because of the size of our clients projects, we need up to date, detailed and accurate project documentation.

In other news, we've landed a large job for 'mash up' of types. A beta will be released in a few months so stay tuned. Not much else can be announced...its a skunk works project!

See you soon!

- psl

Labels: , , ,

Monday, January 15, 2007

Write Software or Die Trying

Open Sores:
ProjectSkyLine supports open source software. While many of the applications we create are closed source we balance those releases with tools and open source libraries to aid developers.

Much of our daily development takes place on the LAMP (Linux – Apache – MySQL – PHP) platform, all of which are open source applications. And all these applications work exceptionally well.

Folks say, “you get what you pay for” and in LAMPs defense its sooooo true. We get software that is FREE from bullshit, FREE from show stopping bugs, FREE from limiting EULAs.Open source has it place in all marketplaces and development environments. Thinking back to a story an employee of ProjectSkyLine told once, he recalls being at a Linux Users Group meeting sometime in the late 90's. He asked if RedHat would ever have an IPO. He was laughed at.

Peas in a Pod:
Bugs and software development go together like PB&J. It sucks to hear, we know. Its just the sad reality of dealing with such complex systems. We utilize Mantis, an open source bug tracking database (mySQL) with a browser independent user interface (PHP). Its great. Its relatively lightweight in comparison to Bugzilla and setup is a breeze.

Content management Content schmanagement:
If your a LAMP developer we can be assured at one time or another you have had a client who requests the use of Joomla, or the need for a custom CMS solution. We have too. Simple apps don't always need the entire weight and unnecessary bloat of the CMS frameworks. That's why we developed an open source tool that JUST WORKS. Its smart enough to read into the database your looking to edit and fetch the tables. It allows you to update and remove rows, plus add new content. This amazingly simple tool is called pCMS and we use it. A lot.

Check out our 'Open Source' section for additional info.

Please, support OS or you might get hacked!


- psl

Labels: , , ,

Friday, January 5, 2007

Tar up, its a code trip!

Yup.

Browser-Compatibility:
When developing web based applications, as we do at ProjectSkyLine, we MUST check our software on different browsers and operating systems. We recenetly got ahold of Muli-IE,
a super useful tool that provides working copies of IE 3.0 -> 6.0. Even though the browsers identify themselves as your most current IE installation, they do behave correctly when rendering web pages. Kudos to the coders at Tredosoft for putting this together.

--; SELECT * FROM ...:
For database driven sites with php & mySQL there are alot of ways to handle state data. For simple sites its easy to pass a variable such as 'act' with a page value when navigating a site.
Such as index.php?act=1 (goes to page 1).

Now, if your taking this data and using it in a SQL Query such as:
'SELECT * FROM content_table WHERE act = ' . $_POST['act'];

..AND you didn't validate that input than you've got a serious problem.
This is called SQL injection, in its simplest form.

A visitor could easily alter the POST data in the URL; index.php?act=ph33rMyHaxorSkillz
If your lucky this would cause your code to halt execution after the failed query, thus displaying a plain white page for the visitor. You don't want this.

A quick fix for this is to validate the input of $_POST['act] against an array of allowed values. For small sites with limited pages, this is recommeneded.

Our sample site has 2 pages:

define(constHomePage, 1);
define(constHomePage, 2);

/* returns valid pages for our site */
function sitePages( )
{
return array ( constHomePage => constHomePage,
constContactPage => constContactPage
);
}

/* fetch the value of act from POST data */
$actVal = $_POST['act'];

/* load the array of valid pages */
$vActSet = sitePages( );

if ( !isset($vActSet[$actVal]) )
{
/* if actVal does not map to a key in this array */
$actVal = constHomePage;
/* push the user to the home page */
}

This code will change $actVal to the value of 'constHomePage' if something other than 1 or 2 is passed via the URL. There is no way for a malicious user to circumvent this code.

We will go into much more detail in upcoming entries and also provide a wrapper function for fetching values from $_POST, plus some other tasty code-bits.

- psl


Labels: , , ,

Wednesday, January 3, 2007

Second wind

Real programmers do real things:
Yup, a 16+ hour day for the pioneers of ProjectSkyLine.

Who doesn't love things that are fast and small? Motorcycles, missiles...png's?! If your a web developer and you need to support IE 6.0, 5.5, etc you have undoubtedly had a run in with
the infamous png-24 problem.

After searching Google and trying various bits of javascript, css and other kludge fixes, we still had not reached a STABLE (Visual Studio was catching IE 5.0 crashes) answer to the png-24 problem for ALL browsers. So we may not be using .png's as much as we'd like too.

A STABLE fix is to use .gif images w/a matte background to match any color of your choice.
Transparencies will also work but we've found small images distort when transparency is added. IE7 fixes this error as well as FireFox and Opera (v9).

Take some source give some improvements:

We designed pCal to help connect ProjectSkyLine's workers across states. Its been invaluable to us. Today we released updates to the pCal package and clarified the installation process.

Another open source project we find of great use is bfExplorer. It enables remote users to connect to our development server and manage files through an easy to use 'explorer-ish' interface. One point of improvement was needed in the file list code however. The application had plenty of space to display full file names but was stopping after 16 characters. Yeah, this makes it a bit difficult when you organize your files. So here's a quick fix for anyone wanting this changed:

Inside /files/config.php change $names_chars from 16 to 30;

Yup, that's it! And now you have your file names...in full!

- psl

Labels: , , , ,