CSH Blog Network
Many of our members and alumni have blogs out there on the internet, and they write about a lot of interesting things. So we gathered up all the CSHer blogs we could find and, with the power of Web 2.0, mashed them all together into one big blogorific mega-feed! Find out what real CSHers are doing with their lives, here on the CSH Blog Network.
» View all the blogs that go into this feed
Members/Alumni: Want to add your voice? Email webmaster@csh.rit.edu.
When presented with a means of communicating electronically, some people forget the guidelines of effective communication and turn into retards. read more »
After a month of recovery, I’ve managed to write up the experiences from my bourbon roadtrip over the summer. My plans for this trip are here. Overall, it was a great time to drive across America and meet some very unique people. I enjoyed the different perspectives that I gained and the connections that I made. Also the food and drink that I sampled was fantastic.
Some quick stats: read more »
Use the ObjectSpace class to find all ancestors of a given class.
class Foo; end
class Bar < Foo; end
class Baz < Foo; end
subclasses = ObjectSpace.each_object(Class).select do |klass|
klass.ancestors.include?(Foo) and klass != Foo
end
# prints "[Baz, Bar]"
puts subclasses
Of course, you could always override Class#inherited instead, but if you don't
want to override methods, the above is a reasonable choice.
read more »
When walking through Ikea one day, I spotted the perfect bottles in which to make Skittles vodka. Starting with these, here is the process for making this infusion.
read more »
I recently had to do a master failover in mysql to bring up a new mysql master
to replace an older one.
The switchover went awry shortly after we told the old master to start slaving
off of the new master. The output of 'show slave status' indicated a halt of
replication due to foreign key constraints: an auto_increment primary key had a
duplicate insert attempt. How did this happen? I'm not sure yet, still digging.
This puzzle made me wonder how we got into that state given that I put the old
master in 'read only' mode before doing the switch. read more »
Got a program that can't setuid but needs to listen on a priviledged port? I
was hacking around with Linux's capabilities(7) tonight and came up empty
trying to allow a non-priviledged user to bind to port 80 without having to
start as root - after all, not everything is capable of setuid on startup, like
many java programs.
Speaking of java, if you do setuid, the java hotspot monitor file thing
(/tmp/hsperfdata_<user>/<pid>) is in the original user's directory,
not the setuid'd user, so you can't jstack reliably. I might be PEBCAKing it,
but this is the behavior I observe. read more »
There's some hot debate around the implications and rightness of service
providers to do things like traffic filtering, session hijacking, etc.
I'm not here to talk about that. The data below aims to focus on the technical
failures induced by dns hijacking, or dns redirection. I won't bore you with
the moral, political, or philosophical discussion around this topic.
Here's a summary if you don't want to read the details:
- DNSBLs probably don't work anymore for Comcast users
- Owned domains (semicomplete.com, google.com, etc) are also subject to hijacking. read more »
I wanted to test something quickly out in C, but didn't want to write the 5
line of code to do it. read more »
As I've mentioned before I was recently given a net4501 by Jordan. Now that I'm moved into my new house I'm in the process of getting FreeBSD up and running on it. Since Jordan said he was seeing performance issues with it I figured it couldn't hurt to update the BIOS on the device first before I boot FreeBSD on it. It's actually a pretty simple process. All you need is lrzsz (ports/comms/lrzsz) and a serial cable.
read more »
So I decided to try my hand at writing a Google Chrome plugin. It's definitely a lot easier than writing Firefox plugins, although the API/process is still in flux. My one gripe is the lack of "user preferences". While it's fine for some plugins (like the gmail checker just uses your already logged in Google account), some will definitely need that. read more »
So I totally forgot that I had this blog. But I have wanted to start documenting some stuff, both technical and personal so a while. Running a pyblosxom blog was fun, but a bit tedious. And Wes kept breaking stuff. So I think I'll start working here.
A project I'm working on has some odd slowness about it. Using ruby-prof, I
found that String#scan was consuming most of the time, but ruby-prof didn't
tell me where it was coming from. A quick hack that replaced String#scan with
my own method showed who was calling it, DateTime.strptime -
class String
def scan(*args)
raise
end
end
I tried using the ruby debugger to break on String#scan, but it didn't seem to
work. read more »
I was working on a new python 2.6 rpm to push at work and started wondering
about how to get python eggs to become rpms. Ruby has a gem package called
gem2rpm that aids in generating rpms from ruby gems, but there's not really an
egg2rpm project.
We're in luck, though. Python's setuptools supports generating rpms by default,
it seems. read more »
Here's something fun. Here's a DNS query that looks right:
wxs@ack wxs % dig @4.2.2.1 +nocmd +nocomments +noquestion +nostats syn.atarininja.org
syn.atarininja.org. 1771 IN A 129.21.60.158
wxs@ack wxs %
Here's the same query but from a NAT'ed VM (VMware Workstation) using the NAT device as a DNS server:
wxs@rst wxs % dig @192.168.2.2 +nocmd +nocomments +noquestion +nostats syn.atarininja.org
syn.atarininja.org. 5 IN A 129.21.60.158
wxs@rst wxs %
read more »
Over this past long Labor Day weekend I decided to attempt something just plain silly: write a DHCP server in PHP. You may be asking yourself what would ever make me think doing such a thing in PHP would be a good idea? I’ll tell you: why not? Also, when it comes to languages which run on a server — well PHP is the best I’ve got. I know enough Python, C/C++, Ruby, Java, Obj-C, blah, blah to be dangerous — but PHP and Javascript are my tried and true loves. So I figured why not. And then the question of why a DHCP server? read more »
Here’s to you, blog viewers of this last month. I’m fairly sure this isn’t the normal OS distribution… You guys are awesome. :-)
Initially I thought the OpenBSD must have been me, as I run it on my router (yay pf!), but then I realized I don’t even have a browser installed on it… really can’t have been me, I guess. You know what that means? There are at least two users of OpenBSD! Alright! Party! read more »
I only noticed this now. Perhaps it is old.
% dig +noquestion +nostats +nocmd +nocomments www."I wonder if this query will return".com
www.I\032wonder\032if\032this\032query\032will\032return.com. read more »
Being able to reload code modules is one of the many nice features of Python.
This allows developers to modify parts of a Python application while the
interpreter is running. read more »
Hop on over to the xdotool project page and
download the new version.
The changelist from the previous announced release is as follows:
20090815:
* Incorporate patch from Henning Bekel which adds a new ability to change
window properties such as window name, icon name, class, role, etc. read more »
|
|
|
|