Saturday, November 27, 2010

Guns are safe... see it says so right there..

I ran across this on a completely unrelated site....
It got a few laughs out of me.. so I felt obliged to share the love.

Monday, November 22, 2010

I Can Read Your Mind.. *dramatic music*

I'm not really sure what I want to do with this.. but given enough $$$ I would love to
buy a few nice toys.  Maybe for christmas I'll spend the $500 for the dev kit.

But.. here's some basic info I found really interesting.

Let's start off with a ted.com link, since that website just owns..and you should all
regularly lurk on there to see what they release.  "Click Me"

In theory, you buy this little headset, which costs around $300 or so.  (bound to go down in price).
Emotiv seems to be the biggest player in this area.  The headset reads your brainwaves.

Now, it's not *actually* reading your mind, but it does detect patterns.  So if someone
is concentrating really hard on something.. or thinking about it in a certain way, it.. in theory ...
can detect that and can be programmed to react.

Emotiv has a nice little mini market where you can publish your apps.  So.. I *think* about
it, and I can flip the next, or previous picture in an image gallery.  There's a game where the surrounding
changes based on my mood.

The potential implications of this sort of technology is just amazing... I can't wait to see it a bit more mainstream.

forget the ps3 move, wii... you have physical movement + mind and emotional input that would affect the gameplay.

You could in theory make it so you walk into the house.. think about turning on the light.. lights are on.. think about watching tv... and the tv responds and turns on....

man.. I really can't wait to play with this.  Anyone want to donate one of these to me?  Also, if you have any great ideas..feel free to comment, would love to hear some feedback/thoughts on this.

On a side note... this was totally supposed to be science fiction... I know its not quiet there yet.. but thinking about something..and having it respond.. we're a few steps away from creating artificial ESP.

PS.  Best thing I like about Emotiv right now.. is that they're working on a Linux version*before* looking at mac.

Friday, November 5, 2010

MetaClass

I ran across this from an old email.  One of my favorite little snippets.

6.3.3  The Class Metaclass

As objects, metaclasses are also instances of a class, and that class is
also a metaclass since the metaclasses are class objects.  However,
unlike classes, all metaclasses share the same protocol, namely the
message that creates their single instance.  Therefore, the metaclass
objects are all instances of the same class, namely the system class
Metaclass. For any class C, the expression C class class returns
Metaclass. Metaclass defines a single instance variable, thisClass,
which refers to the metaclass's instance.

Now consider Metaclass class, which is the metaclass of Metaclass. Every
metaclass is an instance of Metaclass, so Metaclass class is an instance
as well.  Because Metaclass is the instance of Metaclass class, this is
the point of circularity in the system with respect to class (i.e.,
"instance of") references. The class/instance relationships among
objects, classes, metaclasses, Metaclass and Metaclass class, are
illustrated in Figure 6.6

If you can make sense of that on a first read, you get a gold star.

Monday, November 1, 2010

Google Talk + Arch Linux (Depricated)

 In theory the updated plugin and ssl packages fix this.  Left on the interwebz mostly for reference.

Well I discovered that google talk was released for linux and that it was in aur, which translated into not having to futz with the deb/rpm files to figure out how to convert them to a proper arch PKGBUILD.

Okay.. beautiful. so.. let's install it.
packer -S google-talkplugin
(replace packer by your favorite aur package manager).

google-talk depends on libnotify and pulseaudio so.. simple enough.

Okay, load up chrome or firefox, open up the plugins about page.





Excellent... now what?  everything looks good.. I log into gmail, click on the cam icon and it tells me to go download the plugin I just installed...  *angry face*. Well, that's not what its supposed to do.

Fine.. lets run this in terminal.. to see what's going on.

[000:040] Started GoogleTalkPlugin, path=/opt/google/talkplugin/GoogleTalkPlugin
[000:040] Waiting for GoogleTalkPlugin to start...
/opt/google/talkplugin/GoogleTalkPlugin: error while loading shared libraries: libssl.so.0.9.8: cannot open shared object file: No such file or directory
*** NSPlugin Viewer *** WARNING: unhandled variable 18 () in NPN_GetValue()
*** NSPlugin Viewer *** WARNING: unhandled variable 18 () in NPN_GetValue()

Okay.. so.. lets see what this plugin is doing:

ldd /opt/google/talkplugin/GoogleTalkPlugin

    linux-gate.so.1 =>  (0xf772b000)
    libX11.so.6 => /usr/lib32/libX11.so.6 (0xf75d5000)
    libXfixes.so.3 => /usr/lib32/libXfixes.so.3 (0xf75d0000)
    libdl.so.2 => /usr/lib32/libdl.so.2 (0xf75cc000)
    libpthread.so.0 => /usr/lib32/libpthread.so.0 (0xf75b2000)
    librt.so.1 => /usr/lib32/librt.so.1 (0xf75a8000)
    libssl.so.0.9.8 => not found
    libcrypto.so.0.9.8 => not found
    libstdc++.so.6 => /usr/lib32/libstdc++.so.6 (0xf74ba000)
    libm.so.6 => /usr/lib32/libm.so.6 (0xf7495000)
    libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf747a000)
    libc.so.6 => /usr/lib32/libc.so.6 (0xf732e000)
    libxcb.so.1 => /usr/lib32/libxcb.so.1 (0xf7316000)
    /lib/ld-linux.so.2 (0xf772c000)
    libXau.so.6 => /usr/lib32/libXau.so.6 (0xf7313000)
    libXdmcp.so.6 => /usr/lib32/libXdmcp.so.6 (0xf730e000)

Hmm.. Okay.. libssl not found. I'm fairly sure I have openssl installed, though it seems I have 1.x. Arch Linux seems to be too new for its own good in this case.


Okay.. fine. Let's see what we can find.

packer -Ss openssl  
which returns among other items:  lib32-openssl-compatibility

pacman -S lib32-openssl-compatibility
Now we should have all the components that we need.  I tried running it again, but it seems it still can't find library we just installed.

pacman -Ql lib32-openssl-compatibility returns the path name where it will be installed.

Okay, it install the library in /opt/lib32/usr/lib which I'm guessing most apps aren't going to check.  It also doesn't seem like it installed a conf file telling our system to look in that directory.  Well, we can help it along a bit.


echo "/opt/lib32/usr/lib" >  /etc/ld.so.conf.d/lib32-openssl.conf
ldconfig
Reload your browser....and amazingly enough.. google chat video and all works perfectly.

Problems:  This drove me up the wall on my arch linux OS for longer then I care to admit.  open up alsamixer.. find your mic volume, and hit the spacebar to enable capture.  *insert homer moment*