Never been to CodeSnippets before?

Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world (or not, you can keep them private!)

About this user

Michael Baumgarten http://www.minofare.com

MySQL add user

mysql> GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost'
    ->     IDENTIFIED BY 'some_pass' WITH GRANT OPTION;

MySQL 4 macports setup

If this is a new install
If you did not choose the server variant you may add a mysql user and you will need to change the ownership to that user:
sudo chown mysql /opt/local/var/db/mysql
sudo chown mysql /opt/local/var/run/mysqld
sudo chown mysql /opt/local/var/log/mysql


You might want to run
sudo -u mysql mysql_install_db


You have to symlink mysql to the location on osx

first find out where mysql has put the socket:
mysql_config --socket

Next symlink /tmp/mysql.sock to the right location of the socket
sudo ln -s path-of-mysql.sock-from-above /tmp/mysql.sock


Start MySQL
sudo /opt/local/share/mysql/mysql.server start


Stop MySQL
sudo /opt/local/share/mysql/mysql.server stop

Macports MySQL 5 startup on launch

A startup item has been generated that will aid in starting mysql5 with launchd. It is disabled by default. Execute the following command to start it, and to cause it to launch at startup:
sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist


Common macports commands

Installs a package
port install package

uninstalls a package
port uninstall package

shows all ports currently installed
port installed

shows all ports not currently installed, you may want to pipe the output of this command to grep to limit the output
port uninstalled

search for a port whose name matches the regex
port search regex

shows meta information on a package
port info package

shows the latest version of all available ports
port list

Restart Rails on Dreamhost

script/process/reaper --dispatcher=dispatch.fcg

Freezing Rails

rake rails:freeze:edge TAG=rel_1-2-6

Starting and stopping MySQL on leopard.

#starting SQL:
sudo /usr/local/mysql/support-files/mysql.server start

Stoping SQL:
sudo /usr/local/mysql/support-files/mysql.server stop

Check DNS lookup in Tiger

lookupd -configuration

Look for the following in the output:
LookupOrder: Cache FF DNS NI DS
_config_name: Host Configuration


The FF (flat file) refers to your hosts file (/etc/hosts), and Tiger does check its contents before going to DNS and Netinfo. Just a little FYI for those who may not have realized that 10.4 fixed things.


Calculate the number of working days between two dates

Function
   # wdays is an array with the days of the week
   # to exclude days (eg: wdays = [0,6] for sunday and saturday )

   def calculate_working_days(d1,d2,wdays)
        diff = d2 - d1
        holidays = 0
        ret = (d2-d1).divmod(7)
        holidays =  ret[0].truncate * wdays.length
        d1 = d2 - ret[1]
        while(d1 <= d2)
                if wdays.include?(d1.wday)
                        holidays += 1
                end
                d1 += 1
        end
        diff - holidays
   end


Iterates over date range.
d1 = Date.new( 2006, 12, 1 ) 

d2 = Date.new( 2007, 1, 15 )

weekdays = (d1..d2).reject { |d| [0,6].include? d.wday } 

weekdays.length