Posts Tagged ‘job’
Thursday, January 22nd, 2015 
I'm responsbile for a project environment made up of 3 components which is occasionally dying. Here is a short raw overview of environment
- Apache Reverse Proxy (entry door to app server)
- Tomcat Server with an Application enabling web access
- A Java Standalone application using SQLite database
The Tomcat and Java Standalone application is running on top of Windows 2008 RC2 Standard, the overall environment is becoming inacessible periodically and in order to solve that the customer decided to implement a daily Windows server reboot in my opinion this is very bad approach as it is much better to just set an auto reboot of each of components using few tiny batch scripts and Windows Taskmgr, however as the customer is king and decided to implement the reboot its their own thing.
However even fter the daily server reboot was set once a week or so the application was becoming inaccessible and a Tomcat server restart was necessery as a fix.
Finally as a work-around to the issue, I've proposed the logical thing to automatically restart Tomcat once a day early in morning, here is how Tomcat auto Restart was implemented on the Win server:
1. Check out the name of running Tomcat service
First thing is to use the sc command to find out the Tomcat application name:
C:UsersGeorgi>sc query state= all| findstr "Tomcat"
SERVICE_NAME: Tomcat7_r2c
DISPLAY_NAME: Apache Tomcat Tomcat7_r2c
C:UsersGeorgi>
2. Create bat script to stop and start Tomcat service
Press keyboard Win-button + R, start notepad type inside:
@echo off
sc stop Tomcat7_r2c && sc start Tomcat7_r2c
(
Don't be confused from screenshot that I have Tomcat7_MyApp instead of Tomcat7_r2c, but I made screenshot in hurry for another app.
Save the file, somewhere (preferrably) in application folder/bin/ it is best to save it once with bat extension MyApp-Tomcat_Restart.bat and once as MyApp-Tomcat_Restart.xml (XML format file is later needed for import to Task Scheduler which understands .XMLs). The .bat file is good to have because it is useful to somtimes restart Tomcat manually by running it (in case of some sudden Tomcat Appserver occurs even though the auto-restart script).
3. Create new Task using command line (cmd.exe)
Task can be created also from command line using following syntax:
schtasks /Create [/S [/U [/P [ ]]]]
/XML <xmlfile> /TN <taskname>
Simple way to create a new Windows task is shown in below command, it will set my Tomcat Restart script to run everyday in 05:00 early morning when no employees are using the system:
schTasks /Create /SC DAILY /TN "My Task" /TR "C:UsersGeorgiDesktopmyApp-Tomcat_Restart.bat" /ST 05:00
SUCCESS: The scheduled task "Tomcat Restart Task" has successfully been created.
4. Create / Import new Windows "Cron" job
Alternative way is to use Task Scheduler GUI frontend and create new (Basic Task) or import just created script
To run Windows Task Scheduler from comamnd line :
Taskschd.msc
To import already existing .XML formatted file for Task scheduler, right click on the Task Scheduler (Local) and select Import task
Import the myApp-Tomcat_Restart.XML previously created file
Adjust settings to suit your needs, but what change atleast:
- the path to the myApp-Tomcat_Restart.bat file in Actions tab
- the Local User account with which script will be running (administrator) in General tab
After making all changes you will be prompted for server Administrator account password
5. check existing Win Cron job from command line
To see the configured (Scheduled Tasks) in command line mode with a command:
Schtasks.exe
The command is Windows equivalent to UNIX / Linux's crontab, e.g.:
crontab -u root -l
6. Delete existing Windows Task Job from Command line
If you happen to need to delete just created task or any other task from command line (Assuming that you know the previously created task name), use cmd:
C:>schtasks /Delete /TN "Tomcat Restart Task"
WARNING: Are you sure you want to remove the task "Tomcat Restart Task" (Y/N)? y
SUCCESS: The scheduled task "Tomcat Restart Task" was successfully deleted.
Task completed, Tomcat will auto-restart on Windows host at your scheduled time. Feedback is mostly welcome 🙂
Enjoy
Tags: Apache Tomcat Tomcat7_r2c, auto reboot, command, community, Create Import, customer, Delete, door, environment, job, line, opinion, scripts, state, syntax, thing, Tomcat Restart Task, Windows Taskmgr
Posted in Everyday Life, System Administration, Various, Web and CMS, Windows | 2 Comments »
Wednesday, February 12th, 2014 
I WORK FOR MONEY IF YOU WANT LOYALTY – HIRE A DOG!
I was told about those picture few months ago by a friend (Ivan Pushkaroff – Pushi) while we were drinking beer together in (Delfincheto – a pub more known among people under the name "Ribkata (The Fish)" – A Metal Music pub in Studentski Grad (Sofia's Student City). By the way if you're in Sofia and near "Studentski Grad" be sure to drop by there – they serve great and always fresh fish also for ex-metal heads for me it is always nice to get some memories about "the good old metal years"
when I tried to complain how difficult it is for me on my job place. I'm a quite sensitive person and a perfectionist and always try to do a great job. Often however there are many obstacles to do your job in right way (as you depend on so many bureaucracy and external people that even if you do your best someone else can mix it up and screw all your effort by not doing his part of the job. The failure of project or Task due to inadeaquacy of someone else involved to do his job right can leave you with a feeling that you have failed even though it is completely not your fault. As these days I'm quite stressed on my job and I have to work on a lot of badly designed projects (and improperly) assigned tasks – yes in big companies it is like these "the right hand doesn't know what the left one is doing". I remembered my dear friend advice to not take it seriously or personally and decided to put these funny picture in hope that these will help me and others to deal with situation of hardships in job in a humorous way After all I'm just a mercenary and I'm doing my best right now in my job at HP … I work for money if they expect higher degree of loyalty let them hire a dog 🙂
Tags: dear friend, drinking beer, effort, feeling, fish, hardships, job, left, lot, money, picture, place, right, screw, situation, someone
Posted in Curious Facts, Entertainment, Everyday Life | No Comments »
Friday, July 27th, 2012 I’ve used K3B just recently to RIP an Audio CD with music to MP3. K3b has done a great job ripping the tracks, the only problem was By default k3b RIPs songs in OGG Vorbis (.ogg) and not mp3. I personally prefer OGG Vorbis as it is a free freedom respecting audio format, however the problem was the .ogg-s cannot be read on many of the audio players and it could be a problem reading the RIPped oggs on Windows. I’ve done the RIP not for myself but for a Belarusian gfriend of mine and she is completely computer illiterate and if I pass her the songs in .OGG, there is no chance she succed in listening the oggs. I’ve seen later k3b has an option to choose to convert directly to MP3 Using linux mp3 lame library this however is time consuming and I have to wait another 10 minutes or so for the songs to be ripped to shorten the time I decided to directly convert the existing .ogg files to .mp3 on my (Debian Linux). There are probably many ways to convert .ogg to mp3 on linux and likely many GUI frontends (like SoundConverter) to use in graphic env.

I however am a console freak so I preferred doing it from terminal. I’ve done quick research on the net and figured out the good old ffmpeg is capable of converting .oggs to .mp3s. To convert all mp3s just ripped in the separate directory I had to run ffmpeg in a tiny bash loop.
A short bash shell script 1 liner combined with ffmpeg does it, e.g.;
for f in *.ogg; do ffmpeg -i "$f" "`basename "$f" .ogg`.mp3"; done.....
The loop example is in bash so in order to make the code work on FreeBSD it is necessery it is run in a bash shell and not in BSDs so common csh or tcsh.
Well, that’s all oggs are in mp3; Hip-hip Hooray 😉
Tags: audio cd, Auto, basename, bash shell script, BSDs, chance, code, consuming, csh, debian linux, Draft, ffmpeg, format, freak, freebsd, freedom, frontends, GNU, gnu linux, job, k3b, Linux, necessery, Ogg, ogg files, oggs, option, RIPs, script, Shell, soundconverter, terminal, time, time consuming, vorbis ogg, work
Posted in Everyday Life, FreeBSD, Linux and FreeBSD Desktop, Linux Audio & Video | No Comments »
Wednesday, May 2nd, 2012 
I don't know if someone has thought about this topic but in my view Facebook use in organizations has a negative influence on companies overall efficiency!
Think for a while, facebook's website is one of the largest Internet based "people stealing time machine" so to say. I mean most people use facebook for pretty much useless stuff on daily basis (doesn't they ??). The whole original idea of facebook was to be a lay off site for college people with a lot of time to spend on nothing.
Yes it is true some companies use facebook succesfully for their advertising purposes and sperading the awareness of a company brand or product name but it is also true that many companies administration jobs like secretaries, accountants even probably CEOs loose a great time in facebook useless games and picture viewing etcetera.
Even government administration job positioned people who have access to the internet access facebook often from their work place. Not to mention, the mobility of people nowdays doesn't even require facebook to be accessed from a desktop PC. Many people employeed within companies, who does not have to work in front of a computer screen has already modern mobile "smart phones" as the business people incorrectly call this mini computer devices which allows them to browse the NET including facebook.
Sadly Microsoft (.NET) programmers and many of the programmers on various system platforms developers, software beta testers and sys admins are starting to adopt this "facebook loose your time for nothing culture". Many of my friends actively use the Facebook, (probably) because they're feeling lonely in front of the computer screen and they want to have interaction with someone.
Anyways, the effect of this constant fb use and aline social networks is clear. If in the company the employeed personal has to do work on the computer or behind any Internet plugged device, a big time of the use of the device is being 'invested' in facebook to kill some time instead of investing the same time for innovation within the company or doing the assigned tasks in the best possible way
Even those who use facebook occasionally from their work place (by occasionally I mean when they don't have any work to do on the work place), they are constantly distracted (focus on work stealed) by the hanging opened browser window and respectively, when it comes to do some kind of work their work efficiency drops severely.
You might wonder how do I know that facebook opened browser tab would have bad interaction with the rest of the employee work. Well let me explain. Its a well known scientifically proven fact that the human mind is not designed to do simultaneously multiple tasks (we're not computers, though even computers doesn't work perfect when simultaneous tasks are at hand.).
Therefore using facebook in parallel with their daily job most people nowdays try to "multi task" their job and hence this reflects in poor work productivity per employee. The chain result cause of the worsened productivity per employee is therefore seen in the end of the fiscal quarter or fiscal year in bad productivity levels, bad or worsened quality of product and hence to poor financial fiscal results.
I've worked before some time for company whose CEO has realized that the use of certain Internet resources like facebook, gmail and yahoo mail – hurts the employee work productivity and therefore the executive directors asked me to filter out facebook, GMAIL and mail.yahoo as well as few other website which consumed a big portion of the employees time …
Well apparantly this CEO was smart and realized the harm this internet based resources done to his business. Nowdays however many company head executives did not realize the bad effect of the heavy use of public internet services on their work force and never ask the system administrator to filter out this "employees efficiency thefts".
I hope this article, will be eventually red by some middle or small sized company with deteriorating efficiency and this will motivate some companies to introduce an anti-facebook and gmail use policy to boost up the company performance.
As one can imagine, if you sum up all the harm all around the world to companies facebook imposed by simply exposing the employees to do facebooking and not their work, this definitely worsenes the even severe economic crisis raging around …
The topic of how facebook use destroyes many businesses is quite huge and actually probably I'm missing a lot of hardmful aspects to business that can be imposed by just a simple "innocent facebook use", so I will be glad to hear from people in comments, if someone at all benefits of facebook use in an company office (I seriously doubt there is even one).
Suppose you are a company that does big portion of their job behind a computer screen over the internet via a Software as a Service internet based service, suppose you have a project deadline you have to match. The project deadline is way more likely to be matched if you filter out facebook.
Disabling access to facebook of employees and adding company policy to prohibit social network use and rules & regulations prohibiting time consuming internet spaces should produce good productivity results for company lightly.
Though still the employees can find a way to access their out of the job favourite internet services it will be way harder.
If the employee work progress is monitored by installed cameras, there won't be much people to want to cheat and use Facebook, Gmail or any other service prohibited by the company internal codex
Though this are a draconian measures, my personal view is that its better for a company to have such a policy, instead of pay to their emloyees to browser facebook….
I'm not aware what is the situation within many of the companies nowdays and how many of them prohibit the fb, hyves, google plus and the other kind of "anti-social" networks.
But I truly hope more and more organizations chairman / company management will comprehend the damages facebook makes to their business and will issue a new policy to prohibit the use of facebook and the other alike shitty services.
In the mean time for those running an organization routing its traffic through a GNU / Linux powered router and who'd like to prohibit the facebook use to increase the company employees efficiency use this few lines of bash code + iptables:
#!/bin/sh
# Simple iptables firewall rules to filter out www.facebook.com
# Leaving www.facebook.com open from your office will have impact on employees output ;)
# Written by hip0
# 05.03.2012
get_fb_network=$(whois 69.63.190.18|grep CIDR|awk '{ print $2 }');
/sbin/iptables -A OUTPUT -p tcp -d ${get_fb_network} -j DROP
Here is also the same filter out facebook, tiny shell script / blocks access to facebook script
If the script logic is followed I guess facebook can be disabled on other company networks easily if the router is using CISCO, BSD etc.
I will be happy to hear if someone did a research on how much a company efficiency is increased whether in the company office facebook gets filtered out. My guess is that efficiency will increase at least with 30% as a result of prohibition of just facebook.
Please drop me a comment if you have an argument against or for my thesis.
Tags: awareness, basis, beta testers, college, companies administration, company businesses, computer devices, computer screen, daily basis, Desktop, doesn, etcetera, facebook, government, government administration, interaction, job, Linux, linux routers, machine, Microsoft, mini computer, negative influence, organization network, place, quot, screen, smart phones, social networks, someone, stealing time, succesfully, sys admins, system platforms, time, time machine, topic, useless stuff, work
Posted in Business Management, System Administration | 2 Comments »
Tuesday, April 3rd, 2012 One of the companies, where I'm doing a part time job, as an IT Consultant, System Administrator and Web developer, a e-marketing specialist and business consultant (the list goes on ;)) … planned to integrate a Newsletter support in their WordPress based websites.
As this fits my "job description" ,I took the task and implemented a simple but functional Newsletter support to their 4 WP based sites. In this article I will in short describe, my experience with placing the Newsletter subscription.:
Earlier I've done something similar as, I've added a subscipriotion (form) box to WordPress to use Google Feedburner RSS . What I needed this time, however was a bit different. The company required the newsletter to be a separate one and don't relay on Google Feedburner (RSS) to deal with the subscriptions .
It took me a while until I came with a working version of a Newsletter and I actually tested all in all 4 newsletter wordpress plugins before, I had a well working one. Here in short, In this article I will shortly take a look at the 4 WP newsletter plugins:
1. A wordpress plugin called simply Newsletter
As of time of writting this is the most popular wordpress plugin, when I looked through:
- http://wordpress.org/extend/plugins/
Wordpress Newsletter plugin can be obtained via http://wordpress.org/extend/plugins/newsletter/
Its really Advanced, probably the best free newsletter for WP available as of time of writting. The plugin supports email subscriber user confirmation (double opt-in), as well as can be accustomized to work with single opt-in.
For all those who don't know Double Opt-In is the technical term for a once requested user email (single opt-in), for subscription which is later confirmed by following an email box sent link pointing to confirmation URL.
Double Opt-In is almost a standard and "must" as otherwise, many spam bots will fill in randomly email addresses and your subscribers list will be mostly containing spammer email addresses.
1. Install WordPress Newsletter Plugin To install Newsletter plugin;
a) download and put into wp-content/plugins/ and unzip
server:~# cd /var/www/blog/wp-content/plugins
server:/var/www/blog/wp-content/plugins# wget -q http://downloads.wordpress.org/plugin/newsletter.zip
server:/var/www/blog/wp-content/plugins# unzip newsletter.zip
b) Enable in Plugins:
Plugins -> Newsletter (Activate)
c) Configure Newsletter
A new menu will appear in the left WP control panel, like you see in below screenshot:

