Friday, 17 April 2015

Writing programs using ordinary language

In a pair of recent papers, researchers at MIT’s Computer Science and Artificial Intelligence Laboratory have demonstrated that, for a few specific tasks, it’s possible to write computer programs using ordinary language rather than special-purpose programming languages.
The work may be of some help to programmers, and it could let nonprogrammers manipulate common types of files — like word-processing documents and spreadsheets — in ways that previously required familiarity with programming languages. But the researchers’ methods could also prove applicable to other programming tasks, expanding the range of contexts in which programmers can specify functions using ordinary language.
“I don’t think that we will be able to do this for everything in programming, but there are areas where there are a lot of examples of how humans have done translation,” says Regina Barzilay, an associate professor of computer science and electrical engineering and a co-author on both papers. “If the information is available, you may be able to learn how to translate this language to code.”
In other cases, Barzilay says, programmers may already be in the practice of writing specifications that describe computational tasks in precise and formal language. “Even though they’re written in natural language, and they do exhibit some variability, they’re not exactly Shakespeare,” Barzilay says. “So again, you can translate them.”
The researchers’ recent papers demonstrate both approaches. In work presented in June at the annual Conference of the North American Chapter of the Association for Computational Linguistics, Barzilay and graduate student Nate Kushman used examples harvested from the Web to train a computer system to convert natural-language descriptions into so-called “regular expressions”: combinations of symbols that enable file searches that are far more flexible than the standard search functions available in desktop software.
In a paper being presented at the Association for Computational Linguistics’ annual conference in August, Barzilay and another of her graduate students, Tao Lei, team up with professor of electrical engineering and computer science Martin Rinard and his graduate student Fan Long to describe a system that automatically learned how to handle data stored in different file formats, based on specifications prepared for a popular programming competition.
Regular irregularities
As Kushman explains, computer science researchers have had some success with systems that translate questions written in natural language into special-purpose formal languages — languages used to specify database searches, for instance. “Usually, the way those techniques work is that they’re finding some fairly direct mapping between the natural language and this formal representation,” Kushman says. “In general, the logical forms are handwritten so that they have this nice mapping.”
Unfortunately, Kushman says, that approach doesn’t work with regular expressions, strings of symbols that can describe the data contained in a file with great specificity. A regular expression could indicate, say, just those numerical entries in a spreadsheet that are three columns over from a cell containing a word of any length whose final three letters are “BOS.”
But regular expressions, as ordinarily written, don’t map well onto natural language. For example, Kushman explains, the regular expression used to search for a three-letter word starting with “a” would contain a symbol indicating the start of a word, another indicating the letter “a,” a set of symbols indicating the identification of a letter, and a set of symbols indicating that the previous operation should be repeated twice. “If I’m trying to do the same syntactic mapping that I would normally do,” Kushman says, “I can’t pull out any sub-chunk of this that means ‘three-letter.’”
What Kushman and Barzilay determined, however, is that any regular expression has an equivalent that does map nicely to natural language — although it may not be very succinct or, for a programmer, very intuitive. Moreover, using a mathematical construct known as a graph, it’s possible to represent all equivalent versions of a regular expression at once. Kushman and Barzilay’s system thus has to learn only one straightforward way of mapping natural language to symbols; then it can use the graph to find a more succinct version of the same expression.
When Kushman presented the paper he co-authored with Barzilay, he asked the roomful of computer scientists to write down the regular expression corresponding to a fairly simple text search. When he revealed the answer and asked how many had gotten it right, only a few hands went up. So the system could be of use to accomplished programmers, but it could also allow casual users of, say, spreadsheet and word-processing programs to specify elaborate searches using natural language.
Opening gambit
The system that Barzilay, Rinard, Lei and Long developed is one that can automatically write what are called input-parsing programs, essential components of all software applications. Every application has an associated file type — .doc for Word programs, .pdf for document viewers, .mp3 for music players, and so on. And every file type organizes data differently. An image file, for instance, might begin with a few bits indicating the file type, a few more indicating the width and height of the image, and a few more indicating the number of bits assigned to each pixel, before proceeding to the bits that actually represent pixel colors.
Input parsers figure out which parts of a file contain which types of data: Without an input parser, a file is just a random string of zeroes and ones.
The MIT researchers’ system can write an input parser based on specifications written in natural language. They tested it on more than 100 examples culled from the Association for Computing Machinery’s International Collegiate Programming Contest, which includes file specifications for every programming challenge it poses. The system was able to produce working input parsers for about 80 percent of the specifications. And in the remaining cases, changing just a word or two of the specification usually yielded a working parser.
“This could be used as an interactive tool for the developer,” Long says. “The developer could look at those cases and see what kind of changes they need to make to the natural language — maybe some word is hard for the system to figure out.”
The system begins with minimal information about how written specifications might correspond to parser programs. It knows a handful of words that should consistently refer to particular data types — the word “integer,” for instance — and it knows that the specification will probably describe some data structures that are nested in others: An image file, for instance, could consist of multiple chunks, and each chunk would be headed by a few bytes indicating how big it is.
Otherwise, the system just tries lots of different interpretations of the specification on a few sample files; in the researchers’ experiments, the samples, too, were provided on the competition website. If the resulting parser doesn’t seem to work on some of the samples, the system varies its interpretation of the specification slightly. Moreover, as it builds more and more working parsers, it becomes more adept at recognizing regularities in the way that parsers are specified. It took only about 10 minutes of calculation on an ordinary laptop for the system to produce its candidate parsers for all 100-odd specifications.
“This is a big first step toward allowing everyday users to program their computers without requiring any knowledge of programming language,” says Luke Zettlemoyer, an assistant professor of computer science and engineering at the University of Washington. “The techniques they have developed should definitely generalize to other related programming tasks.”

