History in the making – MagmaTec turns 10!

Posted by batman on Feb 27th, 2010
2010
Feb 27

Original article posted by MagmaTec
Magmatec's 10th anniversary

A little over 10 years ago, members of the then Southern Life EB IT department underwent some anxious moments when it was announced that Southern Life was being “merged with” (or more correctly “taken over by”) Momentum Life. Some of the drivers at play in this regard were that Momentum had a relatively small EB operation, and were not in a position to take on the much larger EB book of Southern. The decision had however been taken that the merged Momentum EB head office was to be in Gauteng. Our EB IT staff were desperately needed up there, but not many (none!) were prepared to make the move from Cape Town. As in all mergers, the biggest question for our staff was “what will happen to me”.

Fortunately for us, Momentum had an entrepreneurial culture, which was open to entrepreneurial behaviour and risk taking. So when the idea of the Southern EB IT shop starting a company by itself was mooted, they accepted this as a win / win proposition, which would provide the new Momentum EB entity with protection regarding the maintenance of the Southern Legacy systems. Consequently, MagmaTec came into being on 01 November 1998! As a new business, it was started with a lot of idealism and enthusiasm, a contract to support these legacy Southern systems, and not much else in the form of business experience or further opportunities. The journey had however begun… Some highlights over the years included:

  • Early on, we had no structure, open salaries, and lots of lengthy debates over every decision – we took a few days of meetings to choose a name, and our first new person recruited (Vanessa) required a company vote for approval!
  • We had lots of “sessions” (at The Range in Tokai) facilitated by Helene Smit, with the purpose of getting everyone`s emotions and values incorporated in the new “MagmaTec culture”. Many of the cultural factors that emerged in those early years have in fact stood the test of time, and are still very much part of MagmaTec today.
  • Although we were primarily a mainframe shop at that point, we did have a few “new age techies” in our midst (eg Steve, Bruce) who actually knew how to “program for PC`s” as we called it back then. They did an investigation as to whether our future should lie more in the Java or the Microsoft worlds. History tells us what they decided!
  • We had no clue as to what services we actually offered, and basically tendered for any IT work that we could come across (any technology, any industry). We did a web site for Future Growth, a financial calculator called “Lighthouse”, and a few other small things that cost us money but didn`t go anywhere.
  • We did a lot of work for a company called Limon (now sadly demised), based in Jhb – so LOTS of stressful travelling was done by Brian, Shafiq and Cathy Kleyn, who became local residents in the Morningside City Lodge for months on end.
  • We looked hard for an office to rent, couldn`t find anything suitable and eventually took the risk of buying the offices at Greenford.
  • We then did a catering system for Fedics, and a survey system for Netcare, both of which in fact are still being used in one form or another, despite not being worked on for many years!
  • It slowly dawned on us that we always struggled to get new business, and we needed a marketing specialist. Brian emerged from the technical woodwork to start a drive in marketing strategy. Eventually (with the help of a consultant) – we got the idea that the one area we could in fact compete was – you would never guess – Employee Benefits IT! This insight had taken us a few short years (we were quick learners you see :). Once we focused on “EB IT”, the company growth started.
  • Growth meant many more talented people joining us, and making their individual marks on our fledgling company in different ways. Middle management layers started to appear, our “Finance” and “HR” functions began to get more formal, and in general, we became more structured and organized.
  • Once we started to reach our peak in our local EB IT clients, we decided to spread our wings into the broader financial services market, and also to Johannesburg… and this is where we are today.

On the one hand, it feels like we started the company just the other day, and it is difficult to believe that 10 years have already passed. On the other hand, we have grown and learned so much during this time, as we faced one challenge after the other, that it seems like a VERY long time since we started. But overall, I for one can say that although there have been some difficult moments (and there still are many challenges we are grappling with), the consistent reason that I have stayed at MagmaTec, is that all the people involved have made the journey a very special one. I wouldn`t wish to face the challenges of competing in today`s very competitive markets, and dealing with ever increasing demands from clients, with any other group of people!

