Archive for 2008

Interns are Awesome – Part III

Wednesday, December 31st, 2008

A note from our former intern Dylan on his experience at Firefall Pro.

Katie,

I’m sorry I didn’t get back to you sooner. The email got buried in my inbox and I forgot about it.

Firefall really was a fun place to work. It had a laid back environment where you can do/learn as much as you’re willing to take on. I personally got to try my hand at several new programming languages for both front and backend development. I also got to work on various projects from core PHP libraries to corporate webpages. The pace did seem a little fast at times but Scott was always willing to answer my questions or give an impromptu lesson. I learned more about web development over that summer than I did the previous four years getting my CS degree.

Again, I’m sorry this is so late. Hope you guys find it useful and that everything is going well.

And in a subsequent email for the sake of self-aggrandizement and because I’m uber awesome:

On a side note, I think you are easily the best HR (please don’t be insulted if that’s not actually your position) person I’ve ever dealt with. I’ve had to wait weeks if not months to hear from every company I’ve dealt with since this summer. It’s really refreshing to have conversations in real time.

Thanks,
Dylan

Interns are Awesome – Part II

Wednesday, December 31st, 2008

Another letter regarding our internship program has arrived!!! Let us bask in the glory.

My experience at Firefall Pro surpassed all my expectations and probably redefined them altogether. I came in with that fresh-intern-meat readiness to learn and eagerness to work, but I didn’t stop to think about what kind of experience I was looking for until I had already started at Firefall Pro. Everyone was friendly but honest, positive but realistic, and as likely to make fun of themselves as they were of me. Ok fine, a little more likely to make fun of me, but the point is I could have been stuck with a floor full of dead beat baby boomers and I wasn’t. They welcomed me not only to the world of web development but also to the great city of New York with a rough sense of sarcasm on a foundation of good will… oh and they converted me to Mac. I feel enlightened.

voila.

-GIO

Interns are Awesome – Part I

Wednesday, December 31st, 2008

So I asked interns past and present to write us a little blurb about their experiences here. They so kindly did! I’d like to share their words of wisdom with you all….

Hello Katie,

Greetings from Cornell! I hope you are all doing well. Sorry I’m sending this so late… Scott was right about me procrastinating on this.

For me, a lot of the internship was a new experience for me. The interview was my first job interview, and I wasn’t really sure what to expect but both you and Scott made me feel at ease and kept the interview going. It was very helpful of Scott to point out different parts of my resume that were weak or lacking. I found Scott’s Learning Time to be pretty fun and informative, but everything stuck in my head much better when I applied what I learned to mocking up an actual site. I would’ve liked to see more of how Javascript and PHP were implemented into HTML designs, but I guess the designs didn’t really call for that so I can’t complain. I didn’t really have the Javascript or PHP background to do anything other than styling, but, overall, I really enjoyed the laid-back work environment. The only things I think the workplace needed were: 1) more Pig, and 2) better ramen.

So, that was pretty short because I can’t think of anything else I can evaluate. I really did have a fun time and I thank you guys for that!

Sincerely,
Ada

Removing automatic quotes from the q (quote) tag

Sunday, December 21st, 2008

Just a quick note, if you’re ever looking to remove the automatically generated quotes from a <q> (quote) tag, all you need to do is use a little CSS to unstyle it.

q:before,
q:after {
content: "";
}

IE doesn’t understand this, but it doesn’t automatically make the quotes anyway. For more information see this article.

Fantastic

Thursday, October 23rd, 2008

… the LiveCD is on a DVD, the DVD drive won’t show, burn to CD-R twice (the first blank fails), boot from CD, USB devices don’t show, reboot, add PS2 devices, only the PS2 keyboard and USB mouse want work, SATA drives don’t show, in some universe the RAID controller lets you clone a drive (not this one, or if it does it doesn’t want you to know), subsequently determine source drive has little point to exist and really doesn’t need to be copied, leave client hours later, greeted by crowd of people in lobby all wondering what its like to have dependable elevators, take 12 flights of stairs, return to no internet and a board intern, send intern home, call Verizon, determine internal router decided to forget how it was configured, re-educate router, Vonage adapter decides it too should stop normal functions, statically assign adapter so the phones work.

Net Gain from 3 PM to 11:30 PM: Zero.

Updated: Full Window Flash (With Minimum Dimensions)

Friday, September 26th, 2008

I updated the Full Window Flash (With Minimum Dimensions), Done Right post. It now properly supports Firefox 3 and has been retested against Safari and IE 5 through 7. I also fixed a few more broken links and tried to spruce other things up as well. Feedback is encouraged.

Free Amazon Prime for a Month

Monday, August 11th, 2008

Just letting everyone know that you can get Amazon Prime free for one month (free 2 day shipping) if you haven’t already participated in a Prime trial. If don’t want to be billed the yearly fee at the end of the month go into your settings and disabled the automatic renewal.

