I find myself putting out fires in my code base all the time. The problem is, I set the fires to begin with. 🙁
Month: September 2011
Lazy Loading Images with JQuery
I am trying to speed up a website every way that I can. I decided to look into lazy loading which I have read about numerous times.
Lazy loading is basically not wasting time loading images that are off the screen, or out of the viewport.
This got me thinking, why do the browsers not do this for us? They would be better equipped to handle this than a JS developer. Especially since the browser is doing the rendering, it knows what it needs in order to display the screen.
Git Flow Bump Version Script
I wrote a simple bump version PHP script that does quite a bit of lifting for me.
- It maintains my version number, very basic
- It takes an argument on whether I need my templates updated due to CSS/JS changes.
- If necessary, creates a new assets directory based on version number to fix caching issues
- Pulls latest css/js into that directory
- Updates template to new assets directory
- Adds and commits new template
- Optional second argument overrides the version #
- Starts a new release branch
- Opens my RELEASE notes for editing
- Adds and commits my release notes
- Finishes my release branch
Below is specific to my situation. PATH_TO_TEMPLATE_FILE would need to be changed, as well as the preg_replace lines to suite your needs.
if (!in_array($argv[1], array('y', 'n'))) {
print "Usage: {$argv[0]} (y/n) [version]\n y=update css/js\n n=no update\n";
exit;
}
if ($argv[2] && !preg_match('#v\d\.\d*\.\d*#', $argv[2])) {
print "Invalid version (should be v\d.\d.\d)\nUsage: $0 (y/n) [version]\n y=update css/js\n n=no update\n";
exit;
}
chdir(dirname(__FILE__));
$fileName = '.Version';
$v = file_get_contents($fileName);
$a = explode('.', $v);
$minor = $a[2]+1;
$v = "{$a[0]}.{$a[1]}.$minor";
$fh = fopen($fileName, 'w');
fputs($fh, $v);
fclose($fh);
`git add $fileName`;
`git commit -m "Increased version to $v"`;
echo "Version updated to $v and added to git\n";
if ($argv[1] == 'y') {
$asset = "assets/v{$a[1]}.$minor";
mkdir($asset);
chdir($asset);
`sh ../../update_css_js.sh`;
`git add .`;
`git commit -m "Increased css/js version to v{$a[1]}.$minor"`;
chdir('../../');
$template = file_get_contents('PATH_TO_TEMPLATE_FILE');
$template = preg_replace('#data-style="sI" href=".*?" media#', 'data-style="sI" href="/assets/v'.$a[1].'.'.$minor.'/style.css" media', $template);
$template = preg_replace('#jQuery.getScript\(".*?" \+ pluginPack#', 'jQuery.getScript("/assets/v'.$a[1].'.'.$minor.'/" + pluginPack', $template);
$fh = fopen('PATH_TO_TEMPLATE_FILE', 'w');
fputs($fh, $template);
fclose($fh);
`git add PATH_TO_TEMPLATE_FILE`;
`git commit -m "Increased css/js version to v{$a[1]}.$minor"`;
}
`git flow release start $v`;
$date = date('Y-m-d');
$command = << /tmp/out && mv /tmp/out RELEASE
EOF;
system($command);
system("vim RELEASE > `tty`");
`git add RELEASE`
`git commit -m "Updated RELEASE notes"`
system("git flow release finish $v > `tty`");
Making WAVs play in Chrome for Mac
I was really frustrated that our voicemail was not working in Chrome. All it said was Missing Plug-in.
Through some research, I found that the voicemail system was loading the files via ajax to a PHP script. Because the extension was not .wav, Chrome was confused.
How did I solve?
Well, this is an internal box with very little traffic and I have complete control of it.
I first told Apache to treat all .php.wav files as PHP. In httpd.conf of php.conf you will see
AddHandler php5-script .php
Add this right below it.
AddHandler php5-script .php.wav
Restart Apache.
Then I symlinked the .php file to a .php.wav file. So that they were identical. Then in the file that pulled in this php file, I changed the filename there as well.
Fixed my issue. 🙂
I was receiving this error and did a quick Google search to figure out why. Most posts referred to a missing curly brace “}”.
I went through about 3-4 posts when it hit me. My code was from an older server that allowed the short tag vs the standard
I am proud of my progress with Javascript…
I am proud of my progress with Javascript. I used to consider myself a javascript hacker. I could put other people’s components to work, but wasn’t comfortable writing my own.
I would consider myself much more proficient today. I can write maintainable/reusable Javascript. I have become more capable of writing routines that can be used on multiple widgets easily.
My latest code has been able to work on multiple “widgets” within one page. This was exciting for me, and I ended up staying late at work the other night as I got near completion. I was sooo happy with my accomplishment, but being the only programmer, it can be tough. Nobody really appreciates the successes that I feel are so exciting. It’s not their fault by any means, they just are not into the tech as much as I am.
At the end of the day, I tell my wife. She is the best cheerleader a guy could have. While she doesn’t fully understand, she puts on a smile and tells me how great it is when I do accomplish the small things. She tries so hard to be understanding and just there for me. I am a lucky lucky man.