Java Magazine New Edition

Want to know how to optimize Java performance, whether your applications are in a cloud environment or on the JVM?  
In this new edition, Kirk Pepperdine examines parallelism using the fork/join framework to boost performance. Michael Heinrichs, in “The Quantum Physics of Java,” looks at modern chip design and its effect on Java programs. Chris Newland discusses the effects of small source code changes and Java HotSpot VM switches in Java just-in-time (JIT) compilation, and Josh Juneau explores incorporating performance tuning into the development lifecycle. Our JCP Executive Series features Anil Kumar, a performance architect at Intel. And, check out the big data panel from JavaOne 2014. 

Finally, our cover story showcases Netflix, which fulfills 2 billion content requests every day. The company can do so because most of the services running in its architecture are built on Java and the JVM.

5 Cyberwar Threats Worth Watching

(Image: United States Air Force)
The United States may be one of the world's superpowers when it comes to cyber warfare, but other nations are catching up -- ready and willing to attack the US and its interests from a computer afar.
Approximately 60 other nation-states are presently developing their own advanced cyber warfare programs. And, this figure that does not include rogue terrorist and cyber criminal groups.
Given the fact that businesses as well as government agencies can be targets of cyberwar attacks, the issues is one that enterprise IT leaders and security professionals would do well to watch closely.
Many of these nations tolerate or even outright ally themselves with cyber criminals – so long as it means protecting their own interests while harming their foes in the West.
The threat of cyberwar goes far beyond the Sony hack and determining what movies Hollywood will release and when. Hackers possess unprecedented ability to cripple America's infrastructure and its economy -- which could have devastating effects.
Delivering the opening remarks at the Advanced Cyber Security Center's annual conference earlier this year, Ken Montgomery, COO and first vice president of the Federal Reserve Bank of Boston, announced, "If [the Fed's role as a service provider] was ever disrupted, we would see a global credit crisis in eight hours' time."
Former Secretary of Homeland Security Michael Chertoff agreed, relating in his keynote address at the event: "Those of us who lived through 2008 ... realized how fragile our financial system is."
And the cyberthreat to the American economy posed by foreign nation-states, Chertoff warned, is very real.
"Some people have said ... 'Well, we don't have to worry about that because even if the capability is there, it's not going to be [used] to destroy our financial system, because they participate in it,'" said Chertoff, who countered this argument simply by pointing out, inter alia, the fact that economic sanctions against America's adversaries exist.
On the following pages we present five nation-states that represent major cyberthreats to the interests of the US and its allies. The big question, however, is what threats might be added to this list in, say, a year's time. Give us your thoughts in the comments section below, and let us know where you think America's biggest cyberwar threat lies.

Why Companies Should Pay Attention To AngularJS

