Friday, February 24, 2017

StarUML


StarUML is an open source software modeling tool that supports UML (Unified Modeling Language).  StarUML is one of the most popular UML tools in the world. It has been downloaded over than 5 millions and used in more than 150 countries.




http://staruml.io/

I have tried this tools and very happy with the features and performance.  Enjoy !

Saturday, February 18, 2017

Software Architecture AntiPatterns

Good software architecture is crucial for developing successful and scalable systems.
Architecture-driven approaches to software development have proven to be a lot more effective than approaches driven by methodology, documentation, or requirements, and thus more popular.
Just because architecture-driven approaches are more effective, however, doesn’t mean they’re foolproof. It’s important to make sure you’re not undermining your project by employing counterproductive techniques in the creation, implementation, and management of software architecture.
With that in mind, we bring you a list of the 7 most common software architecture AntiPatterns that will lay your project to waste:

1. God Object

Let’s imagine that you’ve created a number of string methods – one capitalizes the first letter of every new sentence, another one substitutes multiple spaces with a single space, and so on. Now let’s imagine you put all of them in a class called StringUtils.
And now let’s say you write another set of methods that allows you to generate PDF, TXT, and DOC reports. You aren’t really sure where to put them, so you just add them to the StringUtils and rename the whole thing to DocUtils.
Later, you develop a bunch of methods to draw simple geometric shapes. Where do you put them? Since you already have that utility class, you might as well keep them there.
All these methods keep piling up until eventually you end up with a god object – a class that can do nearly anything. Unfortunately, you can no longer tell what does what

2. Warm Bodies

This antipattern seems, at first, to have more to do with the structure of your company than the structure of your software. That being said, problems with the former can have unfortunate consequences for the latter. “Warm bodies” are people who work for your company, but aren’t deeply invested in its success.
Because they don’t have a stake in the ultimate success or failure of your product, they can slack off on the job or give less than 100%. Freelancers and contractors working for third-party outsourcing vendors are a good example of how the warm bodies antipattern can make its way into your development process (find out why our model works better than IT outsourcing).

3. Reinvent the Wheel

The speed at which technology moves today leads to substantial reinvention as many tech workers feel tempted to put on the inventor’s hat instead of working with available solutions.

4. Vendor Lock-in

Vendor lock-in occurs when a software project becomes entirely dependent upon technologies provided by a single vendor either due to company policy or out of habit.
As a result, you’re unable to use solutions provided by other vendors, which leads to employing outdated or inconvenient tools for problem solving.

5. Cover Your Assets

When we say software engineers are “covering their assets,” what we mean is that they insist on using the technologies they know best even when they aren’t the best choice for the task at hand just because they don’t want to invest the time and energy into learning new tools.
This may result in extended development times and poor software performance.

6. Stovepipe System

You’ve been working on a system for ten sprints but you still feel there are plenty of blank spaces you don’t fully understand? Congratulations, you’ve been working on a stovepipe system – that is a system with a wide range of functions that are used improperly or aren’t used at all due to the team’s incomplete knowledge.

7. Design by Committee

This antipattern occurs when everyone, from the company founder to the security guy, takes part in architectural decision making.
Make sure that the only people influencing software architecture are the ones who are actually experts in the field.

Wednesday, February 15, 2017

Installing and running Linux(CentOS 6) in VirtualBox

I have just installed CentOS 6.0 in a VirtualBox on My Windows PC .

My Pc configuration :
OS : Windows 10 64 bit
RAM : 8GB


You  need to follow three steps to  install and run the CentOS in a virtual Box.

Step 1.
1. Download Virtualbox (if you don't know what is VirtualBox find the details in wikipedia )
2. Download the CentOS vdi file
3. Download Winrar (if not done already)

Step 2.
1. Install virtual box
2. Unzip CentOS 7z file

Step 3.
Configure and Run  CentOS



Steps are in details below :

Step 1: 
1. Download the Virtual Box.
You can download the Virtualbox  from
https://www.virtualbox.org/wiki/Downloads

At the time of writing this post the latest version of virtualbox was 5.1.14
this is the direct link   Windows hosts

if above link doesn't work go directly to the Virtualbox website.





If you successfully download the file you will have a file with the following name : "VirtualBox-5.1.14-112924-Win.exe"



2. Download the CentOS 6.0  7z file .

This download will take time depending on your net speed.
Below is the direct link:
http://sourceforge.net/projects/virtualboximage/files/CentOS/6.0/CentOS-6-Gnome-i386.7z/download



If your download is succefull you should have a file with the following name "CentOS-6-Gnome-i386.7z" in your Hard disk.



3.  Download Winrar (if not done already). You will need winrar to unzip the CentOS compressed file.

Note : you  can use the Unarchiver in mac os for unziping the file:
https://itunes.apple.com/app/the-unarchiver/id425424353?mt=12&ls=1




If your Download is succesfull you should have a file with the following name "winrar-x64-540.exe". You need to install the file by double clicking on it. i am not going in to more details



Step 2 :

1. Install Virtual Box by double clicking  on the following file "VirtualBox-5.1.14-112924-Win.exe".  you should see the dialog below : Click "Next"





Click "Next"































Click "Next"































Click "Yes"































Click "Install"



Wait and Click "Next"






Click "Finish"



















Great ! you have successfully installed the virtual box. now you will have to create a new virtual machine  




2. Unzip CentOS 7z file







After extracting you should have the following files.

















Step 3.
Configure and Run  CentOS. Click on the "New" button to start creating a new Virtual Machine.



 Type as “CentOS_6_32bit” or anything you want. Set the type as “Linux“, Version as “Red Hat 32 bit“. And press “Next”.




Allocate memory. i have 8 GB memory so i have assigned  3GB. if you have less you can assign 1-2 GB.

Select the vdi file by clicking on the open directory icon.





Select the .vdi file from your hard disk









Click the "Create" Button
























Almost done ! now start the Virtual Machine by double clicking the the selected item or by click on "Start" button.




























If the virtual machine run successfully you should see the following login screen.

Login to the CentOS either root or centos user:


UserName : centos
Password: reverse

 User name : root
Password: reverse































Done ! enjoy learning Linux. 😃😂




Please Note : I have used CentOS for this blog post. but the same steps should work if you want to run other linux distribution. for example Fedora or Ubuntu. you just have to download the related linux vdi file instead of CentOS.

If you want to know more abut Ubunto vs CentOS please read the following blog
https://www.futurehosting.com/blog/what-is-the-difference-between-centos-and-ubuntu-server/



Also you might want to the install the guest addition for better performance and usability
https://www.virtualbox.org/manual/ch04.html#idm1721

just make sure to run the folowing 3 commad before installing the guest addition
yum update
yum install kernel-headers kernel-devel
yum install gcc

then reboot the linux to get the effect . enjoy !





5 Strategies for Getting More Work Done in Less Time

Summary.    You’ve got more to do than could possibly get done with your current work style. You’ve prioritized. You’ve planned. You’ve dele...