I would like to end off by saying a big THANK-YOU to all the staff who have been with us along the way, regardless of how long they have been at MagmaTec. Our collective efforts have resulted in us being able to move from a small start up, to a professional mid-size IT company, and credit in this regard is due to each and every person who played a role. Apparently only a very small percentage of start-ups make it through to 10 years, and I think we can all be justifiably proud to be one of them.

Now to the challenges of the next 10 years!

Stuart Phillips – Managing Director

Powered by Zoundry Raven

Technorati :
Del.icio.us :
Zooomr :
Flickr :

Share and Enjoy:
  • Facebook
  • Twitter
  • Digg
  • StumbleUpon
  • del.icio.us
  • Yahoo! Buzz
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • laaik.it
  • Google Buzz
  • Technorati
  • Slashdot
  • Reddit

Cool way to nuke rogue processes

Posted by batman on Feb 27th, 2010
2010
Feb 27

The scenario

Lets imagine we have a couple of rogue ‘apache2’ processes. This in no way implies that apache provide rogue processes – it is merely used as an example.

First just list all running processes (subset shown)

$ ps ef

root 5726 0.0 0.0 1856 304 ? Ss 06:08 0:00 /usr/bin/ ...
root 5727 0.0 0.0 1860 304 ? Ss 06:08 0:00 /usr/bin/vmnet-dhcpd -cf ...
root 5738 0.0 0.3 20944 6448 ? Ss 06:08 0:00 /usr/sbin/apache2 -k start
www 5755 0.0 0.7 28608 14480 ? S 06:08 0:00 /usr/sbin/apache2 -k start
www 5756 0.0 0.6 27304 13384 ? S 06:08 0:00 /usr/sbin/apache2 -k start
www 5757 0.0 0.6 27508 13092 ? S 06:08 0:00 /usr/sbin/apache2 -k start
www 5758 0.0 0.5 26464 12056 ? S 06:08 0:00 /usr/sbin/apache2 -k start
www 5759 0.0 0.5 25664 11192 ? S 06:08 0:00 /usr/sbin/apache2 -k start
root 5830 0.0 0.0 2948 620 ? Ss 06:08 0:00 /usr/bin/kdm
root 5851 0.8 2.5 55928 51996 tty7 Ss+ 06:08 1:31 /usr/bin/X -br -nolisten tcp :0 vt7 -auth ...
root 5869 0.0 0.0 3932 1460 ? S 06:08 0:00 -:0
bruce 5961 0.0 0.0 1756 536 ? Ss 06:08 0:00 /bin/sh /usr/bin/startkde
bruce 6004 0.0 0.0 4432 588 ? Ss 06:08 0:00 /usr/bin/ssh-agent /usr/bin/startkde

or then for a specific user –

$ ps efu -u www

www 5755 0.0 0.7 28608 14480 ? S 06:08 0:00 /usr/sbin/apache2 -k start
www 5756 0.0 0.6 27304 13384 ? S 06:08 0:00 /usr/sbin/apache2 -k start
www 5757 0.0 0.6 27508 13092 ? S 06:08 0:00 /usr/sbin/apache2 -k start
www 5758 0.0 0.5 26464 12056 ? S 06:08 0:00 /usr/sbin/apache2 -k start
www 5759 0.0 0.5 25664 11192 ? S 06:08 0:00 /usr/sbin/apache2 -k start
www 5961 0.0 0.0 1756 536 ? Ss 06:08 0:00 /bin/sh /usr/bin/startkde
www 6004 0.0 0.0 4432 588 ? Ss 06:08 0:00 /usr/bin/ssh-agent /usr/bin/startkde

now filter out only those processes we’d like to kill

$ ps efu -u www | grep ‘apache2’

www 5755 0.0 0.7 28608 14480 ? S 06:08 0:00 /usr/sbin/apache2 -k start
www 5756 0.0 0.6 27304 13384 ? S 06:08 0:00 /usr/sbin/apache2 -k start
www 5757 0.0 0.6 27508 13092 ? S 06:08 0:00 /usr/sbin/apache2 -k start
www 5758 0.0 0.5 26464 12056 ? S 06:08 0:00 /usr/sbin/apache2 -k start
www 5759 0.0 0.5 25664 11192 ? S 06:08 0:00 /usr/sbin/apache2 -k start

