5 Ways to Misunderstand FOSS

The following are 5 ways that people misunderstand the concept of Free and Open Source Software.[...]

7 Cool VLC Features Worth Knowing

Think you know all about VLC, I bet you don't until you read this![...]

5 Things Microsoft Does not want you to know about Windows

Are you a happy Windows user? Well see what Redmond would rather you never find out![...]

How to Make your Own Linux Distro

Want to create your own Linux distro? This guide will show you various ways of creating your own customized Linux Distro[...]

Internet Cafes with Linux

Linux is a great operating system for networking. So how is it possible to not see Linux in Internet cafes and LAN houses ??? There are no cyber cafe / LAN house managers in Linux? [...]

Friday, May 27, 2011

How to Solve the Firefox 4 Sync Error

Sometime after upgrading to Firefox 4, the built in sync function stopped working, throwing up the "Firefox encountered an error while syncing..."

To solve this, login to the Mozilla Account services with your Sync username and password, then choose "Clear Your Sync Data" from the left hand menu. This will clear all your stored sync data on the Mozilla servers.

Now try syncing Firefox again by going to the main menu and choosing Synch Now. All should work well now.

Sharing is Caring:
By Seraaj Muneer with 3 comments

Thursday, May 26, 2011

Linux Careers- A Portal for Linux Related Jobs

Linuxcareer is a job related portal for vacancies in Linux based careers and other IT related fields. You can search for jobs, post jobs, search and post resumes. Registration to the site is free for both job seekers and employers.

You can filter your job search by category, country, state, salary range, employment type and date. You can follow LinuxCareer on Twitter.

Sharing is Caring:
By Seraaj Muneer with No comments

Sunday, May 1, 2011

2020 Mobile Trends in Africa

This slideshare was developed by the White African in collaboration with some of the highest authorities in the mobile space. They sought to paint a picture of how the mobile space would be like in Africa by the year 2020.


Sharing is Caring:
By Seraaj Muneer with No comments

Is Today's Google Really Open?

With the current raging controversy over the delayed release of the source code to Android Honeycomb by Google, many an analyst have questioned whether the Google of today is really as opened as they'd like us to believe. As a stauch Google fanboy, I set out to find out what the meaning of "open" is in the first place, and what better place to seek that answer than from Google itself. 


In my hunt for the open definition, I came across this Google Public Policy blog post in which Jonathan Rosenberg, Senior Vice President [now resigned], Product Management titled The Meaning of Open posted on December 21, 2009. In it, he gives a broad overview of the meaning of open and how it relates "to the Internet, Google, and our users. In the spirit of openness, I thought it would be appropriate to share these thoughts with those outside of Google as well." 


Similarly in the spirit of openness, I've made a reproduction of the lenthy blog post here so that you can be judge to the question of whether Google is really still open. Grab a cup of coffee and enjoy. 
At Google we believe that open systems win. They lead to more innovation, value, and freedom of choice for consumers, and a vibrant, profitable, and competitive ecosystem for businesses. 


Many companies will claim roughly the same thing since they know that declaring themselves to be open is both good for their brand and completely without risk. After all, in our industry there is no clear definition of what open really means. It is a Rashomon-like term: highly subjective and vitally important.
The topic of open seems to be coming up a lot lately at Google. I've been in meetings where we're discussing a product and someone says something to the effect that we should be more open. Then a debate ensues which reveals that even though most everyone in the room believes in open we don't necessarily agree on what it means in practice.


