Category Archives: Default

What is UUID or Universally Unique Identifier ?

UUID (universally unique identifier) is a 128 bit identifier value used in Software construction for uniquely indentifying some object or entity which doesn’t require central registration process.

Sometimes it is also referred as GUID ( Globally Unique Identifier). In canonical form for human readibility, it is represented by 36 character (32 alphanumberic character and 4 huphens). For example :


According to RFC 4122 ( RFC is formal document from IETF – Internet Engineering Task Force), UUID can guarantee uniqueness across space and time. The chance of two UUID to become same is extremely low. Suppose if a machine generates one billion UUID every second for next 100 years, the probability of creating just one duplicate would be about 50%. Which in practical sense, makes two UUIDs very unique but not in theoratical sense.

Application of UUID

UUIDs are useful in many places such as identifiers for documents, hosts, application clients and other situation where a unique value is necessary like transaction IDs.

UUIDs were originally used in the Apollo Network Computing System and later in the Open Software Foundation’s (OSF) Distributed Computing Environment (DCE), and then in Microsoft Windows platform.

UUID Verisons

UUID has 5 variants. Each version takes different source of information to generate the UUID and are meant for specific purpose. For instance, Version 1 UUIDs takes date-time and MAC address, Version 2 UUIDs are generated from group or user id and date-time, Version 3 & 5 produces deterministic UUIDs generated from a user-specified namespace and user-supplied data, and Version 4 is randomly generated.

Generating a UUID in Python

import uuid
print uuid.uuid1()
print uuid.uuid4()
print uuid.uuid3(uuid.NAMESPACE_DNS, '')
print uuid.uuid5(uuid.NAMESPACE_DNS, '')

References :

Note : This is a guest post by Ambuj Kumar. Recently, he also made an online tool that generates UUID for verion 1 and version 4 online :

Notes – a simple note taking app for Ubuntu/Linux

Notes is a simple and minimalistic note-taking application. It’s a free and open source cross platform app. It offers a simple writing pad for entering plain text, without any style. It can be used for anything – writing short notes, poems, todo list, ideas or long articles/essays etc.

notes screenshot

Notes is build using Qt framework (an open source cross-platform toolkit), inspired by the default notes app from Mac OS X (Yosemite). Although, I find the Mac like icons (minimize, close, maximize) little odd as it doesn’t look blended with XFCE desktop, but I like the simplicity and elegancy of app.

Installing Notes in Ubuntu

In Ubuntu 16.04 LTS, it’s already available in official repository. you can install it from the Ubuntu Software Center.

For older version (e.g Ubuntu 14.04 LTS) or other Debian derivatives such as Linux Mint, first download the debian package and install it using Ubuntu software Centre or GDebi package installer.

Also check out the github page if you want to follow the updates on new features or report any bug etc. Let me know (comment below) your feedback if you use this app for taking notes.

Check for open ports using this free tool : Port Checker

Few weeks ago I created a tool : port checker – that checks for open ports. It’s a simple web app built using Sinatra (a lightweight framework in ruby) and Foundation (an advanced front end framework), over a weekend.


More about this little web app

It simply checks for open ports on your computer (useful in testing port forwarding setup or security reasons obviously). You need to specify the port number and IP Address (optional, it selects the origin IP by default, so it’s not required unless you want to scan for other device or server IP). Then it tells you whether the port is open or closed.

Later I also added a port scanner, so it can scan for some common ports (~20) in a single click. (However it restricts the IP address to origin to prevent any misuse)


  • simple and easy to use
  • mobile friendly design (thanks to the Foundation framework)
  • online port scanner (I may add some other features like port range scan or so, based on the suggestions on HN)

Note : It’s a web app intended for casual use. If you need a more comprehensive tool for scanning ports or security audits, then you should check out Nmap (or Zenmap if you prefer to use graphical interface over the command line), a free and open source tool for network scanning.

PS If you find the tool useful or have any suggestion/feedback, let me know via comments.


GenMyModel: Online UML Tool for software architects and developers

Innovative UML Tool

After 3 years of research and development, GenMyModel draws the future of software modeling. GenMyModel is a free browser-hosted UML tool for developers and software architects. Its main force: create UML-compliant models online and generate code.

Unlike the well-known desktop alternatives, it allows you to work on any web browser and from any computer with any OS (Windows, Linux, MacOS). GenMyModel has been released in beta in 2013.

It supports for now class and use case diagrams and works with GitHub to host the generated code.

Try GenMyModel by following this link: UML Online Tool

Online UML tool

GenMyModel is free

Log in (free) & create an UML project

First thing you see is the connection window where you can sign in with your Google account or sign up with another email address.

GenMyModel dashboard

