Sipie + lirc + ATI remote
I’ve setup a Linux machine to pipe audio into my house. I use Amarok to listen to mp3’s and internet radio. Recently I’ve added an RF remote and and the capability to listen to Sirius radio. A few people have asked how I did it, so I thought it would be worth a blog post.
I found and app called Sipie. Sipie is a simple little Linux application to listen to listen to Sirius radio. I decided on using the ATI remote because it’s an RF remote, I can use it in any room in the house. Lirc the program that delivers commands from my remote to Amarok (and Sipie).
The truth is that neither Amarok nor Sipie have native LIRC support
But I worked around this by using irexec to control Sipie. And I used dcop to control Amarok. Thankfully Amarok does have a very complete dcom interface, but I could find very little useful documentation on it.
Sun overrun by marketing department
I have to start by saying, I really like Java. I’m not a hater. It is my language of choice for many projects. Java solves a lot of problems well. And, like everything, has its drawbacks too. And one of those drawbacks is the way Sun markets Java.
What bugs me about Sun is its marketing department. Does every 3rd party application need the Java logo upon startup?
If you write an applet, Sun’s marketing department is there to make sure there’s an animated Java Logo taxing the already strained CPU while your applet loads.
If you write a Java Web Start application, Sun’s marketing department is there to make sure the users see a big splash screen proclaim the use of Java in the application.
And lets not forget that all important Java tray icon that needs to be visible whenever the JVM is loaded.
Want to use an application on your phone? Well, hold everything while Sun’s marketing department throws up a splash screen to inform you that, yes indeed this application uses Java.
And its a good thing they tell you its written in Java too. Just imagine the catastrophe that would follow if the user was somehow unaware that she was using application written in Java.
I believe this is why so many people have negative attitudes towards Java. In the users minds, every poorly written Java application on the web is connect to the Java brand. And there are an awfully lot of poorly written applications out there. Of course this isn’t a technical failing of Java, these apps are just badly written.
Just imagine it every time a C++ application (or an ActiveX control) misbehaved you were greeted by an MSVC splash screen. If this were the case there would probably be more resentment misdirected at MSVC (and not against the poorly written application that crashed).
Then there’s Java version number mess. I been using Java since version 1.0. It’s been quite a ride.
Sun: Releasing Java 1.1
Sun: Releasing Java 1.2
Sun: No, wait! Java 1.2 is now known as Java.NEXT,
User: ok
Sun: Strike that, it is not Java.Next. We’ll call it Java 2.0
User: sure, whatever. I like bigger numbers too.
Sun: New version of Java is ready.
User: So the next version is Java 2.1 or Java 3.0 right?
Sun: Nope. The next version of Java is called Java 1.3
User: That’s odd. Did I pass through a time warp? I see the term J3EE all over the web. Did J2EE become J3EE?
Sun: Nope, we call that J2EE version 1.3. They are just confused.
User: fine
Sun: Releasing Java 1.4
User: So this is J2EE 1.4. Is Java 1.5 ready?
Sun: Silly user. It’s not Java 1.5. It’s called Java 5.0
User: What happened to versions 3.0 and 4.0? Did I just leap into the distant future?
Sun: <Crickets>
Users: ok, so its J2EE version 5.0? right?
Sun: Nope, its J5EE this time. But sometimes we call it J2EE 5 too. And please also call it “Tiger”
User: Ok, J2EE 5.0 Tiger.
Sun: Guess what? We have a new Java version. Want to guess the version number?
User: Let me guess…. Java J2.1EE 1.6 Tutrle GTS? Did I get close?
And then there was Java Desktop System. Which is basically a re-branded version of Gnome. It really didn’t have a whole lot to do with Java.
Don’t even get me started on the marketing that lead to the name JavaScript. Java vs JavaScript is the source of all sorts of confusion for many users.
The latest marketing move is that Sun is changing is stock symbol from Sunw to Java. This will probably make the term Java even more ambiguous. Look what happened with the .Net name. The term Dot Net was used in so many context it became to mean anything and everything relating to Microsoft technologies. The .Net name was use to describe many different products and services. Ex: Do I really need to be using .Net to use passport? To this day it still confounds many in the industry, the media and the public at large. I predict that Sun is about to follow that same road. All of Sun’s products may some day bear the name Java.
<insert Java splash screen here>
Testing packers the easy way
Ever try setting up a lab with every anti-virus solution? It’s not an easy task. Here’s a service that will allow you to submit a file and have it scanned by several virus scanners.
atime on your own time
Many Linux file systems keep track of the last access time of every file. In practice this turns out to be very inefficient. Every time the file system reads from a file it must also write the access time back to the file. There’s a good thread on the atime issue over at kerneltrap. You may see performance gains by disabling atime There are reports of wildly different numbers in performance improvements. Here are my own non-scientific numbers.
I just finished rendering a video project I been working on in Cinerella. Rendering took slightly over 24 hours to complete. (Digital video editing isn’t exactly fast on any hardware)
Then to compare I decided to render the video again, but this time with atime disabled.
I added “noatime” to my /etc/fstab
/dev/hda1 UUID=XXX-XXX-XXX / ext3 defaults,noatime,data=writeback,errors=remount-ro 0 1
The next rendering took 22 hours. So in my case disabling atime gave me about a 9% speed increase. From now on I’ll be disabling atime on all my systems.
TCP over TCP
Why is it that VPNs are so unstable? I’ve used different VPN software over the years, and have had problems with all of them. I’m always fighting to keep my VPN tunnel up and running. The PPTP (*snicker*) based VPNs I’m using gives me a lot of grief.
Now I finally understand why my VPN (and tunnels in general) are so unstable. TCP’s retransmission algorithm wasn’t designed to work in a tunnel. This link explains it far better than I can: Why TCP Over TCP Is A Bad Idea
Seamless Linux and Windows
I have one foot in the Windows world and the other in the Linux world. Often times I need to be able to work in both OSes at the same time. Ideally I should be able to run Linux apps and windows apps side-by-side. I’ve tried many different options in the past:
- SSH from a Windows host to Linux host
- Forwarding Linux X11 display to Windows Xserver
- Cygwin on Windows
- RDP from Linux to Windows
- Wine running Win32 apps on Linux host
- Linux VM on a Windows Host
- Windows VM on a Linux Host
- synergy (very slick)
- KVMs
None of these solutions are prefect. I’m always in search of better Linux-Windows desktop integration. I haven’t found the perfect solution yet, but did learn a new trick the other day that gets me a little closer. Using seamlessrdp I am able to login to remote Windows machines over RDP and have applications from my Windows box to my Linux box share the same desktop. See the photo below.
There are a number of good seamlessrdp howtos out there. But be aware that some of them direct you to disable Windows passwords, or store them in shell scripts (and possibly in .bash_history files).
It is probably a better to do something like this instead…
rdesktop -x l -rsound -A -s "c:\seamlessrdp\seamlessrdpshell.exe C:\Windows\explorer.exe" 192.168.1.9 -u username -p `zenity --entry --hide-text --text "Enter Windows Password:"`
I’ve set up my system to prompt me for my password using Zenity. That way no password are stored in shell scripts.
Time Lapse Video
Lately my three month old (time flies, should have posted this long ago) has been at the center of a mystery. Every other night I wake up to find that he has some how rotated himself 180 degrees. I found that kind of odd because he isn’t yet able to move like this while he is awake. He can’t yet roll over, and I’ve never seen him turn himself on his back. Yet somehow he is able to do this while he sleeps. So I’ve set up my IP camera to work like a time lapse video camera. The idea is to take one snapshot a minute and see what’s going on.
I’ve set up a cron job to run the following command ever minute.
wget http://user:pass@192.168.31.243/axis-cgi/jpg/image.cgi?resolution=640x480 -O /home/user1/timeLapse/`date +%s`.jpg
I put the baby to bed and let cron do all the hard work. The next morning coverter the images into a video with the following command:
mencoder "mf://*.jpg" -mf fps=10 -o test.avi -ovc lavc -lavcopts vcodec=msmpeg4v2:vbitrate=800
The resulting video is interesting to watch. He moves small bits at a time, mostly by moving his arms.
News worthy
Many Firefox extensions are vulnerable to man-in-the-middle attacks. Many blogs have picked up on the story. I’m glad this issue is finally getting attention. While we are likely not to see wide-spread exploitation, this issue needs serious attention. Let’s not forget how badly ActiveX controls have been abused in the past. As Firefox gains users, we’ll see more malware posing as Firefox extensions. Firefox extension developers need to do a better job signing their code.
What I find interesting is that this issue has been known for sometime. I can never predict what will be news worthy. It’s all about how you present the issue. Several people at Microsoft were talking about this over two years ago. Previous discussion on the issue never used the “V word”. It wasn’t until Chris Soghoian used the word “vulnerability” (rightly so) that this issue got the attention it probably should have received years ago.
Users (and sometimes developers) don’t understand DNS spoofing, trust, man-in-the-middle, certificates, BGP, AS Numbers, etc. But people do understand the concept of a vulnerability.
It’s Nerf …or something else
Recently
- jason.blog() threw exception
- java.lang.IllegalClassFormatException 09.16
- at Sipie.+.lirc.+.ATI(remote.java:) 08.24
- at Maps.of(War.java:) 08.23
- at Sun.overrun.by.marketing(department.java:) 08.23
- at Testing.packers.the.easy(way.java:) 08.23
- at atime.on.your.own(time.java:) 08.23
- at TCP.over(TCP.java:) 08.23
- at Seamless.Linux.and(Windows.java:) 08.22
- at Time.Lapse(Video.java:) 05.31
- at News(worthy.java:) 05.05
- at It’s.Nerf.…or.something(else.java:)
Categories
- Cryptography (2)
- Evil Bit (5)
- Hardware Hacking (8)
- JavaScript (3)
- Linux (1)
- Mountain Biking (1)
- MythTv (3)
- Random (12)
- Reverse Engineering (5)
- Security (32)
- Steganography (2)
- Stuff to Make (10)
Pages
Calendar
July 2008 S M T W T F S « Sep 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Blogroll
- Adventures of the White Rabbit
- Dancho Danchev - Mind Streams of Information Security Knowledge
- DoxPara Research -
- gnucitizen
- ha.ckers.org
- Hex Blog
- hype-free
- Infosec Potpourri
- Inliniac
- invisiblethings
- Irongeek’s Security Site
- Jeremiah Grossman
- Keystone IT
- Malicious code
- Mark’s Blog
- Michael Howard’s Web Log
- Midnight Research Labs
- Operation n
- Schneier on Security
- Security Absurdity
- Shmoo Blog
- SYNful Packet
- TaoSecurity
- Taossa
- vulnerabilities exploits
- xkcd.com