The iPhone and HTTP Auth – How to save your password

Monday, August 4th, 2008

So you have an iPhone, but by now you’ve realized it doesn’t have a Keychain or any other sort of password management for web sites. While I can’t help with form based logins, there is hope when it comes to HTTP Authentication.

On the iPhone HTTP Auth login screens look like this:

The easiest way to get past those login prompts and store your password is to add it to the URL. I recognize this isn’t a new concept, but applying it to the iPhone might be to some. The format goes like this:

http(s)://username:password@www.example.com

If your username or password contains any non alphanumeric characters, in other words anything that isn’t A-Z and 0-9, then you must URL encode those characters. A common place this may occur is with cPanel based webmail where you have to use your full e-mail address as your login. In those cases enter in a + instead of an @. For example [email protected] becomes user+example.com as your login.

Once you’ve assembled the URL, bookmark it. I’ve found it to be the easiest to do this on the computer, then syncing it the iPhone. When on the iPhone you can go to the page and even add it to your home screen if you desire. While this doesn’t make up for true password storage, it does make it much easier to access sites protected by HTTP Auth.

In some instances this is the only way I can access some sites without being endlessly prompted for my login and password on the iPhone, no matter how accurate. This phenomenon has been observed by others as well.

The Disclaimer
Please recognize that you are storing your password in plain text, fully unencrypted. Your password is now as only safe as your bookmarks, and your iPhone. Normally in OS X your passwords are kept in a heavily encrypted database if you save them.

I can only hope that a full fledged Keychain will come to the iPhone, but for now this isn’t that bad of an alternative for sites that use HTTP auth.

Hosting

Tuesday, June 3rd, 2008

This is just a quick message to let everyone know that we are now providing select web hosting. We have a virtual private server with cPanel, powered by Network Redux. We plan to migrate existing clients over to our environment as well as offer hosting to new clients and our friends.

By running our own service we should be able to offer an uncommon level of support and circumvent the pitfalls of unpredictable shared hosting. Please contact us at [email protected] with any questions. We look forward to raising the bar in a new field.

Full Window Flash (With Minimum Dimensions), Done Right

Tuesday, June 3rd, 2008

2011-03-08 – Updated and now at:

http://dev.firefallpro.com/full-window-flash/

Original Article:

So you want to have Flash take up 100% of the browser window, but it also has to maintain minimum dimensions so content won’t be hidden if the window isn’t large enough. This will give Flash the ability to expand and contract as the user resizes the window, but if they make it too small scroll bars will appear. Achieving this involves a multistep process in order to properly support the most browsers (Safari, Firefox 2 & 3, IE 5 through 7).

Step 1: Create Your Container HTML File

Starting out with a HTML 4.01 Strict file is essential in creating a consistent experience. It’s time to get used to conforming to standards unless you want to mess around with multiple box models. No, you cannot use XHTML, no one should use it. Almost no one serves it properly and IE 6 has no clue what application/xml is. All you’ll do is force IE to render in quirks mode and use its box model.

Here is the start of a HTML 4.01 strict document as generated by BBEdit.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"        "http://www.w3.org/TR/html4/strict.dtd"><html lang="en"><head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>Full Window Flash With Minimum Dimensions</title> <meta name="generator" content="BBEdit 9.0"></head><body>

</body></html>

Step 2: Embed Your Flash with SWFObject 2

SWFObject 2 is a free JavaScript library that provides the ability to uniformly embed Flash while maintaining standards compliance and cross-browser support. I strongly urge you to check out the documentation as this article won’t go into any depth about its use.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"        "http://www.w3.org/TR/html4/strict.dtd"><html lang="en"><head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>Full Window Flash With Minimum Dimensions</title> <meta name="generator" content="BBEdit 9.0"> <script src="js/swfobject.js" type="text/javascript"></script> <script type="text/javascript"> <!--  swfobject.registerObject("flash_holder","7.0.19","swf/expressInstall.swf"); //--> </script></head><body> <div id="content">

  <!-- BEGIN: Flash Embed -->  <object id="flash_holder" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%">   <param name="movie" value="flash.swf">   <param name="quality" value="high">   <param name="scale" value="noscale">   <!--[if !IE]>-->   <object type="application/x-shockwave-flash" data="flash.swf" width="100%" height="100%">    <param name="quality" value="high">    <param name="scale" value="noscale">   <!--<![endif]-->

    <!-- BEGIN: Alternate Content -->    <div>Adobe Flash is required to view this website. Please <a href="http://www.adobe.com/go/EN_US-H-GET-FLASH/" onclick="window.open(this.href); return false;">install</a> it and reload this page.</div>    <!-- END: Alternate Content -->

   <!--[if !IE]>-->   </object>   <!--<![endif]-->  </object>  <!-- End: Flash Embed -->

 </div></body></html>

