Skype API Basics – Part 1

Posted by Brian R Cline | C#.NET,Programming,Windows,linux | Thursday 3 June 2010 5:48 pm

What is the Skype API?
The Skype API is an easy way to create plugins that can dramatically change the way Skype functions. For example, we could make a program that reads messages out loud as we receive them instead of having to check for new messages.

The Skype API is potentially very different for each of the operating systems Skype is available for. And, of course, there are different wrappers of the API available for some of the different languages.

What Operating Systems Are Supported?

  • Linux
  • MAC
  • Windows

What Languages Are Supported?
The Windows API,Skype4COM, is supported in literally any language that can import an ActiveX DLL or using a bit of hackery and some Skype commands we can also use Windows Messages via the Win32 SendMessage API .

Wrappers are available for additional languages that aren’t necessarily updated as frequently as Skype4COM. Skype4Java is a completely cross platform, language specific, implementation of the Skype API. Unfortunately, Skype4Java is infrequently updated and often lags behind the other implementations. Skype4Py is the other language specific implementation of the Skype API and can be used with Python on Windows and Linux.

What is Skype4COM?
Skype4COM is an ActiveX dll for use on Windows. Basically, it offers us a collection of properties, objects, and interfaces that we can use to manipulate Skype. By default, Skype4COM is installed with the Skype Extras although I always think it is prudent to provide it with our application and reference the included version.

What is Skype4Java?
Skype4Java is an older language specific wrapper for use with Java and is pretty much outdated and dying. I haven’t personally used Skype4Java, but have noticed it hasn’t been updated since 2006.

What is Skype4Py?
Skype4Py as previously mentioned is the language specific wrapper for Python and is fully supported on Linux and Windows. Skype4Py contains two different naming schemes: one follows the norms of Python, and the other set of naming conventions resembles Skype4COM.

Why use the Skype API?
There are a lot of interesting applications that make use of Skype to do telemarketing (predictive dialing even!), make Skype act like a fax machine, and even completely replace the need for a telephone! Unfortunately, my first use of the Skype API was to monitor employees that were deleting their Skype history and copy all of the messages sent and received to a location.

How should I get started?
Usually, I start reading a little bit about the API before, I begin to use it but I don’t ever focus in enough to learn the API completely unless I absolutely need to. Instead of spending your time focusing on learning APIs you should instead focus on learning computer programming fundamentals or some website development fundamentals.

More coming next week!

Open Source Week 2009

Posted by Brian R Cline | Experience,Programming,Ubuntu,linux | Thursday 1 October 2009 1:09 pm

I am so excited to say that I finally booked everything I need to attend the Toronto Open Source Week. In a couple of weeks time, I will be spending a couple of days in Toronto while attending the many conferences, workshops and presentations on open source software (GNU Linux, PHP, etc.)

I am hoping to do some serious networking for my consulting business, along with getting more experience with web programming and the rest of the LAMP stack which seem to be creating an IT revolution.

I hope to see you at some of the events!

How do I check if Ubuntu is 32 bit?

Posted by Brian R Cline | linux | Tuesday 28 July 2009 8:45 pm

I’m really excited that there’s an increasing number of Linux questions on Yahoo! Answers.

“I want to install the new Ubuntu or some other Linux distro. How do I check if I can run 32bit or 64 bit on a computer already running linux?”

Actually, this should be really easy on your Linux box.

  1. Open up the terminal
  2. Type uname -m

If you see i386 or i686 then your current hardware is 32 bit. If you see x86_64 then your current hardware definitely supports 64 bit software.

Thoughts on Linux

Posted by Brian R Cline | linux | Monday 13 July 2009 11:13 am

When I switched to Linux (Ubuntu) only at home in 2008, I believed this would be a temporary solution on an old desktop. I say temporary because my notebook stopped working and needed to be repaired.  Almost a year later, and I don’t think I would ever consider going back to any of the Microsoft Windows Operating Systems.

Even on a five year old desktop, I almost never experience hang ups or the infamous blue screen of death which I did manage to see maybe once or twice still in Vista. There’s no need to run a virus scanner as by default because viruses and worms aren’t as common for Linux and actually running without root privileges by default is possible compared to Windows which won’t run a lot of software without Root / Admin.

I’ve grown accustomed to being closer to the machine and being able to customize everything. I am ever so thankful to those programmers in the trenches that designed Linux and all the rest of the OSS applications.

Becoming a Super User In Ubuntu

Posted by Brian R Cline | Ubuntu,Uncategorized,linux | Friday 10 July 2009 12:16 pm

I frequently answer questions on Yahoo! Answers and have noticied that there’s consistantly new Ubuntu (Linux) users asking how they become the super user to run some certain command. Of course, finding the answer to this question should be extremely easy with Google and it is.

In Ubuntu, by default, the root user’s password is locked. This means that we don’t know it and we can’t always sign in as root or unfortunately use the normal linux su command either. Locking the root user’s password forces users to use the lowest needed acccess which reduces some of the ways a system can be attacked or “rooted.”

The command in ubuntu is sudo which allows programs (or commands) to run with root-level privileges.The syntax is very simple:

sudo /etc/init.d/httpd restart

In this example, I just restarted apache.

For more information, please check out the sudo man page