This is happening often enough for me to conclude that we need to lay out our definition of open in clear terms that we can all understand and support. What follows is that definition based on my experiences at Google and the input of several colleagues. We run the company and make our product decisions based on these principles, so I encourage you to carefully read, review, and debate them. Then own them and try to incorporate them into your work. This is a complex subject and if there is debate (and I'm sure there will be) it should be in the open! Please feel free to comment.


There are two components to our definition of open: open technology and open information. Open technology includes open source, meaning we release and actively support code that helps grow the Internet, and open standards, meaning we adhere to accepted standards and, if none exist, work to create standards that improve the entire Internet (and not just benefit Google). Open information means that when we have information about users we use it to provide something that is valuable to them, we are transparent about what information we have about them, and we give them ultimate control over their information. These are the things we should be doing. In many cases we aren't there, but I hope that with this note we can start working to close the gap between reality and aspiration.


If we can embody a consistent commitment to open — which I believe we can — then we have a big opportunity to lead by example and encourage other companies and industries to adopt the same commitment. If they do, the world will be a better place.


Open systems win


To understand our position in more detail, it helps to start with the assertion that open systems win. This is counter-intuitive to the traditionally trained MBA who is taught to generate a sustainable competitive advantage by creating a closed system, making it popular, then milking it through the product life cycle. 


The conventional wisdom goes that companies should lock in customers to lock out competitors. There are different tactical approaches — razor companies make the razor cheap and the blades expensive, while the old IBM made the mainframes expensive and the software ... expensive too. Either way, a well-managed closed system can deliver plenty of profits. They can also deliver well-designed products in the short run — the iPod and iPhone being the obvious examples — but eventually innovation in a closed system tends towards being incremental at best (is a four blade razor really that much better than a three blade one?) because the whole point is to preserve the status quo. Complacency is the hallmark of any closed system. If you don't have to work that hard to keep your customers, you won't.


Open systems are just the opposite. They are competitive and far more dynamic. In an open system, a competitive advantage doesn't derive from locking in customers, but rather from understanding the fast-moving system better than anyone else and using that knowledge to generate better, more innovative products. The successful company in an open system is both a fast innovator and a thought leader; the brand value of thought leadership attracts customers and then fast innovation keeps them. This isn't easy — far from it — but fast companies have nothing to fear, and when they are successful they can generate great shareholder value.


Open systems have the potential to spawn industries. They harness the intellect of the general population and spur businesses to compete, innovate, and win based on the merits of their products and not just the brilliance of their business tactics. The race to map the human genome is one example.
In the book Wikinomics, Don Tapscott and Anthony Williams explain how in the mid-1990s private firms were discovering and patenting large amounts of DNA sequence data and then assuming control over who could access that information and at what price. 


Having so much of the genome under private ownership raised costs and made drug discovery far less efficient. Then, in 1995, Merck Pharmaceuticals and the Gene Sequencing Center at Washington University changed the game by creating a new, open initiative called the Merck Gene Index. Within three years they had published over 800,000 gene sequences into the public domain, and soon other collaborative projects followed suit. 


This in an industry where early stage R&D was traditionally pursued individually in closed labs, so Merck's open approach not only changed the culture of the entire field but also accelerated the pace of biomedical research and drug development. It gave researchers everywhere unrestricted access to an open resource of genetic information.


Another way to look at the difference between open and closed systems is that open systems allow innovation at all levels — from the operating system to the application layer — not just at the top. This means that one company doesn't have to depend on another's benevolence to ship a product. If the GNU C compiler that I'm using has a bug, I can fix it since the compiler is open source. I don't have to file a bug report and hope for a timely response.


So if you are trying to grow an entire industry as broadly as possible, open systems trump closed. And that is exactly what we are trying to do with the Internet. Our commitment to open systems is not altruistic. Rather it's good business, since an open Internet creates a steady stream of innovations that attracts users and usage and grows the entire industry. Hal Varian has an equation in his book Information Rules that applies here:


Reward = (Total value added to the industry) * (Our share of industry value)


All other things being equal, a 10 percent increase in share or a 10 percent increase in industry value should lead to the same outcome. But in our industry a 10 percent increase in industry value will yield a much bigger reward because it will stimulate economies of scale across the entire industry, increasing productivity and reducing costs for all competitors. As long as we contribute a steady stream of great products we will prosper along with the entire ecosystem. We may get a smaller piece, but it will come from a bigger pie.


In other words, Google's future depends on the Internet staying an open system, and our advocacy of open will grow the web for everyone - including Google.


Open Technology


The definition of open starts with the technologies upon which the Internet was founded: open standards and open source software.


Open Standards


Networks have always depended on standards to flourish. When railroad tracks were first being laid across the U.S. in the early 19th century, there were seven different standards for track width. The network didn't flourish and expand west until the different railway companies agreed upon a standard width of 4' 8.5". (In this case the standards war was an actual war: Southern railroads were forced to convert over 11,000 miles of track to the new standard after the Confederacy lost to the Union in the Civil War.)


So there was some precedent in 1974 when Vint Cerf and his colleagues proposed using an open standard (which became TCP/IP) to connect the several computer networks that had emerged around the U.S. They didn't know exactly how many networks were out there so the "Internet" — a term Vint coined — had to be open. Any network could connect using TCP/IP, and now, as a result of that decision, there are about 681 million hosts on the Internet.


Today, we base our developer products on open standards because interoperability is a critical element of user choice. What does this mean for Google Product Managers and Engineers? Simple: whenever possible, use existing open standards. If you are venturing into an area where open standards don't exist, create them. If existing standards aren't as good as they should be, work to improve them and make those improvements as simple and well documented as you can. Our top priorities should always be users and the industry at large and not just the good of Google, and you should work with standards committees to make our changes part of the accepted specification.


We have a good history of doing this. In the formative years of the Google Data Protocol (our standard API protocol, which is based on XML/Atom), we worked as part of the IETF Atom Protocol Working Group to shape the Atom specification. There's also our recent work with the W3C to create a standard geolocation API that will make it easy for developers to build browser-based, location-sensitive applications. This standard helps everyone, not just us, and will lead to users having access to many more compelling apps from thousands of developers.


Open Source


Most of those apps will be built on open source software, a phenomenon responsible for the web's explosive growth in the past 15 years. There is a historic precedent here: while the term "open source" was coined in the late 1990s, the concept of sharing valuable information to catalyze an industry existed long before the Internet. In the early 1900s, the U.S. automobile industry instituted a cross-licensing agreement whereby patents were shared openly and freely amongst manufacturers. Prior to this agreement, the owners of the patent for the two-cycle gasoline engine had effectively bottled up the industry.


Today's open source goes far beyond the "patent pooling" of the early auto manufacturers, and has led to the development of the sophisticated software components — Linux, Apache, SSH, and others — upon which Google is built. In fact, we use tens of millions of lines of open source code to run our products. We also give back: we are the largest open source contributor in the world, contributing over 800 projects that total over 20 million lines of code to open source, with four projects (Chrome, Android, Chrome OS, and Google Web Toolkit) of over a million lines of code each. We have teams that work to support Mozilla and Apache, and an open source project hosting service (code.google.com/hosting) that hosts over 250,000 projects. These activities not only ensure that others can help us build the best products, they also mean that others can use our software as a base for their own products if we fail to innovate adequately.


When we open source our code we use standard, open Apache 2.0 licensing, which means we don't control the code. Others can take our open source code, modify it, close it up and ship it as their own. Android is a classic example of this, as several OEMs have already taken the code and done great things with it. There are risks to this approach, however, as the software can fragment into different branches which don't work well together (remember how Unix for workstations devolved into various flavors — Apollo, Sun, HP, etc.). This is something we are working hard to avoid with Android.


While we are committed to opening the code for our developer tools, not all Google products are open source. Our goal is to keep the Internet open, which promotes choice and competition and keeps users and developers from getting locked in. In many cases, most notably our search and ads products, opening up the code would not contribute to these goals and would actually hurt users. The search and advertising markets are already highly competitive with very low switching costs, so users and advertisers already have plenty of choice and are not locked in. Not to mention the fact that opening up these systems would allow people to "game" our algorithms to manipulate search and ads quality rankings, reducing our quality for everyone.


So as you are building your product or adding new features, stop and ask yourself: Would open sourcing this code promote the open Internet? Would it spur greater user, advertiser, and partner choice? Would it lead to greater competition and innovation? If so, then you should make it open source. And when you do, do it right; don't just push it over the wall into the public realm and forget about it. Make sure you have the resources to pay attention to the code and foster developer engagement. Google Web Toolkit, where we have developed in the open and used a public bug tracker and source control system, is a good example of this.


Open Information


The foundation of open standards and open source has led to a web where massive amounts of personal information — photos, contacts, updates — are regularly uploaded. The scale of information being shared, and the fact that it can be saved forever, creates a question that was hardly a consideration a few years ago: How do we treat this information?


Historically, new information technologies have often enabled new forms of commerce. For example, when traders in the Mediterranean region circa 3000 BC invented seals (called bullae) to ensure that their shipments reached their destinations tamper-free, they transformed commerce from local to long distance. Similar transformations were spurred by the advent of the written word, and more recently, computers. At every step of the way, the transaction, a consensual agreement where each party gets something of value, was powered by a new type of information that allowed a contract to be enforced.


On the web, the new form of commerce is the exchange of personal information for something of value. This is a transaction that millions of us participate in every day, and it has potentially great benefits. An auto insurer could monitor a customer's driving habits in real-time and give a discount for good driving — or charge a premium for speeding — powered by information (GPS tracking) that wasn't available only a few years ago. This is a fairly simple transaction, but we will encounter far more sensitive scenarios.


Let's say your child has an allergy to certain medicines. Would you allow her medical data to be accessible by a smart wireless syringe which could prevent an EMT or nurse from accidentally giving her that medicine? I would, but you might decide the metal bracelet around her wrist is sufficient. And that's the point — people can and will reach different decisions, and when it comes to their personal information we need to treat all of those decisions with equal respect.


So while having more personal information online can be quite beneficial to everyone, its uses should be guided by principles that are responsible, scalable, and flexible enough to grow and change with our industry. And unlike open technology, where our objective is to grow the Internet ecosystem, our approach to open information is to build trust with the individuals who engage within that ecosystem (users, partners, and customers). Trust is the most important currency online, so to build it we adhere to three principles of open information: value, transparency, and control.


Value


First and foremost, we need to make products that are valuable to users. In many cases, we can make our products even better if we know more information about the user, but privacy concerns can arise if people don't understand what value they are getting in return for their information. Explain that value to them, however, and they will often agree to the transaction. For example, millions of people let credit card companies retain information on the purchases they make with their card in exchange for the convenience of not carrying around cash.


We did this well when we launched Interest-Based Advertising in March. IBA makes ads more relevant and more useful. That is the extra value we create based on the information we gather. It also includes a user preferences manager that clearly explains what users are getting in exchange for their information and lets them opt out or adjust their settings. The vast majority of people who visit the preferences manager choose to adjust their settings rather than opt out because they realize the value of receiving ads customized to their interests.


This should be our default approach: tell people, in obvious, plain language, what we know about them and why it's valuable to them that we know it. Think that your product's value is so obvious that it doesn't need explaining? There's a good chance you're wrong.


Transparency


Next, we need to make it easy for users to find out what information we gather and store about them across all of our products. We recently took a big step in this direction with the launch of the Google Dashboard, which is a single place where users can see what personal data is held by each Google product (covering more than 20 products including Gmail, YouTube, and Search) and control their personal settings. We are, to the best of our knowledge, the first Internet company to offer a service like this and we hope it will become the standard. Another good example is our Privacy Policy, which is written for humans and not just lawyers.


We can go even farther than this though. If you manage a consumer product where you collect information from your users, your product should be part of the Dashboard. If you're already there, you're not done. With every new feature or version, ask yourself if you have any additional information (maybe even information that is publicly available about users on other sites) that you can add to the Dashboard.


Think about how you can increase transparency within your product as well. When you download an Android app, for example, the device tells you what information the app will be able to access about you and your phone, and then you get to decide whether or not to proceed. You don't have to dig deep to figure out what information you are divulging - it tells you up front and lets you decide what to do. Is your product like that? How can you increase users' engagement with your product through increasing transparency?


Control


Finally, we must always give control to the user. If we have information about a user, as with IBA, it should be easy for the user to delete that information and opt-out. If they use our products and store content with us, it's their content, not ours. They should be able to export it or delete it at any time, at no cost, and as easily as possible. Gmail is a great example of this since we offer free forwarding to any address. The ability to switch is critical, so instead of building walls around your product, build bridges. 


Give users real options.


If there are existing standards for handling user data, then we should adhere to them. If a standard doesn't exist, we should work to create an open one that benefits the entire web, even if a closed standard appears to be better for us (remember — it's not!). In the meantime we need to do whatever we can to make leaving Google as easy as possible. Google is not the Hotel California — you can check out any time you like and you CAN, in fact, leave!


