<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: conversion code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Fri, 16 May 2008 23:08:46 GMT</pubDate>
    <description>DZone Snippets: conversion code</description>
    <item>
      <title>QIF to CSV conversion script in Ruby</title>
      <link>http://snippets.dzone.com/posts/show/5409</link>
      <description>// Converts QIF files to CSV files&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#!/usr/bin/env ruby&lt;br /&gt;&lt;br /&gt;require 'rubygems'&lt;br /&gt;require 'fileutils'&lt;br /&gt;&lt;br /&gt;if ARGV.size &lt; 1&lt;br /&gt;        puts "Usage: #{$0} file.qif"&lt;br /&gt;        exit&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;input = File.new(ARGV[0])&lt;br /&gt;output = [File.basename(ARGV[0]).split('.')[0..-2], 'csv'].join('.')&lt;br /&gt;output = File.new(output, 'w+')&lt;br /&gt;output.write("date,amount,description,transaction id, address\n")&lt;br /&gt;&lt;br /&gt;entries = input.read.split("^\n")&lt;br /&gt;entries.compact&lt;br /&gt;for entry in entries&lt;br /&gt;        e = entry.match(/D(.*)\nT-?(.*)\nP(.*)\nN(.*)\nA(.*)\n/).to_a[1..-1]&lt;br /&gt;        e[1] = e[1].to_f rescue nil&lt;br /&gt;        e[-1] = "\"#{e[-1]}\""&lt;br /&gt;        output.write("#{e.join(',')}\n")&lt;br /&gt;end&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Sun, 20 Apr 2008 21:34:03 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/5409</guid>
      <author>shawnpyle (Shawn Pyle)</author>
    </item>
    <item>
      <title>Convert an integer to IP string</title>
      <link>http://snippets.dzone.com/posts/show/5323</link>
      <description>Convert an integer to IP. I don't think you can do this with IPAddr, but I could be wrong&lt;br /&gt;&lt;br /&gt;Edit, the original didn't work for low ranges.&lt;br /&gt;&lt;br /&gt;And I was wrong about the IPAddr thing. I should have google'd better.&lt;br /&gt;&lt;br /&gt;IPAddr.new(16909060, Socket::AF_INET).to_s&lt;br /&gt;</description>
      <pubDate>Fri, 04 Apr 2008 21:30:36 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/5323</guid>
      <author>markpercival (Mark Percival)</author>
    </item>
    <item>
      <title>UTF-8 Converter //JavaScript Object</title>
      <link>http://snippets.dzone.com/posts/show/5294</link>
      <description>&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jsfromhell.com/geral/utf-8"&gt;&lt;br /&gt;Converts a sequence of ANSI characters to UTF-8 and vice-versa.&lt;br /&gt;&lt;br /&gt;[UPDATED CODE AND HELP CAN BE FOUND HERE]&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;//+ Jonas Raoni Soares Silva&lt;br /&gt;//@ http://jsfromhell.com/geral/utf-8 [v1.0]&lt;br /&gt;&lt;br /&gt;UTF8 = {&lt;br /&gt;	encode: function(s){&lt;br /&gt;		for(var c, i = -1, l = (s = s.split("")).length, o = String.fromCharCode; ++i &lt; l;&lt;br /&gt;			s[i] = (c = s[i].charCodeAt(0)) &gt;= 127 ? o(0xc0 | (c &gt;&gt;&gt; 6)) + o(0x80 | (c &amp; 0x3f)) : s[i]&lt;br /&gt;		);&lt;br /&gt;		return s.join("");&lt;br /&gt;	},&lt;br /&gt;	decode: function(s){&lt;br /&gt;		for(var a, b, i = -1, l = (s = s.split("")).length, o = String.fromCharCode, c = "charCodeAt"; ++i &lt; l;&lt;br /&gt;			((a = s[i][c](0)) &amp; 0x80) &amp;&amp;&lt;br /&gt;			(s[i] = (a &amp; 0xfc) == 0xc0 &amp;&amp; ((b = s[i + 1][c](0)) &amp; 0xc0) == 0x80 ?&lt;br /&gt;			o(((a &amp; 0x03) &lt;&lt; 6) + (b &amp; 0x3f)) : o(128), s[++i] = "")&lt;br /&gt;		);&lt;br /&gt;		return s.join("");&lt;br /&gt;	}&lt;br /&gt;};&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Example&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;var s = "a&#225;&#233;&#237;&#243;&#250;e";&lt;br /&gt;document.write(&lt;br /&gt;	('UTF8.encode("' + s + '") = ').bold(), UTF8.encode(s), "&lt;br /&gt;",&lt;br /&gt;	('UTF8.decode(UTF8.encode("' + s + '"))) = ').bold(), UTF8.decode(UTF8.encode(s))&lt;br /&gt;);&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Sun, 30 Mar 2008 16:52:18 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/5294</guid>
      <author>jonasraoni (Jonas Raoni Soares Silva)</author>
    </item>
    <item>
      <title>Convert Java date to GMT</title>
      <link>http://snippets.dzone.com/posts/show/5288</link>
      <description>This function converts a local date to GMT.  This version corrects the bug common to this type of conversion where the date is incorrectly converted when the time is close to the DST crossover.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;private static Date cvtToGmt( Date date )&lt;br /&gt;{&lt;br /&gt;   TimeZone tz = TimeZone.getDefault();&lt;br /&gt;   Date ret = new Date( date.getTime() - tz.getRawOffset() );&lt;br /&gt;&lt;br /&gt;   // if we are now in DST, back off by the delta.  Note that we are checking the GMT date, this is the KEY.&lt;br /&gt;   if ( tz.inDaylightTime( ret ))&lt;br /&gt;   {&lt;br /&gt;      Date dstDate = new Date( ret.getTime() - tz.getDSTSavings() );&lt;br /&gt;&lt;br /&gt;      // check to make sure we have not crossed back into standard time&lt;br /&gt;      // this happens when we are on the cusp of DST (7pm the day before the change for PDT)&lt;br /&gt;      if ( tz.inDaylightTime( dstDate ))&lt;br /&gt;      {&lt;br /&gt;         ret = dstDate;&lt;br /&gt;      }&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   return ret;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 28 Mar 2008 20:56:15 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/5288</guid>
      <author>frost137 (Douglas Wyatt)</author>
    </item>
    <item>
      <title>Custom base conversion (to and from)</title>
      <link>http://snippets.dzone.com/posts/show/4594</link>
      <description>Handy to store large numbers in a shorter notation. Doesn't work with negative numbers (for negative numbers you need to store an additional byte to indicate a positive or negative value, pass the absolute value).&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;	private static final short BASE_40_RADIX = 40;&lt;br /&gt;	private static final short BASE_40_BASE = 48;&lt;br /&gt;	private static final String BASE_40_ZERO = "0";&lt;br /&gt;&lt;br /&gt;	public static long fromBase40(char[] cs) {&lt;br /&gt;		return fromBase(cs, BASE_40_BASE, BASE_40_RADIX);&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public static char[] toBase40(final long i) {&lt;br /&gt;		return toBase(i, BASE_40_BASE, BASE_40_RADIX, BASE_40_ZERO);&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	private static final short BASE_75_RADIX = 75;&lt;br /&gt;	private static final short BASE_75_BASE = 48;&lt;br /&gt;	private static final String BASE_75_ZERO = "0";&lt;br /&gt;&lt;br /&gt;	public static long fromBase75(char[] cs) {&lt;br /&gt;		return fromBase(cs, BASE_75_BASE, BASE_75_RADIX);&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public static char[] toBase75(final long i) {&lt;br /&gt;		return toBase(i, BASE_75_BASE, BASE_75_RADIX, BASE_75_ZERO);&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	private static final short BASE_90_RADIX = 90;&lt;br /&gt;	private static final short BASE_90_BASE = 33;&lt;br /&gt;	private static final String BASE_90_ZERO = "!";&lt;br /&gt;&lt;br /&gt;	public static long fromBase90(char[] cs) {&lt;br /&gt;		return fromBase(cs, BASE_90_BASE, BASE_90_RADIX);&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public static char[] toBase90(final long i) {&lt;br /&gt;		return toBase(i, BASE_90_BASE, BASE_90_RADIX, BASE_90_ZERO);&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	private static char[] toBase(final long i, final short base, final short radix, String nullCharacter) {&lt;br /&gt;		long value = i;&lt;br /&gt;&lt;br /&gt;		if (value == 0) {&lt;br /&gt;			return nullCharacter.toCharArray();&lt;br /&gt;		}&lt;br /&gt;&lt;br /&gt;		String result = "";&lt;br /&gt;		while (value &gt; 0) {&lt;br /&gt;			long mod = value % radix;&lt;br /&gt;			value -= mod;&lt;br /&gt;			if (value &gt; 0) value /= radix;&lt;br /&gt;			result = (char)(mod + base) + result;&lt;br /&gt;		}&lt;br /&gt;&lt;br /&gt;		return result.toCharArray();&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	private static long fromBase(char[] cs, final short base, final short radix) {&lt;br /&gt;		long value = 0;&lt;br /&gt;		for (int i = cs.length - 1; i &gt;= 0; i--) {&lt;br /&gt;			int digit = ((int)cs[i]) - base;&lt;br /&gt;			if (digit &lt; 0 || digit &gt;= radix) {&lt;br /&gt;				throw new IllegalArgumentException("Invalid Base" + radix + " character: " + cs[i]);&lt;br /&gt;			}&lt;br /&gt;			long digitBase = (long)Math.pow(radix, (cs.length - 1) - i);&lt;br /&gt;			value = (digit * digitBase) + value;&lt;br /&gt;		}&lt;br /&gt;&lt;br /&gt;		return value;&lt;br /&gt;	}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;And here are some tests:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;	public void testFromBase40() {&lt;br /&gt;		assertEquals(2559999, NumberUtils.fromBase40("WWWW".toCharArray()));&lt;br /&gt;		assertEquals(1117580, NumberUtils.fromBase40("ABCD".toCharArray()));&lt;br /&gt;&lt;br /&gt;		assertEquals(0, NumberUtils.fromBase40("0".toCharArray()));&lt;br /&gt;		assertEquals(1, NumberUtils.fromBase40("1".toCharArray()));&lt;br /&gt;&lt;br /&gt;		assertEquals(40, NumberUtils.fromBase40("10".toCharArray()));&lt;br /&gt;		assertEquals(80, NumberUtils.fromBase40("20".toCharArray()));&lt;br /&gt;&lt;br /&gt;		assertEquals(41, NumberUtils.fromBase40("11".toCharArray()));&lt;br /&gt;		assertEquals(81, NumberUtils.fromBase40("21".toCharArray()));&lt;br /&gt;&lt;br /&gt;		assertEquals(81, NumberUtils.fromBase40("0021".toCharArray()));&lt;br /&gt;&lt;br /&gt;		assertEquals(3061560805L, NumberUtils.fromBase40("MSTSD5".toCharArray()));&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void testToBase40() {&lt;br /&gt;		assertEquals("0", new String(NumberUtils.toBase40(0)));&lt;br /&gt;		assertEquals("1", new String(NumberUtils.toBase40(1)));&lt;br /&gt;&lt;br /&gt;		assertEquals("10", new String(NumberUtils.toBase40(40)));&lt;br /&gt;		assertEquals("20", new String(NumberUtils.toBase40(80)));&lt;br /&gt;&lt;br /&gt;		assertEquals("11", new String(NumberUtils.toBase40(41)));&lt;br /&gt;		assertEquals("21", new String(NumberUtils.toBase40(81)));&lt;br /&gt;&lt;br /&gt;		assertEquals("ABCD", new String(NumberUtils.toBase40(1117580)));&lt;br /&gt;		assertEquals("WWWW", new String(NumberUtils.toBase40(2559999)));&lt;br /&gt;&lt;br /&gt;		assertEquals("MSTSD5", new String(NumberUtils.toBase40(3061560805L)));&lt;br /&gt;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void testToBase90() throws Exception {&lt;br /&gt;		assertEquals("#Q&amp;Y.`QY#", new String(NumberUtils.toBase90(10908158098650842L)));&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void testFromBase90() throws Exception {&lt;br /&gt;		assertEquals(10908158098650842L, NumberUtils.fromBase90("#Q&amp;Y.`QY#".toCharArray()));&lt;br /&gt;	}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;</description>
      <pubDate>Sun, 30 Sep 2007 23:44:48 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4594</guid>
      <author>devijvers (Steven Devijver)</author>
    </item>
    <item>
      <title>Convert an integer to English written form</title>
      <link>http://snippets.dzone.com/posts/show/3685</link>
      <description>// Convert an integer to English written form&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;public class IntToEnglish {&lt;br /&gt;    static String[] to_19 = { "zero",  "one",   "two",  "three", "four",   "five",   "six",&lt;br /&gt;        "seven", "eight", "nine", "ten",   "eleven", "twelve", "thirteen",&lt;br /&gt;        "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" };&lt;br /&gt;    static String[] tens  = { "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"};&lt;br /&gt;    static String[] denom = { "",&lt;br /&gt;        "thousand",     "million",         "billion",       "trillion",       "quadrillion",&lt;br /&gt;        "quintillion",  "sextillion",      "septillion",    "octillion",      "nonillion",&lt;br /&gt;        "decillion",    "undecillion",     "duodecillion",  "tredecillion",   "quattuordecillion",&lt;br /&gt;        "sexdecillion", "septendecillion", "octodecillion", "novemdecillion", "vigintillion" };&lt;br /&gt;&lt;br /&gt;    public static void main(String[] argv) throws Exception {&lt;br /&gt;        int tstValue = Integer.parseInt(argv[0]);&lt;br /&gt;        IntToEnglish itoe = new IntToEnglish();&lt;br /&gt;        System.out.println(itoe.english_number(tstValue));&lt;br /&gt;        /* for (int i = 0; i &lt; 2147483647; i++) {&lt;br /&gt;            System.out.println(itoe.english_number(i));&lt;br /&gt;        } */&lt;br /&gt;    }&lt;br /&gt;    // convert a value &lt; 100 to English.&lt;br /&gt;    private String convert_nn(int val) throws Exception {&lt;br /&gt;        if (val &lt; 20)&lt;br /&gt;            return to_19[val];&lt;br /&gt;        for (int v = 0; v &lt; tens.length; v++) {&lt;br /&gt;            String dcap = tens[v];&lt;br /&gt;            int dval = 20 + 10 * v;&lt;br /&gt;            if (dval + 10 &gt; val) {&lt;br /&gt;                if ((val % 10) != 0)&lt;br /&gt;                    return dcap + "-" + to_19[val % 10];&lt;br /&gt;                return dcap;&lt;br /&gt;            }        &lt;br /&gt;        }&lt;br /&gt;        throw new Exception("Should never get here, less than 100 failure");&lt;br /&gt;    }&lt;br /&gt;    // convert a value &lt; 1000 to english, special cased because it is the level that kicks &lt;br /&gt;    // off the &lt; 100 special case.  The rest are more general.  This also allows you to&lt;br /&gt;    // get strings in the form of "forty-five hundred" if called directly.&lt;br /&gt;    private String convert_nnn(int val) throws Exception {&lt;br /&gt;        String word = "";&lt;br /&gt;        int rem = val / 100;&lt;br /&gt;        int mod = val % 100;&lt;br /&gt;        if (rem &gt; 0) {&lt;br /&gt;            word = to_19[rem] + " hundred";&lt;br /&gt;            if (mod &gt; 0) {&lt;br /&gt;                word = word + " ";&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        if (mod &gt; 0) {&lt;br /&gt;            word = word + convert_nn(mod);&lt;br /&gt;        }&lt;br /&gt;        return word;&lt;br /&gt;    }&lt;br /&gt;    public String english_number(int val) throws Exception {&lt;br /&gt;        if (val &lt; 100) {&lt;br /&gt;            return convert_nn(val);&lt;br /&gt;        }&lt;br /&gt;        if (val &lt; 1000) {&lt;br /&gt;            return convert_nnn(val);&lt;br /&gt;        }&lt;br /&gt;        for (int v = 0; v &lt; denom.length; v++) {&lt;br /&gt;            int didx = v - 1;&lt;br /&gt;            int dval = new Double(Math.pow(1000, v)).intValue();&lt;br /&gt;            if (dval &gt; val) {&lt;br /&gt;                int mod = new Double(Math.pow(1000, didx)).intValue();&lt;br /&gt;                int l = val / mod;&lt;br /&gt;                int r = val - (l * mod);&lt;br /&gt;                String ret = convert_nnn(l) + " " + denom[didx];&lt;br /&gt;                if (r &gt; 0) {&lt;br /&gt;                    ret = ret + ", " + english_number(r);&lt;br /&gt;                }&lt;br /&gt;                return ret;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        throw new Exception("Should never get here, bottomed out in english_number");&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Sat, 17 Mar 2007 20:56:08 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3685</guid>
      <author>wixellbickford (Wixell Bickford)</author>
    </item>
    <item>
      <title>html table to wiki converter</title>
      <link>http://snippets.dzone.com/posts/show/3371</link>
      <description>&lt;code&gt;&lt;br /&gt;import HTMLParser, re, sys&lt;br /&gt;class html2wiki(HTMLParser.HTMLParser):&lt;br /&gt;	def __init__(self):&lt;br /&gt;		HTMLParser.HTMLParser.__init__(self)&lt;br /&gt;		self.wiki = ''	  # The Wiki text&lt;br /&gt;		self.wikirow = ''   # The current Wiki row of table being constructed from HTML&lt;br /&gt;		self.inTD = 0	  # Used to track if we are inside or outside a &lt;TD&gt;...&lt;/TD&gt; tag.&lt;br /&gt;		self.inTR = 0	  # Used to track if we are inside or outside a &lt;TR&gt;...&lt;/TR&gt; tag.&lt;br /&gt;		self.re_multiplespaces = re.compile('\s+')  # regular expression used to remove spaces in excess&lt;br /&gt;		self.rowCount = 0  # output row counter.&lt;br /&gt;		self.rowspan = ''&lt;br /&gt;		self.colspan = ''&lt;br /&gt;		self.linebreak = '&lt;br&gt;'&lt;br /&gt;		self.data = ''&lt;br /&gt;		self.prop = ''&lt;br /&gt;		&lt;br /&gt;	def handle_starttag(self, tag, attrs):&lt;br /&gt;		if tag == 'table': self.start_table()&lt;br /&gt;		elif   tag == 'tr': self.start_tr()&lt;br /&gt;		elif tag == 'td': self.start_td(attrs)&lt;br /&gt;		&lt;br /&gt;	def handle_endtag(self, tag):&lt;br /&gt;		if tag == 'table': self.end_table();&lt;br /&gt;		elif   tag == 'tr': self.end_tr()&lt;br /&gt;		elif tag == 'td': self.end_td()&lt;br /&gt;		&lt;br /&gt;	def start_table(self):&lt;br /&gt;		self.wiki += '{| border=1' + self.linebreak&lt;br /&gt;		self.wiki += '|-' + self.linebreak&lt;br /&gt;		&lt;br /&gt;	def end_table(self):&lt;br /&gt;		self.wiki += '|}' + self.linebreak&lt;br /&gt;	&lt;br /&gt;	def start_tr(self):&lt;br /&gt;		if self.inTR: self.end_tr()  # &lt;TR&gt; implies &lt;/TR&gt;&lt;br /&gt;		self.inTR = 1&lt;br /&gt;		&lt;br /&gt;	def end_tr(self):&lt;br /&gt;		if self.inTD: self.end_td()  # &lt;/TR&gt; implies &lt;/TD&gt;&lt;br /&gt;		self.inTR = 0			&lt;br /&gt;		if len(self.wikirow) &gt; 0:&lt;br /&gt;			self.wiki += self.wikirow&lt;br /&gt;			self.wiki += '|-' + self.linebreak&lt;br /&gt;			self.wikirow = ''&lt;br /&gt;		self.rowCount += 1&lt;br /&gt;&lt;br /&gt;	def start_td(self, attrs):&lt;br /&gt;		if not self.inTR: self.start_tr() # &lt;TD&gt; implies &lt;TR&gt;&lt;br /&gt;		self.data = ''&lt;br /&gt;		self.prop = ''&lt;br /&gt;		self.rowspan = ''&lt;br /&gt;		self.colspan = ''&lt;br /&gt;		for key, value in attrs:&lt;br /&gt;			if key == 'rowspan':&lt;br /&gt;				self.rowspan = value&lt;br /&gt;			elif key == 'colspan':&lt;br /&gt;				self.colspan = value			&lt;br /&gt;		self.inTD = 1&lt;br /&gt;		&lt;br /&gt;	def end_td(self):&lt;br /&gt;		if self.inTD:				&lt;br /&gt;			self.wikirow += '| ' + self.prop + self.re_multiplespaces.sub(' ',self.data.replace('\t',' ').replace(self.linebreak,'').replace('\r','').replace('"','""'))+ self.linebreak;&lt;br /&gt;			self.data = ''&lt;br /&gt;			self.inTD = 0&lt;br /&gt;&lt;br /&gt;	def handle_data(self, data):&lt;br /&gt;		if self.inTD:&lt;br /&gt;			if data.strip() != '':				&lt;br /&gt;				self.prop = ''&lt;br /&gt;				if self.rowspan != '':&lt;br /&gt;					self.prop = ' rowspan = '+self.rowspan &lt;br /&gt;				if self.colspan != '':&lt;br /&gt;					self.prop += ' colspan = '+self.colspan&lt;br /&gt;				if self.prop:&lt;br /&gt;					self.prop += ' | '&lt;br /&gt;				self.data += data&lt;br /&gt;&lt;br /&gt;if __name__ == '__main__':				&lt;br /&gt;	parser = html2wiki()&lt;br /&gt;	if len(sys.argv) == 2:&lt;br /&gt;		in_file = open(sys.argv[1],"r")&lt;br /&gt;		text = in_file.read()&lt;br /&gt;		parser.feed(text)&lt;br /&gt;		in_file.close()&lt;br /&gt;		print parser.wiki&lt;br /&gt;	else:&lt;br /&gt;		print 'Argument - filename required'&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 26 Jan 2007 09:22:21 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3371</guid>
      <author>anjesh (anjesh tuladhar)</author>
    </item>
    <item>
      <title>MIDI Note number and frequency</title>
      <link>http://snippets.dzone.com/posts/show/1450</link>
      <description>&lt;a href=http://www.harmony-central.com/MIDI/Doc/table2.html&gt;Summary of MIDI Note Numbers&lt;/a&gt;&lt;br /&gt;&lt;a href=http://www.borg.com/~jglatt/tutr/notefreq.htm&gt;MIDI Note to Frequency&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I can use them with my &lt;a href=http://bigbold.com/snippets/posts/show/572&gt;midi snippet&lt;/a&gt;.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# from http://logic-users.org/forums/L-OT/295&lt;br /&gt;# Each note's frequency is 2^(1/12) times of the previous note.&lt;br /&gt;&lt;br /&gt;freq = 440 * 2^((n-69)/12)&lt;br /&gt;n = 69 + 12*log(freq/440)/log(2)&lt;br /&gt;&lt;br /&gt;# Doe, ray, me, fa, sol, la, tee, doe&lt;br /&gt;&gt;&gt;&gt; play([(i, 100) for i in [60, 62, 64,65, 67, 69, 71,72]])&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;</description>
      <pubDate>Fri, 10 Feb 2006 08:27:27 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/1450</guid>
      <author>korakot (Korakot Chaovavanich)</author>
    </item>
    <item>
      <title>Find conversion words</title>
      <link>http://snippets.dzone.com/posts/show/1189</link>
      <description>&lt;code&gt;&lt;br /&gt;is-conv-word?: func [word][&lt;br /&gt;	all [&lt;br /&gt;		("to-" =  copy/part to-string word 3)&lt;br /&gt;		(not error? try [&lt;br /&gt;			datatype! = type? get to-word join copy (at to-string word 4) "!"&lt;br /&gt;		])&lt;br /&gt;	]&lt;br /&gt;]&lt;br /&gt;conversion-words: does [&lt;br /&gt;	lib/ser/keep-if first system/words :is-conv-word?&lt;br /&gt;]&lt;br /&gt;print mold conversion-words&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Thu, 19 Jan 2006 02:59:19 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/1189</guid>
      <author>gregg.irwin (Gregg Irwin)</author>
    </item>
    <item>
      <title>Convert a number to its closest fraction</title>
      <link>http://snippets.dzone.com/posts/show/741</link>
      <description>Sometimes, I need to find a ratio approximation of a number.&lt;br /&gt;Like 640 / 480 (vga) or similar number. I learn about farey&lt;br /&gt;series a few years ago (1994). &lt;br /&gt;The &lt;a href=http://en.wikipedia.org/wiki/Farey_sequence&gt;idea&lt;/a&gt; is actually quite simple.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&gt;&gt;&gt; farey(math.pi,100)&lt;br /&gt;(22, 7)&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Get the implementation &lt;a href=http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/52317&gt;here&lt;/a&gt;.</description>
      <pubDate>Sun, 18 Sep 2005 15:08:27 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/741</guid>
      <author>korakot (Korakot Chaovavanich)</author>
    </item>
  </channel>
</rss>
