One problem with the default install of the CPAN shell is that if you need passive FTP to get through your firewall, the CPAN shell won’t work. Here is the behavior: . . . Invalid PORT. Retrying. –12:26:05– ftp://ftp.perl.org/pub/CPAN/authors/01mailrc.txt.gz (try: 8) => `-‘ Connecting to ftp.perl.org[192.35.244.50]:21… connected. Logging in as anonymous … Logged in! ==> […]
Setting Passive Mode for Perl/CPAN
Archiving Files With Perl
Agatha had some complaints about her chicken cam. People weren’t seeing enough chicken booty. A quick and easy way to do this is to use Perl: while(6 ne 9){ for($c=1;$c<11;$c++){ system(“scp root\@crackers:/chickenpicture.jpg /home/u-1/chickencam”); system(“scp /home/u-1/chickencam/chickenpicture.jpg root\@signalq.com:/web/path/here/”); system(“scp /home/u-1/chickencam/chickenpicture.jpg root\@signalq.com:/web/path/here/archive/chickenpicture”.$c.”.jpg”); sleep 300; } } This way, the chicken cam cycles through. The only tricky part is […]
Compression of Text With Perl – Part 1
In this article I show how to use Perl to extract keywords from a text file, create an index of these keywords, and reassemble the text in a simplified way. This will give you compression, as well as control over stored data. I used The Snow Queen with the simplified character set of the Odyssey […]
Compression of Text With Perl – Part 2
In this article I showed how to extract keywords from a text file to create an index, and I reassembled the text again from the compressed file. In this article, I render the compressed file with a limited character set. Here is the code: %found = (); %index= (); $i=1; # this will grab 196 […]
Matching Hex Characters With Perl
You can match hex characters with \x. Just put \x before the hexadecimal number. For instance, if you wish to replace all backspace characters with nothing, use this: perl -pi -e “s|\x08||g” file.txt
Writing a Simple Filter With Perl
One cool thing you can do with perl is write a filter. We often tail various log files, but just want to know about specific bits. If we want to see more, we can look at the actual logs; however, for the purposes of the current activity, we don’t need much information. Say your logs […]
Installing The Net-SNMP Perl Module on Windows
There are restrictions on the crypt-des.ppd module that make it a rare beastie to find. When you try and install via ppm: ppm> install net-snmp Error: PPD for ‘Crypt-DES.ppd’ could not be found. After some searching, we did find the module at soulcage.net. The site seems legit, but do your own homework. To add the […]
Sending a Command Via TCP With Perl
To send a command via TCP with Perl, you can use IO::Socket::INET: use IO::Socket; my $sock = new IO::Socket::INET ( PeerAddr => ‘localhost’, PeerPort => ‘1001’, Proto => ‘tcp’, ); die “Error: $!\n” unless $sock; print $sock “commandtoexecute\n”; close($sock); This will send the command commandtoexecute to port 1001 on localhost or complain that there is […]
Converting File Extension to Lower Case With Perl
Let’s say that you have a bunch of references to files that take the format IMGblahx.JPG, but all of the files are actually IMGblahx.jpg. An example file would be named IMG_1807.JPG. To change all of the references to IMGblahx.JPG to IMGblahx.jpg, use this one line perl script: $ perl -pi -e “s|(IMG……)JPG|\$1jpg|g” * Put an […]
Installing Ruby and Rails on Mac OS X
Ruby and SQLite come with Mac OS X. Ruby is a bit older, and had some trouble installing Rails, so we ugraded: srv-8:~ usr4$ sudo port upgrade sqlite3 Password: —> Fetching ncursesw —> Attempting to fetch ncurses-5.7.tar.gz from http://mirrors.kernel.org/gnu/ncurses —> Verifying checksum(s) for ncursesw —> Extracting ncursesw —> Configuring ncursesw —> Building ncursesw —> Staging […]
Porting an Existing Static Database-derived Web Site to Ruby on Rails
[Note that this article is an experiment in hacking a Rails app in to static HTML off of a single root directory. This was done with routes.rb and some parsing of the URL within Rails. This is interesting in its own right, so we are leaving it up; however, a much better way is to […]
Moving from WEBrick to Mongrel
I’ve been moving more and more pages over to NetAdminTools, and the render time is starting to take a long time. => Booting WEBrick => Rails 2.3.4 application starting on http://0.0.0.0:3000 => Call with -d to detach => Ctrl-C to shutdown server [2010-07-20 06:29:17] INFO WEBrick 1.3.1 [2010-07-20 06:29:17] INFO ruby 1.8.7 (2009-12-24) [i686-linux] [2010-07-20 […]
Ruby Loops and ANSI Color
Here is a quick little script to illustrate loops and the Term-Ansicolor gem: require “rubygems” require “term/ansicolor” c = Term::ANSIColor print c.white,c.bold,c.on_blue print ” ” puts for w in [ “words”,”in”,”an”,”array” ] print ” “+w end print ” ” print c.reset print “\n” I originally made this because wanted to create a graphic with monospaced […]
Passenger Memory Stats
Use passenger-memory-stats while your app is loaded to see how your system handles your session settings. We use the –max-pool-size 50 option to limit the number of passenger sessions that connect to our RoR application. Here are the stats under load: root:/usr/local/bin# passenger-memory-stats ————- Apache processes ————- *** WARNING: The Apache executable cannot be found. […]
403 Forbidden Error With Passenger
I spent way, way too much time troubleshooting a 403 error with Passenger: =============== Phusion Passenger Standalone web server started PID file: /opt/mcjr/passenger.9000.pid Log file: /opt/mcjr/log/development.log Environment: development Accessible via: http://0.0.0.0:9000/ Serving in the background as a daemon. 403 Forbidden nginx/0.8.52 It turns out that even though thee permissions on my rails app were fine, […]
Converting a Rails App to present with GTK
This article shows how to convert a Rails application to a standard Ruby application, and it shows how to present the data via GTK2. The idea is that a web application and a desktop application can have similar needs, and going back and forth via a common framework has some advantages. We are taking this […]
Ruby Regex Substitution – Benefit of Controllers
This site is generated on RoR, but published as static HTML. It goes way, way back, and the images are referenced in many ways. I think there is a decent chance that some images are referenced without quotes. I added a feature for mobile views years ago, so that I could easily browse with my […]
NT Administration from the Command Line
In addition to using the GUI to create accounts and groups, the command line can be used. This is often useful when automating server setup or recovery. net user jsmith tempword /ADD /FULLNAME:”John Smith” /COMMENT:”Accounting Manager” net localgroup “Accounting Local Resource Group” /add /COMMENT:”Payroll and A/R Files” net group “Accounting Members” /ADD /COMMENT:”Members have access […]
Services Subkey Entries
Beware! Make sure you have a backup of the registry and are 100% confident of the syntax of the entries before you change anything. If you mess up, your NT system may never boot again, and you will have to reinstall NT. Try to tweak the registry indirectly whenever you can through control panel/services, system […]
Using the CACLS command
The cacls command is used to edit and display file permissions on NTFS partitions. Here is a list of the options: D:\>cacls Displays or modifies access control lists (ACLs) of files CACLS filename [/T] [/E] [/C] [/G user:perm] [/R user […]] [/P user:perm […]] [/D user […]] filename Displays ACLs. /T Changes ACLs of specified […]