You are currently browsing the category archive for the ‘GPL’ category.

All -

I finally decided to put the Xcode project and associated source for pkviz up for free download and license it under GPL v3.

I’ve created a google code page for it HERE.

You can grab a stand alone zip of the source/project HERE.

(I’ve never used SVN before, so what’s up at the google code page might periodically be fubared, so you might want to start with the zip)

Feel free to download, comment, and please -contribute-. This was my first Objective-C app and first Xcode project, so if it’s a mess…well…deal or help? :)

Just remember the google code page if you want to post some updates or questions.

I’ve also made some haphazard notes to help people understand the code:

—–

The aquireData class handles reading the tcpdump text file. It uses Core Data to store the data. If I had to do it over, I wouldn’t have used Core Data…but it is what it is.  You can find the data model by double-clicking pkviz_DataModel under the Models folder in the project in Xcode.

pkGraphView is a subclass of NSView that I use to handle the layers, which are done in Core Animation (easy enough to understand). The view has a delegate function (drawLayer) which I handle in the layerDelegate class to deal with drawing the paths for each layer.

Everything else is handled by transformData – it’s pretty much my controller.

Rough flow:

the Load button tells aquireData to parse tcpdump and store in a core data context

The launch button kicks off transform data, which pulls in the data from the core data context, sticks it into an array, launches a thread to pop out individual packets, and then tells the view when it’s read to display another packet.  Everything else stops, starts, adjusts the current packet referenced, or aids this animation loop process.

The main array of packets in transformData is bytepakposSet.  It is an array of packet arrays. packet arrays contain arrays of bytes with 2 values in them: bytevalue, and byteposition

so, if you wanted to access the third packet in bytepakposSet and see what the byte value of the first byte stored is, you’d do:

[[[[bytepakposSet objectAtIndex:2] objectAtIndex:0] objectAtIndex:0] intValue];

if you wanted to get the byte value and position returned in an array:

[[bytepakposSet objectAtIndex:2] objectAtIndex:0]

Core Data doesnt return objects in order, so you dont know ahead of time what order the bytes are in the packet, youll have to sort them by position in packet first. You can find position:

[[[[bytepakposSet objectAtIndex:2] objectAtIndex:0] objectAtIndex:1] intValue];

Color updates on the mosaic generator have now been made. It’s a bit slow – since it operates on all three color bands independently of each other – but the effects are kind of cool. The questions the code asks you make more sense, now, and you no longer have to specify the base image on the command line.

I’ll release Windows and Mac binaries in the next 2 days or so. I also threw a GPL open-source license on it.

You can find the code here (and I know it’s still not completely “python-like”, that’s next):

http://sintixerr.wordpress.com/tone-altering-mosaic-generator-tamogen-in-python/

For sample images, I used two old conte-crayon pieces I’d done and combined them. The first image is of the “whole” mosaic. The second is zoomed in. I love the color variations the code creates when it makes the mosaic – I think the second image could be a standalone piece of art in its own right:

Contact Me

sintixerr@gmail.com

Twitter Updates

My Art / Misc. Photo Stream

tn2f

Discourse

IMG_2692

IMG_2685_2

IMG_2677_2

More Photos

a

Follow

Get every new post delivered to your Inbox.