Sunday, 30 August 2015

Smart Bikes


In our precious metal collection this week are an adapter that converts a run-of-the-mill bicycle into a smart bike, a new spin on the singular credit card, a TV remote-speaker combo, and a roll-up keyboard.

As always, these are not reviews, as I haven't even seen any of these items in the real world. The rating for each product denotes only my interest in trying it out with my cynical writer's hands.

Bright Bike

Regular readers may recall previous acknowledgments of my inability to ride a bicycle. I never had much interest as a child, and although I now live in a tremendously bike-friendly city, I haven't found a way to learn without feeling like a total chump in public.

Yet I am more interested than ever in leading a life on two wheels after discovering SmartHalo. This is a tool that attaches permanently to one's ride and turns it into a smart vehicle.

The "halo" part of that name refers to the circular display, which uses color and segmented lights to indicate turn-by-turn directions. (SmartHalo learns your destination through a paired smartphone app.)

The system includes a night light that switches on and off automatically, as well as a notification system for incoming calls and messages and inclement weather alerts. As is seemingly required of every gadget, it has a fitness tracker too.

Since this is supposed to live permanently on one's bike -- save for removing it to recharge on occasion -- security is a key factor. SmartHalo appears to be tamper-proof, and it has an alarm system to ward off would-be thieves. Cherry on the cake? The app can lead you to your bike if you've misplaced it.

There's an impressive array of functions crammed into SmartHalo, and for both complete novices and experienced riders, it could prove a boon. The estimated retail price of US$149 seems fair for what SmartHalo can do. And now if you'll forgive me, I'm about to look up local adult bike classes.


Thing you need to know about your salary slip


Every month, your finance department will send you a salary slip once the salary gets paid out.
For most people, the importance of salary slip is only when they apply for a loan or a new credit card.

Otherwise, the confusing terms and figures seem like a puzzle you don’t want to solve.
But here’s why you might want to understand your salary slip better.
  • Choose smartly from competing offers when you are looking to switch jobs
  • Optimize tax liability by making full use of the deductions available
  • Understand what percentage of your salary is forced savings (EPF, ESI etc.)

Things to keep in mind when comparing salary slips in offers:
# 1. Your basic salary is critical as most of your allowances will be based on that figure.

# 2. Look for special allowances and check whether they are performance or event based.

#3. Do not focus only on the in-hand salary. Look at the other benefits the company provides (health insurance, accident insurance, free food, bus transport, better career growth) which might outmatch a higher in-hand salary offer from some other company.

What did you do whole day? Learn something new everyday


Most of us have one or two areas of knowledge that we strive to know very well — things related to our jobs, of course, and maybe a hobby or two. But while it’s important to develop a deep understanding of the things that matter most to us, it is just as important to develop a broad understanding of the world in general.

A lot of unfortunate people think that learning for the sake of learning is something for schoolchildren, and maybe college students. All the things there are to learn and know that don’t impact directly on their immediate lives they dismiss as “trivia”. Out in the “real world”, they think, there’s no time for such frivolities — there’s serious work to get done!

There are a lot of good, practical reasons to make learning something new a part of your daily routine, but the best reason has nothing to do with practicality — we are learning creatures, and the lifelong practice of learning is what makes us humans and our lives worthwhile. If that idealistic musing’s not enough, here’s some more down-to-earth benefits:
  • Learning across a wide range of subjects gives us a range of perspectives to call on in our own narrow day-to-day areas of specialization.
  • Learning helps us more easily and readily adapt to new situations.
  • A broad knowledge of unfamiliar situations feeds innovation by inspiring us to think creatively and providing examples to follow.
  • Learning deepens our character and makes us more inspiring to those around us.
  • Learning makes us more confident.
  • Learning instills an understanding of the historical, social, and natural processes that impact and limit our lives.
  • And, like I said, there’s the whole “making like worth living” thing.
There is, after all, a reason the term “well-read” is a compliment.
With the entire world of knowledge just a few mouse-clicks away, it has never been easier than it is right now to learn something new and unexpected every day. Here are a few simple ways to make expanding your horizons a part of your daily routine:

These sites are both run by an R. Edmondson, who certainly knows a lot of stuff about a lot of stuff. Updates are slightly less than daily, but I like the two sites so much I couldn’t leave them off this list. If you were a subscriber to these sites, you’d have recently learned why clouds are white, what the European Union is, the French terms for the days of the week and the months of the year, and the history of the development of public health efforts in response to the hazards of the Industrial Revolution.