As Eric said in his 2009 strategy memo, "we don't trap users, we make it easy for them to move to our competitors." This policy is sort of like the emergency exits on an airplane — an analogy that our pilot CEO would appreciate. You hope to never use them, but you're glad they're there and would be furious if they weren't.


That's why we have a team — the Data Liberation Front (dataliberation.org) — whose job it is to make "checking out" easy. Recent examples of their work include Blogger (people who choose to leave Blogger for another service can easily take their content with them) and Docs (users can now collect all their documents, presos, and spreadsheets in a zip file and download it). Build your products so that the Data Liberation team can work their magic. One way you can do this is by having a good public API that exposes all your users' data. Don't wait for v2 or v3, discuss this early in your product planning meetings and make it a feature of your product from the start.


When reporters at the Guardian, a leading UK newspaper, reviewed the work of the Data Liberation team they proclaimed it to be "counter-intuitive" for those "accustomed to the lock-in mentality of previous commercial battles." They are right, it is counterintuitive to people who are stuck in the old MBA way of thinking, but if we do our jobs then soon it won't be. Our goal is to make open the default. People will gravitate towards it, then they will expect and demand it and be furious when they don't get it. When open is intuitive, then we have succeeded.


When bigger is better


Closed systems are well-defined and profitable, but only for those who control them. Open systems are chaotic and profitable, but only for those who understand them well and move faster than everyone else. Closed systems grow quickly while open systems evolve more slowly, so placing your bets on open requires the optimism, will, and means to think long term. Fortunately, at Google we have all three of these.