now extract the second column i.e. the process id

$ ps efu -u www | grep ‘apache2’ | awk ‘{print $2}’

5755
5756
5757
5758
5759

and finally kill them all

$ ps efu -u www | grep ‘apache2’ | awk ‘{print $2}’ | xargs rm -f

All of your apache2 processes for user www have been killed.

As always, there are probably hundreds of ways of doing this, and probably many more elegant | more efficient | faster | easier | etc | etc | etc… This particular one worked for me on the day.

I hope you find it helpful!

Powered by Zoundry Raven

Technorati : , , , ,
Del.icio.us : , , , ,
Zooomr : , , , ,
Flickr : , , , ,

Share and Enjoy:
  • Facebook
  • Twitter
  • Digg
  • StumbleUpon
  • del.icio.us
  • Yahoo! Buzz
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • laaik.it
  • Google Buzz
  • Technorati
  • Slashdot
  • Reddit

Weird GWT and OpenJPA problem

Posted by batman on Feb 27th, 2010
2010
Feb 27

I had the strangest problem the other day. I have a GWT app which uses Spring to load the backend beans – and this has always worked well. Recently I have added a servlet to this application, which provides an entrypoint into the system from another app (in a callback kinda way). Now this servlet needs to load my backend beans (DAO) using Spring, so as to effect changes to my database. I have full SHOW SQL logging on so that I can see every SQL statement that gets executed.

My problem – any kind of SELECT query works fine, retrieving the data as one would expect. However any UPDATE or INSERT just doesn’t happen – and here is the funny thing. No exceptions thrown whatsoever, nothing breaking, but also NO logging – it’s as if the framework just decided to skip the execution of these SQL statements (turns out this was exactly what was happening).

My thinking led me to transactions, and so I started investigating this – I had a @Transactional annotation on a method in my servlet, and it seems that this was the cause of my problems. As soon as I moved the method to a backend POJO bean with an annotated method – problem solved.

My understanding of it isn’t complete (I’m by no means a Spring expert), but I suspect it had something to do with the transaction boundaries being set in the backend layer and not the Service layer??? Please feel free to enlighten me 🙂

For the record, these are my project specs:

  • Windows XP
  • Tomcat 6.0.16
  • GWT 1.5
  • OpenJPA 1.1.0
  • Spring 2
  • Java 1.5

It had me baffled (for a while at least) – hope it can help someone else someday…

Technorati : , ,
Del.icio.us : , ,
Zooomr : , ,
Flickr : , ,

Share and Enjoy:
  • Facebook
  • Twitter
  • Digg
  • StumbleUpon
  • del.icio.us
  • Yahoo! Buzz
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • laaik.it
  • Google Buzz
  • Technorati
  • Slashdot
  • Reddit

My PC Software

Posted by batman on Feb 27th, 2010
2010
Feb 27

I have compiled a list of programs and software I use on my home PC. It isn’t intended to represent a survey, or exhaustive study of the “best-of-breed” – rather just stuff that I have found, and that work for me. I have no doubt that there are many, many other programs out there that are better than what I’ve got, but my setup does what I need it to. Hopefully it will help you with yours 🙂

Operating System

While I am a Linux person by nature, it just makes more sense to run Windows XP at home. The kids are always wanting to plug in MP3 players, or watching video clips, playing online games (with flash) – and inevitably on Linux one generally needs to spend some configuration time before it works. With Windows – unfortunately – it often just works.

Web Browser

Ok, this one is a no-brainer. Mozilla’s Firefox wins hands down, simply for the way it consistently outperforms Internet Explorer as far as new features, security and lack of vulnerabilities are concerned. No further discussion is even required.

Password Manager

I use Gorilla Password Manager to maintain and protect all of my passwords. It is freely available, open-source and best of all – cross platform. This means that one common password file can be re-used across Windows, Mac OS X, Linux, Solaris and *BSD operating systems. The “Twofish” encryption algorithm is used to secure your password database, and it is not possible to break into it without having the master password. It allows me to store a multitude of login details and passwords, in a hierarchical structure, and allows me to generate seriously secure passwords for sensitive sites. Good luck tring to crack my password of Gj_)bGF5$,!l:;@#jhsTg*(-+

