Nov 20

EtherPad, a Review of Real Innovation

I’m not lying, I swear I thought of this myself within the last year.  But yesterday I saw that the designers of AppJet released a web app called EtherPad.  They call it “real-time collaborative text editing”.   Think of it as a text editor with a chat component working together in the form of a document.  Each person logged into an “EtherPad” can edit the document and everyone can immediately see the changes of any other editors shown in display as different colors.  They have setup an unguessable hashed url system for “Pads” that are created on the fly but you can also create named EtherPad pages of your own choosing.

EtherPad also carries a simple way to save and restore multiple revisions of the document throughout the process. I told you up above that I thought of this before. In my idea however I was thinking that this would be good as basically a beefed up wiki engine. So that the edit page of a wiki would have this in-line collaboration instead of being whole page edit. Maybe we will see this created next, who knows by me, or by others. I think that is the next step. Link these “EtherPads” together into a wiki format and you have a more intimate form of collaboration. Can you imagine how much more lively some of these wiki sites would be when down-to-the-sentence editing is done in real-time by different editors?  I can see how it could create a whole new set of problems as well.  But it is very exciting to see this kind of innovation and fresh ideas being brought to the forefront.

Oct 30

Automating PDF Output in Ubuntu

I’ve recently been working with automating the transformation of print streams into pdf files.  Ubuntu’s “printer configuration” tool is very handy for setting up custom layout of pdf output.  What I did was copy the printer called “PDF” that is the standard generic print-to-pdf printer (cups-pdf) and edited the text options for a custom layout of the text to fit a pre-printed form layout.

printer_configuration_tool

I also want to add a barcode into the print file, that has proven to be a little more tricky.  I’ve used the barcode package to create barcodes.  It outputs a postscript file of the barcode using the following command:

barcode -b barcode_value -ecode39 -n -g300x30 -c -p300x30 > output.ps

Now the part I’m still puzzling over is merging the two into the same page.  because in my case I do not want them to just be concatenated together but to be overlayed over each other.  I also need to put one of these in the bottom left hand corner of each page of the print document.  I think my answer will come from the psutils package.  I’m working through the man pages for a couple of tools that will hopefully do the trick.  If anyone has any suggestions feel free to let me know.

Oct 3

Review of Google Insights for Search

When it comes to search, you know Google is king.   Now with a new tool “Google Insights for Search“, they allow you a more in depth view of keywords.  Displayed in geographical, timeline, and categorical graphs, Insights gives you a versatile and granular view of how people are searching for terms.  In the image shown here the search for the keyword “Google Insights” is centered in California (no brainer there huh?).  But what’s really cool is that if the term is oft used enough you can even drill down to the level of cities.   The Timeline graph shows views much like those you could get in Google Trends, with less emphasis on the news references.  Rising searches in relation to the ones you searched for and the in depth regional views are the most revealing of all.  Within a search for baseball and basketball for instance; it’s apparent that Kentucky, Indiana, Kansas, and North Carolina top the states that care the most for basketball, and that the top state searching for baseball, Missouri has its most searches coming from the city of St. Louis.  This information could provide some really competitive advantages to companies and persons who will choose to pay attention.  The metadata is becoming more and more important to our daily lives, as companies like google learn to organize and present it to us in such a useful way as this.

Sep 28

Escaping the Loop

Get me through this… semi-charmed kind of life. da-da da-da!  I want somethin’ else. To…

Rinse, repeat.  Don’t you hate when you get a stupid song stuck in your head and one line of it just keeps playing over and over and over and over?  It just won’t stop!  So-called earworms often get us frustrated when they crawl in and embed themselves in our unwilling minds.

In the spirit of my continuing problem, I thought I’d look at the functions that PHP provides for escaping their looping structures, namely; break, continue, and return.

break - Completely breaks out of any of the control structures.  You can also specify a number of control structures (levels) to break out of.

continue - Doesn’t completely break out of the control structure just leaves the current loop segment, and starts over at the next evaluation of your condition.  You can also include an option argument to continue out of n number of levels of loops.

return - From within a function, return ends the function immediately, returns the function’s value and passes control back to the line from which it was called.

Sep 28

Linux Command Line Basics

I remember when I first discovered the command line.  The ERP software package at work runs on a SCO Unix server and is designed to be very idiot proof and start up immediately upon login.  I was born in an ugly Microsoft Windows world where you click on everything and little boxes pop up in your face.  I fancied a simpler time where you typed commands into the computer.  I had had some early bouts with BASIC as a real young person and so I was very interested in the inner workings of programs. I was proud just to use a terminal emulator to log into a text based system.  I must have felt instinctively that there was much more to computers than just the colorful veneer that is pulled over the eyes of the general public by the boys at Redmond; that there was more power and intelligence to be found than the just the little blue boxes that constantly and inanely ask you to “Ok or Cancel?”.

And then one day it happened. The main software app was down and I landed at a simple “>_”.  My world changed in a day.  See I’d seen this before and I knew enough to type “exit” and “Ctrl-C” when things went wrong.  But today I had nothing to do so I just started “trying things”.  No one instructed me, no one taught me, in fact after I learned a little about the command line, I was actually angry! I was quite upset that no one told me the wealth of commands and abilities that that computer had.  So I played around, I discovered “who” and “what” and then I stumbled upon “man”.  One day I was normal Josh who knew his way around Windows 98 somewhat, to Josh who knew nothing at all about this world called Unix and its command line interface.  It changed my perspective, it humbled me, and it changed my life forever.  I am not exaggerating.  From that day until now I haven’t rested in thirsting for more knowledge about commands, shell programming, web servers, programming, and everything that is Linux.

So this post is for the young, the innocent, the unfortunately ignorant.  I hope you find your way.  Maybe this post will help those intelligent young minds come to an earlier realization that there is more to the computing world than solitaire and word docs and media player.

If you happen upon this article and you don’t have any experience with Linux. Try it.  Get a CD to boot from, I don’t care what distro.  Get to the command line.  Or log into a system using Putty.  Get a free shell account.  Catch the spirit I’m talking about here. You will not regret the experience, I guarantee you.

Here are a few simple commands that you should try.

man - an interface to the on-line reference manuals (type “man command“, to have a command explained to you. e.g. man man, man ls, or man whatis)

ls - list directory contents

cd - change directory

ps - report a snapshot of the current processes

df - report file system disk space usage

And time would fail me to relate to you the uses for grep, top, cat, more, less, vi, history, rm, mv, free, awk, time, find, which, and many more.

Curiosity will drive you in your quest to know more about something that the average person does not.  You will be given powers beyond your imaginations.  As one door is opened another world will fall out before your eyes.you had better get started!

Sep 27

9 Applications Written in PHP

So you love creating new applications in PHP, but who wants to do something that’s already been done?  So in this post I’d like to cover nine of the best PHP based pre-packaged apps.  So you can install these and work in their world rather than cover old ground.  Or maybe you’re just looking for weaknesses in these packages that you can contribute to fixing in your own project.  Whatever your reason here they are:

MediaWiki - Everyone’s favorite wiki engine, with a MySQL backend.

DokuWiki - A clean and fast wiki engine with text file storage, for documentation.

PhpWiki - A versatile and customizable early edition wiki.

phpMyAdmin - A useful MySQL management and administration tool.

Drupal - A content management system (CMS).

Joomla - Another content management system.

Wordpress - A blog publishing engine.

phpBB - A forum or bulletin board application.

SquirrelMail - A webmail front-end.