jump to navigation

Request for Nom-Nom August 13, 2008

Posted by Derek in technology, what "you do here".
Tags: ,

We’re still using shell scripts in a Fortune 200 company. Pure hackery. (This wordpress theme is not wide enough, but you get the idea…)

#  Shell script to make a backup of the previously compressed file if it exists,
#  execute the YUI-Compressor on the specified source file, and clean up the
#  backup directory so that it doesn't grow too large

trap huphandler  HUP
trap ''          QUIT
trap exithandler TERM INT

   print 'Received SIGHUP'

   print 'Received SIGTERM or SIGINT'
   exit 1

if [ $# -ne 3 ]; then
  echo 1>&2 "Usage: yuicompressor <source file-name> <source file-type> <output file-name>"
  echo "e.g. home.src.js js home.cmp.js"
  exit 1

if [ $1 == $3 ]; then
        echo "Error: Source filename and output filename cannot be the same."
        exit 1

#echo "Enter the source filename to compress and the type of file; e.g. newNWA.src.css css:"
if [[ -z $2 ]]; then
        echo "Please enter a file type, usually it's \"js\" or \"css\":"
        read file_type
#echo "Enter the output filename: e.g. newNWA.cmp.css"

if [[ -z $3 ]] ; then
        echo "output_file is null, I cannot compress"
# make a backup copy first
if [ -f $3 ]; then
        echo "Output file already exists, making a backup..."
        NOW=$(date +"%Y%m%d.%H-%M-%S")
        cp $3 /weblogs/backup/yuicompressor/$FILENAME
                chmod 775 /weblogs/backup/yuicompressor/$FILENAME
        echo "Output file backed up, now compressing $source_file..."
        echo "No existing output file found to backup. Starting compression of $source_file..."

#perform the compression
/usr/java14/bin/java -jar /opt/www/scripts/yuicompressor-2.3.6/build/yuicompressor-2.3.6.jar --type $2 $PWD/$1 -o $PW

#cleanup backup directory
echo "Checking to see if backup directory cleanup is needed..."
cd /weblogs/backup/yuicompressor/
files_in_dir=`ls $3.$USER.* | wc -l`
files_to_delete=`expr $files_in_dir - 3`
        if [ $files_to_delete -gt 0 ]; then
          echo "Cleaning up backup directory..."
          ls -t | tail -n $files_to_delete | xargs rm
          if [ $? -ne 0 ]; then
            echo .An error ocurred deleting the files.
            exit 1
            echo "$files_to_delete file(s) deleted."
          echo "No cleaning of backup directory needed."

Request For Comment: NomNom May 15, 2008

Posted by Brent in technology, what "you do here".
Tags: , , , , ,
add a comment

using System;

namespace Silly
/// <summary>
/// Wrapper to facilitate the nom-nom-nom anti-pattern
/// </summary>
/// <typeparam name=”T”></typeparam>
public static class NomNom<T>
public static void Nom<WTF>(Func<WTF> action)
try { action(); }
catch { } // this is the om nom nom nom pattern

public static void Nom<WTF>(Action<WTF> action, WTF input)
try { action(input); }
catch { }

private static void TestSilly()
NomNom<int>.Nom<int>(OMGBOOMZ(), -1);

private static Action<int> OMGBOOMZ()
return x => { –x; List<int> xx = new List<int>(); xx[x]++; };

Ask Everyone: Where’s your Constructor? April 11, 2008

Posted by Brent in computers.
Tags: , ,
1 comment so far

Where do you prefer to put your object’s constructor in relation to the file’s line numbers?

Near the top?  Before or after the member object declarations?


I prefer to keep them near the top, preferably after the private member declarations.  It’s not a hard or fast rule for me, but I dislike it when the constructor(s) is/off mingling with other methods in the middle of the class.