Once you are logged in, you discover your dashboard where you have the choice to create a new project or use one of the existing templates below. When you create a new project, you can then set a title and choose between a public or private project. When you open a project, a new tab appears above for you to easily switch between your class and use case diagrams.

Public uml online

Class diagram and use case diagram

When you create a new project, it instantly opens a tab for class diagrams, but you can choose in the “File” menu to make new use case diagrams.

The vertical toolbar between your whiteboard and the project explorer shows you the different tools to create classes, interfaces, add attributes, make associations and more. For example, if you select the class tool or press ‘C’ (the underlined letters being keyboard shortcuts), you can place a class anywhere on your whiteboard. You can also add several elements at a time by holding ‘Ctrl’

class diagram online

You can then select one or more elements and move them on your whiteboard, rearrange links or set a few properties. Same thing goes for use case diagrams.

Change the model properties

The bottom-left corner of the application groups all the properties you need for the elements you selected. This way, this small window allows you to set names, types, visibility, multiplicity, comments and a few other settings.

UML Online property

Those possibilities change according to your selection on your whiteboard or the project explorer.

Code generators

Generate Java and SQL online

GenMyModel provides code generators:

  • Java Beans
  • JPA Beans
  • Spring Data REST application
  • Spring Roo
  • SQL

There are two ways to generate code: with the ‘Tools’ menu or by right-clicking on your model. You can then choose between a direct generation creating a ZIP file with Java, Java JPA or SQL code, or configuring your own saved configuration allowing you to push to your GitHub repositories.

UML code generator

Push to GitHub

If you are a GitHub user, you can push your generated code to the hosting service. In the code generation configuration window, you just have to type your repository URL and the branch you would like to send your code to. The first push can take a while but it is quite fast afterwards.

UML Java code generator

Export image and XMI

GenMyModel allows you to export you models to image files in JPEG or SVG, or export to XMI. You can choose either format by right-clicking or with the ‘Tools’ menu.

Export documentation to PDF

You can also export the documentation of your models to a PDF file. Resulting in a document with images of your diagrams and the list of every element and its properties.

Share by email

Sharing to social network is planned for the next few months, in the meantime you can share your work by email with the same menu.

Web description for public projects

When creating a project within GenMyModel, you can choose between the public and private options. Private means only you can see and modify the model. Public means you are the only one allowed to modify it but anyone can fork it.

Web pages are automatically created for public projects so that you can share and show what you design. Examples: Class Diagram University Management System


The next major release before october 2013 will include:

  • Real-time collaboration
  • Java Reverse engineering
  • Package support for class diagrams and use case diagrams


GenMyModel is built upon Javascript and HTML5.

cloud computing

How To Manage Digital Data

We hear constantly these days about how much more dependent we are on digital data. In business, school, and social environments online, the need to constantly exchange and store data is increasing every year, and this brings on a whole range of issues regarding data management. Specifically, with heavier reliance on digital files that can sometimes be very important or valuable, the need to store files conveniently and securely is significant.

cloud computing

Fortunately, there are various means of storing digital files that allow for safe backup in the instance that a computer or computer system is damaged. Here are a few to consider, ranging from the crudest and simplest to the most advanced and secure.

Email Backup

For the very most basic of backup needs, a simple email to yourself can suffice. This is basically a crude form of cloud storage, as it allows you to access the file through email – but not necessarily through the same computer. Again, this is only useful for basic, occasional needs but if you’d prefer not to deal with a more advanced form of backup, this will work when you need it to.

USB Support

A favourite among students for most of the past decade or so, USB drives are very useful for extra storage and file backup. You can simply insert your device into your computer’s USB drive and transfer files of all kinds to the device, effectively giving yourself second copies of those files. Needless to say, so long as you hold onto the USB device, these files will be accessible even if the computer you originally worked on becomes compromised in any way.

External Hard Drive

The trouble with USB devices, for more serious or significant use, is that they are small, easy to use, and often fairly limited in data storage space (though various storage levels are available). If you prefer to be able to store an entire computer’s worth of data, either for backup or extra storage purposes, an external hard drive may be the better option. Basically, this is a larger and more capable version of what you get with a USB, and though you are still relying on another physical object (the external hard drive), the security of having data on both a computer and this device is valuable.

Cloud Computing

Finally, for the most efficient and secure means of file storage and backup available, consider the cloud computing services offered by companies like Sharefile. With access to the cloud, you can store any and all of your files in an off-site digital environment, allowing you to have your data in a place that you can access from any Internet device. Instead of relying on a computer that may break, or a hard drive or USB that can easily be lost, the cloud handles your files for you in a safe and secure digital environment. This is fast becoming the preferred method of digital backup.