<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: mac code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Fri, 16 May 2008 18:31:41 GMT</pubDate>
    <description>DZone Snippets: mac code</description>
    <item>
      <title>Mac Wifi MAC spoofing</title>
      <link>http://snippets.dzone.com/posts/show/5417</link>
      <description>A certain unnamed national provider of bagels has seen fit to limit free wifi during lunch hours. They do this based on MAC address. I never liked my MAC address anyways.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Update -- My previous code had two considerable bugs when I posted it. Caius Durling (http://caius.name/) made a considerable improvement with his own script. I've deleted my old code and just placed his here.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#!/usr/bin/env ruby&lt;br /&gt;# &lt;br /&gt;# USAGE: Turn off wireless, run this, then turn it back on.&lt;br /&gt;# ./random_mac.rb &lt;nothing&gt; # =&gt;  random mac address&lt;br /&gt;# ./random_mac.rb --reset # =&gt;  original mac address&lt;br /&gt;&lt;br /&gt;# Set this to your Original MAC Address&lt;br /&gt;original_mac = ""&lt;br /&gt;&lt;br /&gt;# Just a little warning&lt;br /&gt;puts "Warning: You haven't set your original Mac Address in the script yet." if original_mac.empty?&lt;br /&gt;&lt;br /&gt;# Generates a 2 digit code&lt;br /&gt;def generate_pair&lt;br /&gt;  a = rand(255).to_s(16)&lt;br /&gt;  return (a.length &lt; 2 ? generate_pair : a)&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;# Sets the mac address to the passed value&lt;br /&gt;def set_mac_address( mac_addr )&lt;br /&gt;  raise "MacAddressFormatError" if mac_addr.scan(/^(?:[\w\d]{2}\:){5}[\w\d]{2}$/).empty?&lt;br /&gt;  puts "Old MAC address: #{`ifconfig en1 | grep ether`.match(/ether\s(.+)/)[1]}"&lt;br /&gt;  `sudo ifconfig en1 ether #{mac_addr}`&lt;br /&gt;  puts "New MAC address: #{`ifconfig en1 | grep ether`.match(/ether\s(.+)/)[1]}"&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;case ARGV.first&lt;br /&gt;when "--reset"&lt;br /&gt;  # Try to reset to old mac address&lt;br /&gt;  if original_mac.empty?&lt;br /&gt;    puts "ERROR - You need to set the old mac address in the script"&lt;br /&gt;    exit(1)&lt;br /&gt;  end&lt;br /&gt;  puts "Resetting to old mac address"&lt;br /&gt;  set_mac_address( original_mac )&lt;br /&gt;  &lt;br /&gt;when nil&lt;br /&gt;  # Generate &amp; set a random mac address&lt;br /&gt;  random_mac = (0..5).map { |x| generate_pair }.join(":")&lt;br /&gt;  set_mac_address( random_mac )&lt;br /&gt;  &lt;br /&gt;when "--help"&lt;br /&gt;  # Show some help I guess&lt;br /&gt;  puts [&lt;br /&gt;    "USAGE: Turn off wireless, run this, then turn it back on.",&lt;br /&gt;    "./random_mac.rb &lt;nothing&gt; # =&gt;  random mac address",&lt;br /&gt;    "./random_mac.rb --reset # =&gt;  original mac address"&lt;br /&gt;    ].join("\n")&lt;br /&gt;  &lt;br /&gt;else&lt;br /&gt;  # Who knows?&lt;br /&gt;  puts "Unknown Flag, try --help"&lt;br /&gt;  exit(2)&lt;br /&gt;end&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Mon, 21 Apr 2008 18:03:44 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/5417</guid>
      <author>markpercival (Mark Percival)</author>
    </item>
    <item>
      <title>Kill the cornball dock in Leopard</title>
      <link>http://snippets.dzone.com/posts/show/4714</link>
      <description>&lt;code&gt;&lt;br /&gt;defaults write com.apple.dock no-glass -boolean YES&lt;br /&gt;killall Dock&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Mon, 29 Oct 2007 23:54:46 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4714</guid>
      <author>sikelianos (Zeke Sikelianos)</author>
    </item>
    <item>
      <title>Mac Menu effect js</title>
      <link>http://snippets.dzone.com/posts/show/4570</link>
      <description>Here the html code&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;html&gt;&lt;br /&gt;&lt;head&gt;&lt;br /&gt;&lt;title&gt;JS&lt;/title&gt;&lt;br /&gt;&lt;script src="js/prototype.js" type="text/javascript"&gt;&lt;/script&gt;&lt;br /&gt;&lt;script src="fisheye_new_2.js" type="text/javascript"&gt;&lt;/script&gt;&lt;br /&gt;&lt;style&gt;&lt;br /&gt;#menuBar{ width: 100%; text-align: center; position: relative; }&lt;br /&gt;#menuitems { text-align: center; margin-left: auto; margin-right: auto; width: 200px; }&lt;br /&gt;.menuitem { vertical-align: top; display: inline; background-color: #f00; }&lt;br /&gt;.menuitem img { vertical-align: top; width: 20px; height: 20px; border: 0px; }&lt;br /&gt;#logDiv { font-size: 10px; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;&lt;body&gt;&lt;br /&gt;	&lt;div id="menubar"&gt;&lt;br /&gt;		&lt;div id="menuitems"&gt;&lt;br /&gt;			&lt;div class="menuitem"&gt;&lt;img onclick="alert(this.id);" src="test2.jpg" id="img1"&gt;&lt;/div&gt;&lt;br /&gt;			&lt;div class="menuitem"&gt;&lt;img onclick="alert(this.id);" src="test2.jpg" id="img2"&gt;&lt;/div&gt;&lt;br /&gt;			&lt;div class="menuitem"&gt;&lt;img onclick="alert(this.id);" src="test2.jpg" id="img3"&gt;&lt;/div&gt;&lt;br /&gt;			&lt;div class="menuitem"&gt;&lt;img onclick="alert(this.id);" src="test2.jpg" id="img4"&gt;&lt;/div&gt;&lt;br /&gt;			&lt;div class="menuitem"&gt;&lt;img onclick="alert(this.id);" src="test2.jpg" id="img5"&gt;&lt;/div&gt;&lt;br /&gt;			&lt;div class="menuitem"&gt;&lt;img onclick="alert(this.id);" src="test2.jpg" id="img6"&gt;&lt;/div&gt;&lt;br /&gt;		&lt;/div&gt;&lt;br /&gt;	&lt;/div&gt;&lt;br /&gt;	&lt;div id="position"&gt;&lt;/div&gt;&lt;br /&gt;	&lt;div id="logDiv"&gt;&lt;/div&gt;&lt;br /&gt;&lt;/body&gt;&lt;br /&gt;&lt;/html&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;and the javascript, require prototypejs&lt;br /&gt;&lt;code&gt;&lt;br /&gt;var maxDist = 0;&lt;br /&gt;&lt;br /&gt;function mousemove(e) {&lt;br /&gt;	var eX = Position.page($('menuitems'))[0];&lt;br /&gt;	var eY = Position.page($('menuitems'))[1];&lt;br /&gt;	var eWidth = parseInt($('menuitems').getStyle('width'));&lt;br /&gt;	var pX = Event.pointerX(e);&lt;br /&gt;	var pY = Event.pointerY(e);&lt;br /&gt;	var imgs = $('menuitems').immediateDescendants();&lt;br /&gt;	for (var i = 0; i &lt; imgs.length; i++) {&lt;br /&gt;		var distFromMouse = calcDistFromMouse(pX, pY, imgs[i].firstDescendant());&lt;br /&gt;		if (distFromMouse &lt; 45) {&lt;br /&gt;			var newSize = parseInt(distFromMouse * (-0.4) + 50);&lt;br /&gt;			imgs[i].firstDescendant().setStyle({ width: newSize, height: newSize});&lt;br /&gt;		} else {&lt;br /&gt;			imgs[i].firstDescendant().setStyle({ width: 20, height: 20});&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function resetScaling () {&lt;br /&gt;	var imgs = $('menuitems').immediateDescendants();&lt;br /&gt;	for (var i = 0; i &lt; imgs.length; i++) {&lt;br /&gt;		var newSize = 20;&lt;br /&gt;		imgs[i].setStyle({ width: newSize, height: newSize});&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function calcDistFromMouse(mX, mY, elem) {&lt;br /&gt;	var elemCenterX = parseInt(Position.page(elem)[0]) + (parseInt(elem.getStyle('width')) / 2);&lt;br /&gt;	var elemCenterY = parseInt(Position.page(elem)[1]) + (parseInt(elem.getStyle('height')) / 2);&lt;br /&gt;	var distance = parseInt(Math.sqrt((elemCenterX - mX) * (elemCenterX - mX) + (elemCenterY - mY) * (elemCenterY - mY)));&lt;br /&gt;	return distance;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function checkMousePos(pX, pY, eX, eY, eWidth ){&lt;br /&gt;	if (pY - eY &gt; 200)&lt;br /&gt;		return false;&lt;br /&gt;	if (pX &gt; eX) {&lt;br /&gt;		if (pX - (eX + eWidth) &gt; 200)&lt;br /&gt;			return false;&lt;br /&gt;	} else {&lt;br /&gt;		if (eX - pX &gt; 200)&lt;br /&gt;			return false;&lt;br /&gt;	}&lt;br /&gt;	return true;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Event.observe(window,'load', function() {&lt;br /&gt;  Event.observe(document,'mousemove',mousemove, false);&lt;br /&gt;});&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Tue, 25 Sep 2007 10:48:19 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4570</guid>
      <author>Gne (Paolo)</author>
    </item>
    <item>
      <title>restart appache</title>
      <link>http://snippets.dzone.com/posts/show/3999</link>
      <description>// description of your code here&lt;br /&gt;&lt;br /&gt;&lt;code&gt;sudo apachectl restart&lt;br /&gt;..&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Sat, 12 May 2007 19:35:56 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3999</guid>
      <author>counter202 (jensen)</author>
    </item>
    <item>
      <title>Building curb under Mac OS X</title>
      <link>http://snippets.dzone.com/posts/show/3250</link>
      <description>Had a bit of a problem getting curb to work in OS X, but if you have the curl port installed, its easy:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;sudo port install curl&lt;br /&gt;cd src&lt;br /&gt;curl -O http://rubyforge.iasi.roedu.net/files/curb/curb-0.1.0.tar.gz&lt;br /&gt;tar -zxvf curb-0.1.0.tar.gz&lt;br /&gt;cd curb-0.1.0.tar.gz&lt;br /&gt;ruby extconf.rb --with-curl-lib=/opt/local/lib/ --with-curl-include=/opt/local/include/&lt;br /&gt;ruby tests/alltests.rb&lt;br /&gt;sudo make install&lt;/pre&gt;&lt;br /&gt;</description>
      <pubDate>Sat, 06 Jan 2007 00:44:55 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3250</guid>
      <author>willcodeforfoo ()</author>
    </item>
    <item>
      <title>Configure command key as alt-gr key in a Apple Powerbook with Ubuntu GNU/Linux</title>
      <link>http://snippets.dzone.com/posts/show/3071</link>
      <description>Set this Option in "InputDevice" section at your /etc/X11/xorg.conf&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Option          "XkbOptions"    "lv3:lwin_switch"&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Sun, 03 Dec 2006 16:20:55 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3071</guid>
      <author>dirtyaffairs (Dirty Affairs)</author>
    </item>
    <item>
      <title>Ruby HMAC verifier</title>
      <link>http://snippets.dzone.com/posts/show/2971</link>
      <description>// Ruby script to verify the HMAC of a file or string.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#!/usr/bin/env ruby&lt;br /&gt;#&lt;br /&gt;#  Created by Jon (exabrial+hmacruby@gmail.com) on 2006-11-04.&lt;br /&gt;#  Copyright (c) 2006. All rights reserved.&lt;br /&gt;#  Released under MIT License&lt;br /&gt;&lt;br /&gt;require 'openssl'&lt;br /&gt;require "getopt/std"&lt;br /&gt;include OpenSSL&lt;br /&gt;include Digest&lt;br /&gt;&lt;br /&gt;def printhelp&lt;br /&gt;  help=&lt;&lt;end&lt;br /&gt;Purpose: Provides HMAC-SHA1 of a file or string. Text passwords are SHA1 hashed.&lt;br /&gt;Usage: hmac.rb ["string to digest"] [-f (pathtofile)] [-k (pathtokeyfile)]&lt;br /&gt;Options:&lt;br /&gt;  -f (pathtofile) digests a file instead of a string&lt;br /&gt;  -k (pathtokeyfile) does not prompt for key and uses the specified file as a key instead.&lt;br /&gt;end&lt;br /&gt;  puts help&lt;br /&gt;  exit&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;if ARGV.size &lt; 1&lt;br /&gt;  printhelp&lt;br /&gt;elsif ARGV.size==1&lt;br /&gt;  @plaintext=ARGV.shift&lt;br /&gt;else&lt;br /&gt;  begin&lt;br /&gt;    opt = Getopt::Std.getopts("f:k:")&lt;br /&gt;  rescue Getopt::StdError&lt;br /&gt;    printhelp&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;  if opt["f"]&lt;br /&gt;    @plaintext=File.read(opt["f"])&lt;br /&gt;  end&lt;br /&gt;  if opt["k"]&lt;br /&gt;    @key=File.read(opt["k"])&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;  printhelp if (!@plaintext&amp;&amp;!@key)&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;def getkey&lt;br /&gt;  return @key if @key&lt;br /&gt;  print "Please type your key then push enter:"&lt;br /&gt;  return SHA1.new(gets()).to_s&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;def main&lt;br /&gt;  hmacd=HMAC.new(getkey(), SHA1.new)&lt;br /&gt;  hmacd.update(@plaintext)&lt;br /&gt;  puts hmacd.to_s&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;main&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Sun, 05 Nov 2006 01:54:20 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/2971</guid>
      <author>exabrial (Jon)</author>
    </item>
    <item>
      <title>Use Launchd to run Rsnapshot daily</title>
      <link>http://snippets.dzone.com/posts/show/1918</link>
      <description>// run rsnapshot daily at 3am&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;br /&gt;&lt;!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"&gt;&lt;br /&gt;&lt;plist version="1.0"&gt;&lt;br /&gt;&lt;dict&gt;&lt;br /&gt;        &lt;key&gt;Label&lt;/key&gt;&lt;br /&gt;        &lt;string&gt;local.my-mac.rsnapshot-daily&lt;/string&gt;&lt;br /&gt;        &lt;key&gt;ProgramArguments&lt;/key&gt;&lt;br /&gt;        &lt;array&gt;&lt;br /&gt;                &lt;string&gt;/opt/local/bin/rsnapshot&lt;/string&gt;&lt;br /&gt;                &lt;string&gt;daily&lt;/string&gt;&lt;br /&gt;        &lt;/array&gt;&lt;br /&gt;        &lt;key&gt;StartCalendarInterval&lt;/key&gt;&lt;br /&gt;        &lt;dict&gt;&lt;br /&gt;                &lt;key&gt;Hour&lt;/key&gt;&lt;br /&gt;                &lt;integer&gt;3&lt;/integer&gt;&lt;br /&gt;        &lt;/dict&gt;&lt;br /&gt;&lt;/dict&gt;&lt;br /&gt;&lt;/plist&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Sat, 15 Apr 2006 20:42:57 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/1918</guid>
      <author>SimonDorfman (Simon Dorfman)</author>
    </item>
    <item>
      <title>Restart apache on Mac OS X</title>
      <link>http://snippets.dzone.com/posts/show/1878</link>
      <description>&lt;code&gt;&lt;br /&gt;sudo apachectl restart&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Mon, 10 Apr 2006 17:36:32 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/1878</guid>
      <author>jnunemaker ()</author>
    </item>
    <item>
      <title>Change iChat status from terminal.app</title>
      <link>http://snippets.dzone.com/posts/show/1877</link>
      <description>&lt;code&gt;&lt;br /&gt;osascript ichatloc.scpt "This is a test"&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Mon, 10 Apr 2006 17:27:30 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/1877</guid>
      <author>jnunemaker ()</author>
    </item>
  </channel>
</rss>