Between the head tags the SWFObject JavaScript file is referenced, followed by the function call itself. Between the body tags two nested objects are used along with some IE conditional comments. If none of this makes any sense, you probably still need to read the SWFObject documentation. The important thing is to set the width and height of the both objects to 100%.

Stopping here would create a nicely embedded Flash file that will resize with the window. Though a little CSS needs to be added to make it properly fill the window.

Step 3: The CSS

CSS needs to be added to make sure the Flash fills the entire window. There are a variety of issues with full window content, the specifics which I no longer recall, so you’ll just have to trust me for the most part.

Add within the head tags the following CSS:

 <style type="text/css"> <!--  html,  body,  div#content {   width: 100%;   height: 100%;  }

  body {   padding: 0;   margin: 0;   background-color: #FFFFFF;  }

  div#content,  object {   overflow: hidden;  } --> </style>

Now the Flash should take up the entire window. Though this doesn’t yet solve the problem of enforcing a minimum size when a user resizes the window. The user could shrink the window down and miss important elements, but Flash has no way of telling the browser that needs to maintain a certain size. A little CSS is all it takes to address that in modern browsers.

 <style type="text/css"> <!--  html,  body,  div#content {   width: 100%;   height: 100%;  }

  body {   padding: 0;   margin: 0;   background-color: #FFFFFF;  }

  div#content,  object#flash_holder {   min-width: 800px;   min-height: 600px;  }

  div#content,  object {   overflow: hidden;  } --> </style>

There is some over-specification in there because of a Safari bug.

I purposefully said modern browsers, because IE 6 and below have no idea what min-width or min-height even is. Chances are forgoing IE 6 support is not a likely option.

Step 4: Making Up for It with JavaScript

Even though IE 6 doesn’t support the CSS that would make this process complete doesn’t mean it has to get any more difficult. I created a JavaScript function called minsize()* to emulate the absent behavior.

<head>...<script src="js/minsize.js" type="text/javascript"></script>...</head>

The function takes the ID of the element you want to set minimum dimensions to, followed by the width, then the height. It should be wrapped in a IE conditional statement and placed at the end of the document before the closing body tag.

<!--[if lte IE 6]><script type="text/javascript">minsize('content',1000,750);</script><![endif]-->

*Please do not redistribute this file. The credits within need to remain intact. I also ask to be notified of any changes or improvements so I can update and repost the file as needed.

Step 5: Dealing with “Click to Activate”

Certain versions of IE will display a message around a Flash embed saying that it must be clicked to activate. This is due to that whole patent mess. Microsoft eventually licensed the patent so not every version of IE is effected. This can also be solved with another JavaScript workaround that should be included at the end of the document before the closing body tag, wrapped in IE conditional comments.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"        "http://www.w3.org/TR/html4/strict.dtd"><html lang="en"><head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>Full Window Flash With Minimum Dimensions</title> <meta name="generator" content="BBEdit 9.0"> <style type="text/css"> <!--  html,  body,  div#content {   width: 100%;   height: 100%;  }

  body {   padding: 0;   margin: 0;   background-color: #FFFFFF;  }

  div#content,  object#flash_holder {   min-width: 800px;   min-height: 600px;  }

  div#content,  object {   overflow: hidden;  } --> </style> <script src="js/minsize.js" type="text/javascript"></script> <script src="js/swfobject.js" type="text/javascript"></script> <script type="text/javascript"> <!--  swfobject.registerObject("flash_holder","7.0.19","swf/expressInstall.swf"); //--> </script></head><body> <div id="content">

  <!-- BEGIN: Flash Embed -->  <object id="flash_holder" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%">   <param name="movie" value="flash.swf">   <param name="quality" value="high">   <param name="scale" value="noscale">   <!--[if !IE]>-->   <object type="application/x-shockwave-flash" data="flash.swf" width="100%" height="100%">    <param name="quality" value="high">    <param name="scale" value="noscale">   <!--<![endif]-->

    <!-- BEGIN: Alternate Content -->    <div>Adobe Flash is required to view this website. Please <a href="http://www.adobe.com/go/EN_US-H-GET-FLASH/" onclick="window.open(this.href); return false;">install</a> it and reload this page.</div>    <!-- END: Alternate Content -->

   <!--[if !IE]>-->   </object>   <!--<![endif]-->  </object>  <!-- End: Flash Embed -->

 </div><!--[if lte IE 7]> <script src="js/clicktoactivate.js" type="text/javascript"></script><![endif]--><!--[if lte IE 6]> <script type="text/javascript">  minsize('content',800,600); </script><![endif]--></body></html>

I hope you’ve enjoyed scrolling to the end of this document as much as I did writing it. Here are the referenced files:

Now at: http://dev.firefallpro.com/full-window-flash/

Completed HTML
minsize.js (1.0.001)
clicktoactivate.js
SWFObject

Please send me comments on how I can improve this process or minsize.js. I will try to keep this document up-to-date and expand it if necessary.