Thursday, 5 January 2017

Integrated development environment

Integrated development environment
      An IDE is a software development tool that is mainly used by the developers to write and test the programs or software. These are actually a migration form of primitive text editors to use of more full function technologies that might help you in editing code more quickly and efficiently. Generally the IDEs are complicated to learn, takes time to master.


Why do we use them?
      For a professional software engineer to build a large scale systems he needs a technological support at the point of typing the code. At that point IDE comes in and helps the developer. The developers who are skilled in IDE can successfully understand, correct and improve large software systems faster.

What is a difference between a code editor and an IDE?
                      Generally the IDEs take you to a whole new level, particularly things like code completion, while typing code the IDEs will be able to guess what you’re about to type and a drop down list appears and select from them which makes the coding very easier. Moreover during compilation it is difficult to check errors in notepad or text-editors whereas in IDE things are bit simpler.

Features of IDE
      *It supports for coding by easy navigation through codes and code completion
      *It is very easier to test and debug a code in an integrated development environment than the code editor.
     *One of the most important useful feature of an IDE is support for refactoring.. i.e It helps programmers in differentiating the names of class, variables, packages, etc.
     *It provides support for IDE independent, cross platform, standardized by helping in compilation, testing, packaging and automated quality assurance.

Properties of IDE
       *Language aware editing.
       *Project definition facilities.
       *Integrated compilation.
       *Integrated stepwise execution.

Advantages of using IDEs
       *Reformat coding.
       *Check matching braces.
       *Single step through a function.
       *Traverse a package hierarchy searching for all the instances of a specific string.
       *Helps in generating the UML diagram.


Some of the best IDEs
     *Eclipse- particularly for Java.
     *Visual Studio- for programming languages like C, C++, C#.
     *Android Studio- particularly for Android Java.
     *Pycharm- Particularly for Python.
     *RubyMine-Particularly for ruby on rails.


     






     


Sunday, 1 January 2017

How does your Facebook algorithm work?

          Many of us might be wondering how Facebook works and why you see only particular posts posted by friends or the fan pages you follow. Here are the answers. The algorithm that Facebook uses to manage newsfeed is edgerank algorithm.
What is that Edgerank algorithm and why?
ü Usually we won’t be able to see all posts posted by our friends or the fan pages we follow. Facebook decides what posts to be shown in each users newsfeed.

ü This algorithm helps in hiding the boring stories. EdgeRank is like a rating point: it's invisible, it's important, it's unique to each user, and no one other than Facebook knows exactly how it works.  Facebook calls every action we perform as "Edges."

ü  That means whenever a friend posts a status update, comments on another status update, tags a photo, joins a fan page it generates an "Edge," and a story about that Edge might show up in the user's personal newsfeed.
The formula is
                       ∑ ue we de
    
                                 Ue  - affinity score
                                 We - weight for each edge
                  De - time decay factor

Affinity score
ü  The affinity score generally deals with how people are connected a particular person. More specifically speaking Facebook calculates affinity score by looking at explicit actions that users take, and factoring in


1) The strength of the action

2) How close the person who took the action was to you

3) How long ago they took the action.

ü  The actions include clicking, liking, commenting, tagging, sharing, and friending. Each of these interactions has a different weight that reflects the effort required for the action more effort from the user demonstrates more interest in the content.

ü   The affinity score doesn't include your actions alone it includes your friends actions too.  


 Edge weight
ü  In Facebook each category of edges(actions) have different weights. 

ü  Facebook changes the edge weights to reflect which type of stories they think user will find most engaging. For example, photos and videos have a higher weight than links. Simply speaking comments will add more weights that like does.

ü   New Facebook features generally have a high Edge weight in order to promote the feature to users. For example, when Facebook checks Places rolled out, check-ins had a very high default weight for a few months and your newsfeed was probably inundated with stories like "Shyam checked into Dominos". Generally, after a few weeks or months Facebook dials the new feature back to a more reasonable weight.