Backups

I use Corbian Backup to backup my valuable data. It is freely available and does everything I need it to do. I can create several tasks, include files and folders and package them in a zip file in a specified folder or folder. I can schedule them to run automatically, so that perhaps my only responsibility is to backup this Corbian folder to DVD or secondary harddisk as and when I deem it necessary. It is highly customizable and would certainly perform as well as – if not better – than many commercial products on a scale much larger than my home PC.

Anti-Virus

AVG is one of the most widely used free virus protection utilities out there. Although in this case there are many other competitors, and in some cases, or as argued by some people, many of them superior to AVG. Touch wood, no virus has yet caused me damage, and AVG has picked up a few. This is one of those cases where commercial products will actually offer vastly superior protection – it just depends on how much you’re prepared to spend.

Desktop Blogging

I am a big fan of Zoundry Raven for creating, editing and publishing blog articles to several blogs. It has a true WYSIWYG editor that is really simple and straightforward to use. Zoundry supports a whole host of destination blog types – I use WordPress, and it works flawlesly. Admittedly I am not a super-blogger, but it certainly does everything I need it to do, and certainly beats having to edit articles “online” – using one of WordPress (or other) built-in editor. The edit-local and publish model just makes so much more sense than the online-edit model.

File Manager/Transfer Clients

  • FileZilla is a simple but effective ftp client that does everything I need it to. As with many of the software on this page, there are many others that will perform equally, if not better. For me – if it works – it’s good enough.
  • WinSCP is a Windows implementation of the *nix function SCP (Secure Copy). It has an awesome amount of features, and one can do almost anything with it. It allows me to easily communicate with my Linux Ubuntu installation, running as a virtual server
  • FreeCommander is an alternative to Windows Explorer. While Windows Explorer does pretty much everything FreeCommander can, FreeCommander offers its functionality with a different interface, and I just prefer using it. It strongly mirrors the two-panel interface of the old blue Norton Commander, or of late, the *nix Midnight Commander (mc as it is better known). F5 means copy, F8 means delete – I just feel at home using it.

Other

  • JRuler is a handy little screen measuring utility – it offers a ruler calibrated in pixels, mm or cm (if my memory serves me correctly). I use it a lot for web page design, when one wants an indication of how big something must be, without the rigour of “trial-and-error”. Very simple, but effective – it does what it was designed to do.

Virtualization

I use VMWare Server– a free option ideally suited to a home pc. The limitations are by no means limiting, as I could run several virtual servers, can configure all of them and allocate resources to my heart’s content.

VM: Ubuntu – KDE

My distro of choice will always be Debian-based – the “apt” method of installation is seamless and reliable, and makes installations a walk in the park. Updates of packages as well as distribution upgrades are really childsplay – the single provisio is that you need a good internet connection. My personal distro of choice is Ubuntu, or rather Kubuntu (Ubuntu + KDE)

VM: Web Content Filtering

Dans Guardian wins this one hands-down for me – to the point of running a linux server whose sole purpose is to provide this capability to my Windows OS. It is extremely powerful and configurable, although out of the box works just fine. I am quite comfortable letting my children aged under 10 loose on the Internet without supervision, knowing that Uncle Dan is keeping an eye out for them. This is one of my Killer Apps, and nothing else on Windows comes even close.

VM: Source Version Control

Even though CVS is aged and improved on by many products these days, it nonetheless still does everything I need from it, and it does it well. I have no need to upgrade, or look for anything more.

Share and Enjoy:
  • Facebook
  • Twitter
  • Digg
  • StumbleUpon
  • del.icio.us
  • Yahoo! Buzz
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • laaik.it
  • Google Buzz
  • Technorati
  • Slashdot
  • Reddit

Creating a SAMBA share on Kubuntu Linux

Posted by batman on Feb 27th, 2010
2010
Feb 27