Newsletter plugin is very configurable but it takes a bit of longer time until it is confingured to work well. So be patient with it.
d) Make Newsletter field appear on a wordpress home page.
In order to enable just configure Newsletter plugin (text and subscription form) to appear on the wordpress pages, you need to add the plugin as a widget. To do so go to:
Appearance -> Widgets
Drag and drop the Newsletter plugin widget to the widget right pane. Put it on the exact place you would like it to appear.
Once the widget is placed, you will see it appear to the respective location on WP pages, you should have something like:

If while you enable the plugin and put the Newsletter widget doesn't appear on WordPress, this is probably due to some Cache left from some enabled WP caching pugin like W3 Total Cache
In any case if Newsletter form subscription, is not appearing on your pages, delete the cache/ directory:
# rm -rf /var/www/wordpress-site/wp-content/cache/
I've experienced, this caching problems and it was quite a riddle, until I found out that the Newsletter plugin is not appearing on the WP pages because of the old cache. I've checked bacicly everything (error.log , apache php_error.log) etc.. Therein, there was no error or anything, so after a long 1 hour or so poundering I figured out this kind of caching done by W3 Cache.
My guess is, the same newsletter "not working" issue is probably observable also on WP installs with other caching plugins like WP Hyper Cache or WP Db Cache
2. ALO EasyMail Newsletter WordPress plugin
I don't know, why but this plugin didn't work properly on the wordpress install, I've tested it. Its true the wordpress version where I give it a try was not running, the latest stable wordpress so I assume this might be the reason for the empty pages returned when I enabled the plugin.
According to wordpress's plugin – http://wordpress.org/extend/plugins/alo-easymail/, the plugin is marked as Works, however in my case it didn't.
3. Adding WordPress Newsletter through Email newsletter
This plugin was a real piece of cake, compared to all of the rest, tested this one was the easiest one to install and configure on WordPress.
Just like with Newsletter and ALO EasyMail Newsletter once the user is subscribed, from the admin there is possibility to sent crafted messages to all subscribers.
The plugin is a great, choice for anyone who is looking for quick install of Newsletter on WordPress without extra "config" complications.
Below is a quote describing email newsletter, taken from the plugin author webpage;
Advantage of this plugin
- Simple no coding required.
- Easy installation .
- Using this plug-in we can send email to all registered folks.
- Using this plug-in we can send email to all comment posted folks.
- Email subscribe box for front end
- Check box option available to select/unselect emails from the send mail list.
- Integrated the email newsletter plugin & simple contact form plugin
– Enabling the plugin is done via admin menus:
Plugins -> Inactive -> Email Newsletter (enable)
Afterwards, the plugin requires a quick configuration from wp-admin:
Email Newsletter -> Subscriber form setting