Amazing things you didn't know about your computer


Amazing things your computer does

It's a ritual across the globe: somewhere between sticking the kettle on and complaining about last night's match, you'll probably hit the button on your ageing company PC and wait while it slowly thinks about turning on. Rather than take it for granted, though, it's worth taking a couple minutes to realise a few of the things that your poor robot slave does without you ever knowing.

1. Bits, Bytes, and Size

Next time you complain about the pitiful memory capacity of your old 8GB iPod Touch, it's worth remember what makes up eight whole gigabytes. Computer science grads will know that in every gigabyte, there's 1024 megabytes; 1024 kilobytes in a megabyte, and 1024 bytes in a kilobyte. Breaking it down to the lowest level, you've got 8 bits in a byte.

Why does that matter? Because on a flash drive, each bit of data is made up of eight separate floating gates, each comprising two physical transistors, which can basically record themselves as either a '1' or a '0'. (Want to be impressed ever further? Each floating gate actually relies on quantum mechanics to work.) That means that an 8GB iPod Touch - the one you were laughing at a minute ago for being puny - has, according to my back-of-the-napkin maths, 549,755,813,888 individual gates arrayed inside that svelte aluminium body. Mighty clever engineering indeed.

3. The distance data travels

A quick experiment for you: click this link, which should take you to Wikipedia. With one click, you've just fetched a bunch of data from servers in Ashburn, Virginia, about 6000km away. Your request has travelled from your computer, through a local Wi-Fi router or a modem, up to a local data centre, from there onwards (under the Atlantic Ocean, if you're in the UK), all the way to Virginia, and back again - in around 0.1 of a second, depending on how good your internet connection is.

By comparison, your body takes around 0.15 of a second for a signal to pass from your fingers, up your spinal cord to the brain, and back down again.

4. Counting Starts at Zero

At a base level, every computer's just a really big, complicated calculator. But thanks to the way its intrinsic circuitry works - with lots of little logic gates that are either 'on' or 'off' - every action that takes place at a base level is happening in binary, where things are either a 1 or a 0, with no shades of grey in between.
This actually translates up to a neat bit of programming trivia - in the computer science world, all counting (with the rather notable exceptions of Fortran and Visual Basic) starts at zero, not one.
It actually makes a lot more sense - ever thought about why the 20th century refers to the 1900s? It's because when historians decided on the dating system, they weren't clever enough to call the very first century (0-99AD) the 0th century. If they had, we'd probably have far fewer confused school children the world over.

5. The work that goes into a Ctrl+C, Ctrl+V

One rather under-appreciated fact about solid state drives (SSDs), regarded as the gold standard for fast, reliable storage, is the amount of copying they have to do. When you want to copy some data from one bit to another, it's not just a matter of shuffling the data from one part of the drive to another.
Because of the complicated way a SSD works, over-writing a block of old data with some shiny new data isn't as simple as just writing the new stuff in with a bigger, thicker Sharpie. Rather, the storage drive has to do some complicated shuffling around.

In practice, this can mean that writing a tiny 4KB file can require the drive to read 2MB (that's thousands of times more data that the 4KB file you're trying to write), store that temporarily, erase a whole tonne of blocks, then re-write all the data. It's rather labour-intensive, so think before you juggle your files around next time.

Sunday, 11 May 2014

UML Diagrams


UML(Unified Modelling Language)
  • The elements are like components which can be associated in different ways to make a complete UML pictures which is known as diagram. So it is very important to understand the different diagrams to implement the knowledge in real life systems.
  • Any complex system is best understood by making some kind of diagrams or pictures. These diagrams have a better impact on our understanding. So if we look around then we will realize that the diagrams are not a new concept but it is used widely in different form in different industries.
  • We prepare UML diagrams to understand a system in better and simple way. A single diagram is not enough to cover all aspects of the system. So UML defines various kinds of diagrams to cover most of the aspects of a system.
  • You can also create your own set of diagrams to meet your requirements. Diagrams are generally made in an incremental and iterative way.