Sometimes it feels like a new framework or programming language launches every week. It's difficult to filter the noise, and wise technical leaders have learned to be skeptical of the latest flavor of the month.
However, if you're in a leadership position at a company that writes Web software, it's time to start paying attention to AngularJS. This extremely popular open source Web framework is heading for the mainstream with a serious shot at becoming the next "jQuery" or "Bootstrap" of Web technologies. While there are several promising competing technologies, Angular's first-mover advantage and backing from technology titans has clearly established it as the frontrunner.
invented by Teads.tvAn All-Star Backing
AngularJS is maintained by Google and deployed in Google's own products. For example, DoubleClick team (integral to Google's core business) recently rewrote its entire front-end with it, and the YouTube team wrote their PS3 app in it. It's clear Google is serious about AngularJS staying around. That means you should be, too.
Outside of Google, AngularJS is unbelievably popular with developers. It enjoys over 16 times the search volume of its nearest competitor (Facebook's React framework), and its competitors continue to lose marketshare.
(Image: Google Trends)

This popularity extends beyond individual developer interest. For the past few years, Microsoft has been working on an extremely popular enterprise-friendly extension to JavaScript called TypeScript. TypeScript has been seeing explosive growth in adoption similar to AngularJS. In an unprecedented move, Google and Microsoft decided to join forces and build the next version of AngularJS on TypeScript. It's easy to see how a partnership between the two communities will further accelerate their respective visibility and growth.
The AngularJS community is not only large, it’s highly engaged as well. ng-conf 2015, the second annual AngularJS conference, sold out its first batch of tickets in just a few minutes:
(Image: Twitter)
(Image: Reddit)
f you're thinking about moving toward AngularJS, you're in good company. The list of big brands adopting AngularJS also continues to expand, and it currently includes users such as NASA, HBO, MSNBC, Sony, Virgin America, Nike, Netflix, and General Motors. Here are some factors driving its growth.

The Rise Of The Single-Page App

As browsers and devices have become more powerful, consumers are demanding increasingly sophisticated user experiences. AngularJS enables a new breed of complex single-page applications (SPA) that act more like desktop or mobile apps. These next-generation SPAs are easy to spot: When you click on links and buttons, the page doesn't reload. This fluid user experience is a clearly superior design, but without a framework like AngularJS, it can be incredibly time consuming to create. Luckily, there's a lot of expertise being poured into AngularJS to make developers' lives better.

Showing Love To Legal

One thing that often holds up corporate adoption is the license of an open source project. Given the previous list of companies, it should come as no surprise that AngularJS is doing something right in this area.
AngularJS uses the MIT license, an extremely permissive and popular proprietary software license. This license allows reuse within proprietary software, and is GPL-compatible, meaning developers have a lot of freedom with the code. This makes AngularJS a friendly choice for businesses. If your company already approves the use of jQuery, Node.JS, Ruby on Rails, Socket.io, Foundation, Backbone, Symfony, Express, or Node.js, you're already using the MIT license.

The Next Level Of Design Integration

In 2009, a group of engineers got together and realized the development process could be improved if designers could place UI elements on a page and engineers added the logic later. This is how AngularJS was born. AngularJS lets designers define a UI element (for example, <calendar>) and developers add logic to it once it's laid out. This key evolution from 2009 is still of paramount importance today.
The ability to componentize the design and development processes is incredibly useful and popular. For example, an extension to AngularJS, theIonic Framework, lets Web developers write native iOS or Android applications without worrying about the UI/UX of each platform. Another example is Material, a library built on AngularJS that lets developers easily integrate the Google Material Design ("paper") specification into their applications.

Passing The Test

AngularJS was written with testing in mind, and even comes with built-in testing libraries. Using these libraries, your developers can mimic user behaviors in automated tasks (such as clicking buttons). This results in finding bugs before your users do. It is no coincidence that financial institutions such as Capital One, ADP, and Intuit have software engineer job openings with "Angular" in the official title.

Make The Web Native

AngularJS is leading the charge for sophisticated browser-based applications that behave more like native apps. It is undeniably popular and ready for mainstream adoption. Your search engine, bank, payroll, video streaming service, airline, apparel line, space agency, and automaker have all bet on AngularJS. This is a trend worth betting on.
Attend Interop Las Vegas, the leading independent technology conference and expo series designed to inspire, inform, and connect the world's IT community. In 2015, look for all new programs, networking opportunities, and classes that will help you set your organization’s IT action plan. It happens April 27 to May 1. Register with Discount Code MPOIWK for $200 off Total Access & Conference Passes.

Self-completing programs


Since he was a graduate student, Armando Solar-Lezama, an associate professor in MIT’s Department of Electrical Engineering and Computer Science, has been working on a programming language called Sketch, which allows programmers to simply omit some of the computational details of their code. Sketch then automatically fills in the gaps.
If it’s fleshed out and made more user-friendly, Sketch could ultimately make life easier for software developers. But in the meantime, it’s proving its worth as the basis for other tools that exploit the mechanics of “program synthesis,” or automatic program generation. Recent projects at MIT’s Computer Science and Artificial Intelligence Laboratory that have built on Sketch include a system for automatically grading programming assignments for computer science classes, a system that converts hand-drawn diagrams into code, and a system that produces SQL database queries from code written in Java.
At this year’s Verification, Model Checking, and Abstract Interpretation Conference, Solar-Lezama and a group of his students — grad students Rohit Singh, Rishabh Singh, and Zhilei Xu, along with MIT senior Rebecca Krosnick — described a new elaboration on Sketch that, in many cases, enables it to handle complex synthesis tasks much more efficiently. The researchers tested the new version of Sketch on several existing applications, including the automated grading system. In cases where the previous version would “time out,” or take so long to reach a solution that it simply gave up, the new version was able to correct students’ code in milliseconds.
Sketch treats program synthesis as a search problem. The idea is to evaluate a huge range of possible variations on the same basic program and find one that meets criteria specified by the programmer. If the program being evaluated is too complex, the search space balloons to a prohibitively large size. In their new paper, the researchers find a way to shrink that search space.
Chain of command
“When you’re trying to synthesize a larger piece of code, you’re relying on other functions, other subparts of the code,” Rishabh Singh explains. “If it just so happens that your system only depends on certain properties of the subparts, you should be able to express that somehow in a high-level language. Once you are able to specify that only certain properties are required, then you are able to successfully synthesize the larger code.”
For instance, Singh explains, suppose that one of the subparts of the code is a routine for finding the square root of a number, and a higher-level function relies on the results of that computation. If the previous version of Sketch were trying to evaluate variations of the high-level function, for each variation, it would also have to evaluate variations of the square-root function. Since finding square roots is a complex process, that would make the search prohibitively time-consuming.
With the new version of Sketch, however, the programmer can simply specify conditions that the square-root function has to meet: The output multiplied by itself must equal the input. Now, Sketch can satisfy itself that the square-root function it comes up with meets that criterion and move on to the higher-level function. It doesn’t need to re-evaluate the square-root function at every pass.
In fact, this places a slightly greater onus on the programmer, who now has to reason about the criteria that each low-level function must meet. But it allows Sketch to handle much more complicated problems.
Immediate prospects
Solar-Lezama concedes that it will take a good deal of work before Sketch is useful to commercial software developers. “The application as a tool-building infrastructure, using it to build higher-level systems on top of it, we’ve demonstrated very convincingly by building a variety of systems that do things that couldn’t be done before,” he says.
He has, however, conducted usability studies with Sketch, recruiting MIT undergraduates with only a semester’s worth of programming experience to test it. In all cases, he says, the students successfully used Sketch to produce working code. But in many cases, the missing code took an unacceptably long time to synthesize, because of the way the students had described the problem.
“It still requires a level of expertise and understanding about the underlying technology in order for it not to blow up,” Solar-Lezama says. “As far as the more ambitious goal of everybody dumping C and using Sketch instead, we’d still have to push quite a bit.”
As Rajeev Alur, a professor in the Department of Computer and Information Science at the University of Pennsylvania, explains, the new paper draws on principles from the field of “formal verification,” which, Alur says, investigates methods for “checking the correctness of programs using automated reasoning.”
“In verification, people have always used modular reasoning as a technique to make it scale to more interesting systems,” Alur says. “What this paper does is take some of those ideas and meshes them nicely with the synthesis routines they have in Sketch.”
Alur acknowledges that “having a general software developer use [Sketch], maybe that’s not realistic in the foreseeable time.” But, he says, “even now it could be used in very specific, specialized tasks. If you’re trying to optimize some piece of code for some reason, instead of doing all that fine-tuning of the code manually, now a system like Sketch could do it.”

ब्लॉग की दुनिया में बिग बी ने पूरे किए 7 साल

महानायक अमिताभ बच्चन के ब्लॉग ने शुक्रवार को सात साल पूरे कर लिए. अमिताभ का कहना है कि अब तक का यह सफर उल्लेखनीय रहा है. बिग बी (72 ) ने अपने ब्लॉग पर लिखा, "आज ब्लॉग को अस्तित्व में आए सात साल हो गए."
अमिताभ इन ऑनलाइन माध्यम यानी ब्लॉग, यहां तक कि वॉइस ब्लॉग एवं ट्विटर के जरिए दुनियाभर में मौजूद अपने प्रशंसकों के संपर्क में रहते हैं.

उन्होंने लिखा, "एक परिवार के बारे में लगातार लिखते और बताते हुए सात साल हो गए. एक परिवार जो हम सभी के प्रति बहुत समर्पित और निष्ठावान है. असाधारण. सात साल..लेकिन इसे सिर्फ जिंदगी और पलों के बारे में बताने से कहीं अधिक होना होगा. इसे 'मैं' होना होगा या कुछ और."

अमिताभ ने लिखा, "मैं आज भारी मन से विदा लूंगा, लेकिन जल्दी लौटूंगा. सभी को प्यार."

बिना प्रिस्क्रिप्शन दवा दी, स्नैपडील पर कार्रवाई




बिना प्रिस्क्रिप्शन के ऑनलाइन दवाएं दिए जाने पर फूड ऐंड ड्रग एडमिनिस्ट्रेशन (एफडीए) ने गुरुवार को snapdeal.com के गोरेगांव स्थित ऑफिस पर रेड डाली। इस वेबसाइट के जरिए एसकोरिल कफ सिरप और विगोरा टैबलेट की सप्लाई की गई, जबकि ये दोनों प्रिस्क्रिप्शन ड्रग्स हैं।

एफडीए ने सिर्फ प्रिस्क्रिप्शन के माध्यम से दी जाने वाली दवाओं के बेचे जाने पर इस ई-कॉमर्स वेबसाइट को गुरुवार को नोटिस जारी किया है। एफडीए ई-कॉमर्स वेबसाइट फ्लिपकार्ट और अमेजन के दफ्तरों पर भी कार्रवाई करेगा।

वेबसाइट से दवा हटाने का हुक्म
एफडीए को मिली शिकायत के अनुसार, इस ई-कॉमर्स वेबसाइट के माध्यम से ऐसी दवाएं भी ग्राहकों को भेजी जा रही हैं, जिन्हें बिना प्रिस्क्रिप्शन के नहीं दिया जा सकता। वेबसाइट पर इन दोनों दवाओं और अन्य दवाओं से जुड़े ऑफर्स की जांच के बाद एफडीए के अधिकारियों की एक टीम ने स्नैपडील के गोरेगांव वेस्ट स्थित ऑफिस पर रेड डाली।

इस कार्रवाई के बाद स्नैपडील को इन दवाओं के ऑफर्स तुरंत हटाने के आदेश जारी किए। स्नैपडील ने ये दवाएं वेबसाइट से हटा लीं। इस घटना के बाद एफडीए ने इंटरनेट पर होने वाली दवाओं की बिक्री पर कड़े कदम उठाने की बात कही है।

क्या कहता है कानून
ड्रग ऐंड कॉस्मेटिक ऐक्ट, 1940 के सेक्शन 18(सी) के अनुसार केवल लाइसेंस प्राप्त रिटेलर ही, केवल डॉक्टर द्वारा जारी प्रिस्क्रिप्शन के आधार पर दवाएं दे सकते हैं। एफडीए कमिश्नर डॉ़ हर्षदीप कांबले का कहना है, 'ऐक्ट के अनुसार इस तरह दवाओं की ऑनलाइन बिक्री गैरकानूनी है। इसके अलावा, खुद ऑनलाइन दवाएं मंगाने से मरीज की जान को भी खतरा हो सकता है।'

Monday, 13 April 2015

10 Programming Languages You Need To Know In 2015

Looking for a career in technology industry? Wonder what are the languages that will give just the right start to your career? 

Here are 10 programming languages you can cherry pick from based on Mashable's '15 programming languages you need to know in 2015'.

Over to the hottest programming languages you can learn in 2015.

1. Java

Topping the Mashable's most popular programming languages list is Java. Java is seen as the programming language of choice for IoT, enterprise architecture, and cloud computing. 

The language has also been raked on top by efinancialcareers's survey for most in-demand programming languages on Wall Street in 2015. 

Java is also at the central of a patent battle between Google and Oracle. Oracle sued Google in 2010, claiming that Google had improperly incorporated parts of Java into Android.

2. JavaScript

Next on the list is JavaScript. Widely regarded as the language of the web, it is used to add interactivity to web pages. The language supports all major web browsers including Safari, Internet Explorer and Firefox.

3.C#

Third on the list is Microsoft's C#. According to the company, "You can use C# to create Windows client applications, XML Web services, distributed components, client-server applications, database applications, and much, much more. 

Visual C# provides an advanced code editor, convenient user interface designers, integrated debugger, and many other tools to make it easier to develop applications based on the C# language and the .NET Framework."

4. PHP

Next on the list is PHP, the language which forms the backbone of many present-day content management systems including WordPress. 

The language regarded as an essential tool for building modern web applications was originally created by Rasmus Lerdorf in 1994.

5. C++

The fifth hottest programming language to learn in 2015 is C++. A general purpose language, it is considered as the go-to language for high-volume/high frequency trading. 

The language also figures in prominently in efinancialcareers's survey. "Due to the high cost of moving to new technologies there will continue to be significant demand for those who can programme in languages compatible with the legacy environment,” says the survey quoting Gina Schiller, vice president at Jay Gaines & Company. 

The language has also been standardized by the International Organization for Standardization (ISO).

6. Python

The the general purpose, object-oriented language Python ranks at No. 6 on the Mashable's list. Considered as programming language for everybody, Python's source code is freely available and open for modification and reuse. 

According to a recent WANTED Analytics, demand for Python programming expertise increased 96.9% in big-data related positions in the last twelve months. Some of the top Big Data employers of 2014 are Cisco, IBM, Oracle, Teradata and Sabre.

7. C

The next language on Mashable's '15 programming languages you need to know in 2015' list is C. The language was originally developed at AT&T Bell Labs by Dennis Ritchie between 1969 and 1973. 

According to Mashable, C is in demand as it is "...small, fast and powerful. If you’re building software for embedded systems, working with system kernels or just want to squeeze every last drop of the resources you have at hand, C is lean, mean and ready to scream."

8. SQL

Next most in-demand language for 2015 is SQL or Structured Query Langauge. The language is widely regarded as the standard language for relational database management systems.

Microsoft SQL Server database certifications have also been ranked among Best Database Certifications for the year 2015. WANTED Analytics has also ranked it among the three most in-demand skills for Big Data jobs.

9. Ruby

One of the easier langauages to learn, Ruby is next on the list. The language is havily used for web programming. Mashable's list ranks both Ruby and Ruby on Rails as incredibly powerful languages.

Ruby on Rails has also been ranked by Quartz's Max Nisen among the most valuable languages of 2015.

10. Objectivice -C

At No. 10th on the list is Objective -C, a superset of C programming language. It is primary language used for wiring software for OS X and iOS. However, the language faces stiff competition for Apple's programming framework Swift.

Sunday, 12 April 2015

freelancing

How to become a freelance web developer/designer or a programmer

Many individuals and companies from the US, Europe and other parts of world are looking to outsource their work to other countries so they can get their work done for less. Clearly a low rate of pay for a person living in the USA will be very good income for a person living in countries with a lower cost of living such as China, Taiwan and India. Every web designer or developer either beginner or experienced, wants to get web development or programming projects outsourced by individuals or companies located in the US or Europe. For those of you elsewhere in the world you see the value of working for yourself. The perceived independence and the potential for greater income. You are reading this article because you recognize opportunity and wish to capitalize on it yourself as a freelancer. How?
I'm here to help.
I receive phone calls and emails almost every day from people asking me how to become a freelance web designer, web developer or a programmer. I don't mind sharing my knowledge, but rather than explaining to each of them, I'm writing it down and offering my experience online so that everyone interested in becoming a freelance web developer, web designer or a programmer can find out how to take their first step towards becoming a successful freelancer. On this page I am going to share my experience and have some advice for new web developers or designers who have just learned a programming language or web development application, as well for people who are already employed by companies and want to start working as a freelance web developer or designer in their spare time. This article is divided into two main sections - the first section - 'You are an aspiring freelance web designer or developer' is relevant to beginner web developers or designers and the second, 'You are an experienced web designer or developer' concerns both beginner as well as experienced web designers or developers.

You are an aspiring freelance web designer or developer

Many students who complete their computer degree or wrap up a computer course find it difficult to get jobs because no one is ready to risk important projects on someone inexperienced. You may recognize this already, but in case you don't, your degree requires just the basics and often lacks in how to develop real world applications. Potential employers definitely know that useful problem solving stems from experience, not education. How do you acquire this elusive experience if no one is willing to risk giving it to you?
Pay your dues.

You didn't want to hear that, but for most of us it is the only way.
Say someone is ready to give you a job but is not willing to give you the pay you think a talented individual such as yourself deserves. Accept it anyway. I did my first real world web site in ASP back in 2000 while working for a company for a nominal salary. The real compensation is in the experience you will have earned. Perhaps a bonus will be that it is a project worth putting in your portfolio too.
If you cannot get a job then force yourself to start experimenting on your own. Invent tasks for yourself. For instance, I once programmed and designed a slide show tool for a member of my family to share pictures of their new born baby. She appreciated how easy it was to upload images and display them and the challenge to myself earned invaluable experience and knowledge.
If your interest is web design and you are learning Photoshop, Flash, Dreamweaver etc. then try to see how how people have created their static (non database) websites. Like an artist learning to paint, copy from the masters. Also there are many tutorials on the Internet explaining how to start designing web sites.
If you are a beginning web developer who knows programming languages such as PHPAsp.net (C Sharp, VB.Net), Java, JSP, Servlets etc then there are an incredible amount of open source applications available. Download the source code and study it. Try to modify it. Rewrite it.
The other thing you can do is, is to look at existing websites to see the features they have. Try to make sites like those. While doing so, you'll learn what sort of problems arise when doing a real world applications. When I started, I liked a matrimonial site, I started writing code to develop a site which had all the features of that existing one. If I faced a problem, I asked questions on forums. It's staggering to recognize how many nice people out there who like to help others.

After you have gained enough experience of developing real world web applications, you are ready to work as a freelancer. So read on...

You are an experienced web designer or developer

Everyone wants to earn extra cash. People already working for a company want to earn more by working on the side as well. Good. I had done the same until I had enough work that I couldn't continue with my job. Though tempting, experienced web designers or developers should not just quit their jobs without concrete prospects. You must first establish a client base and work as part time freelancers until you do. It's not easy. You'll most likely be working many extra hours. It's a good test to see if you are dedicated enough and talented enough to succeed. You may discover some unexpected things along the way. Not everyone is cut out to be a freelancer. If you're not, it's best to find that out before you give up the comfort of a steady paycheck. I'm stunned when people call me to say that they have just quit their jobs to become freelancers and are now sitting at home with no work.

How to get freelance projects

These are the ways which have worked for me as well as others who are doing freelancing.

Register on freelance sites

Research and find freelancer sites and register. Search their listings and find projects that match your skill set. Clearly a static web designer should not try to bid on a project which involves database work. Bid reasonably and provide just enough information about yourself to get noticed. Don't exaggerate. Don't bid too low or too high and claim to complete a project within 3 days if in reality it is going to take 10. Clients who post their projects on freelancer sites normally know how much work is involved. If a client likes your bid and contacts you, he will ask for examples of work you have done. Here your prior experience of doing web sites will come in handy (even if they were your experiments). If client is happy and you get the project then you must try to complete it within agreed period. If you don't complete it within agreed time or don't reply to client's emails or phone calls then naturally you'll have made a negative impact and naturally that's not good. On these sites you are rated by your clients so if you ignore your clients they are going to rate you lowly and it'll be hard for you to get new projects. It may sound obvious to some of you, but providing good work is a just a small part of your success as a freelancer. Excellent customer service is essential. Always try to make your clients happy even if you have to do little extra work than agreed. The short terms sacrifice will be worth it in the long run.
Payment on freelance sites 
Every freelance site has its own method when it comes to receiving payment for work done. Some sites have escrow payment options where a client submits the full project price and after successful completion of the project these sites deduct a percentage of the project fee and you can get rest through a variety of payment methods.

Other ways to get freelance web designing, development or programming projects

Create your own web site to promote yourself and do what I what do! Write articles. For example if you are a flash designer and have done a cool effect, post it on your web site and write a tutorial about how you have made it work. Don't forget to submit your web site to search engines so people can find your tutorial. Ideally, they will post a link to your site in forums or on their own site where it will increase your rankings in Google or other search engines. You'll get recognized for work you have done. I have written articles and provided free source code to people who are trying to learn to make similar applications or do similar things. For example, I wrote an article about compiling apache php on linux and it is very popular. I have also provided free source code of a java chat application I wrote in 2003 using jsp and servlets while learning those technologies. So be prepared to share as well. It feels good to share and it's good for your reputation. You should have the portfolio of the work you have done on your web site as well as your contact information. Don't add work to your portfolio which you have done while employed for a company you were working for full time. The company may not approve and you'll have started down a path of ill will. It is wise in some cases, even if it is purely your own work as a freelancer, to add it to your portfolio with the permission of the client.

Final Words

You should always keep enhancing your skills. For example, if you know Photoshop and dreamweaver you should try to learn flash as well. The more tools in your tool belt the more work there will be available to you. When you are in demand you should try to accept only as many projects you can think you can complete within project's deadline. The time difference between different countries has to be taken into account as well. You may have to work late nights to accommodate to client's time zone. If you followed what I have written above and work hard then there is no one stopping you from becoming a successful freelance web designer/developer or a programmer.

New sensor package could keep drones from crashing and burning

drone launch
Drone aircraft are becoming less expensive and more capable with each passing year. And with laws for commercial usage being loosened, the sky could soon be teeming with semi-autonomous robots. What happens if something goes wrong, though? An Amazon delivery drone carrying a box of junk could do some damage when it spirals to the ground below. A team of researchers from the University of Zurich are working on a system that makes drones able to regain stable flight after losing control.
The system was designed and tested with small quadrocopter-type drones, each one equipped with a single downward-facing camera, an inertial measurement unit (IMU), a distance sensor, an accelerometer, and a gyroscope. It uses the camera to identify landmarks while in stable flight, with help from the distance sensor, which it then uses when tragedy strikes. All the coordination of these sensors is handled by an on-board smartphone processor.
This system should snap into action instantly when these sensors detect the drone is in freefall. If there’s a collision, a strong gust of wind, or a troublesome engineering student with a stick, the drone can use the camera to look for landmarks to figure out what’s up and down. It then stabilizes its flight at the same height it was previously at based on data from the distance sensor. Once it has righted itself, the drone can compensate for wind or other outside forces until it receives new instructions.
Recovering from unexpected failure isn’t the only use for the system developed at the University of Zurich. There’s also the possibility of easier drone launching and improved indoor reliability. The team has created an entertaining video detailing how a drone might recover from being tossed into the air as a means of takeoff. This isn’t just a gentle toss, either, as you’ll see — the researchers really hurl that thing. Once the drone realizes it’s in freefall, it only takes a second for it to right itself. This happens so fast it could make drones safer for indoor use where there are more obstacles and less vertical space.
What if the drone can’t continue flying? Maybe it’s running low on battery or there’s a mechanical failure. In that case, the system can find a safe landing zone free of obstructions and (hopefully) people. The landmark-tracking camera is continuously creating a 3D map of its surroundings. That’s perfect for finding a safe emergency landing zone, which the drone can do autonomously.
The drones are coming whether you like it or not. They might as well be safer when they get here, and systems like the one developed at the University of Zurich can help make that happen.

Apple, Microsoft buck trend, refuse to block unauthorized Chinese root certificates

Companies like Apple, Google, Mozilla and Microsoft may compete against each other in the OS and browser markets, but when it comes to security issues, they tend to act in concert. Flaws in common standards,like OpenSSL, are typically patched by all parties in short order to ensure that users remain secure. It’s a little surprising to see Apple and Microsoft breaking with Google and Mozilla regarding recently disclosed security flaws with the Certificate Authority CNNIC.
To review: A few weeks ago, security researchers discovered that the Chinese Internet Network Information Center (CNNIC) had improperly handed over authority to an intermediate certificate issuer and allowed that company, MCS Holdings, to issue certificates for Google-owned domains. That’s a fundamental breach of how the Certificate Authority system is supposed to work, and it opened up the possibility of man-in-the-middle (MITM) attacks. Google and Mozilla both contacted CNNIC, and reported the following:
“CNNIC responded on the 22nd to explain that they had contracted with MCS Holdings on the basis that MCS would only issue certificates for domains that they had registered. However, rather than keep the private key in a suitable HSM [Hardware Security Module], MCS installed it in a man-in-the-middle proxy. These devices intercept secure connections by masquerading as the intended destination and are sometimes used by companies to intercept their employees’ secure traffic for monitoring or legal reasons.”
Main_the_middle
As a result, Google and Mozilla both decided to remove trust for any certificate issued by CNNIC. This means that any time a browser encounters a certificate signed by that authority, it will react as though the certificate is untrustworthy. (Whether these prompts actually improve security is a matter of some debate.) Mozilla declared the CNNIC’s actions to be an “egregious violation” of the Foundation’s trust policies.
Apple and Microsoft, however, have chosen to react differently, and pursued what might be called the middle road. Microsoft released a security update that invalidated certificates issued by MCS Holdings, but declined to take action against CNNIC. Apple’s list of trusted certificates, available here, continues to show CNNIC as a trusted source, despite strong action from Google and Mozilla. It’s not clear if Apple ever trusted MCS Holding, as an archive.org page from January 6 does not show the firm as listed on Apple’s trusted certificate page.
CNNIC slammed Google and Mozilla’s decision to delist it as “unacceptable and unintelligible,” but it’s not clear why two major firms would take this step while two others refuse to comment on the situation. Whether this reflects previous understandings with the Chinese government or a fundamentally different approach to device security is unclear at this time. In theory, blocking the MCS Holdings certificates (as MS has done) should prevent the exploit from being used in the wild — it’s possible that the four firms simply disagreed on how to treat the situation. This could create oddities with certain system configurations, in which some browsers throw security errors while others don’t.

Who makes the most reliable hard drives?

A pretty hard drive photo
It’s the eternal question for PC owners: Which manufacturer makes the most reliable hard drives? Backblaze, the unlimited online backup company, has been following this story for years now, and its latest 2015 data sheds some new light on the subject. Backblaze currently has over 41,000 hard drives powered up and constantly spinning. And as you can imagine, it is very much in Backblaze’s interests to ensure that it buys reliable hard drives. Every time a drive fails, it takes considerable time and effort to pull the drive, slot in a new one, and rebuild the RAID array.
So while it’s generally known how long hard drives actually live for, it stands to reason that some manufacturers make drives that are more reliable than others. But whose?

Which hard drive manufacturer is the most reliable?

To answer that question, we took a look at Backblaze’s latest numbers. The company breaks down its data in two ways — by manufacturer, and by specific drive. The data is fairly complex, but we’ll try to break it down into bits of easy-to-digest, actionable information. (Read: How a hard drive works.)
As of the end of December 2014, Backblaze had 15,528 Seagate drives, 22,902 Hitachi drives, 1,174 Western Digital drives, and 47 Toshiba drives. These drives are not all the same age — some are several years old, while many were installed in the past year, including thousands of brand new 4TB and even a few 6TB models.
The odd numbers are because Backblaze basically buys whatever drive offers the most competitive dollar-per-gigabyte ratio, with reliability being a secondary factor. For most of the last five years, Seagate and Hitachi have offered the best price-per-gig, with Western Digital Red and Toshiba DT01ACA drives only recently becoming viable (although there are too few Toshiba drives to draw any conclusions yet).
Backblaze 2015 hard drive failure
As you can see from the graph above, Hitachi drives are by far the most reliable. Even though many of Backblaze’s Hitachi drives are several years old, they only have an annual failure rate of 2% or so on average. And the latest HGST drives have a failure rate of just 1.4%. The “annual failure rate” is the chance of a drive dying within a 12-month period.
Western Digital is worse, but still impressive: After three years of operation, 92.4% of Western Digital Red 3TB drives are still running — not terrific, but still good.
Seagate 3TB drives turned out to be a disaster, with over 40% failing throughout 2014. In 2013, the failure rate was 9.6% — high, and a kind of foreshadowing, in retrospect. Thanks to the new 4TB version, the numbers improve tremendously, as the second graph indicates below, with an excellent failure rate of just 2.6% — indicating that even a few years out, they should do much better than the 3TB models.
Backblaze Drive Failure Rate 2015

Which single hard drive is the most reliable? (And which is the least?)

In general, then, if you want a reliable hard drive, you should stay with 4TB for the best value and reliability, and go with either Hitachi or Seagate. If you’re looking for a specific drive model that has good longevity, the numbers break down interestingly.
The Hitachi GST Deskstar 5K3000 3TB has proven very reliable, but expensive compared with other HGST models. Get one of these drives and you’re almost guaranteed (97-98%) to make it through three years without a dead drive. If you want a 4TB drive, the Hitachi Deskstar 5K4000 is your best bet — it has a slightly higher failure rate, but still below WD and Seagate’s offerings. As far as poor reliability goes, Seagate had some nasty offenders, particularly the 3TB 7200.14 model. But the latest 4TB 7200.15 drives are turning out to be a solid way to go.
Backblaze also notes that some drives (the Western Digital Green 3TB and Seagate Barracuda LP 2TB) start producing errors as soon as they’re slotted into a storage pod. They think this is due to the large amounts of vibration caused by thousands of other hard drives. (They also think that their aggressive spin-down setting, which is ostensibly to save power, causes a lot of wear to the drive.)
Hit up Backblaze’s website for a full list of hard drives and their statistics.

Samsung, Toshiba, 6TB, and beyond

Unfortunately, Backblaze doesn’t have a statistically significant number of Samsung or Toshiba drives installed. Even so, because Seagate acquired Samsung’s hard drive division in 2011, it’s hard to say if an older, pre-acquisition Samsung drive would be more or less reliable than a post-acquisition drive. Toshiba and Fujitsu still have a reasonable wedge (~10%) of the market share pie. But unfortunately we’ll have to wait for another study to see how they compare with Seagate, Western Digital, and Hitachi.
Otherwise, the next stop is the 6TB tier. Backblaze expects to have plenty of data on the subject come early next year, as it’s busy buying up thousands of new drives at that capacity. We can’t wait for those results.