Main

Computer Science Archives

July 29, 2008

Refactoring makes me happy

I still get such a kick out of refactoring and shrinking down code. I try not to shrink it to the point that it is harder to read. I think some people get a little overzealous with refactoring and obscure so much of the code that it is no longer that readable, or everything is 20 levels deeper than it should be when you are in a debugger trying to trace a programs execution.

Anyways I was cleaning up a bunch of little TODOs or ugly sections of code that had been building up in some of our files. It felt good, and should make things even simpler moving forward.

May 28, 2008

Quicksort in Processing.js

I always liked computer visualization. I think it is fun and interesting, and drawing Mandelbrot for the first time brought a smile to my face. I always thought I understood sorting, AI, search, and other algorithms best when you could really see them in action. I always enjoyed little videos or applets of a bunch of different sorting algorithms comparing their differences and speeds. I don't really have time right now to do a whole bunch, but when I saw processing ported to javascript I thought I really would have to write a visualization for at least one sort just for the fun of playing around with a cool project.

So here is a link to my Quicksort in Processing.js, it will only work in the very newest browsers (FF3, Opera 9.5, and other beta browsers... feel free to try it out on anything worst thing that will happen is just an empty box... but it will not likely do anything on older browsers). Anyways, just some fun coding to play around with... If anyone can figure out how to make the double buffering / frame rate look good I would love a fix to make the animation run smoothly.

February 25, 2008

iTunes Stalling on Windows XP

I have been meaning to write this little tutorial ever since I fixed my iTunes on windows XP. I have a pretty good computer (3.4 ghz 1Gb ram), so I was confused when switching from WinAmp to iTunes to find my music randomly stalling. If i was running something process intensive like compiling or even just loading a new program my music would stutter on XP. I search around the web and found that others were having this problem, but not many had a good solution. After browsing around the web, I found that the stuttering in my music was caused when iTunes didn't get enough of the CPU to process the music file. So when something would jump up and use 90% of my CPU iTunes would happily stop processing the music because it didn't have a high enough process priority to keep a couple percent of CPU for itself. When playing music in the background iTunes only needs 3%-4% to play the music.

So now knowing the problem I searched for solutions and many just said that every time they started iTunes they would open the Windows Task Manager go to the processes tab and right click on iTunes to set the priority of the process to high. This did in fact work, but now I had to do that every time that I openned iTunes which was really annoying. So I continued looking for a better solution. There are special windows programs out there, most of them cost money, that will monitor which processes are running on the system and automatically change the process priority on any app you tell the system to increase the priority to whatever settings you choose. This seemed like and OK solution but now having an app running all the time checking my processes and just some other app that could cause problems, seemed bad. It also seems that processes aren't as stable if you switch their priority after they begin, it is best to set the priority as they are started. So off searching for a solution I found that you can start processes in does and pass what priority you want to start the process. So I decided to just hack up a little script which would launch iTunes from dos with a process priority of 'High'.

to run a windows app at a different process priority than the default you can create a file named "appName.bat" (in this case iTunes.bat), place this file in the same directory as the executable you want to run with a higher priority. Then edit the bat file (you can edit it in notepad). Add this line to the file

start /high iTunes.exe

(or start /priority_setting application.exe)

Save your bat file... Now all you have to do is create shortcuts to the new bat file instead of the shortcuts pointing directly the application.

To create a shortcut right click on your bat file and select 'Create Shortcut'. If you want the shortcut to have the same icon as the original app instead of the dos icon, right click the shortcut and got to properties, then the 'Shortcut' tab, and click Change Icon. Select browse an application to search for an icon in, then select the application you are creating a shortcut for (in this case iTunes.exe), it will display the available icons select the one your want.

Anyways, I hope this helps anyone else having trouble getting audio to play smooth on windows XP with iTunes. I have also used this method to speed up some other processes that I always want running full speed on windows, with pretty good success.

January 20, 2008

online resources for computer science students

50 killer online resources for computer science students. I thought it was a decent list and figured I would share it.

Dave sorry their is stuff about computers on my blog, I know it bothers you... You never called me when you were in Denver, so um... were even or something.

August 21, 2007

Amazing Image Resizing

This is the coolest image resizing I have ever seen, I love that your can resize to erase objects out of photos, awesome...

Amazing Image Resizing

June 12, 2007

Ruby rails testing

My roommate made a great post on rails testing so I thought I would share that here.

Testing faster in ruby on rails.

May 20, 2007

Ruby email to rss

A simple ruby email2rss example

When I was searching for some basic ruby scripts to download pop email I came across the email 2 Rss project on Ruby forge. Since I noticed there was no code available for the project yet I figured I would make a quick version up and make the code available, so anyone else searching for similar examples would have a starting point.

This code is just a functional example, but doesn't have any real options or error checking so use at your own risk.

Download the source to Ruby Email to RSS Feed

require 'net/pop'
require 'rss/maker'

version = "2.0" # ["0.9", "1.0", "2.0"]
destination = "/archive/emailFeed.xml" # local file to write

#create a new email Feed
content = RSS::Maker.make(version) do |rss|
rss.channel.title = "Dan Email Feed"
rss.channel.link = "http://www.pretheory.com"
rss.channel.description = "My newest emails"
rss.items.do_sort = true # sort items by date

Net::POP3.start('pop.yourDomain.com', 110,
'userName', 'myPass') do |pop|
if pop.mails.empty?
puts 'No mail.'
else
i = 0
pop.each_mail do |m| # or "pop.mails.each ..."
subject = m.header.split("\r\n").grep(/^Subject: /)[0]
subject = subject.gsub("Subject: ","")
subject = subject.gsub(":","")
subject = subject[0,15] if(subject.length > 15)
link = 'http://www.gmail.com'
body = m.pop
body = body[0,25] if(body.length > 25)

#create feed item
item = rss.items.new_item
item.title = subject
item.link = link
item.date = Time.now
item.description = body

i += 1
end
puts "#{pop.mails.size} mails popped."
end
end
end

File.open(destination,"w") do |f|
f.write(content)
end

puts 'Done. Thanks.'

Ruby Email Archiver

Checking and receiving email via ruby.

If you need to get emails and check emails via a ruby script this should get you started in the right direction. I needed to copy down about six thousand emails from my pop server, so I wrote up this little script. Ruby makes email simple, you just need to know where to look and unfortunately most searches result in finding a 3rd party library that costs a pretty penny for email actions in ruby. What you really need is the Net::POP3 or the Net::IMAP. After going through the quick documentation and seeing some of the available code examples, writing the code is straightforward. This is just a very simple example, with hardly any error checking.

Download the source to Ruby Email Archiver

require 'net/pop'

