Showing posts with label python. Show all posts
Showing posts with label python. Show all posts

Friday, December 12, 2008

Connecting to OS X from Linux

I'm done school for the semester, so hopefully that means I'll have some more time to work on programming and the like. Yesterday I was trying to get my Ubuntu laptop to connect to my Mac OS X desktop. Accessing a networked OS X computer as a windows share is pretty easy under Ubuntu. But you can only see a few files. When networking OS X to OS X you can access pretty much the whole computer. I found a package called afpfs-ng that allows you to do essentially the same thing from Ubuntu. Unfortunately this program requires you to use the command line to connect. Once I figured it out I started making my own GUI interface for afpfs-ng. I used python and am just about finished. Here's the source code so far:

#!/usr/bin/python

import Tkinter
import subprocess
import os.path



# Define input retrieve function for application input
def retrieve_text():
global volume
global mounted
if mounted is 0:
afp_ip = afp_host.get()
username = user_name.get()
volume = volume_in.get()
password = pass_word.get()
if os.path.exists('\"/tmp/'+volume+"\"") != 1:
output_string = "mkdir \"/tmp/" + volume + "\""
retcode = subprocess.Popen(output_string, shell=True)
output_string = "mount_afp \"afp://" + username + ":" + password + "@" + afp_ip + "/" + volume + "\" \"/tmp/" + volume + "\"\n nautilus \"/tmp/" + volume + "\""
retcode = subprocess.Popen(output_string, shell=True)
mounted = 1

def unmount():
global mounted
if mounted is 1:
retcode = subprocess.Popen("afp_client unmount \"/tmp/" + volume + "\"", shell=True)
mounted = 0

if __name__ == "__main__":

volume = 0
mounted = 0

# Create Window Object or Window Form
app_win = Tkinter.Tk()

# Create label object
labeltitle = Tkinter.Label(app_win,text="Connect to AFP Server\n")
labeltitle.pack()

# Create label object
label1 = Tkinter.Label(app_win,text="Host IP")
label1.pack()

# Create User Input Object
afp_host = Tkinter.Entry(app_win)
afp_host.pack()

# Create label object
label2 = Tkinter.Label(app_win,text="Username")
label2.pack()

# Create User Input Object
user_name = Tkinter.Entry(app_win)
user_name.pack()

# Create label object
label2a = Tkinter.Label(app_win,text="Password")
label2a.pack()

# Create User Input Object
pass_word = Tkinter.Entry(app_win)
pass_word.pack()

# Create label object
label3 = Tkinter.Label(app_win,text="Volume")
label3.pack()

# Create User Input Object
volume_in = Tkinter.Entry(app_win)
volume_in.pack()

# Create Button Object
app_button = Tkinter.Button(app_win,text="Connect",command=retrieve_text)
app_button.pack()

# Create Button Object
unmount_button = Tkinter.Button(app_win,text="Unmount",command=unmount)
unmount_button.pack()

# Initialize Graphical Loop
app_win.mainloop()


If you copy that into an empty text document, save it as "afp.py", open a terminal, type "python " and then drag the "afp.py" file into the terminal, you can run it. Of course, you'll have to download afpfs-ng first. Your command line should look something like this:
dustin@dustin:~$ python '/home/dustin/afp.py'

I'm still working on adding some more features and packaging this in an easier to use manner.

Friday, October 17, 2008

Pythons

I just wanted to mention two interesting python libraries I have recently discovered:
1. Pyglet
This seems to be replacing pygame as the best choice for making games in python. It uses OpenGL instead of SDL, which means faster games!

2. Pymunk
A port of the Chipmunk 2d physics engine to python. A recent PyWeek contest was based on the use of Chipmunk in python games.

I haven't yet tried either of these myself, but they look very useful. I'll keep you posted.

Saturday, June 7, 2008

PyGame

At some point you will run into the limits of web technologies and GameMaker and you will need to learn another language. Python is an excellent next step. Pygame is a module for python that will allow you to easily import and use sprites in your games. Check it out at http://www.pygame.org/. Once you've downloaded and installed Python and Pygame I recommend that you get started by looking at the Chimp Tutorial. You will also want a good code editor to work in. I'm on a Mac and I highly recommend Aquamacs Emacs. Please note that programming with something like Python is a little more complicated since there is no GUI, but if you're used to using something like PHP or GameMaker code, you should be able to figure it out without too much difficulty.