The Possibility of a Friendica-Based Service

An idea came to mind the oth­er day. I was pon­der­ing small ven­tures I could pos­si­bly spin up, to make a few dol­lars and in the process provide some­thing of val­ue for low cost. The pos­si­bil­i­ty of start­ing a Frien­di­ca–based ser­vice, where­in a user can start their own SSL-secured self-contained Frien­di­ca node, via a web-based ser­vice front-end, came to mind.

The goal of this ser­vice would be to provide an inex­pen­sive and easy way, for non-technical indi­vid­u­als to start their own per­son­al Frien­di­ca nodes, com­plete with their own sub­do­main (pos­si­bly their own domain, as a lat­er, more advanced fea­ture) and com­plete SSL pro­tec­tion.

As I talk to peo­ple who are not famil­iar with Frien­di­ca, I notice a recur­ring the­me, that they find it inter­est­ing; but get­ting some­thing start­ed is pos­si­bly too con­fus­ing or too tech­ni­cal for them.  I want to offer some­thing that elim­i­nates many of the hur­dles new users would face; things they typ­i­cal­ly don’t want to deal with, while pro­vid­ing them an envi­ron­ment that they can be com­fort­able inter­act­ing in and ful­ly sup­port­ed. Con­tin­ue read­ing “The Pos­si­bil­i­ty of a Friendica-Based Ser­vice”

Using Friendica as a Content Aggregator

Frien­di­ca is a pow­er­ful tool, not only for social net­work­ing; but also for a vari­ety of oth­er pur­pos­es. The usage I would like to dis­cuss today is con­tent aggre­ga­tion.

There are many ways to aggre­gate con­tent on the web; but Frien­di­ca has some­thing that none of the oth­ers have. Frien­di­ca not only allows you to aggre­gate con­tent; but it also allows you to inte­grate that con­tent with social net­work­ing con­tent from a vari­ety of sources. Gen­er­al­ly aggre­ga­tors only aggre­gate RSS feeds; but Frien­di­ca has been cus­tomized to han­dle a vari­ety of dif­fer­ent kinds of con­tent, not just RSS feeds.

This means you can look at all of the lat­est posts from your favorite web­sites, via their RSS feeds, while also see­ing the lat­est from your social net­works (Frien­di­ca, Twit­ter, Iden­ti­ca, Youtube, Face­book, etc). This is a valu­able tool for effi­cient­ly keep­ing up with the flow of infor­ma­tion from web­sites you fol­low and social net­works that you are part of.

The process of inte­grat­ing the con­tent from web­sites you want to fol­low, is sim­i­lar to how you might add a con­tact to your social net­work. In fact, on Frien­di­ca, the posts from web­sites you fol­low, appear in the same way as post from your social net­works.
Con­tin­ue read­ing “Using Frien­di­ca as a Con­tent Aggre­ga­tor”

Toshiba P870: Installing Linux Mint

I have recent­ly start­ed using a Toshiba P870 lap­top and decid­ed to install Lin­ux Mint 13 Maya (Cin­na­mon Edi­tion) on it, due to its ease of use and over­all secu­ri­ty sound­ness.

Being as the Toshiba P870 is a rel­a­tive­ly new lap­top, with some com­po­nents’ dri­vers not hav­ing been includ­ed in the instal­la­tion files of Mint, it has been a lit­tle tricky. I’m shar­ing this, for those who want to install mint on the P870 or sim­i­lar lap­tops.  This should save you a cou­ple hours of search­ing.  It will get you the dri­vers you need and get you up and run­ning.

We’re going to dis­cuss how­to:

  • Down­load, Burn and Run the Lin­ux Mint Installer
  • Install the miss­ing net­work dri­vers, both WIFI and Eth­er­net, so you can con­nect to the inter­net
  • Fix the inter­nal sound prob­lem that caus­es the inter­nal speak­ers not to pro­duce any sound
  • Update: Installing the SD Card dri­ver — since this arti­cle was orig­i­nal­ly writ­ten, I also fig­ured out that the SD card dri­ver needs to be installed as well.

With the­se basics out of the way, you can then use your Toshiba P870 lap­top for just about any­thing you want. Con­tin­ue read­ing “Toshiba P870: Installing Lin­ux Mint”

Appending to a Remote File via SSH

Most LINUX users know how to copy and over­write a file from one server to anoth­er; but it can also be use­ful to direct­ly append to a file, with­out hav­ing to login to the remote server and make the changes man­u­al­ly. This does not appear to be pos­si­ble with the com­mon­ly used SCP util­i­ty; how­ev­er, there is a way to do this with SSH. Its actu­al­ly quite sim­ple. Con­tin­ue read­ing “Append­ing to a Remote File via SSH”

Tunneling Through a Remote Firewall Using SSH Commands

If you’re deal­ing with sys­tems behind a fire­wall it’s almost inevitable that you will need to tun­nel into those sys­tems from time to time.  For­tu­nate­ly, there are some quick & easy com­mands to accom­plish this.  In this exam­ple, we are going to use a Mac OSX or linux-based sys­tem, to gain access to a web server’s port 80 on a fire-walled server.

Let’s say the domain of the remote server is, the fire-walled server has an IP address of and the fire­walled server has a web server at port 80.  We need to choose an unused port on our own sys­tem, in this case we’ll use 2020.

So our side of the tun­nel is going to be http://localhost:2020/ and the oth­er side of the tun­nel will be