Net::POP3.start('pop.yourdomain.com', 110,
'userName', 'myPass') do |pop|
if pop.mails.empty?
puts 'No mail.'
else
i = 0
pop.each_mail do |m| # or "pop.mails.each ..."
subject = m.header.split("\r\n").grep(/^Subject: /)[0]
subject = subject.gsub("Subject: ","")
subject = subject.gsub(":","")
subject = subject[0,10] if(subject.length > 10)
File.open("/archive/#{i}-#{subject}.txt", 'w') do |f|
f.write m.pop
end
#if you want to delete msg after archive
#m.delete
i += 1
end
puts "#{pop.mails.size} mails popped."
end
end

May 18, 2007

Rails casts

A great way to keep up with some rails tips and ideas. I have started watching rails casts when I am eating a snack, working out, or just have a few minutes. It is a great and simple way to keep rails ideas fresh in your head. Most of the tips are fairly basic for now, but I am hoping they start dipping into more complex rails solutions. Or how to break out of the framework when it makes sense.

Railscasts

May 17, 2007

Really good post on regular expresions

I found that this was a really good post on regular expressions. Just a good beginner walk through that will have you more comfortable looking at any regex you run into while debugging someone else's code, or if your trying to add your own regular expressions yourself.

Regular expression walk through

May 16, 2007

I am now at Pretheory

I know I don't actually post to this blog much at all, but I still occasionally add some stuff on it and I might slowly be bringing it back to life. So with that in mind I thought I should announce that I am now the co founder of a start up. Pretheory. If you want to keep up with the various projects we are working on the best place to check is over at the Pretheory blog.

Currently we are programming in Ruby on Rails, and we are hoping to have our first project launched by early August. So if you have been following this blog at all, keep and eye on Pretheory now as well.


pretheory_logo.jpg

January 31, 2007

Eclipse Plugin Callisto

This is a pretty cool project you can use via the update manager you just tell it the type of development you want to do (java swing/j2ee/java webapps/c++/ and others).

Anyways it is pretty good and gets a bunch of plugins together and manages them for you, so if newer versions of one thing still require an older version of another plug in it deals with any incompatibility issues.

You select what you want and then it will say you need other dependencies click the button that says get required.

That seems to be it.

Callisto

peace,
Dan

January 14, 2007

Spam bots try anything

Well I have on many of my sites had to deal with and fight the onslaught of spam bots, but I still find them amusing some times. After a bug occurred on a production machine, I was looking at the logs and ran into many errors looking like this:

2007-01-11 18:15:05,938 [TP-Processor4395] ERROR com.realestate.search.core.SearchController - java.lang.NumberFormatException: For input string: "http://val
trex-gs.****.com"
2007-01-11 18:15:05,980 [TP-Processor4395] ERROR org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/].[jsp] - Servlet.service() for servlet jsp
threw exception
java.lang.NumberFormatException: For input string: "http://valtrex-gs.***.com"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)

It seems this was a pretty dumb, but probably mildly successful bot. It started some search and found tons of web pages, every time it encountered a form, it would attempt to fill out the majority of the fields with the URL hoping to make it into generated pages, most common search terms, comments, user names, or anything that would possibly link to the URL and increase the sites page rank. I found it hilarious, because somewhere on our site it was trying to fill out number, date, and other fields with the URL which we threw errors on format exceptions and probably returned them to the form with an error about that field. The bot hasn't given up, but hasn't slammed us very hard. Either way it is another amusing tale, of spam bots running amok on the web.

At least they can make me laugh sometimes...

December 18, 2006

Mysql null date

I had an issue with java and hibernate returning a null date.

java hibernate java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Date

This just took a little longer to find the fix on a google search than I thought it should have so I post what I ended up doing to resolve the situation here:

?zeroDateTimeBehavior=convertToNull

you add this to your jdbc connection url and it will convert the 0000-00-00 to the proper type for java to work with.

More info here:

http://dev.mysql.com/doc/mysql/en/cj-upgrading.html#cj-upgrading-3-0-to-3-1

thanks to this thread, which had many other suggestions, but most of them were not helpful, but the one above saved my day.

http://forum.java.sun.com/thread.jspa?threadID=649520&messageID=3824019

you can add this on the end of your hibernate connection file, like so...
jdbc:mysql://{DB_IPADDRESS}:{DB_PORT}/{DB_NAME}?zeroDateTimeBehavior=convertToNull&profileSql=true

November 19, 2006

Java String isEmpty()

I have heard the java string class will finally get the isEmpty method in an upcoming release. Lets hope it is in 1.6, because I can't wait much longer, I can't for the life of me see why this was ignored for so long. Why have I had to put this in so many freakin if statements when this could have been fixed by adding a very easy and simple but amazingly easy to read and useful method.

String randWord;

/*
random code or back in forth between many different classes
*/

String someFunction() {
if(randWord!=null && !randWord.equals("")) {
/*do something*/
}

....
}

all of this could just be replaced and make the code so much more readable with the isEmpty function, becoming the following...

if( !randWord.isEmpty() ) {
/*do something*/
}

I want this functionality and I want it now... I guess since java is now opensource I should just go override the String class to add one simple function! So much value and so simple.

Soap Sucks

I have said it for a long time now that XML and SOAP are bloated and most of the time the wrong way to do anything. Well it seems lead api developers are agreeing with me, it might have been the decade of XML but I hope to slowly see it fade to a hardly used only when needed standard, instead of the if it doesn't use XML it obviously isn't designed well.

Soap i wasted so much time and clock cycle for projects that you never did well and were always replaced.

let me say now I'd never choose to use SOAP and WSDL again. I was wrong

October 12, 2006

Nerds are great

Some days they make me proud to be a nerd...

This just cracks me up,
Mozilla Bug Report

July 10, 2006

Ubuntu Server 6.06

I installed Ubuntu server on one of my machines, one of the nice things about it, is that it from install it configures a working LAMP (Linux, Apache, MySQL and PHP) set up. Which is nice and saves lots of configuration. Unfortunately, I still need to get Subversion, Ruby, Tomcat, and other things installed and running on the system. Anyways since, I was going to have to set up a bunch of things and planned on using the system as a development machine I then installed Ubuntu desktop on the system as one of the aptitude scripts, which installs all the packages require for the desktop configuration. After that though, I realized that I was not able to complete any install with out causing an error in clvm, anything you install would cause a clvm error and make your install fail. So here is the fix if you install the Ubuntu server from CD and then install the desktop:

Ultimately this post by npcomplete2000, was the solution for me:
http://www.ubuntuforums.org/archive/index.php/t-186356.html

removing clvm caused no problems for me and was something I never thought I would need. After that I could install other applications with out problems.

More error information so those searching for error codes will find this post:
Starting Cluster LVM Daemon clvmd could not connect to cluster manager
Consult syslog for more information
invoke-rc.d: initscript clvm, action "start" failed.
dpkg: error processing clvm (--configure):
subprocess post-installation script returned error exit status 3
Errors were encountered while processing:
clvm
E: Sub-process /usr/bin/dpkg returned an error code (1)