You see in the screenshot, the config where to place the plugin is trivial.
To make Email Newsletter appear on the pages, you will have to add the Email Newsletter widget from:
Appearance -> Widgets
The widget looks like the one in below screenshot:

Drag and drop the widget to the widgets pane. Onwards on the wordpress pages, should appear an email subsciption box:

Though Email Newsletter is great, it has one serious drawback, as it doesn't support Double Opt-In. Therefore people subscribing through it are not mailed with a request to confirm their email subscription request.
As a result, its very likely many spam-bots submit fake emails in the newsletter subscribe form and in 1 year time your newsletter email list might get full with tens of thousands unexistent emails. If you end up with this bad scenario, once newsletter emails are sent to (regular) exitent subscribers, many of the bulk emails in the list will never reach their senders, but will just fill-up the mail server queue and take up server resources for nothing for one week or so (depending on the email configuration keep undelivered mail setting).
Anyways, since the basis of this plugin works fine, I'm sure if the author modifies it to include a simple Captcha instead of double-opt functionality, the plugin can become top plugin.
Tags: administrator, ALO, Auto, bit, blog, business consultant, Cache, confirmation, confirmation url, description, download, Draft, e mail, email addresses, Feedburner, form, free newsletter, google, Install, job, job description, mail newsletter, marketing, newsletter, newsletter subscription, newsletter support, NewsletterAs, Opt, part time job, plugin, Plugins, quot, relay, something, spammer, specialist, subscriber, subscribers, subscriptions, support, system administrator, time, web developer, Wordpress, wp newsletter, writting
Posted in System Administration, Web and CMS, Wordpress | 3 Comments »
Saturday, March 24th, 2012 
I've written a tiny script to check and restart, Apache if the server encounters, extremely high load avarage like for instance more than (>25). Below is an example of a server reaching a very high load avarage:;
server~:# uptime
13:46:59 up 2 days, 18:54, 1 user, load average: 58.09, 59.08, 60.05
load average: 0.09, 0.08, 0.08
Sometimes high load avarage is not a problem, as the server might have a very powerful hardware. A high load numbers is not always an indicator for a serious problems. Some 16 CPU dual core (2.18 Ghz) machine with 16GB of ram could probably work normally with a high load avarage like in the example. Anyhow as most servers are not so powerful having such a high load avarage, makes the machine hardly do its job routine.
In my specific, case one of our Debian Linux servers is periodically reaching to a very high load level numbers. When this happens the Apache webserver is often incapable to serve its incoming requests and starts lagging for clients. The only work-around is to stop the Apache server for a couple of seconds (10 or 20 seconds) and then start it again once the load avarage has dropped to less than "3".
If this temporary fix is not applied on time, the server load gets increased exponentially until all the server services (ssh, ftp … whatever) stop responding normally to requests and the server completely hangs …
Often this server overloads, are occuring at night time so I'm not logged in on the server and one such unexpected overload makes the server unreachable for hours.
To get around the sudden high periodic load avarage server increase, I've written a tiny bash script to monitor, the server load avarage and initiate an Apache server stop and start with a few seconds delay in between.
#!/bin/sh
# script to check server for extremely high load and restart Apache if the condition is matched
check=`cat /proc/loadavg | sed 's/\./ /' | awk '{print $1}'`
# define max load avarage when script is triggered
max_load='25'
# log file
high_load_log='/var/log/apache_high_load_restart.log';
# location of inidex.php to overwrite with temporary message
index_php_loc='/home/site/www/index.php';
# location to Apache init script
apache_init='/etc/init.d/apache2';
#
site_maintenance_msg="Site Maintenance in progress - We will be back online in a minute";
if [ $check -gt "$max_load" ]; then>
#25 is load average on 5 minutes
cp -rpf $index_php_loc $index_php_loc.bak_ap
echo "$site_maintenance_msg" > $index_php_loc
sleep 15;
if [ $check -gt "$max_load" ]; then
$apache_init stop
sleep 5;
$apache_init restart
echo "$(date) : Apache Restart due to excessive load | $check |" >> $high_load_log;
cp -rpf $index_php_loc.bak_ap $index_php_loc
fi
fi
The idea of the script is partially based on a forum thread – Auto Restart Apache on High Load – http://www.webhostingtalk.com/showthread.php?t=971304Here is a link to my restart_apache_on_high_load.sh script
The script is written in a way that it makes two "if" condition check ups, to assure 100% there is a constant high load avarage and not just a temporal 5 seconds load avarage jump. Once the first if is matched, the script first tries to reduce the server load by overwritting a the index.php, index.html script of the website with a one stating the server is ongoing a maintenance operations.
Temporary stopping the index page, often reduces the load in 10 seconds of time, so the second if case is not necessery at all. Sometimes, however this first "if" condition cannot decrease enough the load and the server load continues to stay too high, then the script second if comes to play and makes apache to be completely stopped via Apache init script do 2 secs delay and launch the apache server again.
The script also logs about, the load avarage encountered, while the server was overloaded and Apache webserver was restarted, so later I can check what time the server overload occured.
To make the script periodically run, I've scheduled the script to launch every 5 minutes as a cron job with the following cron:
# restart Apache if load is higher than 25
*/5 * * * * /usr/sbin/restart_apache_on_high_load.sh >/dev/null 2>&1
I have also another system which is running FreeBSD 7_2, which is having the same overload server problems as with the Linux host.
Copying the auto restart apache on high load script on FreeBSD didn't work out of the box. So I rewrote a little chunk of the script to make it running on the FreeBSD host. Hence, if you would like to auto restart Apache or any other service on FreeBSD server – get /usr/sbin/restart_apache_on_high_load_freebsd.sh my script and set it on cron on your BSD.
This script is just a temporary work around, however as its obvious that the frequency of the high overload will be rising with time and we will need to buy new server hardware to solve permanently the issues, anyways, until this happens the script does a great job 🙂
I'm aware there is also alternative way to auto restart Apache webserver on high server loads through using monit – utility for monitoring services on a Unix system. However as I didn't wanted to bother to run extra services in the background I decided to rather use the up presented script.
Interesting info to know is Apache module mod_overload exists – which can be used for checking load average. Using this module once load avarage is over a certain number apache can stop in its preforked processes current serving request, I've never tested it myself so I don't know how usable it is. As of time of writting it is in early stage version 0.2.2
If someone, have tried it and is happy with it on a busy hosting servers, please share with me if it is stable enough?
Tags: Anyhow, apache server, apache webserver, Auto, avarage, awk print, bak, bash script, bash shell, bash shell script, condition, cron, cron job, Draft, dual core, host, incoming requests, index, index page, init, instance, job, level, level numbers, Linux, linux servers, loc, location, night time, php, quot, Restart, restart apache, rpf, script, server load, server overloads, server services, server uptime, Shell, ssh, ssh ftp, time, unexpected overload, unreachable, utility
Posted in FreeBSD, Programming, System Administration | 5 Comments »
Friday, February 17th, 2012 Free Software (FS) is free as in freedom as well as free as in price. Free and Open Source Software (FOSS) is developed by geek hobbyist which voluntarily put their time and effort in writting, testing and sharing with anyone for free million of lines of programming code. This doesn't mean however the price of free software costs is 0 (zero). Though the "end product" – Free Software developed is FREE, "real" software costs as with any other product costs huge money.
I've recently read on Jeb's blog an estimation on how much is the cost of one of the major Free Software project efforts – Debian GNU / Linux
According to James E. Bromberger – the whole Debian project was estimated to be at the shocking price of $19 billion – $19 000, 000, 000 !!!
Here is how JEB got the $19 billions, a quote taken from his blog:
"By using David A Wheeler’s sloccount tool and average wage of a developer of US$72,533 (using median estimates from Salary.com and PayScale.com for 2011) I summed the individual results to find a total of 419,776,604 source lines of code for the ‘pristine’ upstream sources, in 31 programming languages — including 429 lines of Cobol and 1933 lines of Modula3!
In my analysis the projected cost of producing Debian Wheezy in February 2012 is US$19,070,177,727 (AU$17.7B, EUR€14.4B, GBP£12.11B), making each package’s upstream source code worth an average of US$1,112,547.56 (AU$837K) to produce. Impressively, this is all free (of cost).
James has done incredible job with this great research and he deserves applause.
However I believe the numbers proposed by his research are slightly different if we speak about realistic cost of Debian GNU / Linux.
The real costs of the working software ready to install on a user PC are way higher, as according to Jeb's research only the software cost based on code line count is considered.
Hence James software estimation calculates only the programming costs and miss many, many factors that constitute the software end cost.
Some of the many, many REAL COST / expenses for developing a huge Free Software project like Debian GNU / Linux to be considered are:
a) bandwidth costs for hosting free software (on the server side)b) bandwidth cost for developers or FS users downloading the software
a) Time spend to spread the word of the great added value of Debian and bundled software (Mouth by Mouth Marketing)
b) Time spend to advertise Debian and its free software components on blogs, social networks (identi.ca, facebook, twitter) etc.(Voluntary online Marketing, SEO etc.)
c) Time spend on generating ideas on future program versions and reporting them to Debian FS community
d) Time on evaluation and feedback on software
e) Time spend on managing free software repository (download) servers voluntarily (by system administrators)
f) Time spend by users on Bug Tracking & Bug Reporting
g) Time spend on research and self-actualization by software developer)
h) Time spend on software Quality Assurance
This are most of the multiple factors which should probably influence the cost of any non-free (proprietary software) project. No matter this costs apply for non-free software, it perfectly applies for free software as well.With all said if if we assume the non-programming costs are equal to the programming costs of $ 19 000 000 000 (suggested by Jeb). This means the real cost of Debian will presumably be at least $32 000 000 000. Putting $ 19 billion for all this long list of "additional" costs (besides pure source) factors is probably still very under-scored number.
- the developers use of their own computers (hardware depreciation)
- electricity bill of the volunteer (developer) working on the program or project
- electricity bills for servers where free software is stored and available for download
- volunteer developer IT skills and tech knowledge (KNOW HOW)
- Internet, network, dial up bandwidth cost
- personal time put in FS development (programming, design, creativity etc.)! here the sub costs are long:
- Costs for Project Management Leaders / Project Coordination
- The complexity of each of the projects constituting Debian
Very interesting figure from Jeb's research is the Programming Languages break down by source code figure.
Jamesresearch reveals on the 4 major programming languages used in the 17000+ software projects (part of Debian GNU / Linux):
- ANSI C with 168,536,758 – (40% of all projects source code)
- C++ at 83,187,329 – (20% of all projects source)
- Java 34,698,990 – (lines of code 8% of sources)
- Lisp – (7% of all projects source code)
His research also provides a general idea on how much the source code of some of the major FOSS projects costs. Here is a copy of his figures
Individual Projects
Other highlights by project included:
Project | Version | Thousands of SLOC | Projected cost at US$72,533/developer/year |
Samba | 3.6.1 | 2,000 | US$101 (AU$93M) |
Apache | 2.2.9 | 693 | US$33.5M (AU$31M) |
MySQL | 5.5.17 | 1,200 | US$64.2M (AU$59.7M) |
Perl | 5.14.2 | 669 | US$32.3M (AU$30M) |
PHP | 5.3.9 | 693 | US$33.5M (AU$31.1M) |
Bind | 9.7.3 | 319 | US$14.8M (AU$13.8M) |
Moodle | 1.9.9 | 396 | US$18.6M (AU$17.3M) |
Dasher | 4.11 | 109 | US$4.8M (AU$4.4M) |
DVSwitch | 0.8.3.6 | 6 | US$250K (AU$232K) |
As you can imagine all the source evaluation results, are highly biased and are open for discussion, since evaluating a free software project/s is a hard not to say impossible task. The "open" model of development makes a project very hard to track, open source model implies too many unexpected variables missing from the equation for clear calculation on costs. What is sure however if turned in money it is very expensive to produce. At present moment Debian Project is sponsored only through donations. The usual yearly budget 5 years ago for Debian was only $80 000 dollars a year!! You can check Debian Project annual reports throughout the years here , for year 2012 Debian Project budget is as low as $ 222, 677 (US Dollars)! The output price of the software the project provides is enormous high if compared to the low project expenses!
For us the free software users, price is not a concern, Debian is absolutely free both as in freedom and free as in beer 😉
Tags: Auto, average wage, cobol, code, com, count, david a wheeler, debian gnu, debian project, depreciation, doesn, download, Draft, effort, electricity, euro, foss, Free, free as in freedom, free software project, free software projects, freedom, geek, gnu linux, hobbyist, jeb, job, marketing, Modula, nbsp, Open, open source software, package, PayScale, programming code, programming costs, programming languages, project efforts, quot, real software, rsquo, Salary, software, software costs, software estimation, source lines, time, tool, total, working software
Posted in Everyday Life, Linux, Various | 2 Comments »
Tuesday, February 7th, 2012 
Many younger people, might not know lpr command, historically it was heavily used for printing in the early GNU / Linux days.
lpr ships the text to be printed to the printer which is physically attached on LPT (Line Print Terminal) parallel port . Those who lived the DOS era surely know in those "ancient" days, everyone who wanted to print has to use the LPT parallel port
Present time, everyone knows there is almost no modern printer that is attached to the PC via LPT port but rather the USB port is used for communication between the printer the computer.
Nevertheless The USB printers on Linux are managed by CUPS, the lpr command is still functional shipping the text to be printed via CUPS (cups-lpd daemon).
Before cups-lpd was introduced the service managing the print jobs was lpd
Hence lpr is still functional.
To print a plain text file of one page with lpr on Linux:
linux:~# cat text-file-to-print.txt | lpr
For multiple printers to switch between multiple printers there is the PRINTER shell variable:
linux:~# export PRINTER=printer-Name-and-Type
To print a really long text file (a book in TXT) the pr command comes handy. As you can read in the cmd manual pr – converts text files for printing
Lets say you would like to have a 60 lines of text per printed page, the cmd to issue is:
linux:~# pr -l60 text-file-to-print.txt | lrp
All queued printing jobs can be reviewed with the lpq, if you have a printer attached try:
linux:~# lpq
lp is ready and printing
Rank Owner Job Files Total Size
active hipo 1 text-file-to-print.txt 62045 bytes
Since some years it is pretty rare for people to use lpq, since most of the parallel printing is managed by CUPS server, what most people use nowdays to check the printer queue is lpstat : e.g.
linux:~# lpstat
...
Printing status and all things related to queued jobs for printing gets logged in /var/log/lpr.log
There is even more simplistic way to print directly to the printer (if the printer is attached via a LPT port) through the kernel /dev/lp, for example:
linux:~# cat text-file-to-print.txt >> /dev/lp
For more than one printer attached the naming of /dev/lp, might probably be /dev/lp0, /dev/lp1 etc.
The lprm command also exists in case if you would like to cancel a printjob in the queue. Lets say I want to cancel a job in the queue with Job ID 5:
linux:~# lrpm 5
...
To cancel a current running job in the middle the /usr/bin/cancel command exists.
An interesting historic fact is that nowdays opening lpr, lpq or any of the other tools for simple text mode printing one sees on top of the page Apple Inc.
Lets clear this up CUPS (Common Unix Printing System) (open source) printing platform is not owned by Apple, since it is licensed under GPL2 and LGPL. The reason why the Apple Inc. shows up in man pages is because in year 2007, the founder of CUPS printing server Michael Sweet hired him to work for Apple Inc. "purchasing" the CUPS source. However as we know they did not really purchased the code, because the code was already belonging to the community (licensed under GPL2). Apple however as a marketing trick used the fact that Sweet worked for them and as probably as a matter of marketing asked him to place the Apple Inc. in the copyright source and manual areas. Obviously this is not true, since Apple Inc. does not hold copyright for CUPS as CUPS can be copied by anyone (its open source) 😉
Most of the people will never print using this commands, since printing is now, ages ahead, anyways for simple people (like me), who just need to print a text with no special fonts or graphics text printing is just great.
Text printing is also a good learning experience for Linux novices and is good to be known just as a piece of UNIX history.
Tags: Auto, cmd, code, Copyright, Draft, everyone, file, Files, gnu linux, job, jobs, Linux, linux pr, lpd, lpd daemon, lpq, lpstat, page, parallel port, parallel printing, present time, Print, printer name, printer queue, printing, printingRank, queue, Shell, shipping, ships, Sizeactive, terminal, text, time, usb port, usb printers
Posted in Linux, System Administration | 1 Comment »
Monday, January 9th, 2012 I've recently had to set up a backup system to synchronize backup archive files between two remote servers and as I do usually with this situation I just set up a crontab job to periodically execute rsync to copy data from source server to the destination server . Copying SRC to DEST is the default behaviour rsync uses, however in this case I had to copy from the destination server to the source server host (in other words sync files the reversely.
The usual way to copy with rsync via SSH (from SRC to DEST) is using a cmd line like:
debian:~$ /usr/bin/rsync -avz -e ssh backup-user@xxx.xxx.xxx.xxx:/home/backup-user/my-directory .
Where the xxx.xxx.xxx.xxx is my remote server IP with which files are synched.
According to rsync manual, the proposed docs SYNOPSIS is in the format;
Local: rsync [OPTION…] SRC… [DEST
Obviusly the default way to use rsync is to copy source to destination which I used until now, but in this case I had to the other way around and copy files from a destination host to the source server. It was logical that swapping the SRC and DEST would complete my required task. Anyways I consulted with some rsync gurus in irc.freenode.net , just to make sure it is proper to just swap the SRC, DEST arguments.
I was told this is possible, so I swapped args;
debian:~$ /usr/bin/rsync -avz -e ssh . backup-user@xxx.xxx.xxx.xxx:/home/backup-user/my-directory
...
Surprisingly this worked 😉 Anyways I was adviced by by a good guy nick named scheel , that putting -e ssh to command line is generally unnecessery except if there is no some uncommon used SSH port over which the data is transferred. An example case in which -e 'ssh is necessery would be if transferring via lets say SSH port 1234;
rsync -avz -e 'ssh -p1234' /source user@host:/dest
In all other cases omitting '-e ssh' is better as '-e ssh' is rsync default. Therefore my final swapped line I put in cron to copy from a destinatio to source host with rsync looked like so:
05 03 2 * * /usr/bin/ionice -c 3 /usr/bin/rsync -avz my-directory backup-user@xxx.xxx.xxx.xxx:/home/backup-user/ >/dev/null 2>&1
Tags: archive files, Auto, avz, backup system, case, cmd, cmd line, copy, copying, cron, default, default behaviour, destIn, destinatio, destination, destination host, destination server, docs, Draft, example, example case, few words, format, gurus, host, job, nbsp, necessery, nick, option, port 1234, remote server, rsync, scheel, server host, server ip, source host, source server, ssh port, sync files, system, usr bin
Posted in FreeBSD, Linux, System Administration | No Comments »
Saturday, December 17th, 2011 
Have you ever wondered, if there is a free (open source) software that could fix Windows XP registry irregularities e.g. (obsolete or unwanted items that build up in the registry over time.)?
I did not either until now, however when I had to fix, few Windows XP computers which was not maintained for a long time fixing the Windows registry was necessery to make the sluggerish computers improve their overall stability and performance.
The reasons of the slowness in computers who run for a long time by users who does not have a "computer culture" are obvious.
Windows programs which has incorrectly placed registry records withint the Windows registry database, Programs which on Uninstall / Removal left behind a lot of registry records just to hang around because of impotent (coders), or records created on purpose on program uninstall to intentionally further track the user behavior etc.
Other reasons why Windows registry gots bloated with time, are due to Malware or polymorphic Viruses which load them selves everytime on Windows load using some obscure registry records.
Though I'm not a big proprietary software lover still my job as a system administrator , enforces me to fix some broken Windowses.
I haven't fixed Windows machines for a long time, so my memories on programs that clean up registry are from my young years.
The software, I've used before to fix Windows 2000 / XP Registry was:
1. Registry Booster
From my current perspective of a free software hobbyist / evangelist it was important for me to clean up the Windows PCs with a program that is Free or Open Source Software.
When I'm asked to fix some Windows computer I always do my best to make most of the programs that roll on the PC to be FOSS.
Using FOSS instead of downloading from torrents, some cracked software has multiple benefits.
1. Usually Free Software is more stable and more robust2. FOSS software for Windows usually does not come with Malware / Spyware as many of the cracked proprietary software
3. Free and Open Source Programs are simplistic in interface and way of use
A bit of research if there is a Free (Open Source) Software immediately lead me to a program called Little Registry Cleaner
You can see a screenshot of the program in the beginning of the article, the program is very easy to install and use and uses some .NET framework classes so right before installing it installs .NET library (code).
The use results of Little Registry Cleaner were amazing. Even though it is a free software the program found and fixed more registry problems than its competitor Windows Registry Booster! 😉
Tags: Booster, code, computer culture, cracked software, database programs, everytime, foss, Free, free open source, free open source software, hobbyist, job, lover, Malware, nbsp, necessery, Open, open source software, perspective, polymorphic viruses, proprietary software, quot, registry database, Removal, right, roll, screenshot, slowness, sluggerish, software, software open source, source windows, spywar, Spyware, time, unwanted items, Viruses, windows computer, windows load, windows pcs, windows programs, windows registry, windows xp registry
Posted in System Administration, Windows | 4 Comments »