Archive for 2008

NetSketch Approved and CafePress Sucks!

Finally! I got an email from Apple today confirming that NetSketch will be available on the App Store this Friday. Let’s hope everything goes well this weekend :-) .

NetSketch Approval Email

Unfortunately, CafePress had to step in and rain on my parade. I ordered a few NetSketch t-shirts after I made the 512×512 version of the logo. I haven’t used CafePress in a few years and I decided to give their black shirts a try. I wish I could say it was a positive experience, but they look terrible. I don’t think it was an error on my part – I didn’t use any sort of drop shadow or blur effects in the design and my images were approx. 2300px across. The white areas of the logo and title came out a middle gray – as if the shirt had been washed 50 times already. Black was clearly visible through the text – even from 10+ feet away. Here’s a closeup:

I ordered a white shirt as well. I figured that one would have to come out, but the black parts aren’t solid, and it looks as though it was printed in two passes. There’s quite a bit of horizontal bleeding on the text – as though it was printed once, and then printed again 2mm off. There might be some other reason, but CafePress’ support pages were no help!

Bad white shirt.

Either way, I’ll be leaving CafePress. I’ve requested a refund and ordered shirts from Zazzle, which was the recommended on this site:

We’ll see how it goes!

NetSketch in final testing

I’ve been hard at work on NetSketch these past few weeks and the site is finally up over at I’m putting some finishing touches on the app and it should be ready for the App store launch on the 11th!

- Ben

NetSketch is coming…

I can’t believe it’s been so long since I posted here. It seems like it’s been a few months since school let out, but it’s only been 4(?) weeks! It’s been a busy summer so far – I’m working full-time for Mailtrust here in Blacksburg – and I’ve been working to put the finishing touches on my iPhone app at night. I’ve finally named it NetSketch. It’s  collaborative drawing software that lets you draw with friends on the iPhone’s screen. It’s on track for release after Apple’s June 9th rev of iPhone O 2.0!

NetSketch Website

It’s not done yet and I’ll probably save the real version until the app is done. Stay tuned, though!

Document Fingerprinting in MATLAB

It’s been a while since I’ve posted here. The semester is in full swing, and things at the newspaper have been keeping me busy. A few weeks ago I started reading about document fingerprinting for plagiarism detection, and I’ve made some progress.I was hoping to create an online lyrics aggregator and software to build a lyrics database. Basically, server software would search google for “Better than Ezra Closer Lyrics”, visit the top pages, and use plagiarism detection algorithms to “find” the lyrics on the pages. The basic assumption was that sections of the HTML containing lyrics would be nearly identical. Taking this area of each page, the data could be further refined by identifying phrases and punctuation that was inconsistent across the results. I hate going to sites that offer incorrect, damaged lyrics. Lookup lyrics for any rap song and you’ll see the problem. Every site is slightly different. Using plagiarism and document fingerprinting, it would be possible to find the “average” of these versions – hopefully coming to a more accurate version. Read more

Maya Distributed Rendering Tool

Abstract: The Maya Distributed Render Client and Slave system allows you to specify a render job on one machine and start it on a set of networked “slave” machines. It also allows you to view the completed images and save them to a folder on the local hard disk. The system was built in Cocoa for Mac OS X and uses Rendezvous networking technologies for automatic slave discovery. It was designed for a relatively slow network of machines running Alias Maya 6.0. I haven’t tested it with earlier versions, and versions newer than 6.0 have this functionality built in.

Installation: The Maya Distributed Render Client is a relatively straightforward application. Drag it to your Applications folder, and make sure limitations are not set which would restrict users from running it. A copy of Maya is not required for the client machine, because the client will not use itself as a render slave. (The Idea here is that you can continue modeling while the scene is rendering.)

Setting up Slaves: The Maya Distributed Render Slave runs on the rendering machines, and handles job requests. When a request is received, the slave transfers the necessary scene data and starts the render in Maya. Drag the slave application to your applications folder and make sure a licensed copy of Maya (must be recent enough to open the file) is installed on the machine. Launch the slave application and enter a name for the machine in the edit field. Do not select an images folder. Press the Start button to make the slave available on the network. If the machine will be used for rendering on a regular basis, you might consider making the application a startup item via the Accounts preference pane.

Rendering a Scene: To render a scene using the Maya Distributed Render Client, run the application and select the scene file. If your scene contains textures or source images, you must also select a “textures directory”. This textures directory will be copied to the remote slaves along with the scene file. Once you have selected a scene file and the textures folder, enter the start and stop points for the animation. The client needs to know which frames you want to render, in order to distribute them evenly among the slaves. All other render settings (such as image size, format, and quality) should be set from within Maya using the Render Settings window.
  Once you have entered all the necessary information, select the slaves you   would like to use from the list in the left half of the window. If you don’t   see any slaves, see the troubleshooting information below. Once you have slaves   selected, press the Render button. Note that the “remote slaves” system is   not completely finished. It may not work under certain circumstances (and that   url that’s in there? not a real slave ;-) – sorry). Chasing arrows will appear,   but will not move (I got lazy). When all of the data has been sent and the   remote renders started, the Rendered Images window will appear and allow you   to copy the completed images back to your machine. The list of images updates   once a minute, so… be patient.

Client Troubleshooting:
  1. When I press the render button nothing seems to happen. The slaves do not     begin the render, and the images window never comes up.
  Open the console and look for an error message being sent when you press the   Render button. If you have done something bad (like force-quitted the application   while the socket connections were still open), you may need to log out and   log back in to clear the port. If this doesn’t work, try restarting the render   slaves. (sockets are VERY messy things – If something unexpected happens and   the connection isn’t properly closed down, any attempts to re-open it will   fail)
  2. I don’t see any render slaves in the list.
  Make sure there are computers on your local network running the Maya Distributed   Render Slave application, and that you have pressed the “Start” button   in each of these. If you still aren’t seeing any (which would be very odd),   check your network connection and/or restart. The Maya Distributed applications   use Rendezvous Networking for automatic socket discovery, and that usually   doesn’t fail.

Slave Troubleshooting:
  1. When the slave receives a job, a window appears asking me to find Maya.
  The slave doesn’t know where Maya is on the disk, or doesn’t know which version   to use. Select it and continue. To prevent the window from coming up again,   keep Maya running in the background.
  2. The slave machine renders, but the images do not appear in the list on the   client machine.
  This is what the images directory option is for. By default, the images are   saved to /private/tmp/MayaDistributedProject/, but in some special cases   (permissions problems, mostly) that has not been working. Find where Maya has   put the images, and the next time you launch the rendering slave select that   folder as the images folder. When the client requests the list of rendered   images, the slave will return the contents of that folder instead of the default.

Well, that’s about it! I covered everything pretty briefly. If you have any questions about the Maya Distributed system, feel free to email me. Why does the menu read “Picture Sharing Browser”? Well, I developed this off of an Apple Developer example, which used Rendezvous to do picture sharing. First time                   I’ve used rendezvous…

Version History:
  1.0 = The current version. Does everything I need it too. If I end up getting   a lot of requests for improvements, I will probably make another version.