July 3, 2006

Old Computer Science Links

General Links

University of Colorado
Web2gether Project
L3D labs at CU
My code online


Machine Learning

MITs class page on Machine Learning
The Use of Java in Machine Learning
AI: a modern approach
Java Neural Networks


Text Categorization Links

Intelligent Information Retrieval
Tutorial on Text Mining
Open source spam filtering project
Yet Another Multipurpose Chunk Annotator


Weka Links

WEKA
Spam analysis


LSA/LSI Links

LSA @ CU
LSI @ UTK


SVM Links

Technical Paper Describing SVM classification
SVM Info / Lessons
Comprehensive List of SVM publications
Large Scale SVM Learning
SVM Spam Filter Research paper


SVM Tools:

SVDLIBC
SVMseq
Tiny SVM
SVM-Light

May 21, 2006

Coding tan lines

This is funny, and probably far to true.

tanlines.jpg

May 3, 2006

Java skills wanted in the market

I have been looking around at what companies seem to want currently from a mi level Java programmer, it seems to be all over the map. I also have notice a big rise in the demand for C#/ASP programmers as well. So if your starting to hunt for a new Java developer position here is a list of things you might want to study up on a bit before going out on the job hunt:

Java RMI
Java Swing Basics / tutorials
EJB basics / tutorials
Some basic internationalization
Java Date formatting or more Date timezones
Java Applet security
Compressing serialized objects or other output files in Java
Threading issues of Array List
I know we all extend classes and work with interfaces, but they always ask questions about it at interviews
There are also many testing positions available which want experience with JUnit.

So if your currently on a Java position and looking around a bit, here are some areas you should really brush up on a bit before starting your interview rounds.

January 30, 2006

Ant options

if your running out of Java Heap space memory while running ant you probably just need to increase the memory size for ant when it is running to do this you set the enviroment variable ANT_OPTS.

ANT_OPTS=-Xmx128M

in windows you right click my computer go to properties, and then click advanced then set new enviroment variable name ANT_OPTS value -Xmx128M. If your running cygwin you must close current instances and reopen them to get the new settings to take effect, after opening up cygwin again try >echo $ANT_OPTS which should output your setting. If you still receive the error you can go higher with your memory. I have never had to go higher than 256.

January 19, 2006

Junit testing server states

Alot of Junit docs and faq tells you that have bad design if your trying to extend test suite so that there is only one setUp() and testDown() for a whole sweet of tests, but that just isnt true when your trying to tests proper order of state changes each transaction should change the state of the server dpending on its current state, if the server is started up new for each test your only testing the start up state... my single unit tests have dependencies on previous tests that has cuased the server to be in its current state... So no where gives good documentation on how to do this the faq is un usefully short showing how to extend testSuite but not how to use it... so here is the best page for how to actually use it just ignore hte Turbine2 stuff:

16. Q: How can I setup Turbine once for my JUnit Test cases?

And remember that Junit executes your tests in order alphabetically and numerically after the intial keyword test.

ie

TestA will run before TestB so if you running tests in order for state make sure that you have your tests named appropriately to be sure they will run in the expected order.

hope this helps someone running into problems running Juint with a single setUp across a suite of tests.

Apache2 integrating Tomcat 5.5 on windows

I have been trying to do this off and on for over a year and a half and every time i run into problems and I get pissed and quit. I have found hundreds of pages that all say different ways of how to solve the problem of integrating tomcat 5.5 with apache2. Non of them worked for me, but after combining tips from various install guides I can show you what finally worked for me. After wasting over all the time hours and hours... here is all that I did small changes to the apache configure file and small ones to tomcats... restart both of there servers and WHOOPIE it just works. Apache2 with Tomcat 5.5 on a windows server.

httpdconf changes:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so


ServerName special.myname.com
DocumentRoot "C:/Program Files/Apache Group/Apache2/htdocs"