There are two broad caetgories of diagrams and then are again divided into sub-categories:
·         Structural Diagrams
·         Behavioral Diagrams
Structural Diagrams:
The structural diagrams represent the static aspect of the system. These static aspects represent those parts of a diagram which forms the main structure and therefore stable.
These static parts are represents by classes, interfaces, objects, components and nodes. The four structural diagrams are:
  • Class diagram


Behavioral Diagrams:
Any system can have two aspects, static and dynamic. So a model is considered as complete when both the aspects are covered fully.
Behavioral diagrams basically capture the dynamic aspect of a system. Dynamic aspect can be further described as the changing/moving parts of a system.
UML has the following five types of behavioral diagrams:
  • Use case diagram
  • Sequence diagram
  • Collaboration diagram
  • Statechart diagram
  • Activity diagram



Class Diagram:

Overview:

The class diagram is a static diagram. It represents the static view of an application. Class diagram is not only used for visualizing, describing and documenting different aspects of a system but also for constructing executable code of the software application.

The class diagram describes the attributes and operations of a class and also the constraints imposed on the system. The class diagrams are widely used in the modelling of object oriented systems because they are the only UML diagrams which can be mapped directly with object oriented languages.

The class diagram shows a collection of classes, interfaces, associations, collaborations and constraints. It is also known as a structural diagram.

Purpose:

So the purpose of the class diagram can be summarized as:
·         Analysis and design of the static view of an application.
·         Describe responsibilities of a system.
·         Base for component and deployment diagrams.
·         Forward and reverse engineering.





Use Case Diagram:

Overview:

To model a system the most important aspect is to capture the dynamic behaviour. To clarify a bit in details, dynamic behaviour means the behaviour of the system when it is running /operating.

So only static behaviour is not sufficient to model a system rather dynamic behaviour is more important than static behaviour. Use case diagram is dynamic in nature there should be some internal or external factors for making the interaction.

These internal and external agents are known as actors. So use case diagrams are consists of actors, use cases and their relationships. The diagram is used to model the system/subsystem of an application. A single use case diagram captures a particular functionality of a system.

Purpose:

So in brief, the purposes of use case diagrams can be as follows:
·         Used to gather requirements of a system.
·         Used to get an outside view of a system.
·         Identify external and internal factors influencing the system.
·         Show the interacting among the requirements are actors.




Sequence Diagram:

Overview:

From the name Interaction it is clear that the diagram is used to describe some type of interactions among the different elements in the model. So this interaction is a part of dynamic behaviour of the system.

This interactive behaviour is represented in UML by two diagrams known as Sequence diagram and Collaboration diagram. The basic purposes of both the diagrams are similar.

Sequence diagram emphasizes on time sequence of messages and collaboration diagram emphasizes on the structural organization of the objects that send and receive messages.

Purpose:

So the purposes of interaction diagram can be describes as:
·         To capture dynamic behaviour of a system.
·         To describe the message flow in the system.
·         To describe structural organization of the objects.
·         To describe interaction among objects.




Collaboration Diagram:

Overview:

The second interaction diagram is collaboration diagram. It shows the object organization as shown below. Here in collaboration diagram the method call sequence is indicated by some numbering technique as shown below. The number indicates how the methods are called one after another. We have taken the same order management system to describe the collaboration diagram.

The method calls are similar to that of a sequence diagram. But the difference is that the sequence diagram does not describe the object organization where as the collaboration diagram shows the object organization.




State Diagram:

Overview:

The name of the diagram itself clarifies the purpose of the diagram and other details. It describes different states of a component in a system. The states are specific to a component/object of a system.

A Statechart diagram describes a state machine. Now to clarify it state machine can be defined as a machine which defines different states of an object and these states are controlled by external or internal events.

Purpose:

Following are the main purposes of using Statechart diagrams:
·         To model dynamic aspect of a system.
·         To model life time of a reactive system.
·         To describe different states of an object during its life time.
·         Define a state machine to model states of an object.





Activity Diagram:

Overview:

Activity diagram is another important diagram in UML to describe dynamic aspects of the system.
Activity diagram is basically a flow chart to represent the flow form one activity to another activity. The activity can be described as an operation of the system.

So the control flow is drawn from one operation to another. This flow can be sequential, branched or concurrent. Activity diagrams deals with all type of flow control by using different elements like fork, join etc.

Purpose:

So the purposes can be described as:
·         Draw the activity flow of a system.
·         Describe the sequence from one activity to another.
·         Describe the parallel, branched and concurrent flow of the system.