Because of our reach, technical know-how, and lust for big projects, we can take on big challenges that require large investments and lack an obvious, near-term pay-off. We can photograph the world's streets so that you can explore the neighborhood around an apartment you are considering renting from a thousand miles away. We can scan millions of books and make them widely accessible (while respecting the rights of publishers and authors). We can create an email system that gives away a gigabyte of storage (now over 7 gigs) at a time when all other services allow only a small fraction of that amount. 


We can instantly translate web pages from any of 51 languages. We can process search data to help public health agencies detect flu outbreaks much earlier. We can build a faster browser (Chrome), a better mobile operating system (Android), and an entirely new communications platform (Wave), and then open them up for the world to build upon, customize, and improve.


We can do these things because they are information problems and we have the computer scientists, technology, and computational power to solve them. When we do, we make numerous platforms - video, maps, mobile, PCs, voice, enterprise - better, more competitive, and more innovative. We are often attacked for being too big, but sometimes being bigger allows us to take on the impossible.


All of this is useless, however, if we fail when it comes to being open. So we need to constantly push ourselves. Are we contributing to open standards that better the industry? What's stopping us from open sourcing our code? Are we giving our users value, transparency, and control? Open up as much as you can as often as you can, and if anyone questions whether this is a good approach, explain to them why it's not just a good approach, but the best approach. It is an approach that will transform business and commerce in this still young century, and when we are successful we will effectively re-write the MBA curriculum for the next several decades!


An open Internet transforms lives globally. It has the potential to deliver the world's information to the palm of every person and to give everyone the power of freedom of expression. These predictions were in an email I sent you earlier this year (later posted as a blog post) that described my vision for the future of the Internet. But now I'm talking about action, not vision. There are forces aligned against the open Internet — governments who control access, companies who fight in their own self-interests to preserve the status quo. They are powerful, and if they succeed we will find ourselves inhabiting an Internet of fragmentation, stagnation, higher prices, and less competition.


Our skills and our culture give us the opportunity and responsibility to prevent this from happening. We believe in the power of technology to deliver information. We believe in the power of information to do good. We believe that open is the only way for this to have the broadest impact for the most people. We are technology optimists who trust that the chaos of open benefits everyone. We will fight to promote it every chance we get.


Open will win. It will win on the Internet and will then cascade across many walks of life: The future of government is transparency. The future of commerce is information symmetry. The future of culture is freedom. The future of science and medicine is collaboration. The future of entertainment is participation. Each of these futures depends on an open Internet.


As Google product managers, you are building something that will outlast all of us, and none of us can imagine all the ways Google will grow and touch people's lives. In that way, we are like our colleague Vint Cerf , who didn't know exactly how many networks would want to be part of this "Internet" so he set the default to open. Vint certainly got it right. I believe we will too. 

Sharing is Caring:
By Seraaj Muneer with No comments

If programming languages were religions

Something from ITU to lighten up your morning...enjoy


C would be Judaism - it's old and restrictive, but most of the world is familiar with its laws and respects them. The catch is, you can't convert into it-you're either into it from the start, or you will think that it's insanity. Also, when things go wrong, many people are willing to blame the problems of the world on it.


Java would be Fundamentalist Christianity - it's theoretically based on C, but it voids so many of the old laws that it doesn't feel like the original at all. Instead, it adds its own set of rigid rules, which its followers believe to be far superior to the original. Not only are they certain that it's the best language in the world, but they're willing to burn those who disagree at the stake.


PHP would be Cafeteria Christianity - Fights with Java for the web market. It draws a few concepts from C and Java, but only those that it really likes. Maybe it's not as coherent as other languages, but at least it leaves you with much more freedom and ostensibly keeps the core idea of the whole thing. Also, the whole concept of "goto hell" was abandoned.


C++ would be Islam - It takes C and not only keeps all its laws, but adds a very complex new set of laws on top of it. It's so versatile that it can be used to be the foundation of anything. Its followers are convinced that it is the ultimate universal language, and may be angered by those who disagree. Also, if you insult it or its founder, you'll probably be threatened with death by more radical followers.


C# would be Mormonism - At first glance, it's the same as Java, but at a closer look you realize that it's controlled by a single corporation (which many Java followers believe to be evil), and that many theological concepts are quite different. You suspect that it'd probably be nice, if only all the followers of Java wouldn't discriminate so much against you for following it.


Lisp would be Zen Buddhism - There is no syntax, there is no centralization of dogma, there are no deities to worship. The entire universe is there at your reach - if only you are enlightened enough to grasp it. Some say that it's not a language at all; others say that it's the only language that makes sense.


Haskell would be Taoism - It is so different from other languages that many people don't understand how can anyone use it to produce anything useful. Its followers believe that it's the true path to wisdom, but that wisdom is beyond the grasp of most mortals.


Erlang would be Hinduism - It's another strange language that doesn't look like it could be used for anything, but unlike most other modern languages, it's built around the concept of multiple simultaneous deities.


Perl would be Voodoo - An incomprehensible series of arcane incantations that involve the blood of goats and permanently corrupt your soul. Often used when your boss requires you to do an urgent task at 21:00 on friday night.


Lua would be Wicca - A pantheistic language that can easily be adapted for different cultures and locations. Its code is very liberal, and allows for the use of techniques that might be described as magical by those used to more traditional languages. It has a strong connection to the moon.


Ruby would be Neo-Paganism - A mixture of different languages and ideas that was beaten together into something that might be identified as a language. Its adherents are growing fast, and although most people look at them suspiciously, they are mostly well-meaning people with no intention of harming anyone.


Python would be Humanism: It's simple, unrestrictive, and all you need to follow it is common sense. Many of the followers claim to feel relieved from all the burden imposed by other languages, and that they have rediscovered the joy of programming. There are some who say that it is a form of pseudo-code.


COBOL would be Ancient Paganism - There was once a time when it ruled over a vast region and was important, but nowadays it's almost dead, for the good of us all. Although many were scarred by the rituals demanded by its deities, there are some who insist on keeping it alive even today.


APL would be Scientology - There are many people who claim to follow it, but you've always suspected that it's a huge and elaborate prank that got out of control.


LOLCODE would be Pastafarianism - An esoteric, Internet-born belief that nobody really takes seriously, despite all the efforts to develop and spread it.


Visual Basic would be Satanism - Except that you don't REALLY need to sell your soul to be a Satanist...



Sharing is Caring:
By Seraaj Muneer with 4 comments
  • Popular
  • Categories
  • Archives