Archive for July, 2008

Isolating users in FTP 7 using Active Directory

Posted on July 22nd, 2008 in Windows | No Comments »

This is quick guide for setting up isolated users in FTP 7 (Windows 2008) using Active Directory. Isolating users using Active Directory is very handy when you want to give FTP access to user’s documents which are redirected to server.

Back in Windows 2003 setting user’s home FTP dir was done using iisftp.vbs script. In Windows 2008 script is not available and this is one way you can do it using FTP 7:

1. Remove currently installed FTP 6 (Server Manager → Roles → Web Server (IIS) → Remove Role Services. Unselect FTP Publishing Service and IIS 6 Management Compatibility to remove).

2. Download and install FTP 7 (http://is.gd/YVg for x86 and http://is.gd/YVi for x86_64 architecture). IIS 7.0 must be installed.

3. Create new FTP site:

  • In IIS Manager, click on your server. In actions pane click on “Add FTP site…”
  • Choose name for you ftp site name. For physical path you can choose c:\inetpub\wwwroot. Chosen path actually doesn’t matter as it will be set for each user separately using AD.
  • IP address, virtual host and SSL set as desired
  • Authentication set to basic and authorization to all users

4. Define user’s home directory:

Only users which have their FTP Root and FTP dir set will have access to FTP.

I think this is my first Windows related blog post without my whining and complaining :)

Ping.fm Ruby Class

Posted on July 8th, 2008 in Ruby | 9 Comments »

Ping.fm is simple service for updating multi social networks. Ping.fm currently supports 18 social networks and custom url. Although it’s in beta, it works great.

Updating is possible thru variety of services/tools: AOL instant messenger, GTalk, iPhone Web app… Developer API is also available and it’s subject of this blog post.

I wrote a Ping.fm Ruby Class which acts as a wrapper for Ping.fm API. Using ping.fm class is easy (you’ll need a API key as well as user app key):


require "pingfm"
pingfm = Pingfm.new("abcde", "12345")
# abcde is API key and 12345 user app key
puts pingfm.validate()["status"]
# return OK if successful, otherwise FAIL

Posting is also easy:


require "pingfm"
pingfm = Pingfm.new("abcde", "12345")
pingfm.post("this is posted to all my services")

Class supports all Ping.fm API calls. All methods are well documented.
You can grab Ping.fm Ruby Class here:
pingfm.rb.tar.gz
pingfm.rb.zip

You can also get refactored version of Ping.fm Ruby Class done by Dale Campbell at http://github.com/Oshuma/pingfm/