Time decay
ü The time decay is another important part in Edgerank algorithm. 

ü For instance I’m updating my status today and after two days the status gets old and gradually it loses score.

ü The Edgerank score is changes every time, it’s not fixed score. Your status update will only hit the newsfeed if it has a higher score--at that moment in time--than the other possible newsfeed stories. 

ü Mostly the time decay factor is based on how long and how frequently the user uses the Facebook.


Prediction and other information
ü Practically speaking it’s not possible to check your score using Edgerank algorithm. But you can measure the effects of EdgeRank by seeing how many people you reached.

ü Moreover Facebook keeps the algorithm a secret, and they're constantly tweaking it. So the value of comments compared to likes is constantly changing.

ü Apart from that, best time for your posting your updates are 7am, 5pm and 11pm. Why those are considered best and others not? Many private organizations conducted many surveys on reaching their people.

ü Everyday morning before the leaving out for work(5am), evening after returning from work(5pm) and night before going to sleep(11pm) are more chances for checking on newsfeed. So when you post your updates on those times there are more chances of reaching more audiences. 

Tuesday, 13 December 2016

why keyboard is not arranged in alphabetical order?


We use keyboard every day, be it our desktop, or laptop, or tablet or smartphone. But have you ever wondered as to why the keyboard is not arranged in alphabetical order?
The reason goes back to the time of manual typewriters. These typewriters in earlier days did have the keys arranged in alphabetical order. However, it was later discovered that the people typed so fast that the mechanical character keys got jammed very easily with this arrangement.
To prevent this, the keys were randomly positioned so that the weaker fingers were needed more frequently. This meant that people typed at a speed which the machine could handle. As a result, the ‘QWERTY’ keyboard came into existence that we find and use today.
The QWERTY keyboard layout was devised and created in the 1860s by the creator of the first modern typewriter, Christopher Sholes, a newspaper editor who lived in Milwaukee. Originally, the characters on the typewriters he invented were arranged alphabetically, set on the end of a metal bar which struck the paper when its key was pressed. However, once an operator had learned to type at speed, the bars attached to letters that lay close together on the keyboard became entangled with one another, compelling the typist to manually unstick the typebars, and also regularly blotting the document. A business associate of Sholes, James Densmore, suggested splitting up keys for letters commonly used together to speed up typing by preventing common pairs of typebars from striking the platen at the same time and sticking together.
There are varied opinions on this rearrangement of letters in the keyboard. The logic of the QWERTY layout was based on letter usage in English rather than positioning of letter in the alphabet. However, some sources assert that the QWERTY layout was designed to slow down typing speed to further reduce jamming. Also, the QWERTY keyboards were made so one could type using keys from the top row of the keyboard. On the other hand, there are sources who assert the rearrangement worked by separating common sequences of letters in English. Apparently, the hammers that were likely to be used in quick succession were less likely to hinder with each other. This random arrangement eventually became standard in computers later followed by the devices made after that.


Thursday, 24 November 2016

advantages of using Dev c++

a view of dev c++ ide
Dev-C++ is a free full-featured integrated development environment(IDE) distributed under the GNU General Public License for programming in C and C++. It is written in Delphi.
Dev-C++ is generally considered a Windows-only program, but there are attempts to create a Linux version: header files and path delimiters are switchable between platforms.
An additional aspect of Dev-C++ is its use of DevPaks: packaged extensions on the programming environment with additional libraries, templates, and utilities. DevPaks often contain, but are not limited to, GUI utilities, including popular toolkits such as GTK+wxWidgets, and FLTK. Other DevPaks include libraries for more advanced function use. Users of Dev-C++ can download additional libraries, or packages of code that increase the scope and functionality of Dev-C++, such as graphics, compression, animation, sound support and many more. Users can create Devpaks and host them for free on the site. Also, they are not limited to use with Dev-C++ - the site says "A typical devpak will work with any MinGW distribution (with any IDE for MinGW)".

download dev c++ today and enjoy your coding 
link: