Wednesday 29 June 2016

Facebook announces Chrome extensions, tweaks social plugin buttons

The social media giant Facebook has introduced two new Google Chrome browser extensions along with a small nifty design change in its social plugin button on the website and app.

The new Chrome extensions going by the name 'Share to Facebook' and 'Save to Facebook' are pretty self-explanatory. The 'Share to Facebook' extension allows users to share any link on Facebook wall, groups, or Messenger easily without opening the main Facebook website.

All that a user needs to do is to click on the small Facebook icon in the address bar, something that would show up only after installing the extension, and share them via the sharing dialogue. In addition, users can also select particular text and then click on the Facebook button to share it. Another way to share the webpage via the extension is by right + clicking anywhere on the page and selecting the "Share this webpage to Facebook" option.

As for the 'Save to Facebook', the tool is nothing but a Google Chrome browser extension of the same 'Save on Facebook' feature that the company introduced at its F8 conference earlier this year. The extension enables users to save articles, videos, products, and other content in their private save list.

This save list can be accessed via the Facebook website. On the news feed page, it can be seen under the 'Favourites' option. or the design changes, Facebook has tweaked its social plugin buttons including Like, Share, Follow, and Save to Facebook. The new buttons are not only mobile-friendly but now also have a cleaner design, and are backward-compatible. Backward compatibility here means that third-party website developers can easily use these new plugin icons without much hassle.

Facebook additionally mentioned that in the coming weeks "Instant Articles publishers will be able to add Like, Comment, and Share buttons to the bottom of their Instant Articles, and interactions with these buttons will be included in aggregate Like and Share counts."


Facebook recently rolled out new features for its users on Apple's iOS mobile operating system. While the first feature automatically generates slideshows out of images and videos, the second is an addition to the company's Facebook Events feature that lets users access hand-picked Events, including the ones that are not on Facebook.
Stay updated on the go with Times of India News App. Click here to download it for your device.

Friday 5 February 2016

Hack: a new programming language for HHVM

In a hurry? Try Hack now: http://hacklang.org/
Today we're releasing Hack, a programming language we developed for HHVM that interoperates seamlessly with PHP. Hack reconciles the fast development cycle of PHP with the discipline provided by static typing, while adding many features commonly found in other modern programming languages.
We have deployed Hack at Facebook and it has been a great success. Over the last year, we have migrated nearly our entire PHP codebase to Hack, thanks to both organic adoption and a number of homegrown refactoring tools.
We're also proud to release an open source version of Hack to the public at http://hacklang.org/ as part of our HHVM runtime platform, which will now support both Hack and PHP.



Every PHP programmer is familiar with day-to-day tasks that can be tricky or cumbersome. The code above is a great example of a common mistake where a method could unexpectedly be called on a null object, causing an error that wouldn't be caught until runtime. Another example is a complex API, where developers may have a solid understanding of its semantics but still spend time looking up mundane method names in documentation.
At Facebook scale — with thousands of engineers shipping new code twice a day — slowdowns like these are even more problematic. Before Hack, we had a simple language with a quick feedback loop — but how could we mitigate the sorts of problems described above? Could early error detection coexist with rapid iteration, all while preserving our investment in PHP? Could improved code analysis and introspection help make developers more productive with tools like auto-complete?
Traditionally, dynamically typed languages allow for rapid development but sacrifice the ability to catch errors early and introspect code quickly, particularly on larger codebases. Conversely, statically typed languages provide more of a safety net, but often at the cost of quick iteration. We believed there had to be a sweet spot.
Thus, Hack was born. We believe that it offers the best of both dynamically typed and statically typed languages, and that it will be valuable to projects of all sizes.

The Hack language

Hack has deep roots in PHP. In fact, most PHP files are already valid Hack files. We made a conscious choice not to support a handful of deprecated functions and features that were incompatible with static typing (e.g. “variable variables” and the extract() function). We have also added many new features that we believe will help make developers more productive.
Our principal addition is static typing. We have developed a system to annotate function signatures and class members with type information; our type checking algorithm (the “type checker”) infers the rest. Type checking is incremental, such that even within a single file some code can be converted to Hack while the rest remains dynamically typed. Technically speaking, Hack is a “gradually typed*”* language: dynamically typed code interoperates seamlessly with statically typed code.
Within Hack's type system, we have introduced several features such as generics, nullable types, type aliasing, and constraints on type parameters. These new language features are unobtrusive, so the code you write with Hack will still look and feel like the dynamic language to which PHP programmers are accustomed.
However, Hack adds additional features beyond static type checking, including Collections, lambda expressions, and run-time enforcement of return types and parameter types.
Collections provide a clean, type-safe alternative to PHP arrays. We designed them specifically to work well with static typing and generics. The Collections API offers many classic higher-order functions such as map() and filter() to facilitate functional programming styles.
Lambda expressions give a concise syntax for creating closures. While PHP has closures, it requires the programmer to explicitly name the variables they need to use from enclosing scopes. With Hack's lambda expressions, we automatically infer these uses, saving you needless work. Lambda expressions make it more convenient to take full advantage of the Collections API.
Run-time enforcement of return types and parameter types (including scalar types like int and string) provides safety beyond what can be checked statically while type annotations are being gradually added to a codebase. Run-time enforcement helps programmers detect and diagnose certain kinds of problems more easily, and it helps HHVM's JIT produce more efficient code by making it safe to trust type annotations for optimization purposes.

Instantaneous type checking

During development, a PHP programmer typically goes back and forth rapidly between the source code and the browser. Engineers can iterate as quickly as they need, testing and tuning an experience until it's perfect.
Traditionally, a type checker would disrupt this feedback loop as it takes time to analyze the source code. We didn't want to slow the PHP workflow, so we came up with a new approach to reconcile instantaneous feedback with type safety.
Our solution was to architect the type checker as a local server that watches the filesystem. The server keeps all information about the source code in memory and automatically updates itself when a file changes on disk. This approach has paid off: the type checker typically runs in less than 200 milliseconds and rarely takes more than a second, making it easy to integrate into the development workflow without introducing a noticeable delay.

Code migration

Hack's type safety and refactoring benefits grow the more it is used within a codebase. Understanding that it would be difficult for some code to be completely transitioned to Hack right away, it was important to us that Hack be developed such that it can coexist directly with other PHP files as it is being introduced incrementally.
The rest of the conversion process, such as adding type annotations and using new language features, can be done as appropriate for the codebase. For example, a type annotation can be added for one function but left off another function, even in the same file. If a function parameter or class member does not have an explicit type annotation, the type checker considers its type to be dynamic, and it does not check the type of that value.
Within Facebook, we found that our engineers appreciated Hack enough that they started converting the majority of their own code voluntarily. With millions of lines of code in our tree, we also wanted some form of automation, so we built and use a number of code modification tools to assist the process (which we are releasing as part of Hack).

Don't worry, your PHP is safe!

HHVM is still a PHP runtime, and we intend to keep it that way. In fact, we are working hard toreach parity with PHP-5. One of HHVM's top priorities is to run unmodified PHP-5 source code, both for the community and because we rely on third-party PHP libraries internally.
HHVM is now a runtime that supports *both* PHP and Hack, so you can start to take advantage of Hack's new features incrementally.

Have fun with Hack!

We are delighted to open-source both Hack and the tools you can use to automatically convert your codebase. This is just the first step, and we are dedicated to continuing to evolve this software to make development even easier for both our own engineers and the broader community. Hack's value is *not* limited to big projects: with type information, good error messages, and fast feedback, small codebases can reap the benefits of Hack as well.
Next month, we will also introduce the language at the Hack Developer Day on the Facebook campus in Menlo Park, and we hope to see you there in person or online.
We would love to have your feedback on our work so far, and welcome you all to participate in the HHVM and Hack community.

Acknowledgements

There are many people who have contributed to the development of Hack.
The core Hack team consists of Julien Verlaguet, Joel Beales, Eugene Letuchy, Gabriel Levi, Joel Marcey, Erik Meijer, Alok Menghrajani, Bryan O'Sullivan, Drew Paroski, James Pearce, Joel Pobar, and Joshua Van Dyke Watzman.
A special thanks goes to our early community adopters for providing valuable feedback to make the language better: James Miller, Simon Welsh, Nils Adermann, Fabien Potencier, and Alexander Mols.
Hack is written primarily in OCaml. We would like to thank the Gallium team (INRIA) for the development of the OCaml language, and the Ocsigen team (CNRS - University of Paris Diderot - INRIA) for the development of the js_of_ocaml part of Ocsigen.
And, of course, thank you to everyone else who has helped make Hack the language it is today. The list is too exhaustive for a blog post, but you know who you are.

Thursday 28 January 2016

Kaizen – Just Do It!

Kaizen means continuous improvement

Moreover, Kaizen means continuing improvement in personal life, home life, social life, and working life. When applied to the workplace Kaizen means continuing improvement involving everyone – managers and workers alike. Japanese word meaning -Kai - gradual and orderly change, Zen  - for the better. Involves everyone in the organization in small improvements using conventional knowledge and tools
Without large capital investments.
A culture  - way of life
Focusing on eliminating waste
Begins and ends with people
Total system focus – not just one department
Kaizen Extends to Individual Life
Everybody deserves to and should be willing to improve himself/herself for the better continually.
“If a man has not been seen for three days, his friends should take a good look at him to see what changes have befallen him”  - an old Japanese saying that 
describes how natural Kaizen is

Kaizen Key Concepts
SDCA to PDCA – standardized work
Quality first
If something can be improved, a measure must exist by which improvement can be quantified – quality characteristics
Upstream management
Speak with data
Variability control and recurrence prevention

Seven Deadly Wastes
Over-production
Waiting
Transportation
Over-processing
Inventory
Motion
Defects

THE Kaizen WET BLANKET LIST

I am too busy to study it.
It's a good idea, but the timing is premature
It is not in the budget
Theory is different from practice
Isn't there something else for you to do ?
I think it doesn't match corporate policy
It isn't our business; let someone else think about it
Are you dissatisfied with your work ?
It's not improvement, it's common sense
I know the result, even if we don't do it
I will not be held accountable for it
Can't you think of a better idea ?

BASIC TIPS FOR KAIZEN ACTIVITIES
Discard conventional fixed ideas.
Think of how to do it, not why it cannot be done.
Do not make excuses. Start by questioning current practices.
Do not seek perfection. Do it right away even if for only 50% of target.
Correct it right away, if you make mistake.
Do not spend money for KAIZEN, use your wisdom.
Wisdom is brought out when faced with hardship.
Ask 'WHY?" five times and seek root causes.
Seek the wisdom of ten people rather than the knowledge of one.

KAIZEN ideas are infinite.
Maintenance
Innovation
Major improvements in technology/equipment
Requires substantial investment
Best suited to a good economy
nKaizen 

Will Facebook Messenger and WhatsApp Merge Into One Service?

Facebook Messenger and WhatsApp have the same parent company now. But they remain two different applications serving similar functions of communication, even after an effort to converge. Does their independency signify a ‘sibling rivalry’ or does their similarity call ahead for a future merging? This ambiguity does not seem to worry their users who seem to avail benefits from either or both, neglecting the boredom of similarity.



Facebook’s buyout of WhatsApp, for a staggering $19 Billion, dominated tech news for weeks. But Facebook’s prior introduction of Messenger and its upgradation with voice calling (similar to that of WhatsApp) makes the situation ironical. It does indicate that Facebook wants to provide its users wide range of experiences with two similar applications. This is confirmed by its decision to keep WhatsApp independent. According to researchers, the profit is titled towards WhatsApp in terms of distribution. With its world-wide reach, Facebook could colour more number of gadgets green. Besides surveys have proven that people who have mingled up with WhatsApp were reluctant to disown it even if they have downloaded Messenger app. They gave credits to WhatsApp for its simplicity and less complicated User Interface (UI) which determines user friendliness. Thus Messenger and WhatsApp are separated only by shadow lines.

But Facebook seems to be aiming for competition with WhatsApp itself. This is apparent with the increased focus Messenger is getting – the service was recently converted to a platform in itself, allowing developers to build services and apps for it. Messenger itself is becoming independent, and can now be accessed directly on Messenger.com. Facebook however, denies any plans to merge WhatsApp and Messenger.

Question the supporters of Facebook Messenger and you’ll get an elaborate list of advantages on the platform – more systematic and attractive appearance, sophisticated UI, and so on. WhatsApp loyalists would counter with things like better privacy, simpl UI, faster performance. If the virtue of one is the vice of another, then a wholesome good could be created from the combination of virtues and erasure of vices.
Even if the parent company exhibits no sign of integration, the merging may challenge similar application softwares like Line, WeChat, etc. Pondering on the reason for Facebook’s segregation of Messenger as a separate chatting facility will lead us to its competitive strategy. Its competitors are strong with social gaming and Facebook is likely to incline more towards this arena. Besides WeChat has a platform with apps for sending money, shopping, ordering take-away delicacies, etc. Another strategy Facebook has adopted with the segregation of Messenger is the introduction of ‘Business on Messenger’ in the app. Facebook claims that this portal could aggregate infinite number of retailers for the shoppers.

Therefore the ability of Messenger to become a platform could also strike up ideas on merging with WhatsApp. WhatsApp is a modified and enhanced version of text messaging whereas Messenger provides provision for financial transaction. If simplicity and sophistication integrates, it could steal much more number of eye balls. Messenger’s new voice calling facility, emoticons etc may seem redundant for a fusion. But a selective upgradation of facilities may promote a novel experience with a reduced operating cost.
With an extremely high number of downloads on the Play Store, WhatsApp remains in the gadgets of many. With enhanced facility, Messenger would top the rating of most downloaded app in the near future (compared to the previous year it has a growth of about 200 million monthly users).

With the heat of competition on its rise, one of the wise business strategies that could be adopted in need is fusion. With Instagram already under its wings, Facebook is looking forward with Messenger and WhatsApp. In the near future, if it would surprise us with an integration of the two, then it is doubtless that the new app would keep Facebook top in the business ratings-far from its competitors.

Monday 18 January 2016

Qualities of Good Software Developer

1.       Perspective. Ability to look from business perspective apart from (typical) code-level perspective. Understanding why all the coding is done and where are the fruits for the customer/user whoever it is.
2.      Questions. Asking why something is done that way. Discussing answers. Showing own point of view. Trying to be objective in the whole thing.
3.      Communication. It doesn’t have to be great but you should be able to talk with non-developers in a way which is understandable by the other side.
4.      Fallibility. Actually everyone is fallible, but not everyone is able to admit that.
5.      Experience. From different situation, different systems, different issues, different architectures, different teams, different technologies, different environments. The more the better.
6.      Learning. Will and ability to self-develop, learn (quickly) new things and adapt to new environments.
7.      Digging. Understanding a problem to the very bottom. Trying to find out what’s happening under the hood. Rejecting easy trial-and-error explanations.
8.     Reason. Every thing which is developed serves some purpose and using common sense one can easily decide which actions are justified and which are not.
9.      Hobby. Treating development as at least something more than just a job. Will to do develop something just for yourself, not because you were forced to.
10.  Quality. Just remember the quality is a weak point of software development and be willing to do something about your little piece of that crap.
None of them are actually about any particular technology. None of them is about any particular softwaredevelopment methodology. There’s no answer to specialization versus versatility question.

Things which differentiate good developers aren’t those which used to be considered as their core qualities.

Sunday 17 January 2016

Express Invoice Invoicing Software

Express Invoice Invoicing Software
The easiest and most complete invoicing system
Easy invoicing software to manage and track your billing on Mac or Windows.

 Create invoices, quotes and orders quickly
 Automate recurring invoices and templates
 Easily add multiple users and enable remote access

Express Invoice lets you create invoices you can print, email or fax directly to clients for faster payment. The reporting functionality allows you to keep track of payments, overdue accounts, sales team performance and more.

Apply a payment
Apply partial or full payments toward recorded invoices when payments are received.
Download Invoice Creation Software
Keep track of customers
You can keep an up-to-date record of all your customers, including contact details, payment and sales history.
Download Invoice Tracking Software
View & print reports
Generate, view and print reports for unpaid invoices, payments, item sales, accounting, and more.


Keep track of customers
You can keep an up-to-date record of all your customers, including contact details, payment and sales history.


View & print reports
Generate, view and print reports for unpaid invoices, payments, item sales, accounting, and more.


Invoicing Software Features

    Easily create invoices, quotes and orders
    Customize invoices including logo, heading text, notes and more
    Save or send invoices as PDF files
    Email or fax directly from the application
    Schedule recurring invoices
    Automatically send statements to customers with overdue payments
    Supports multiple tax rates for countries where required (e.g., Canada)
    Supports invoicing for multiple businesses
    Web access lets multiple users within the organization securely log in and use over the network or even the Internet
    Secure, mobile access through the web interface (e.g., iPhone, Android)
    Reporting includes accounting, salesperson performance, unpaid invoices and more
    Integrates with Inventoria to maintain inventory data across all aspects of your business


Invoice Program System Requirements

    Works on Windows 8.1, XP, Vista, 7, 8 and 10
    Works on 64 bit Windows
    Mac OS X 10.4 or higher
    iPad version runs on iOS 3.2 or higher
    Android version runs on 2.3.3 or higher


For Any type of Purchase Please contact Envis Solutions

Visit our Facebook Page For More Details Envis Solutions


Tuesday 12 January 2016

How to Improve Your Search Engine Ranking on Google

When I first started as a webmaster, there were numerous search engines around. Nowadays, though, we are, for the most part, left with only Google and Bing, with Google providing the majority of visitors to most websites, including www.envissolutions.com. This article provides some tips on how you can improve the position of your site in the search engine results on Google.


Improving Your Site's Placement on Google's Search Engine Results


Google ranks a page according to a large number of factors. Exactly what these factors are is apparently a trade secret, although there are number of well-known things that contribute to the ranking of a page

Links Pointing to Your Website

One of the factors that contribute to a web page being considered "important" is the number of links pointing to that page. For example, if your page has 100 quality links leading to it, it will be ranked higher (in Google's estimation) than one that only has 20.
But what are "quality" links"? These are links from other popular pages, that is, pages that have, themselves, many (quality) links pointing to them. (Yeah, I know. My definition is circular. And it's possible that the search engine has other factors that determine the quality of a link.)
Anyway, in general, since Google ranks your pages according to the number of links pointing at your page, your site will do better if it has more links pointing to it.

Your Title Tag

Google seems to give weight to the title of your page. By title, I mean the text that is sandwiched between the HTML <TITLE> tags in the <HEAD> section of your web page. If you use a Web editor that automatically inserts a title like "New Document", remember to change it to some meaningful text with your keywords inside to reap the benefit of this feature. Otherwise, your site will only feature in the search results when someone looks for "New Document".
Note: by "keywords", I mean the words people will use when searching for your site. For example, if your site sells bicycles, then one keyword for it would be "bicycles", since that's the word you'd expect people to use when searching for bicycles.


Your Page Must Have the Words You Think People Will Search For

Besides the title tag, if you want your website to feature in Google's results when someone searches for a set of words, say "Widget X", those words must actually occur on your page. Think about it from the point of view of a search engine. If you don't put the words "Widget X" somewhere on the page, how is the search engine supposed to know that the page deals with that topic? The search engine is not a human being who can draw inferences from the general tone and content of the page. Even if it can handle some synonyms, you're going to compete with other sites who have specifically placed those words on their site.
I know this point seems self-evident (once you've come across it). However, from experience, many webmasters (me included) don't seem to realise ("realize" in US English) that when they are first starting out.



Keyword-laden Links

According to apaper publishedby one of Google's founders, if the links pointing to your page has some words in them, those words will be regarded by Google as an additional indication of the content of your page. For example, a link with the text "Cheap Shoe Store" pointing at your page will cause Google to think that your page is relevant when someone searches for "cheap shoe store".
However, my recommendation is that if you think a particular set of words is relevant to your site, don't rely on some random site on the Internet to link to you with those words. Put them directly on your page.


Other Google Tips



  1. Use a Search Engine Site Map

    Although not strictly necessary, if you find that Google (or Bing, for that matter) is not able to discover some pages on your website, create a site map. I don't mean the type of user site map that you see on www.envissolutions.com (which is primarily meant for human beings), but a site map that is specially designed for search engines. While such a site map does not guarantee that Google will index and list every page, it will at least help it discover those missing pages if your site design is such that it has impeded the search engine from finding them before.
  2. Check Your Robots.txt File

    Like all respectable search engines, Google will read and obey a special text file on your website called the "robots.txt" file. You can control where search engines are allowed to go with this file. A corollary of this is that you can also inadvertantly block the search engine from going to certain parts of your site. It's generally a good idea to create a robots.txt file for your website, even if it's an empty file with zero bytes (which means that search engines are allowed to index everything on your site).
  3. ALT text on Images

    If you have been placing images on your website without bothering to place ALT text, now is a good time to add them. An "ALT text" (or alternate text) is just a way of putting a brief description (using words) of what your picture shows. They are needed by the software used by the blind so that they know what's in the picture. Since all search engines, including Google, are essentially blind, relying on words, they also need the ALT text. The description you give in the ALT text is treated like the words occurring on your web page, although I don't know if they are regarded as being of equal importance.
  4. Be Careful Whom You Hire

    Google's use of links to rank a website has at least 2 side effects on the Internet. Firstly, people seeking to rank higher have engaged companies to furnish them with zillions of links. Those companies presumably set up a whole bunch of sites for the sole purpose of linking to their clients. Secondly, as a response to this, the Google programmers have retaliated (and continue to do so) by discrediting links from such "link networks" as well as penalising the sites that pay them for the service.
    It's apparently possible to run afoul of this even if you have no intention of buying links. For example, if you are not careful, and have engaged a search engine optimisation ("SEO") company to improve your site's performance on Google, and they use a link network, your site may inadvertantly get caught in the crossfire of this ongoing war between the link networks and Google.
  5. The META Keywords Tag is Ignored

    The Google search engine ignores the META keywords tag, and has always done so. If you have received spam from some wannabe search engine optimization "specialist" telling you that you need to add this to your site, think twice about hiring him/her, since this recommendation already gives you a hint of the extent of his/her knowledge.
  6. Dynamic Pages and Google

    Like all modern search engines (yeah, all 2 of them), Google is able to index dynamically generated pages, so long as a link to those pages exists somewhere. For example, a page like "http://example.com/showstuff.php?page=19" can be indexed by Google, so you don't really need to rewrite your URLs if you can't be bothered.
    If you have a dynamically generated page that you think should be indexed, just make sure you put a link to it somewhere on your site. This applies to all web pages that you want indexed anyway, so even if you don't understand what I mean by "dynamic page", it doesn't matter. Make sure that all the pages of your site can be found through at least one link on your site. If they are not linked to from somewhere, no one will be able to find it, neither Google nor your visitors (unless they are psychic).
  7. Disabling the Caching of Your Page Will Not Affect Your Page Rank

    In ancient history, it was claimed that Google would penalise pages that forbade it from caching their pages. As you know, the Google search engine caches the pages it indexes unless otherwise instructed. To avoid problems with people who dislike this, they allow sites to instruct Google not to cache those pages.
    Google have ("has" in US English) apparently publicly denied that disabling caching would affect the page's ranking in any way. I tend to believe their claim.
  8. Don't Waste Your Time With The Google Toolbar's Page Rank

    In prehistoric times, you could add something known as the Google Toolbar to your web browser, and get something known as the "Page Rank" shown for any site you visit. In those days, the "Page Rank" would give you an idea of how important Google thought your site was.
    Nowadays, the Page Rank is only one of apparently zillions of factors used by Google in ranking a website. They also discourage people from focusing on the Page Rank, and as a result, do not actually update the rank displayed on the toolbar in a timely fashion. (That is, the rank shown is often many months out of date.) In fact, I'm not sure if the page rank is even shown on the toolbar anymore.
    In other words, it's not worth your time to install the toolbar.