Kubuntu 8.10 (Intrepid Ibex) Linux Server

  • $ sudo apt-get install samba
  • $ sudo smbpasswd -a SOMEUSER
  • Edit /etc/samba/smb.conf: (place the following code snippet at the bottom of the file)
path = /SOME_FOLDER
available = yes
valid users = SOMEUSER
read only = no
browseable = yes
guest ok = yes
admin users = SOMEUSER
  • You will need to ensure that your folder (in this case “/SOME_FOLDER”) has full read/write permissions by the user SOMEUSER
  • I’m not sure if it is a requirement, but I have my server and client sharing the same username/password combination – it just seems to ask for passwords less frequently.
  • $ sudo /etc/init.d/samba restart

Windows XP Client

Browse “Microsoft Windows Network” to find your shares, and if desired map a drive letter to this share.

Troubleshooting

Periodic timeout, or where Windows “drops” the connection – use “regedit” to modify your registry.

Modify [My Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters] – set property [autodisconnect] to “0xffffffff” (4294967295) minutes – effectively disabling the timeout.

Powered by Zoundry Raven

Technorati : , , ,
Del.icio.us : , , ,
Zooomr : , , ,
Flickr : , , ,

Share and Enjoy:
  • Facebook
  • Twitter
  • Digg
  • StumbleUpon
  • del.icio.us
  • Yahoo! Buzz
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • laaik.it
  • Google Buzz
  • Technorati
  • Slashdot
  • Reddit

IT Support vs Management

Posted by batman on Feb 27th, 2010
2010
Feb 27

A man in a hot air balloon realized he was lost. He reduced altitude and spotted a woman below. He descended a bit more and shouted, “Excuse me, can you help me? I promised a friend I would meet him an hour ago, but I don’t know where I am.”

The woman below replied, “You’re in a hot air balloon hovering approximately 30 feet above the ground. You’re between 40 and 41 degrees north latitude and between 59 and 60 degrees west longitude.

“You must be in IT Support” said the balloonist.

“I am,” replied the woman, “How did you know?”

“Well,” answered the balloonist, “everything you told me is technically correct, but I’ve no idea what to make of your information, and the fact is I’m still lost. Frankly, you’ve not been much help at all. If anything, you’ve delayed my trip.”

The woman below responded, “You must be in Management.”

“I am,” replied the balloonist, “but how did you know?”

“Well,” said the woman, “you don’t know where you are or where you’re going. You have risen to where you are due to a large quantity of hot air. You made a promise, which you’ve no idea how to keep, and you expect people beneath you to solve your problems. The fact is you are in exactly the same position you were in before we met, but now, somehow, it’s my fault.”

Technorati :
Del.icio.us :
Zooomr :
Flickr :

Share and Enjoy:
  • Facebook
  • Twitter
  • Digg
  • StumbleUpon
  • del.icio.us
  • Yahoo! Buzz
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • laaik.it
  • Google Buzz
  • Technorati
  • Slashdot
  • Reddit

Apache ANT – javac classpath

Posted by batman on Feb 27th, 2010
2010
Feb 27

Have you ever wondered exactly what the classpath is you’re using when compiling your java classes using the ant task “javac”? Well, here’s a useful little addition that can easily be added to your ant builds. It’s really no rocket science, but just provides a “visual” listing of the contents of the classpath.

<target depends="_setup" name="_compile" />
      <pathconvert property="echo.path.compile" pathsep="${line.separator}| |--" refid="project.class.path"></pathconvert>

      <echo message="|-- compile classpath" />
      <echo message="| |" />
      <echo message="| |-- ${echo.path.compile}" />

      <javac debug="${compile.debug}" srcdir="src" target="1.5" destdir="build" source="1.5">
             <classpath refid="project.class.path" />
      </javac>
</target>

Output similar to the following can be expected:

init:
compile:
|-- compile classpath
|   |
|   |-- /home/bruce/projects/quartz/lib/activation.jar
|   |-- /home/bruce/projects/quartz/lib/log4j.jar
|   |-- /home/bruce/projects/quartz/lib/mail.jar
|   |-- /home/bruce/projects/quartz/lib/commons-cli-1.1.jar
|   |-- /home/bruce/projects/quartz/lib/commons-configuration-1.5.jar
|   |-- /home/bruce/projects/quartz/lib/commons-dbutils-1.1.jar
|   |-- /home/bruce/projects/quartz/lib/commons-dbcp-1.2.2.jar
|   |-- /home/bruce/projects/quartz/lib/commons-pool-1.3.jar
|   |-- /home/bruce/projects/quartz/lib/commons-io-1.3.2.jar
|   |-- /home/bruce/projects/quartz/lib/commons-lang-2.3.jar

Powered by Zoundry Raven

Technorati :
Del.icio.us :
Zooomr :
Flickr :

Share and Enjoy:
  • Facebook
  • Twitter
  • Digg
  • StumbleUpon
  • del.icio.us
  • Yahoo! Buzz
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • laaik.it
  • Google Buzz
  • Technorati
  • Slashdot
  • Reddit

Record JMeter Web TestPlan

Posted by batman on Feb 27th, 2010
2010
Feb 27

These steps should help you to record a Test Plan for browsing a website.

  • run JMeter
  • add a Thread Group to the Test Plan
    • add a Recording Controller to the Thread Group
    • add a Http Request Defaults to the Thread Group
    • add a Http Cookie Manager to the Thread Group
  • modify Http Request Defaults:
    • set protocol=http
    • set server name=
    • set path=/
    • set port number=80
  • add Http Proxy Server in Workbench
    • set port :8999 (can be anything – but use the same one in your browser)
    • set Target Controller ( Thread Group > Use Recording Controller)
  • save your Test Plan
  • open your browser
    • set proxy=localhost; port=8999
  • click on Start in JMeter
  • click on the links you would like to be recorded
  • click on Stop in JMeter
  • these links should have been recorded by JMeter
  • reset the proxy settings in your browser

Technorati :
Del.icio.us :
Zooomr :
Flickr :

Share and Enjoy:
  • Facebook
  • Twitter
  • Digg
  • StumbleUpon
  • del.icio.us
  • Yahoo! Buzz
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • laaik.it
  • Google Buzz
  • Technorati
  • Slashdot
  • Reddit

Apache JMeter

Posted by batman on Feb 27th, 2010
2010
Feb 27

Apache JMeter is a 100% pure Java desktop application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to other test functions.

Apache JMeter may be used to test performance both on static and dynamic resources (files, Servlets, Perl scripts, Java Objects, Data Bases and Queries, FTP Servers and more). It can be used to simulate a heavy load on a server, network or object to test its strength or to analyze overall performance under different load types. You can use it to make a graphical analysis of performance or to test your server/script/object behavior under heavy concurrent load.

jakarta.apache.org/jmeter

Technorati : ,
Del.icio.us : ,
Zooomr : ,
Flickr : ,

Share and Enjoy:
  • Facebook
  • Twitter
  • Digg
  • StumbleUpon
  • del.icio.us
  • Yahoo! Buzz
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • laaik.it
  • Google Buzz
  • Technorati
  • Slashdot
  • Reddit

Quartz Enterprise Job Scheduler

Posted by batman on Feb 27th, 2010
2010
Feb 27

Quartz is a full-featured, open source job scheduling system that can be integrated with, or used along side virtually any J2EE or J2SE application – from the smallest stand-alone application to the largest e-commerce system.

Quartz can be used to create simple or complex schedules for executing tens, hundreds, or even tens-of-thousands of jobs; jobs whose tasks are defined as standard Java components or EJBs. The Quartz Scheduler includes many enterprise-class features, such as JTA transactions and clustering.

Quartz is freely usable, licensed under the Apache 2.0 license.

Technorati : , ,
Del.icio.us : , ,
Zooomr : , ,
Flickr : , ,

Share and Enjoy:
  • Facebook
  • Twitter
  • Digg
  • StumbleUpon
  • del.icio.us
  • Yahoo! Buzz
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • laaik.it
  • Google Buzz
  • Technorati
  • Slashdot
  • Reddit

Next »