WebPhonon Howto

This Howto deals with getting, building and installing the WebPhonon Media player and Server.

Getting WebPhonon:

Ubuntu and derivatives:

WebPhonon is available for Ubuntu and its derivatives at the following PPA:

ppa:aaron-zakhrov/webphonon-git

Add the above PPA to your Software Sources and then install it from your package manager or from the command line.

Debian  (Wheezy/Jessie/Sid):

A 64 bit only binary Debian package is available at http://www.sourceforge.net/projects/webphonon/

This package is basically the same as the Ubuntu version even though the minor revision numbers don match up.

Building from source:

WebPhonon can be built from the source code for any Linux Distribution.

Download the Source code:

  • WebPhonon is available at the following git repository

https://www.github.com/Zakhrov/WebPhonon

You can either clone the repository using the git clone command or download and extract the master zip archive.

Compile and install the project:

First create a new folder for the build files in the same directory where the WebPhonon folder is.

You can use either qmake or cmake to configure the project.

For CMake:

$cmake ../WebPhonon -DCMAKE_INSTALL_PREFIX=/usr

For qmake:

$qmake ../WebPhonon/WebPhonon.pro

Then we compile the configured project using:

$make

and then install it to the system using:

$sudo make install

Project Synopsis 101

Mini projects and main projects are a requirement for Computer science courses in India such as BCA and MCA. The initial step most colleges and professors insist on before starting on the project is submitting the Project Synopsis.

This is something some students (I will not say all or even most) dread as they have no idea how to go about it.

So this is a guide for students to easily create their project synopsis without resorting to desperate measures:

 

Step 1: What is your project about?:

A lot of times students are vague on what exactly the project they have to develop is supposed to do. This varies with every project and every syllabus. If the project is a “Mini-Project” usually given at the 3rd semester of BCA or MCA, then it is usually a database project with a front end and a back end.

Most colleges give students a list of topics or project titles to choose from to develop a project, these can range from a library management system to a general store’s inventory control. Whatever the title, be clear on what the project is supposed to do, what type of data it should process and what technology it should employ.

 

Step 2: Choose your front and back end:

If your college makes you use only what software they have available in your computer lab, your choices are then limited. Most colleges will have Visual Studio and java for front end development and either MS Access, SQL Server or Oracle XE for the database. If you are lucky there maybe other choices such as Qt, PHP and Python for front end development and MySQL or SQLite for the back end.

One bit of advice: Oracle is NOT repeat NOT for beginners. If you must work with Oracle make sure that all the appropriate frameworks and JDBC drivers are available, installed and configured. They will not be unless your System Administrators knew exactly what they were doing when they setup and configured the lab computers.

 

Step 4: Analyze the existing system and propose a new one:

Here is where most students get stumped as well, what the professor expects over here is the requirements analysis part of the SDLC and the feasibility study. You need to look at what the project is going to replace. For example if you are doing a library management system, you need to know how exactly a real library works. How are books issued? How is the late fees processed? How does one apply for membership? During this phase you will also get the idea of what data you need to keep track of in your database. Once all this is done you need to tell them how your project is going to change or improve the system already in place.

 

Additional tips:

Unless your professor explicitly gives you a page count, a synopsis for a mini project or even a main project should not exceed 10 pages of size 12 times new roman font.

 

Pick a programming language you are comfortable with and which can be used to design a front end with a GUI. Nobody uses command prompts anymore so a framework such as .NET (Visual basic or Visual C++) or Java AWT/Swing is a good bet. If you want to create a web based front end, PHP or ASP.NET is a good idea.

Using a language or framework that your college does not teach or your professor is not familiar with is a risky venture. If you are hell bent on using it, remember you are on your own as your teacher will not be able to help you if you run into problems so make sure you know exactly what you are doing when you pull a stunt like that (trust me I speak from personal experience)

 

Launchpad PPAs are up

WebPhonon is now available for Ubuntu and its derivatives at the following PPA

https://launchpad.net/~aaron-zakhrov/+archive/webphonon-git

In case you haven’t followed the Github revision history, a lot has changed since the app first went live. It now supports adding multiple local files and has support for playing urls stored in an external MySQL database. For you to implement this you need to have a database with tables that contain a url field and a name field. Apart from that it is still a standard media player but has now added a bit of weight to the download and install size thanks to more icons and pictures for the built in documentation. Here are some screenshots of how the app now looks

the splash screen

the splash screen

The Menu entry in KDE

The Menu entry in KDE

Main window with the Url bar and the Playlist table

Main window with the Url bar and the Playlist table

the Main Window

the Main Window

turbo c++ rant

It has been a while since I posted here , mostly because I have been a little busy assimilating myself to my new college where I’m now doing my MCA (Master of Computer Applications).

After getting past the culture shock of going from a Jesuit run institution, the great St. Joseph’s College Bangalore to a more secular and traditional Indian college, I noticed something that had chafed even in undergrad classes where we learned C 101.

THEY STILL USE TURBO C!!!!!!!!!!!!!!!!!!!!!!!!!

Seriously WHAT IS WRONG WITH THESE PEOPLE???!!!

I can understand them wanting a simple and fast IDE to teach the basics of C and C++ (though they could easily uswe something else there too). But this is a Post Graduate Course!! And the worst part? The syntax for modern C++ is completely different than what is there in turbo C++. Now I have not yet joined the workforce, and I haven’t yet met any industry representatives, but a simple search on stackoverflow.com yielded some pretty interesting questions and answers on the topic ranging from people saying that the syllabus is screwed and is in no way relevant to what the industry requires, to people defending it saying that it allows professors to teach the concepts of the language without the students getting bogged down by the IDE.

The main problem with the latter argument is that it is basically an excuse for professors to not update their knowledge, a crime which I think deserves capital punishment especially in a field like computer science where stuff gets obsolete almost as soon as it hits the market. If you want to teach a student C or any programming language, you do not need an IDE in the first place. Just an editor, a compiler and a command prompt that allows you to get them to talk to each other. Case in point, I have been using GCC and Kate on my laptop to do programming practice at home and it has never given me a problem.  Now don’t get me wrong, Turbo C had a nice interface (for DOS). It is fast and does not bog you down. But it is OLD. It has not been updated to take advantage of newer technologies, it still compiles to 16bit or 32bit micro code if your lucky, and it does not let you use multiple cores or processors. And yes, it still makes sense if you are going to maintain legacy code and when I say legacy I mean windows 95 era code that should have been ported to newer systems by now.

What is even worse is that instead of using alternatives, there are several blog posts and tutorials floating around the internet that show you how to force turbo C to work under Windows 7 using emulation, and forget about using it under windows 8.

The main problem with this approach and the reason for this childish rant is that using turbo C in this day and age is more of a bother than an actual help. It does not work without emulation on Windows 7 and Windows 8 forget about Linux,  the C++ syntax it uses is not standard and can be a big problem when you migrate to a newer IDE that the industry uses and it is not cross-platform.

There are several alternatives to Turbo C that work fine, are free and are very efficient. They include the aforementioned GCC or GNU C Compiler, the Microsoft Visual C++ Compiler and as far as IDEs go there is MinGW and CygWin for Windows and Code::blocks for Linux. I would welcome an academic’s thoughts on this so please feel free to comment below.