Watch this :

You need a basic LAMP stack and “mp3info” – should be available in your repo’s.

This is totally open – if anyone wants to help out with development leave a comment or send me a message.

The goal is to stream remote media over the web with an intuitive web interface.

Installation :

apt-get install mp3info

cd /var/www

wget https://downloads.sourceforge.net/project/cimediaplayer/Media.tar.gz?r=https%3A%2F%2Fsourceforge.net%2Fprojects%2Fcimediaplayer%2Ffiles%2F&ts=1282412797&mirror=master

tar -zxvf Media.tar.gz

Add an Apache virtual host.

create a database : mysqladmin -u root -p create media

edit application/config/database.php using your database creds.

That should be about it – I know these instructions are lazy but it is Saturday… Leave comments if you need help.

I have been busy integrating Asterisk into NimbleBilling – take a look see and let me know what you think!

UPDATE : An online demo is available here!

As a sole proprietor and “freelancer” it is never easy wearing all of the hats, especially when I am knee deep in bugs and get a sales or support call.  One of the most troubling issues I have is with asking for money.  I never have a problem creating the invoice but it is that bloody send button that kills me.

Because of the above – I have decided to finally get organized and put together an automated invoicing application so I don’t have to worry about billing – the computer does for me.  Basically you point your browser to a web app and adda few items to a job list – then save.  Here’s a screencast that should demo it better than I can type it :

Here’s some of the functionality summed up in a brief list.

  • Add / Edit / Delete Clients
  • Add / Edit / Delete Invoices
  • Add / Edit / Delete Jobs
  • Add / Edit / Delete Taxes
  • Add / Edit / Delete Services / Products
  • Auto Email Invoice
  • Download PDF Invoice

It probably does a lot more but I am too excited to complete the PayPal module.

Be sure to check back for updates – a version will be available for you shortly!

It gets very repetitive writing forms for clients – that’s why I decided to take the last hour to write this piece of fine code.

It takes whatever title you give a form object and creates a copy / paste dump for your view, controller and Javascript.  It doesn’t handle checkboxes or select boxes – but that is because I find the form is not the time killer; it’s the Javascript and validation.  The nice part is that most of the heavy lifting is done for you – plus you do not have to worry about spelling mistakes or silly syntax stuff because it is all duped in the script.

I’d like to pop this up on a subdomain after making it pretty – please comment if you think you will find this little app useful.

PS. During the recording I noticed a small error in the code – no need to comment, it is fixed now.  The json_encoded array was returning a value that would not display in the error fields due to a mismatch in the name.

UPDATE : Check Out the Application Here!

I have fully tested the generated code and it works great, here’s a video demonstrating how to use “FormTorch”.

Consider The Following

Consider The Following

CodeIgniter is a SUPER powerful framework and I have picked up some tricks along the road.  If you are looking for a simple way to jail access to parts of your application, the following is tried and tested – I use a similar approach in almost every application I write.

When you want to lock users out of just one function or an entire controller just create a new model (call it auth.php or something useful) and autoload it in the autoload.php file under config/

For a simple explanation consider the following :

Really all we are doing is determining which script they are trying to access and if they are allowed to be there or not based on their user permission level (set in a session at login authentication (usually from the database)).

To lock down a controller simply add $this->auth->jail(); to the constructor or whatever method / function you want to lock. This may not be the most elegant solution but it works and is tough to screw up – if you do not need group permissions and only a boolean result, take a look at this one :

As you can see, much simpler however only allows a check to see if the user is logged in or not. Once again, this can be loaded per function or per controller (in the constructor).

Hope this helps, I really do need to get to bed -  probably have twenty revisions for this code after a wink of sleep.  Always welcome feedback (criticism is expected with insomniatic posts).

PS. I am aware “insomniatic” is not a real word.