I recently started playing around with Graphviz to generate some images of directed acyclic graphs (DAGs). I came across the following site regarding other open source tools from AT&T.
http://www.research.att.com/software_tools
Monday, November 8, 2010
Friday, March 5, 2010
Nice perl samples
I was looking for a way to find the character width of the terminal in perl. I came across this page and thought it was well organized.
http://pleac.sourceforge.net/pleac_perl/userinterfaces.html
http://pleac.sourceforge.net/pleac_perl/userinterfaces.html
Monday, January 18, 2010
Switching profiles for Terminal.app on the command line
I switched from using iTerm.app to Terminal.app a while ago. One of the things I loved about iTerm was the ability to turn on/off transparency via a keyboard shortcut. Terminal.app doesn't provide a shortcut, but you can provide some alias' to change the current profile from the command line. The following link provides the instructions on how to do this:
http://www.swombat.com/setting-up-terminalapp-with-tr-0
http://www.swombat.com/setting-up-terminalapp-with-tr-0
Tuesday, December 29, 2009
Inferring XSD from XML documents
It seems that every place I've worked at has used XML documents to organize information. At my current place of employment, we use XML documents for various things. Lately, I've been working in the world of XML without any predefined XSD or DTD to verify the XML against. This isn't necessarily a problem in our case because we are the only consumers of the documents.
Recently, I've been tasked with using some of the files. I remember previously running into a tool for inferring schema documents from XML. I had to jog my memory a little to find it, but I found it. The tool is called Trang. It's a great way to see a description of what the XML generalizes to. After you download the jar, you can run it like so:
java -jar trang.jar *.xml testing.xsd
This will examine all the XML files in the current directory and create a file named 'testing.xsd'.
This is also a great for coming up with the schema by creating example XML files. After the schema is generated you can go in a tweak it if you need to.
Recently, I've been tasked with using some of the files. I remember previously running into a tool for inferring schema documents from XML. I had to jog my memory a little to find it, but I found it. The tool is called Trang. It's a great way to see a description of what the XML generalizes to. After you download the jar, you can run it like so:
java -jar trang.jar *.xml testing.xsd
This will examine all the XML files in the current directory and create a file named 'testing.xsd'.
This is also a great for coming up with the schema by creating example XML files. After the schema is generated you can go in a tweak it if you need to.
Saturday, December 5, 2009
sailfish 50 miles northeast of Isla Mujeres
I can across this great article on sailfish today. I didn't realize that sailfish hunt in packs. The article's pretty short and the pictures are amazing. Thank you National Geographic.
http://ngm.nationalgeographic.com/2008/09/sailfish/holland-text
http://ngm.nationalgeographic.com/2008/09/sailfish/holland-text
Saturday, November 28, 2009
Teach Yourself Programming in Ten Years
With regard to my current side projects at home, I've started to ponder graduate school. Grad school is something I'm always thinking about because I'd love to teach computer science at the college level at some point. Neural networks and genetic algorithms have always been interesting, but lately I've been thinking more about programming languages.
I've been doing a lot of Perl for the past several months and I think I've validated my preconceived notions about the language. Perl is one of those languages that fills programmers with a variety of emotions. It seems to be heavy at the opposite ends of the spectrum. People tend to either hate it or love it. Even within the Perl community, there seems to be strife about certain topics.
My opinion about Perl is an ambivalent one. I often feel like I'm the child in the middle of a divorce. The language has some great features and I have a lot of fun programming in it. On the other hand, it's a bastard language and I despise it. Either way, it's a great language to talk about in an academic manner.
Perl has dynamic and lexical scoping. You can program in an object oriented, imperative, or functional style. It also has mappings to Prolog, so you can program in a logical style if you like. For subroutines that are referentially transparent, you can use a memoization module. You can use closures, which means you can do currying. Virtually every programming languages concept is manifested in the language.
To bring the story to an end. This prompted me to Google for "programming languages graduate school". The first result from the search shows a list of the top ten graduate schools. UT is number 8 (woot!). The second result is the one I found most interesting:
http://norvig.com/21-days.html
I thought the page was an interesting read. Enjoy :)
I've been doing a lot of Perl for the past several months and I think I've validated my preconceived notions about the language. Perl is one of those languages that fills programmers with a variety of emotions. It seems to be heavy at the opposite ends of the spectrum. People tend to either hate it or love it. Even within the Perl community, there seems to be strife about certain topics.
My opinion about Perl is an ambivalent one. I often feel like I'm the child in the middle of a divorce. The language has some great features and I have a lot of fun programming in it. On the other hand, it's a bastard language and I despise it. Either way, it's a great language to talk about in an academic manner.
Perl has dynamic and lexical scoping. You can program in an object oriented, imperative, or functional style. It also has mappings to Prolog, so you can program in a logical style if you like. For subroutines that are referentially transparent, you can use a memoization module. You can use closures, which means you can do currying. Virtually every programming languages concept is manifested in the language.
To bring the story to an end. This prompted me to Google for "programming languages graduate school". The first result from the search shows a list of the top ten graduate schools. UT is number 8 (woot!). The second result is the one I found most interesting:
http://norvig.com/21-days.html
I thought the page was an interesting read. Enjoy :)
Wednesday, November 18, 2009
dsh - distributed shell on Mac OSX
We have several hundred computers at work. One of the tools we use to interact with these machines is dsh, also known as dancer's shell or distributed shell. You can use dsh to run a command on a group of machines. For example, you could run the following command to find out what operating systems are running on a group of machines:
Now we need to create a config file:
The last thing we need to do is set up passwordless ssh for all the machines in our group file. Once that's done, we can start using dsh. Go ahead and give it a test drive:
dsh "uname -a"I'm going to give a short tutorial on how to set this up on the Mac for a group of machines with ssh available. First of all, I'm using MacPorts, so you'll need to have that installed before proceeding. With MacPorts installed, you can run the following command:
sudo port install dshAfter ports has done it's thing, you will need to create the proper directories:
mkdir -p ~/.dsh/groupThe '-p' tells mkdir to create both .dsh and group directories. Neither of these directories existed for me. Now we need to create a 'group' file with the names of the machines we want to access:
vim ~/.dsh/group/testMachinesAdd machine names to the file with one machine per line. For example:
plutoYou can create as many files in the ~/.dsh/group directory with this format. We will use these files to organize what machines we're sending commands to.
mars
saturn
earth
Now we need to create a config file:
vim ~/.dsh/dsh.confwith the following contents:
verbose=0
remoteshell=ssh
waitshell=1 # whether to wait for execution
# 1 = run commands serially
# 0 = run commands in parallel
remoteshellopt=-lmmasters # mmasters is the login id for the machines
verbose=0
showmachinenames=1
The last thing we need to do is set up passwordless ssh for all the machines in our group file. Once that's done, we can start using dsh. Go ahead and give it a test drive:
dsh -g testMachines 'uname -a'The -g argument tells dsh which group file we want to use.
Wednesday, November 11, 2009
Grails sql logging alternative
Someone just posted this on IRC. Nice write up.
http://btiernay.wordpress.com/2009/11/12/grails-sql-logging-from-the-command-line/
http://btiernay.wordpress.com/2009/11/12/grails-sql-logging-from-the-command-line/
Perlin Noise
The talk at the JUG meeting last night sparked a memory about perlin noise. The talk had nothing to do with perlin noise, but there was some talk about filtering out noise from this device a person created to track your heartbeat. The person created the device using a Java Sunspot device and some off the shelf electronic components. I thought it was a fun presentation.
Back to the topic. All this talk about noise and filtering reminded me of perlin noise. I decided to find the page I used to implement my terrain generator for my graphics class at UT. This page was great because it also introduced me to how interpolation works.
I decided to look up some other information on interpolation and I thought I'd share this page. It has a lot of nice visualizations.
Back to the topic. All this talk about noise and filtering reminded me of perlin noise. I decided to find the page I used to implement my terrain generator for my graphics class at UT. This page was great because it also introduced me to how interpolation works.
I decided to look up some other information on interpolation and I thought I'd share this page. It has a lot of nice visualizations.
Grails build-test-data Plugin
This has to be one of the coolest plugins I've seen lately:
http://www.slideshare.net/tednaleid/grails-buildtestdata-plugin-1723277
http://www.slideshare.net/tednaleid/grails-buildtestdata-plugin-1723277
Tuesday, November 10, 2009
DSP Book online
I went to a Java user group meeting tonight in Boulder and one of the talks was over the Java Sunspot. I thought it was really cool, despite the $700 starter kit. The speaker recommended the following site. It has the book available online.
http://www.dspguide.com/
The book describes some of the algorithms used in DSP programming.
http://www.dspguide.com/
The book describes some of the algorithms used in DSP programming.
Sunday, November 8, 2009
Data sets
I ran across this site and thought it was really cool. It has information on different datasets.
http://www.socrata.com/
http://www.socrata.com/
Open Flash Charts
Seems like I'm always looking around for a charting api. I just recently ran into this and might consider using it in the future:
http://teethgrinder.co.uk/open-flash-chart-2/
http://teethgrinder.co.uk/open-flash-chart-2/
Tuesday, November 3, 2009
Logo Inspiration
I was trying to get ideas for some logos and I came across this site:
http://www.pixellogo.com/
I thought it was pretty cool just to browse the site for inspiration.
http://www.pixellogo.com/
I thought it was pretty cool just to browse the site for inspiration.
Sunday, November 1, 2009
Setting up a git repo
I did some research on hosted git repositories. Github was the first solution I looked at. I might end up going with it at some point, but I didn't want to spend the money right now.
I spoke to some people on IRC and they suggested the following:
http://www.projectlocker.com/
https://indefero.net/
http://gitfarm.appspot.com/
These solutions offer free hosting accounts for private repositories. Some of them are good for starting a code base until it gets bigger or needs more users. Then you'll need to upgrade to a pay account.
I finally decided to host my own repository. I followed the instructions on the following page:
Hosting Git repositories, The Easy (and Secure) Way
The only problem I ran into was that I had to use 'sudo' to run the install on Ubuntu (hardy). Otherwise, the instructions were great.
Later I found another page which looks like it was a copy and paste from the first set of instructions, but it had a couple pieces of additional information:
http://blog.agdunn.net/?p=277
I spoke to some people on IRC and they suggested the following:
http://www.projectlocker.com/
https://indefero.net/
http://gitfarm.appspot.com/
These solutions offer free hosting accounts for private repositories. Some of them are good for starting a code base until it gets bigger or needs more users. Then you'll need to upgrade to a pay account.
I finally decided to host my own repository. I followed the instructions on the following page:
Hosting Git repositories, The Easy (and Secure) Way
The only problem I ran into was that I had to use 'sudo' to run the install on Ubuntu (hardy). Otherwise, the instructions were great.
Later I found another page which looks like it was a copy and paste from the first set of instructions, but it had a couple pieces of additional information:
http://blog.agdunn.net/?p=277
WPOTD: Dirigible
Marie was playing a game and asked me what a 'dirigible' is. I had no clue. A Google search away and I find
http://en.wikipedia.org/wiki/Airship
http://en.wikipedia.org/wiki/Airship
WPOTD: Project code names
WPOTD stands for "Wiki Page Of The Day". This is going to be a label for when I find interesting wiki pages. There's not going to be any kind of schedule for this, but I'll post them as I run across them.
I just so happened to run a across an interesting one today. I was looking for a schema to follow for computer names. Examples of this would include super heroes, planets, beers, etc. My search landed me on
http://en.wikipedia.org/wiki/List_of_computer_technology_code_names
It is a listing of names used for projects from various companies like Microsoft, Intel, and Apple.
I just so happened to run a across an interesting one today. I was looking for a schema to follow for computer names. Examples of this would include super heroes, planets, beers, etc. My search landed me on
http://en.wikipedia.org/wiki/List_of_computer_technology_code_names
It is a listing of names used for projects from various companies like Microsoft, Intel, and Apple.
Saturday, October 31, 2009
The 5 Biggest Mistakes Made by an LLC Business
I was just reading this article and found it interesting. It listed the following as the 5 biggest mistakes made by an LLC:
1. Before the LLC Business Entity is Formed, Don't Conduct Business.
2. Failing to Actually Issue Ownership Interests of the LLC Business Entity.
3. Failing to Create a Management Structure and Appoint Officers for the LLC Business Entity.
4. Failure to Get Investment Obligations in Writing.
5. Thinking that an LLC Business is a Foolproof Layer of Liability Protection.
1. Before the LLC Business Entity is Formed, Don't Conduct Business.
2. Failing to Actually Issue Ownership Interests of the LLC Business Entity.
3. Failing to Create a Management Structure and Appoint Officers for the LLC Business Entity.
4. Failure to Get Investment Obligations in Writing.
5. Thinking that an LLC Business is a Foolproof Layer of Liability Protection.
Load Balancing Software
I was talking to one of our system admins the other day about load balancing. He suggested I look into HAProxy. Apparently, gifts.com uses this for their load balancing rather than a hardware layer. One of the features I'm looking for is the ability to handle sticky sessions. I didn't see anything about it on the home page, but it's suppose to support it. This is something I'd like to look into at a later time:
http://haproxy.1wt.eu/
http://haproxy.1wt.eu/
List of commands
I ran across a nice page of linux commands. Some of them I already knew, but there were several that were new to me.
http://www.pixelbeat.org/cmdline.html
http://www.pixelbeat.org/cmdline.html
Subscribe to:
Posts (Atom)