ProxyRequests On
ProxyPass /cool http://66.***.***.**3:8082/your/webapp/rootdir/
#
# these are comments on the dir
#C:\Program Files\Apache\Tomcat 5.5\webapps\you\webapp\rootdir\
# if anyone was confused to how that would map to windows tomcat stuff
#
ProxyPass /*.jsp http://66.***.***.**3:8082

tomcat's server.xml:

maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" acceptCount="100" connectionTimeout="20000"
proxyPort="80" disableUploadTimeout="true" />


thats it... you might have to change some of your jsps for how they find local directories and get all the lookups for the local directories to match your mapping, but you got it... it should all work now. Congradulations... if that didnt work for you here are some sites I was looking at for help:

Apache proxy forwarding

Apache 2 tomcat 5.5

best of luck post comments here and i can try to help you if they are problems i have run into before.

December 20, 2005

Broken MailEnable

Problem: Mail Enable Bad Mail folder became HUGE! Or MailEnable Bad Mail folder filled up!

MailEnable was stuffing my hard drive with badmessages and outgoing that i didnt think it was allowed to send. Some spammers obviously found a way to attack my mail server and start making it work for them... Anyways it filled an entire 80GB hard drive with bad emails... The folders where so large that explorer would crash when trying to delete the files. So I search around and found this solution to emptying the folders.

http://support.microsoft.com/default.aspx?scid=kb;en-us;555408

After you make sure it is working remove the /s from the end of the line you wont see that it is deleting one at a time, but the process goes about 10x faster because you aren't printing between each of the deletes.

I also dissabled my entire mail server until i can figure out what the hell is going on and how to stop the spamming bastards that are trying to take over my server.

windows server 2003 too many files to delete solved.
Mail Enable can open config solved.
Email Spam removed from system solved.

The problem now is how slow it is going while deleting the files.

November 14, 2005

No Fluff just Stuff

Well I am done with the Rocky Mountain Software Symposium (RMSS), No Fluff just Stuff. Which was excellent. I learned a ton I wish I could go to one of these ever 3 to 6 months... Anyways I learned alot and have some great stuff that I can put into use on my projects at work. I also learned a ton of just really cool and interesting stuff. That will make me a better programmer all the time, as well as get me moving on new technologies faster than others. Anyways, it was really cool and interesting. Hopefully I will get to use and play with some of the code before i forget all of the cool stuff that i just learned... check the new RSS feed reader that is on the front of wastedbrains to see something I coded up real quick...

I highly recommend the no fluff just stuff tour to everyone.

November 10, 2005

Ruby on Rails

I have been learning the language ruby, and have begun playing around with ruby on rails. Which is a development framework for web based applications. I have been really impressed with ruby on rails so far, I was worried about how extendable it would be to less general problems, but it seems to be fairly extendable. Which is cool. I highly recommend giving it a shot and I think this was the best tutorial I have gone through while learning ruby.

Ruby on rails tutorial, building a cookbook

I also recommend Agile web development with Rails, from the Pragmatic Programmers

September 8, 2005

CSS columns guides

I needed some good CSS layouts so i looked around tinkered a bit and got what i want, and I thought i should share some of the best resources i found. I would like to give thanks to everyone that has made their CSS and XHTML layouts available as it is a very cool thing to do and help out with other web developers.

Great threecolum css with header and footer

Center floating three column

a list apart

liquid header

Ordered columns float model

Skidoo layouts

August 8, 2005

Apache XML RPC Asych

Exception in thread "Thread-0" java.lang.NullPointerException at org.apache.xmlrpc.XmlRpcClient$XmlRpcClientAsyncThread.run(XmlRpcClient.java:271)

If your getting any similar errors while trying to run executeAsync from the XmlRpcClient (org.apache.xmlrpc.XmlRpcClient) class. The problem is this bug, which has been fixed by apache, but hasn't made it into the binaries or the src releases because they havent been updated fro some time. To get the fix use the anonymous cvs, or apply this patch to your src. It took me a few hours to figure out the problem with this and fix it after finding the patch.

So if you build the jars and use the xmlrpc-2.0-beta that is built as the jar you include in your project that should fix everything.

July 21, 2005

java in cygwin

man I had some serious problems running java in cygwin with a shell script (sh script)... So I am going to post my script to help you out... there are a couple things of note first...

java a windows program expects windows paths your cygwin script proably uses unix paths.

cygwin sh scripts treat ';' as a special character so when using multiple classpaths you must escape it '\;' to make it work as expected...

# test.sh
JAVAEXE=$JAVA_HOME/bin/java.exe
cd ../
IEP_HOME=C:\\dev\\dsmayer\\sandbox\\iep
IEP_BIN=C:\\dev\\dsmayer\\sandbox\\iep\\bin
IEP_LIB=C:\\dev\\dsmayer\\sandbox\\iep\\lib
IEP_JAR=C:\\dev\\dsmayer\\sandbox\\iep\\lib\\iepio.jar
IEP_IST=C:\\dev\\dsmayer\\sandbox\\iep\\lib\\istcustom.jar
IEPB_JAR=C:\\dev\\dsmayer\\sandbox\\iep\\lib\\backport-util-concurrent.jar
IEP_PROPS=C:\\dev\\dsmayer\\sandbox\\iep\\properties

echo java -cp $IEP_JAR\;$IEP_IST\;$IEPB_JAR RCS.example.RCSreg
echo
java -cp $IEP_JAR\;$IEP_IST\;$IEPB_JAR RCS.example.RCSreg &
java -cp $IEP_PROPS\;$IEP_JAR\;$IEPB_JAR\;$IEP_IST RCS.example.clients.ResourceClient &
java -cp $IEP_PROPS\;$IEP_JAR\;$IEPB_JAR\;$IEP_IST RCS.example.clients.UserClient &

June 28, 2005

Java Source Code Examples

A great collection of simple java source exmples. These are organized well and provide a wealth of information if your having problems doing something you know has been done before.

http://www.java2s.com/ Java Source Examples

June 13, 2005

Computer Science Research Papers

I have definately violated some of these and I think it would be good for people that are trying to do some serious analysis to follow these I do hate nothing more when marketing makes grapsh that essentially lie. Anyways if you have a computer science or any science for that matter paper, these are great rules to go by to remain creditable.

A Rubic for IT Analysis Papers

June 2, 2005

Programming Links

Since I haven't been putting much interesting up here of my own code lately I figure I could point you to some things of note and interest:

Java Form SpellChecking This is a great tool to allow users of your site or webapp to have access to spell checking much like from MS word.

Java Image Galleries Ever wanted a great image gallery solution?

Art of Illusion A cool 3d rendering studio entirely in Java.

A good webservices and JAVA XML tutorial with lots of basic information

May 31, 2005

Converting XML with XSLT

Problem: Converting XML to Excel

I had to convert some XML to sort and display as we wished in excel. After reading a bunch of articles about XML-FO and other stuff about cacoon and other Java solutions I decided to go with just using a fairly simple XSLT stylesheet and convert the XML to HTML tables with the excel extension. This is even the recommended solution by microsoft (Which is probably because excel has a bloated and often changing format.) So converting this way leads to a well and easy and nice looking excel file and has the benifeit that anyone without excel can also view the file in a standard web browser. The microsoft tutorial on converting XML with XSTL is very good. If you have any problems or need more advanced XSTL this is also another very usefull set of XSTL examples.

The basic idea is to make the stylesheet so that it can sort and create a easy to view html table. Then you can either let excel open the XML which can find the stylesheet and apply it for the user, or you can use a program to do the conversion for your user and output excel or html files. I needed to generate the files for my users so I went with Xalan from the apache foundation.

Xalan is a XSL stylesheet processors in Java & C++

The example is simple to modify for whatever you need. I used the example file SimpleTransform, which can be found in the installation directory at

\xalan-j_2_6_0\samples\SimpleTransform

The result is simple and easy, below I will include my XSLT file to show how easy it is toe create simple large tables from a nice little XSLT file.

I couldnt include it as text cause it tried to render it so here is a link to it...
Download file

April 6, 2005

Java string to inputstream

If you need to make a string into an input stream it is really easy. Many people say you shouldnt convert a string into an input stream and that it is bad code design though. Since I was using someone elses library that only took input streams and all of my input was created as strings i really had no choice but to do the conversion (which is wastefull of memory cause you essentially have exact copies of the same data). Making a string into an inputstream can be done like this:

ByteArrayInputStream bs = new ByteArrayInputStream(site.getBytes());

If you have any problems leave a comment.

March 30, 2005

Java Tar

Java Tar source. This might not be the final draft, but it is getting pretty close. Most features seem to be working well and the source is very well documentated. So if you want or need the new GNU features you can get them from java tar here. The main java tar build hasnt incoporated these yet but all of the modifications have been sent off to them, so hopefully they will incorporate them soon.

Java Tar homepage

Until then feel free to download the java tar source from me. You can edit and modify as much as the orginal liscense allows, which says it is public domain use it as you wish. I would like to give a big thanks to Timothy Gerard Endres, who is the orginal author of Java Tar. If you have any questions comments or problems let me know.


Download Java Tar

java code tar

I have released a development version of java tar with added support for various GNU tar features like multi file, verification, and breaking the 8GB barrier. It is pretty nice so if your into learning some java code or working with tar there is alot of good info here and well documentated source code.

Java Tar upgrades

Java Tar and problems

I have been working on adding a bunch of GNU tar features to java tar. I will release the source soon, but I just wanted to comment on the lack of good documentation on the format that makes it very hard to work with the GNU tar format... Simple things like regular tar takes char 32 as a null and ignored character... and so does GNUtar for the regular tar fields but in the offset field needed for multi volume tars 32 crashes the program giving you header errors. It only accepts char 48 as a null which in the other size field it accepts either 32 or 48... things like this are commented no where and i only discoved by writting and editing the GNU tar source. Which is also far under documentated in the code and very hard to follow.

GNU Tar size field: If your working with GNU tar the size field is just like the standard tar field in ustar... except which is no where to be found in their documentation when you support unlimited size files. If you have a file larger than 8GB to support it you must write the number as bits in twos compliment notation. Also after doing the you have to flip the sign bit (the very most left 0) to a 1. Which would normally mean you have a negative number and now if you decode this as a twos compliment you end up with a huge negative number... but not encoded it normally as a positive number and flip that bit. I only figured this out after manually reading and decoding gnu tar and stanttard ustar headers for a long time. The is nothing that talks about how the support for unlimited files was added to gnu tar... well hopefully if you are having the same problem you found this page. So upgrading GNU tar or other programs to support GNU tar should be easier.

I have added support for these gnu features to javatar:
Multi volume
verification
unlimited filesize
fast single file extraction
Tar Table of contents (xml of the files and there offsets with in the tar)

If your interested in this or have any questions about GNU tar or JAva tar feel free to send me an email and ask.

March 10, 2005

Java copy file code

just cause i didnt find code on this fast enough here is code to copy a file using java. It reads the file in while writting it out using buffered readers and writters:

public static void copy(String from, String to) throws IOException{
InputStream in = null;
OutputStream out = null;
try {
in = new FileInputStream(from);
out = new FileOutputStream(to);
int length = 128*10240; // danger!
byte[] bytes = new byte[length];
int read=0;
for(;;){
read=in.read(bytes,0,length);
if(read==-1){
break;
}
out.write(bytes,0,read);
}
} finally {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
}
}

February 28, 2005

my neglected blog

alright here is a post to my neglected blog. It always falls behind... Anyways i have been doing a ton of programming, but sadly none of it is very interesting or new right now. Alot of the stuff I am doing I have done before, but I am trying to build up a system which I can use to explore some new ideas and I need a nice simple toolset built up before doing anything else all the interesting. So it might be awhile, before I have any really interesting things to post on here, but i will try and we will see when I get a chance to get back to my AI interests.

February 8, 2005

GNU tar errors on windows

I ran into a very odd error while running GNU tar on windows XP under dos or the cmd.exe (dos emulator). The error must be incredibly rare since i only found one other post with similiar problems. I will first explain the error and then how it was fixed or resolved.

here is the one link that I found with the similiar GNU windows tar error
tar error

my error:
C:\dev\dsmayer\sandbox\exe>tar cvf tester.tar news
tar: Cannot add file news: No such file or directory (ENOENT)
tar: Error exit delayed from previous errors

news was a standard directory. the error we found was occuring because we were in the C:\dev\*.* directory apparently dev and aux (as the other user was having that error) are some sort of key words that screw up the program, I dont know why. I do know that moving tar.ext and my directory to a folder c:\temp or any other c:\*.*.\dsmayer\sandbox\exe and it would work. So if your having any erros similiar with GNU tar I suggest changing directories and seeing if that fixes your problems. Taring under cygwin in this directory worked fine it was only a problem when taring in dos. Good luck post any questions, comments, or other issues relating to GNU tar on windows here.

February 7, 2005

Jakarta org.apache.commons.fileupload

Using this package caused a little more problems than one would have believed, but it was by far still the best option out there. I found some other beens, but they only would successfully upload Ascii files and were not writen properly to write out image files or other binary data. After having a problem with a few other packages I went to use Jakarta's java fileupload and after figuring out multiple issues and reading alot of documentation I got all of it working as I wanted. I thought I should share th links I ended up using that were usefull and helped me get everything working.

File upload wrapper take a look at ProcessFileUpload.jsp

Jakarta's how to use the fileupload package

If you have any problems let me know and I can probably help you out.

November 3, 2004

Again Sorry

Again I am truly sorry that i haven't been posting anything here. School, My job hunt, and other things have b een taking my time. I have written quite a bit of code and hopefully will post it all soon. I have alot of little pocket pc applications and I also have done decision trees, neural networks, and probabilistic agents.

I might have a pretty cool final project for my AI course to post but that will really depend on what I have time to end up doing for a project.

October 12, 2004

sorry busy

Sorry there has been no updates and no new code posted for awhile. In fact comments were broken for the last couple months. Well I have fixed the comments and will slowly be getting back into some of the coding stuff. I have been busy with my job hunt, which seems to be going pretty well, but I dont want to jinx it.

I have been doing some interesting stuff in my AI course and learning alot, we have been working with Agents and Probablistic Inference... We are now doing Utility funtions and feedback learning systems, which is pretty cool. I wish i knew more about knowlege representation. Since coding up the problems takes me so long in part because i dont know how to represent all of the data for the problems. Oh well all is going well and I am learning, and I guess that is what that matters. The concepts I get and the coding I can figure out with time.

September 9, 2004

Intelligent Agents

Well I had to write a little one page paper for AI class about agents so here it is incase anyone else is ever thinking about a simple little agent that plays a wierd cave game called Wumpus world. Also, I guess some of the Ideas are a little interesting. The code to run and test everything is provided in my extended entry if you want it. (The code isn't the prettiest or well commented seeing as I had other work to do and had to finish the entire assignement in less than two days, but it works and the smart agent does do better thant he simple one.)

Agents

I created the two agents, the dumb agent that was mostly random and the more intelligent agent. The dumb agent got an avg of -450 which was close to the naive agent the professor had coded up, which averaged -390. So everything with my world and agent seemed pretty close. I then began work on the intelligent agent. I found it significantly harder than expected to add features that improved performance. Many times adding rules that I thought would help improve the agents performance and these rules would actually result in far lower scores. After trying a few pretty simple ideas I developed what my final agent became. My final agent had an average score of -60 which wasn't great, but still significantly better than the dumb agent. I added one extra constraint to the game for fun, since I am a vegetarian I decided that I would never kill the Wumpus. So my algorithm would simple avoided the Wumpus in attempts to navigate to the gold. This lead to more impossible maps and therefor a lower overall score. It will still be interesting to see how my animal friendly agent performed in comparison to others.
My more intelligent agent worked on the right hand on the maze wall idea. I would go forward until i found a area that could present a problem. A problem being either a stench or a breeze, if this problem was found i would turn around and walk the other direction and then try a different route, with my right hand facing the problem. This worked well at avoiding pits since I also had a higher percent of the time the choice of moving forward, and always would move forward if there was no chance of danger. This quickly lead to the problem of certain pits providing an infinite loop. Lowering my score by getting in a safe, but useless route. To fix this if I encountered the same pit problem multiple times i would then just walk threw the sensed breeze in hopes that the pit was not the direction I was going. This could have been improved by first trying alternate routes around the pit, but could have then left the problem of many different infinite loops.
The improvement of the agent was significant and noticeable, but also illustrated the difficulties of simple relying on a simple set of rules. I think a more effective route would have been to have the agent slowly walk along any known safe route while mapping problem areas to his known portion of the map and only after exhausting all safe possibilities (and trying to create safe possibilities by killing the Wumpus) picking at random a unsafe point of passage that would lead to the most possible options for a next move.

Continue reading "Intelligent Agents" »

September 2, 2004

Research Blog is Back

Alright while my site has been down due to a server change and no real reason to stay online I am back up an running. I have actually worked on quite a bit of stuff. Since at work i am kinda done with the machine learning project i am working more on other more varied projects now but i am still doing some machine learning stuff. It seems for now at least that this site might just follow my programming and coding side of life where ever that will take me. since this is machine learning though i can post that my chatbot megadan is online now and has machine learning technology. I have been updating him frequently right now. You can either find him on AIM as Captian2 or on the web MegaDan ChatBot. I will begin to try to post about some various projects going on and my work and coding life again soon.

August 8, 2004

fighting back

Well lately all the spam on my various websites had been getting out of control. They have machines that go to blogs and post comments with links to ads for words to raise their rating at google. It sucks it has been annoying me and the others that i host for. So i coded up a little thing i am hoping will help. We will see if it actually does. The good news is that i learned where code resides for the comments and i can add in more code and such if i need to to start blocking all the spammers. Fun huh. In the next couple days we will see if it works.

It is a good use of learning time since today i was reading learning perl and working on perl programming and the entire blogging system was written in perl. Yeaaa I am learn a language that people told me to learn better before applying to google.

if you have any problems leaving comments anywhere tell me with email...

July 19, 2004

cleaning and moving

Today I am collecting all of the source and all of the data from News Shaker. I am preparing to move everything to a new machine that is on a live connection that everyone from the outside can get to. I will then continue to add the rest of the features mentioned below. The last week has been used to add these features, while making little to no process on improving the results of the learning. I am going to talk with a few people about how to improve the learning before working with that part of the project to much more. Overall most of the code seems quite stable enough but alot needs to be done on the user interface to make it useable by normal people that aren't accustom to odd design and testing set ups. It must be cleaned up before it could ever really be used.

July 6, 2004

Feature requests

I need to add the following features into news shaker to make it more usefull:

Done (has an X if finished):
X * Delete category and all related sites
X * Delete category place all remaining sites in another category
X * Ability to have one category be a sub category of another
* 2 level categorization (related to the sub category idea above)
X * Automated "real world" testing with accuracy for all categories after a new model build. Should consist of 20 unseen and unmodeled sites that are hand categorized and then have them categorized.
X * A way to save the results from the real world testing in the database and display them.
* A way to post articles that aren't links but are actually html files into the system. (This also allows visitors to view this file.)
X * ability for people to vote for a file that is in the wrong category to be recategorized
X * Increased categorization speed
* Start a test from a new UID and then track where all the results go and view each result individually.
* Making sure that two of the same sites are never added to the database
* Checking and updating sites and getting rid of no longer existant ones.
X * Ability for users to report errors and admins to view them and delete
X * Ability for users to request categories and admins to view them and delete
X * Ability for administrator to recategorize based on users votes to recategorize
On another note i have increased accuracy on testing to the 94% overall accuracy on known documents and i am getting and average of 25% for unknown documents, which isn't horrible but i would like to do much better. I have now began to study and look into a transductive approach that i might begin to use, depending on the results of the next bits of testing.

June 29, 2004

News Shaker

The last couple of weeks i have done alot of work on news shaker. I have done lots of testing. I all of the categories (about 12) to an approximated error average of 88%. For 12 categories this is really good. First i began by adding more and more data to the categories and rebuilding the models. This initially was increasing the percents but it ceased to help after all of the categories had about 90 documents in them. I then began to play with the weight of the positive terms. This was highly successful after increasing the weighting on all of the positive training vectors I could successfully take all of the training data and recategorize it with 88% accuracy with the remaining documents not wrongly categorized but declared to be of an unknown category. I then started real world testing giving all of my category unseen documents that were hand categorized. The results for the few real world tests i have done so far have been fairly poor, showing only 15-20% accuracy. I am not sure why that varying how the model is made dramatically increases percent of categorization of known documents but seems to have no effect on unseen documents. This currently is the problem i am working on. It is possitive to get known values accuracy for my models to range from 85% to 93%. After a little more real world testing and some other discussion i might be able to come to a conclusion as to what is going on between known and unknown examples.

June 18, 2004

New NewsShaker Feature

After waiting weeks of meaning to add this feature I finally did it. It actually took me less than an hour when I thought i was going to have to write all sorts of new code and that everthing would somehow end up being far more complex than I wanted it to be.

Simple feature added, now instead of telling the system to crawl an entire site, you can tell the system to add a single page to the database. This makes it easier when finding an article, that links to entirely useless data, but should be added. So I am glad i finally took the time to add this simple feature. It was also good to see that I still remember alot more of the code structure on the spidering system than i would have thought I remembered.

Starting next week I am going to finish making the system entirely automated. I should be able to finish that in a couple days. Then I am going to make the system very general so it doesn't have to remain so specific to special education and then the same code base for newsshaker would be adoptable to other systems such as the HAMCOD project (which is a horrible name, but since I am more interested in just working on the idea for now I am not going to spend any time working on a name until success full. Man I could make some amazing progress on the system if i could get about 3 people coding on these machine learning systems. Oh well it is good to be back and making some progress again.

June 16, 2004

Done testing and work on SVMMail

After going through a little less than 3000 emails. I have finished testing nad doing any work on SVMMail. It still is sitting at a 97.5% accuracy. I am sure this could be increased, but I need to move all of my focus back to my primary project, News Shaker.

On the News Shaker front. I have added about 350 new manually categorized sites across the database. I am going to rebuild all of the models and see if the increased training data brings my percents up to a more reasonable level. Then once I have a little better percent accuracy I will begin all of the auto categorization code and just start to let the system go crazy and see how many sites it can categorize correctly when left to its own devices. Should be an interesting time next week. That is if the machine boots up. Someone was working on my system and now it freezes on boot up. I am sure all my data is still there and I have a fairly recent back up but hopefully this can be sorted out before the begining of next week.

I also have began reading Managing Gigabytes which is about compressing and indexing documents and images. I also ordered a new book about machine learning and artifical intellegence that i will begin reading soon. Perhaps they will provide me with some new ideas on how to improve my system.

May 24, 2004

SVMMail testing update

I have now gone through about 800 emails with my SVM / SMO mail filter. I am still getting about 97.5% accuracy. I have blocked over 700 spams from my mail account. I am taking off (to europe) and I am sure my mail will fill up with about 600 emails while I am gone so I will have a much larger test results when I return. Good luck to anyone else out there working with or thinking about SVMs / SMOs for spam filters. It looks like it is a winning combination. I hope my various code and articles can help you on your way.

peace,
Dan Mayer

May 20, 2004

SVM Mail feature vector

I have gotten a few emails and questions from others researchers in the community and I decided that I would begin to answer questions on my site rather than through email so any others could also benefit from the answer. So here is the first response I am posting on the web. Feel free to contact me if you have any other questions and I can try to respond.

I found your project while googling for various alternatives to spam
filtering; I've been thinking about trying SVM for mail filtering myself,
but I'm slightly at loss as to what features to use.

A bag-of-words model comes naturally to mind, but it is not the most
efficient computationally; are you perhaps using it or something similar?

Continue reading "SVM Mail feature vector" »

May 18, 2004

News Shaker Update

After doing some initial work with the 8 category problem, I have run into some problems. Nothing that can’t be solved but just some initial hiccups as expected. The very first run through I was getting approximately 30% accuracy on my categorizations. Better than random guessing but still pretty worthless. After changing to a different layout of the model, I am now getting around 43%. Which 43% (on average of the 8 models some are higher) also sucks. I now have about 5 different ideas after talking with a professor at CU at how to improve my overall percents. I am trying to get over 75% accuracy once I have about that level (which isn’t that high) I am hoping with some user feedback on the site that the model will train and improve itself. Which would be really cool, and possible since pretty much the whole process is automated now.

I first was taking all of the categories and creating a positive and a negative vector. The positive was all of the categorized data in the model. The negative was all of the other data in all the other categories. This wasn’t doing so well, so I removed the general category from the negative vector. I also removed the uncategorized data from the negative vector since it is possible these could fit in the category. Doing this increased my model accuracy from the 30% to the 43%.

I am now considering other things I could do to improve the accuracy. One of the things I am considering is a two level model. The first would only say if the model relates to special education the second level would then categorize within the special education category. This would allow me to quickly dump anything I know isn’t related to special education at all. It would also allow me on the final site to have users help with the categorization process. Anything that couldn’t be categorized better than just special education related could be placed in a general category. The general category users could view and then place in the proper category which would in turn help train the system.

I am also now considering a move from SVMlight to libSVM. Apparently libSVM offers some better options and optimizations, but still uses the same input format. This is important because text2SVM, took awhile and was written with SVMlight in mind. I have done some other optimizations on text2SVM which isn’t included in the released source because the project has begun to become less general and more specific to my project. It has improved and become far faster though. If I move to libSVM this would allow me to get results of a categorization attempt as a percent. If I had percents I could compare the results to different models better which would be useful since the value comparison between models isn’t scaled the same.

One of the problems I am running into is testing time. It takes about 2 1/2 hours or so to create and run a new test. It requires a few different steps. If I run them all at once my machine runs out of memory and crashes. So I have to run the steps one at time even though the code is completely automated, it can’t run as such without time to dump the memory. Perhaps I will have to start looking around CU for a gigantic machine that I can use to do testing much faster.

The spam filter has gone through over 500 emails now and has an accuracy of 97.5% on unseen new email. This is great, if it wasn’t so specialized to my mail I would make the filter available to everyone.

That’s it for now. The good news is I think I am still headed in the right direction and I think I will end up with a capable system. The bad news is that I think it is going to be harder and more time consuming than originally planned. I will be busy with some other stuff and out of town over the next 3 weeks so there will probably be little updated information available on the project.

April 13, 2004

Programming progress

Today I accomplished alot on many different programming projects. 3 to be correct. Anyways, I got my comp org program almost done which is nice. I made some really good progress on my text categorization project for work. Then finally for my 3d graphics class i made some good progress on my very simple 3d shooter.

I am happy to have accomplished so much, but on the downside it is 10:30 and i have been programming the entire day on one project or another. Argg...

I swear i will have to do something fun and exciting for all of you soon. Then i will have something worth writting about again, but until then here is a picture of my 3d shooter in progress:

3d shooter.jpg

A step closer to fully automated

After recent success with my models i wanted to do some much more involved and usefull tests. The only problem was half of the stuff i was doing by hand. I had written some java software Text2SVM toat would help witht he conversions and such, but i had to give it the names of the files and everything myself. I now integrated Text2SVM more into newsshaker. It uses the database to find out the names of all the categories. It recursively sorts through all the text files in given directories. It is quite nice. I ran into some problems where i was running the entire system out of memory even with a full gig given to java, which would cause way to much swapping and slow the hold system down. I rewrote my code to break up the steps into smaller parts using much less memory and it now doesnt crash and runs 2 or 3 times faster.

I now can go straight from the database to 9 SVMlight formated text training datasets for models. The next step will be to write some code the generates the models using an interface between java and SVMlight. After that i will be writting some code to keep all the results of the testing organized and worthwhile, which i will be storing in the database. The final step will then be writting code that takes many random documents from my database and trys to categorize them, and stores if they were correctly told to be place in the category from which they came. I will then be storing a matrix of attempts to categorize a category and where it was actually categorized. This should be highly exciting because it will really let me see the info I need to know to make my system worka dn to know how reliably it works, and where the problems are occuring. It would let me for instants see if the space between special education parenting is to similiar and close to special education school to be determined, but if combined would serve as a valid and seperate categorization from everything else. School will probably keep me busy for awhile, but it is nice to be making some good progress and see a first beta version coming into very close view. Then i will have a wonderfull testing and development application for text categorization. Hopefully by the end of summer i will have everything generalized to the point that anyone could add categories and begin maintaining a category and seeing how they can get different results with different information retrival schemes, or using diffferent categorization algorythms besides SVMs.

Anyone have some other algorythms worth looking into for text categorization, besides LSA/LSI and SVMs?

April 9, 2004

Busy

Alright i have been really busy on my senior project for the last couple weeks so I haven't had time to really get any work done. I did however have a meeting with a CU AI professor who is familiar witht he use of SVMs. He thought i was on the right track and was approaching everything properly. He answered the one last question i had before i can really set the system up to start working on its own for categorization. So that was exciting. Now all i really need is a week or two to really spend some time coding. If i had the time i really think i could make a very impressive first run beta of the entire system. Then with some time i think it oculd turn into a pretty cool application. I am hoping to tweak some of the hard coded values to allow for much more flexability allowing hte system to be set up anywhere and work on categorizing any categories the user wants. The categories are currently hard coded into a few of the functions and in the end that wont be the best way to do things.

Seperate good news is that my senior project just passed a 1 and 1/2 hour live test with 80 law students and a professor with no errors and no problems. That is the longest time the system has been used continously and by far the most users on the system at once. It is really kind of cool to think about the fact that their was 80 law students actively using something that i was a large part of creating. We are going to run a larger more extensive test on monday where the professor will be braodcasting a bunch of questions in class. We will see how that works out in the end, I am excited about it. The site will move soon, but if anyone is interested in looking at what my senior project can do take a look at

http://blackout.cs.colorado.edu/mtroom3/jsp

It is an interactive classroom for the law school, so that professors can more easily get feedback and quiz large classes of students.

Finally a good friend of mine from my research lab was notice by google and they called her up to talk to her and ask for her resume. So that is some pretty exciting news, that they are actively searching out talent. Perhaps as my project matures they will stumble apon what i am doing.

March 30, 2004

Current Percent levels

These are the current success levels for models based on different categories. These models were built with the current data in the News Shaker database. They were converted to SVMlight models with the use of Text2SVM without stemming enabled.

FIRST GOOD SUCCESS!!

Using my Text2SVM after learning how to increase java memory size so that i could do a large test was very successful. I used about 2,700 documents and then put them into SVMlight. I used 90% training data and 10% testing data leaving around 270 tests. I achieved 95% accuracy in training SVM to recognize one text category from another. I am highly excited! Tomorrow i will be testing with several of my smaller categories today i tested with my largest category. If these trends contrinue.... eeehhhh. I was really only hoping to achieve over 80% correct. So lets hope this is the start of something truely wonderful. I know that the results continuing this high are very unlikely, but i am still really excited about the first good results. I am pumped about doing more testing tomorrow!!

March 29, 2004

NewsShaker: Features needed / bug report V.001

Features:
* from empty DB to fully functional (no manual data entry)
* No code should contain hard coded value refrencing categories
* Easy way to define where search should put results default (in a category or in the uncategorized)
* Ability for user to say they think the categorization is incorrect (if enough users say this it should be moved to the new category)
* Store all SVM results int he database
* a way to visualize the distances between the categories..
* how many categorizations per category have been correct or incorrect
* a way to start over the correct and incorrect after generating new SVM models
* SVM weighting with C towards the positive examples
* a way to let a user create their own account and their own categories to manage themselves
* When administrator is adding a URL to crawl. Should be able to pick depth to crawl and default category that all results will be placed in.
* Search entire database or by category using Lucecne
* Ability to add single page to a category
* More administration features
* Ability to start or stop auto categorization
* caching the front page
* Text2SVM integration
* Text2SVM configuration file
* ability to create the SVM categories from the web as administrator
* create only the dictionary and store it as one function
* use stored dictionary to create all needed spaces for SVM models
* ability to distinguish between multiple categories instead of single boolean.

Bugs:
* If the user chooses to move a page from one category to another but doesn't choose a new category it should do nothing and give them an error.
* Crawling from the web doesn't work anymore
* SVM first word spacing?? with the first character removal??? is this still a bug?
* Counts for the categories should be switch to be autocounted
* Text2SVM runs out of memory on large examples
* front page loads to slowly
* categories are manually counted let MYSQL do the counting!

March 8, 2004

Week of stuff

Well this is going to be a busy week. Instead of doing homework on saturday. I went to ft. Collins because my friend Matt wanted me to come up. Also since steve is in town i have been hanging out with him and doing stuff and there for not getting my work done. Today oddly enough instead of spending my time working on my various school projects, I worked for 6 hours on my work project. I accomplished quite a bit and I am now ready to introduce my Machine Learning blog. It follows my work and progress on some projects that i am working on and serves to be a center for most of my coding and source code.

I am sure that doesn't interest 90% of the people that read my blog, but oh well. I am planning to be really busy until spring break. Which is kind of annoying. I wanted to ask this girl out, but i really dont have any time to go out on a date before spring break. Also, the whole spring break thing is still up in the air. I seriously have no clue what I will be doing. Scott and Dom still dont know when they are off work, how much time they will have and such. Also, I am pretty sure they both would rather just spend it with thier girlfriends. So I am really thinking about just going to vegas with some of my other friends. Also Megan, one of my good friends from highschool is coming to colorado the same week as my break for her springbreak. I would really like to see her, but it is likely that no matter what I do i will be out of town. Maybe I should just flip a coin a couple of times and figure it out.

Well now I am off to a statistics review session.. yeaaa school from 7-9! You got to love being inside the entire day when it is beautiful outside.

February 16, 2004

open gl progress

Well first sorry about the site being down for awhile, my hosting service had some problems, but they have it fixed.

Second, i finished my openGL project for fractal terrains today. This project took me entirely way to long, but it has been hard to move back to c++ after having all the nice things java provides you for so long. Anyways i am slowly getting back on track. So take a look and i hope you all like my little fractals. It is alot cooler if you actually have the program since you can rotate and do all sorts of stuff with the terrain then. Oh well back to laying and now moving.

openglfractal.jpg

February 2, 2004

finished opengl

I just finished my first opengl progam. I know this one isn't 3d but it could be. I just had a hard time moving back to c++ at first since i am so used to java and remembering all the wierd ways to pass things in c++ sucked. Anyways simple but wonderfull since i am done with my first working and well documentated opengl program. I think i have a good understanding of how to work with opengl now as well. Anyways it is a fractal look and enjoy. i know it is simple.

koch.jpg

Well today was a big

Well today was a big relief... Since my server at work died twice on friday, I have been nervous all weekend that i might have lost all my work. today we recovered the server and i made sure to make backups of all of my files. So now even if the server dies (since we really dont know what the problem was) i wont loose any work. My project at work it moving along nicely. Their are about 900 sites in the database currently and we should be categorizing on the fly by the end of this week. Which will be a huge step. If all goes well i might have a highly successfully project right away. If not with some refinement over a few weeks we should be able to make it fairly successful.

January 15, 2004

Cool project

I just learned that the final project in my computer graphics course is to make a simple 3d Doom like game. I am excited. Depending on the models and if we can make them or we are just using stock models I will try to put a bunch of my friends in the game so that I can kill them and they can all kill each other. Yeaaaa violence. Either way it is going to be my first few steps in the direction of 3D graphics which is really cool and exciting.

July 14, 2003

Imatong of Boulder

Imatong Refugees - a site dedicated to helping Refugees live in the US.


I love her, and now she is online so check out the writings of,
Erin Miller

Web 2.0 craziness

View Dan Mayer's profile on LinkedIn

I Power Seekler
I Power Seekler




www.flickr.com
This is a Flickr badge showing public photos and videos from mayer_dan. Make your own badge here.