ssh -L 2020:'s password:

So, now port 80 on the fire-walled server will be acces­si­ble by sim­ply point­ing your web browser to http://localhost:2020/.  To ter­mi­nate the tun­nel, sim­ply exit the shell.

Fixing Performance Problems on Your JBoss Web Apps By Diagnosing Blocked Thread Issues

I was once per­plexed by a bizarre per­for­mance issue, I encoun­tered at seem­ing­ly ran­dom inter­vals, in an appli­ca­tion I help to main­tain. The appli­ca­tion kept freez­ing up, with­out any log mes­sages to use for diag­no­sis. This was very frus­trat­ing, because it meant the appli­ca­tion server typ­i­cal­ly had to be restart­ed man­u­al­ly to restore ser­vice.

After a bit of research, I learned of thread block­ing, as a poten­tial per­for­mance issue. Being as I was fair­ly cer­tain that the data­base was func­tion­ing with­in accept­able para­me­ters and the server had ample CPU and mem­o­ry to han­dle the load. I sought to deter­mine if thread block­ing was an issue.

I start­ed by sim­ply run­ning a twid­dle com­mand to dump the threads, when­ev­er this per­for­mance prob­lem was report­ed. This showed that the BLOCKED threads were indeed the cause. Con­tin­ue read­ing “Fix­ing Per­for­mance Prob­lems on Your JBoss Web Apps By Diag­nos­ing Blocked Thread Issues”

10 Principles to Consider When Evolving Your Web Application’s Front End

It’s very easy, espe­cial­ly for an “evolv­ing” web appli­ca­tion, to end up with a user inter­face that is bug­gy and dif­fi­cult to main­tain, par­tic­u­lar­ly if you are incre­men­tal­ly mak­ing changes to an out­dat­ed app, with­out a full redesign. This is a chal­lenge that I’ve faced on many occa­sions, as I have often worked on appli­ca­tions that were built using an out­dat­ed soft­ware par­a­digm or have sub­se­quent­ly failed to keep up with the advances in soft­ware tech­nol­o­gy and method­ol­o­gy. This is not uncom­mon at all, in fact most, if not all, soft­ware engi­neers have had to deal with this on many occa­sions dur­ing their career.

Work­ing through the­se chal­lenges has taught me a great deal about the evo­lu­tion of soft­ware appli­ca­tions. It’s some­thing that I’ve had to learn, while bal­anc­ing the day-to-day demands for the support/upkeep of an exist­ing code­base. This process can teach a devel­op­er a great deal, as they research best prac­tices and gain expe­ri­ence; but most impor­tant­ly, it can teach devel­op­ers what not to do, as you see how the process unfolds over time. Con­tin­ue read­ing “10 Prin­ci­ples to Con­sid­er When Evolv­ing Your Web Application’s Front End”

Tar/GZip Files in One Operation, Unattached to the Terminal Session

When you’re try­ing to move a large block of files, its often use­ful to do so in one com­mand and to be able to close your ter­mi­nal win­dow (or allow it to time out). If you run a com­mand under nor­mal cir­cum­stances, los­ing the con­nec­tion can cause your com­mand to ter­mi­nate pre­ma­ture­ly, this is where nohup (No HangUP — a util­i­ty which allows a process to con­tin­ue even after a con­nec­tion is lost) comes in.

Let’s say we have a large direc­to­ry to back­up, which we want to first tar, then gzip; keep­ing the com­mand non-dependent on the con­ti­nu­ity of the ter­mi­nal ses­sion. Con­tin­ue read­ing “Tar/GZip Files in One Oper­a­tion, Unat­tached to the Ter­mi­nal Ses­sion”

SSH: DSA Key Issue: Unknown code krb5 195

I was attempt­ing to set up an SSH key between two servers, so I could auto­mat­i­cal­ly back up a file from one to the oth­er. This is usu­al­ly a fair­ly straight­for­ward and rou­tine pro­ce­dure; but in this case I had some issues. 

When I got every­thing set-up, with the pub­lic key in the accepted_keys file of the remote server, I saw this error when run­ning in debug mode, then I was asked for a pass­word, which should not hap­pen.

[me@host ~]$ ssh -v root@remotehost
debug1: Unspecified GSS failure.  Minor code may provide more information
Unknown code krb5 195

Con­tin­ue read­ing “SSH: DSA Key Issue: Unknown code krb5 195”

The Paradigm Shift to Accompany The Advent of Cheap Computing

Today, it came to my atten­tion that a LINUX com­put­er, priced between $25–35, is now avail­able. This com­put­er is called the Rasp­ber­ry Pi.

It sure looks like com­put­ing is going to take on a whole new dimen­sion in the com­ing years. No longer are there going to be sig­nif­i­cant finan­cial bar­ri­ers to acqui­si­tion, mean­ing they will be every­where and clus­ters of extreme­ly cheap com­put­ers will add yet anoth­er dimen­sion to cloud com­put­ing.

I think this will mean that com­put­er tech­ni­cal skills are going to even­tu­al­ly be syn­ony­mous to lit­er­a­cy. Sure­ly com­put­ers and com­put­ing will con­tin­ue to evolve at a fever­ish pace, elim­i­nat­ing much of the unnec­es­sary human toil.
Con­tin­ue read­ing “The Par­a­digm Shift to Accom­pa­ny The Advent of Cheap Com­put­ing”