My last post described the best way I've found to set up a secure P2P authenticated VoIP call on your Android handset. I endorsed the Ekiga free SIP service to be your registrar for your unique SIP address. Since the registrar is the central database to look up other users, there is a case to bring this service into your control, rather than to depend on a third party.
This is not a trivial task, since it requires server infrastructure and an esoteric configuration process. It also requires routine maintenance and security updates to ensure the registrar is available when any user (including yourself) wants to contact another. There are three major applications that offer a SIP registration service. They vary in complexity and user community. They also have a wide variation of ZRTP support. Since ZRTP is a P2P authentication protocol, a middle man like these applications does not have to get in the way, it just has to pass along the correct signalling information so the peers can move onto the encryption key exchange.This is a follow up to my previous post. After you have CSipSimple installed on your mobile handset, you will need a place to register a SIP username so you can contact others. The fastest way to get started with this is to use one of a handful of free SIP providers. I like the Ekiga free SIP service.
The only drawback to this service is the userbase is large enough that the namespace of easy to remember words is frequently occupied. Chances are you will not be able to register your name and must make some novel admendments to ensure a unique name. Since telephony is closely associated with numbers, not words, it will be easier to find a 10 digit number combination to use as your username. This makes username input simpler since CSipSimple gives you the familliar telephone dial pad as the default interface. After you create a user with Ekiga, you must input the username and password into CSipSimple to register with the service. There is a preset configuration screen for the Ekiga service in the Account Add interface. Fill in the forms and your handset will be registered if you have an active data connection. Calling another user with CSipSimple will initiate the ZRTP handshake if both people have enabled it. Subsequent calls do not require this verfication, since it checks a Short Authentication String (SAS) for each peer. Another SIP provider that is similar to Ekiga is IPtel. It supports the same features, including ZRTP. At this point, now you should have everything you need to start an anonymous conversation on a mobile handset. The one drawback of this configuration is you may not fully trust the third-party SIP registrar, namely Ekiga. The solution to this is to run your own registrar, which is the next installment. ZRTP me ASAP!Things have changed since that performance in the previous post from over two years ago. It's time to get back to some documenting!
I spent this beautiful saturday afternoon reading about a direct marketing company called Rapleaf. From their own site:
Learn about your audience. Analytics can tell you a rich story about your loyal users, and help you understand who is using your product.
They have a privacy section (registration required) where you can look at your own information as seen by Rapleaf. I signed up and recorded some numbers about their score on how well they know me despite never contacting me personally and asking for this information. Results!
They got two thirds of my personal information correct. The items they got incorrect were biased in an overly optimistic direction. For example, if Rapleaf thought I was very interested in underwater basket weaving but in reality, I am not at all interested in that, I would give it a value of 1 in the distance from reality attribute. If Rapleaf thought my estimated income was lower than it is in reality, then that category got a negative value.
The aggregate distance is my attempt to represent how much bias is contained in their data. The value of 22.78 makes sense as it is roughly 1/3. So that balances out. Obviously if they were 100% correct, all the values in the distance from reality would be zero and there would be zero percent bias.
I am very interested in analytics companies like Rapleaf. Since email addresses are now used as a unique identifier with higher frequency, they now have much more context embedded in those tiny characters than in the past. I'm curious how difficult it is to have an active email address that is used for communication with other living persons that will have a 100% bias in Rapleaf.
It's about time! I wrote some Perl poetry. I'm rather proud of it. Copy and paste, it'll execute.
"If it involves Twitter and you can think it, it exists"
Does this exist?Interesting conversation tonight.
11:39 ashencoho: Ezekiel 23:20.
11:41 Lee Azzarello: Bowery, 1978
12:00 Wednesday, September 23, 2009
12:00 ashencoho: eh?
12:01 Lee Azzarello: do you like punk rock?
12:01 ashencoho: not really
who dis?
12:02 Lee Azzarello: dunno, you sent me a message first. who are you?
12:03 ashencoho: no i have no idea who this is
12:06 Lee Azzarello: interesting, this is the second time I got a message on AIM with a bible passage
12:06 ashencoho: from me???
12:06 Lee Azzarello: and it's the second time I responded with a random location and date
yea, from your AIM nick
12:06 ashencoho: nick???
12:06 Lee Azzarello: login/username/nickname
12:06 ashencoho: haha you got the wrong guy cheif
chief
oh ok
well this is scott
and i dont like the bible
so i dont quote it
12:07 Lee Azzarello: neither do I, but check this:
12:07 ashencoho: well i mean the bibles ok, but people use it to justify ridiculous shit
12:07 Lee Azzarello: 11:39:31 PM ashencoho: Ezekiel 23:20. tha'ts from my AIM client log tonight
12:08 ashencoho: ok?
12:08 Lee Azzarello: so that's not your AIM username?
ashencoho
12:08 ashencoho: no, it looks a lot like yours...
12:09 Lee Azzarello: but mine is spelled differently, or are you seeing mine with the same username from me?
12:09 ashencoho: why are you IMing me if thats the screenname that IMed you in the first place?
12:09 Lee Azzarello: that's what I'm trying to figure out. neither of us have that screenname
12:10 ashencoho: what the fuck
im abandoning this
12:10 Lee Azzarello: but somehow we were connected by some weird bible quote
12:10 ashencoho: what??
12:10 Lee Azzarello: for serious
12:10 ashencoho: i just want to know how you got my screenname in the first place?
12:11 Lee Azzarello: I didn't. I just replied to the original message from a screenname "ashencoho"
12:11 ashencoho: oh ok
12:11 Lee Azzarello: and somehow that got to you. I understand that your screenname is not that now.
neither is mine
12:11 ashencoho: well this says your name is PassedOutCoho
12:11 Lee Azzarello: woah. weird
12:11 ashencoho: haha
this is so odd
12:12 Lee Azzarello: obviously some christian propaganda
12:12 ashencoho: not cool
where are you even from?
12:12 Lee Azzarello: well, thanks for clearing this up
I'm from NYC
12:12 ashencoho: holy crap
im in north carolina
12:12 Lee Azzarello: not too bad. I saw a NC licence plate today
12:13 ashencoho: word
well this is too weird for me
i feel like we're both getting hacked right now
or maybe its just me
12:13 Lee Azzarello: eh, whatever, we're just talking about the hacking, right?
let's call it a night
12:13 ashencoho: alright, peace
12:13 Lee Azzarello: peace
I wrote about Anthology's calendar aggregation last January. Here's the email I wrote:
Hello John, I noticed the calendar on the Anthology site didn't have a iCal format available. I wrote a script to scrape the site and generated one on Google calendar. Here's the deets: http://lee.rockingtiger.com/posts/19 If you want some help in the future generating an iCal feed without my silly hack I'd be happy to help make it a feature of the site. Thanks for keeping it real! Best,The response from John Mhiripiri Director of Administration & Exhibitions
Lee Azzarello
Hi Lee, Thanks for your interest. We will try to have a look at what you've done. JohnOh snap! Thanks dude. I guess scheduling underground art films is so hard you have to blow off free help. But I joke. He probably didn't understand the point of creating a syndicated calendar format when he had a perfectly good print edition and a web page. So now I'm writing again. This time I received a flyer from The Kitchen. Another arts institution in NYC. Great calendar, on paper. Went to their site, even worse. Their online calendar is burried in a Flash file. Fail! This has to change. I want to see events on my phone calendar without doing hours of data entry. Note to The Kitchen, if your intern does data entry, I don't have to because your intern already did it! I have some ideas on how to solve this problem.
I've become very interested in logic. How it effects human behavior and machine behavior alike. Just today I discovered that my brain does not respond logically to inverse logic. I approached the exit to a shop. There were two doors, one was locked and one was unlocked. The locked door had a paper sign taped above it's handle with an arrow pointing to the unlocked door and words stating "please use other door". As I approched both doors to exit, I pushed on the locked door, looking directly at the sign. A few seconds went by and I pushed the unlocked door after reading the sign and understanding the meaning.
I interpret my initial failure as a reaction to indirection. The sign did not inform me which door to use, though it was placed on the door not to use. After reading the sign it was obvious which door to use since the arrow was pointing to it, but the keyword "other" is indirect. It does not specify anything more than the fact that this door is not functioning as a door, so it should not be used. It does not answer the question of where the "other door" is located. I think a more direct instruction would be to place a sign on the unlocked door stating "please use this door". There's not contextual shift and the problem remains within this single point of view. Of course the most logical solution would be if the shopkeeper would unlock both doors, since a locked door isn't much use during business hours.Listening to 4 minutes of Herzog speak gave me some emotional contagion. So much that I transcribed it.
Of course we are challenging nature itself and it hits back, it just hits back and that's all and that's grandiose about it and we have to accept that it is much stronger than we are. Kinsky always says it's full of erotic elements I don't see it so much erotic I see it more full of obscenity. it's just...and nature here is vile and base. I wouldn't see anything erotical here I would see fornication and asphyxiation and choking and fighting for survival and growing and just rotting away. Of course there's a lot of misery but it is the same misery that is all around us. The trees here are in misery and the birds are in misery i don't think they sing they just screech in pain. it's an unfinished country it's still prehistorical. the only thing that's lacking is the dinosaurs here. it's like a curse weighing on an entire landscape and whoever goes too deep into this has his share of that curse so we are cursed with what we are doing here. it's a land that god if he exists has created in anger. it's the only land where creation is unfinished yet. taking a close look at what's around us there is some sort of a harmony, it is the harmony of overwhelming and collective murder. and we in comparison to the articulate vileness and baseness and obscenity of all this jungle, we in comparison to that enormous articulation, we only sound and look like barely pronounced and half finished sentences out of a stupid suburban novel, a cheap novel. and we have to become humble in front of this overwhelming misery and overwhelming fornication, overwhelming growth and overwhelming lack of order. even the stars up here in the sky look like a mess. there is no harmony in the universe, we have to get acquainted to this idea there is no real harmony as we have conceived it. but when I say this i say this all full of admiration for the jungle, it is not that I hate it; I love it. I love it very much but I love it against my better judgment.Fucking hell Werner, where do you get your certainty? Can I have some of that drank?
Taking a break writing here in favor of a short adventure in apartment hunting.
In an homage to the Television Apocalypse, Youtube is showing classic television shows like The Outer Limits. It's excellent psychodrama. Here's a transcript from episode 1008 titled The Human Factor.
Man: if this machine works it will be possible for two minds to communicate directly. To share the same thoughts and emotions simultaneously. Woman: emotions? Man: psychiatrists think the intellect is a useful but devious trait. this machine will let me know what the subject is really feeling, way down underneath the intellect. Woman: I'm not sure I want to go through with it. Man: be a good girl. (pats her on the shoulder patronizingly) Man: take a look at the oscilliscope. Woman: Huh. Well you can't tell too much from that, can you? Man: Not too much. But in a moment I may know what you really think. because I intend to amplify those waves and feed them back to a machine into a terminal instrument which is capable of translating them back into the thoughts and emotions that produced them. and that terminal instrument is my own brain. Now relax, I'm bringing up the power.
It's 2009. The Bandwidth of a consumer Internet connection is going up. Laptop computers are ubiquitous, small storage devices are everywhere and can meet or exceed internal storage, everyone's making movies, sounds, pictures on their computers. I'm doing this. But where the fuck am I going to put this stuff when I don't want it available on the laptop but I don't want to delete it? There are a lot of solutions to this problem. Most notable is Apple's TimeMachine product, which makes the decision for you by dedicating an entire external USB disk to the role of incremental backup. But what if I want to control what gets backed up and what doesn't? Some things should not be backed up. Cache files, auto generated image thumbnails, temporary files, garbage directories generated by OS X, private documents with very particular accounting of where each copy resides. Apple has taken the road of abundance and thrown assumptions of privacy and efficiency out with the bathwater. Fortunately, OS X and GNU/Linux have neato user obsequious tools like rsync and rdiff-backup. For my Mac, I wrote a simple script that backs up my entire home directory in one command with an optional file to exclude directories to backup.
#!/bin/sh
EXCLUDE_FILE="$HOME/bin/full_backup.exclude"
rsync -rv --progress --stats --exclude-from=$EXCLUDE_FILE $HOME/ $1
Search for EXCLUDE PATTERNS in the rsync manpage for the exclude patterns file format. Basically, one on each line with shell wildcards accepted.
This will copy everything in my home directory except for the files (or patterns) in the .exclude file to a directory
passed in as an argument at runtime. It will also give you an realtime progress meter for each file! Neato.
Kevin Farrell and Devin Maxwell are
Four Trio This recording is produced with love by arsenic-free music: "we have arsenic-free music, they don't"Doom Metal. An excellently named genre. I can't stop listening to Nadja's cover of Needle In The Hay, my favorite Elliot Smith song of all time. Oh yeah, and Lala is my new favorite music site.
I learned how to make materials, atmosphere and a sun! Here's my first test render with the finalized model.
I have decided to give the movie a working title of "radio astronomy". Not too catchy but it makes me feel funny when I say it.
Also, the Wacom tablet is not worth it. While the x.org drivers and the kernel drivers in CentOS 5.3 work well, somehow the application specific configuration is different and crashes, making the pressure and tilt useless. Would be nice to debug sometime but right now I'm not doing much painting or drawing.
A picture tells a thousand words. Here's my story from this weekend
On deck: Wacom tablet installation and configuration for the OS, Blender, Gimp and Inkscape. Oh my!
Dove in head on. Here's my list:
The Good:/lib/modules/fglrx/. Also requires crucial settings for 3D
acceleration to perform in a visually acceptable way (read: 3D objects do not
get clipped by a noisy black plane). These settings are also
not documented and probably manifested from my particular hardware
configuration.Got a nice 2 way AMD64 workstation with an ATI R350 video card. Old hardware but better than anything else I have for the previs work. CentOS is...well it's interesting. The video card worked by default for GLX mode and the monitor resolution was auto detected to 1280x1024.
There are a lot of missing pieces, most of which are related to software. CentOS has a much more conservative selection of packages then I'm used to. Notable differences from Debian:About 11 days ago I set out on a journey to create a custom Debian package repository to serve my own custom built packages based on very specific versions of source code. Through the oral history of my predecessors and some experimentation, I have accomplished my goals. It was not easy. I'll outline my process step by step here, so other can continue the tradition. Yea knowledge!
Before you start out with any labor, you must first answer some preliminary questions and sketch out your architecture. The first question you have to answer is "who else will be using these packages". If the answer is "no one" this article is not for you.apt-get install checkinstall for that. If the
answer is "many other servers and workstations controlled by others aside from
myself all running various versions of Debian or Ubuntu", then read on.
My needs
aptitude install pbuilder reprepro nginx dpkg-dev debhelper devscripts fakeroot dh-make autotools-dev cdbs dpatch
Next open the control file. Verify all dependencies for the versions on your
build system. All we need to do here is make sure the package knows about it's
supporting libraries. Adjust the version numbers as needed. Now you have to open
the rules file. If you added any custom
configuration options when you first compiled the code, you need to find the
section that calls ./configure and add those options. You also need to read
through the build target and see if the original author of it is doing some
weird things with the build process. If it matches up pretty well with your own
successful compiliation then you can move on.
In some cases you might need to patch the source code or perhaps the original
author's patches won't apply cleanly to your new source code. This is what
dpatch is for. Compare the old patches with an interactive dpatch shell by
entering dpatch-edit-patch [patchname] where patchname is what you
want to call the patch. Tuxmaniac has a Short
tutorial.
Run a test build/clean directly with fakeroot debian/rules
[build|clean] Where build or clean is the target you wish to test. If the
build process is functional, it's time to build the source and binary packages!
Yea! But not yet...Aw :c
Build dependencies. During your testing you might have noticed that the test
build fails due to missing build deps. You can install these deps by hand each
time but that's a pain. Fortunately pbuilder provides a nice shell script that
will figure these out and install them. Just run this in your debianized source
directory:
/usr/lib/pbuilder/pbuilder-satisfydepends
Magical! You have all build dependencies installed. Now you can try and build
the package. I'm using debuild like so:
debuild -us -uc
If debuild succeeds, you should have a bunch of files one directory up. An
explaination of their roles:
dpkg-source -x
*.dsc
Next up, serving them from a repository!
Found this poster in the hallway of my office this morning. It is advertising the Wall About film festival. Sounds cool: I haven't heard of it, the poster is designed well and it has the word "film" in it. Relevant to my interests. Then I had the misfortune of reading the text on their web page. I'll copy verbatim to save the agony of looking at the whole thing.
Wallabout is: a collaborative project putting cultural assembly into explicit practice; a collective celebrating artists’ efforts and the co-production of art; a festival promoting the continuous flow of creative episteme and the techne. It is a question leading to a question leading to a question. Wallabout is committed to challenging our minds while exulting the works of to-day. Wallabout is about it all.Sad thing is I'm still interested. Can't judge poorly the whole event for one bad writer. Fucking art.
I rented this DVD as a reference for my film not knowing what to expect. Well, here's the 8 minutes of chapter 2, see for yourself:
"Workflow" is a word I hear a lot but no one has a definition for it aside for what "works for them". So perhaps a good workflow is what works for me? Let's see. Since I'm a real software developer and a fake filmmaker, I will take my software workflow, which is quite productive and adapt it to directing/producing a film. Here's my software toolset as it stands:
I'm working on a short film. It is currently untitled. Here are my production notes up until now.
Doing previsualization from nothing to something. Can't get a permit more than once so that rules out coverage on location. Started with a top down photograph of the architectural footprint from Google Earth, used the software measuring tools to determine some rough distances between points. Took the photo and brought it into Inkscape. Began tracing paths and curves around significants parts of the landscape. Got the proportions right. Imported curves into Blender, two week crash course in 3D modeling. Got the right paths converted into polygons and through a lot of guess work, some arithmetic and a lot of measuring defined one unit in a realistic scale. Read online that the building is 6 stories, guessed that one story will equal 10 feet and fudged the height of the building to 60 feet. Couldn't find any specs on the water tower so calculating height is impossible. But lo and behold, there is a treasure trove of photographic coverage on Flickr, and thanks to Flickr's camera metadata reader, I got lucky and found a dude who did helicopter shots with a Nikon D50. Both building and water tower in frame. Got the lens mesaurement and the aspect ratio of the shot. Exported data from Blender to Autodesk FBX format, solicited T for some help with that precious software. Imported FBX and T did her magic by creating the same camera and locking it to the photograph. The original geometry was composited with the photograph and the camera was moved and scaled to make the 3D building fit with the size and angle of the photograph. That gave us the water tower height reference in a perspecitive view. She created a cylinder of the proper height and exported both building and water tower as a Wavefront OBJ format file. I imported that file back into Blender and now I must match it up to the scene I have. This process was facinating. The photographic reference was what I was missing all along. It's amazing that I can use the Internet as a reference for not only visual information but also camera and lens details which can apply to a 3D world. It made me think of my first calculus class, since the number of known values was so little but it wasn't merely a 2D plane so things like angles, tangents and lens curvature influenced the results. We have come so far from those days of proving our physical world on paper to taking what was written on that paper and transforming it into a computer program so we are no longer required to do the math necessary to make the simulation correct.Two small notes about chef conventions (assumptions), after I got my test installation running.
I'm experimenting with Chef after attending Ezra Zygmuntowicz's talk about it at Philly E-Tech conference last week. The back story is that I began writing my own framework in Perl two weeks ago to automate building up EC2 instances. I made some progress but it was far from extensible. So I'm trying chef. If all goes well I'll have a framework in place to create new nodes so I'll never have to log into them, they will "just work". The goal being a base Debian EC2 image creation and a tiny bootstrap script passed as per-instance metadata to get chef installed.
First Impressions? Not too good. Here's my test, ported from a subroutine I wrote in perl with some file I/O and a big ol' system() call.Three days of rest for the vacation and I'm ready to go back. The way back was not as eventful as the way out. I woke up late. Real late. Didn't leave Philly until 1PM and I had to catch the ferry at 7PM. That's 6 hours to cycle 85 miles. And the weather forecast was for rain at 5PM. Sounds AWESOME. I also had a 10 pound load (including laptop computer) and no matter which way I turned there was a headwind from the north.
It was everything I expected. Not since PBP 2007 did I suffer so much on a bike ride. Fuck that. With more time and better weather the route is very pleasant. Few turns, good roads and a nice pace between towns. Here's my map and near finalized cue sheet. WARNING! Page 3 is the route back. Page 1 and 2 is the route out.