Translate

Sunday 15 May 2016

Power Up! Exosuit Helps You Lift Heavy Loads



Power Up! Exosuit Helps You Lift Heavy Loads
Treadmill tests helped researchers rate the efficiency of the newly developed exosuit.
Credit: Panizzolo F.A. et al. PLOS ONE. 2016.

If you're a soldier, firefighter or even a hiker, a new soft robotic suit could one day help you carry hefty loads, a new study finds.
The wearable robot, reduces the amount of energy used while carrying a heavy weight by about 7 percent, on average, the researchers found. The suit also reduced the amount of work done by the hip, knee and ankle joints, all without affecting a person's stride, the researchers said.
"The goal wasn't to create a system to give someone superstrength, but rather to provide small levels of assistance during walking over a long period of time, with the goal of reducing fatigue and the risk of injury," said study senior researcher Conor Walsh, a professor at the John A. Paulson School of Engineering and Applied Sciences at Harvard University in Massachusetts. [Bionic Humans: Top 10 Technologies]

Unlike a rigid exoskeleton or even a flashy Iron-Man-like suit, the exosuit Walsh and his colleagues built consists of textiles and soft materials that attach to a person's legs, waist and back. The soft suit doesn't hinder people's movement, allowing them to walk like they aren't carrying a load at all, the researchers said.
Users simply have to put on a waist belt, two thigh pieces and two calf straps, which are connected by cables to two motors on a backpack. The motors' energy travels through the cables to the suit, and is then transferred back to the person.


Hiking with the exosuit can save people about 7 percent of the energy they would normally use while carrying a heavy load.
Hiking with the exosuit can save people about 7 percent of the energy they would normally use while carrying a heavy load.
Credit: Wyss Institute at Harvard University

This energy then helps the hip and ankle joints, which together provide about 80 percent of the power produced by the leg joints while a person is walking, the researchers said.
To test the suit, the research team examined people moving under three different conditions: while wearing a powered-off suit, while wearing a powered-on suit and while wearing a powered-off suit with the weight of the suit (14 lbs. or 6.5 kilograms) removed from the backpack.
Seven people walked on a treadmill at a constant speed of 3.3 mph (5.4 km/h) while carrying a load equivalent to 30 percent of their weight. The researchers used motion-capture technology and physiological measurements to study how people fared while walking, the investigators said.
Previous research found that muscles in the lower legs work harder when people carry heavy loads, largely to sustain the load and maintain balance, the researchers said. This increased muscle activity is associated with more metabolic cost, which can lead to fatigue, less maneuverability and reduced performance overall. [Watch a Video of the Exosuit in Action]
What's more, people are more likely to injure themselves when they carry heavy loads, the researchers said. And the suit is easy to wear, they added.
"It feels like the muscles in the leg are doing less work, and it becomes very noticeable if the system is turned off very quickly," Walsh told Live Science in an email. What's more, the exosuit could help military personnel, first responders, patients in rehabilitation centers and, of course, hikers, he said.
But don't expect to see the exosuit on sale anytime soon. It's still a research project, and engineers are still tweaking the design, Walsh said.
"A big unknown is how do the muscle and tendons in the body react and adapt to external assistance from a wearable robot," he said. "So, basic science studies that attempt to understand how the wearer’s neuromotor system responds will be important to maximize the benefit that can be achieved."
The study was published online today (May 12) in the Journal of NeuroEngineering and Rehabilitation. 



Friday 13 May 2016

MOST DEMANDING PROGRAMMING LANGUAGES

The 9 Most In-Demand Programming Languages of 2016



Glass-door recently published a report on the top 25 lucrative, in-demand jobs. More than half of the jobs listed are in tech and require programming skills. If you’re interested in a fast-growing and lucrative career, you might want to make learning to code next on your checklist!
Next comes the hard part – deciding on the best programming language to learn.
To help narrow things down, we compiled data from Indeed.com (database including current computer programmer jobs). While this isn’t an extensive list, it does provide insight into the most in-demand programming languages sought after by employers.most-in-demand-programming-languages-2016

Breakdown of the 9 Most In-Demand Programming Languages

1.    SQL
It’s no surprise SQL (pronounced ‘sequel’) tops the job list since it can be found far and wide in various flavors. Database technologies such as MySQL, PostgreSQL and Microsoft SQL Server power big businesses, small businesses, hospitals, banks, universities. Indeed, just about every computer and person with access to technology eventually touches something SQL. For instance, all Android phones and iPhones have access to a SQL database called SQLite and many mobile apps developed Google, Skype and DropBox use it directly.
2.    Java
The tech community recently celebrated the 20th anniversary of Java. It’s one of the most widely adopted programming languages, used by some 9 million developers and running on 7 billion devices worldwide. It’s also the programming language used to develop all native Android apps. Java’s popularity with developers is due to the fact that the language is grounded in readability and simplicity. Java has staying power since it has long-term compatibility, which makes sure older applications continue to work now into the future. It’s not going anywhere anytime soon and is used to power company websites like LinkedIn.com, Netflix.com and Amazon.com.
3.    JavaScript
JavaScript – not to be confused with Java – is another one of the world’s most popular and powerful programming languages, and is used to spice up web pages by making them interactive. For example, JavaScript can be used to add effects to web pages, display pop-up messages or to create games with basic functionality. It’s also worth noting that JavaScript is the scripting language of the World Wide Web and is built right into all major web browsers including Internet Explorer, FireFox and Safari. Almost every website incorporates some element of JavaScript to add to the user experience, adding to the demand for JavaScript developersIn recent years JavaScript has also gained use as the foundation of Node.js, a server technology that among other things enables real-time communication.  
4.    C#
Dating from 2000, C# (pronounced C-sharp) is a relatively new programming language designed by Microsoft for a wide range of enterprise applications that run on the .NET Framework. An evolution of C and  C++, the C# language is simple, modern, type safe and object oriented.
5.    C++
C++ (pronounced C-plus-plus) is a general purpose object-oriented programming language based on the earlier ‘C’ language. Developed by Bjarne Stroustrup at Bell Labs, C++ was first released in 1983. Stroustrup keeps an extensive list of applications written in C++. The list includes Adobe and Microsoft applications, MongoDB databases, large portions of Mac OS/X and is the best language to learn for performance-critical applications such as “twitch” game development or audio/video processing.
6.    Python
Python is a general purpose programming language that was named after the Monty Python (so you know it’s fun to work with)! Python is simple and incredibly readable since closely resembles the English language. It’s a great language for beginners, all the way up to seasoned professionals. Python recently bumped Java as the language of choice inintroductory programming courses with eight of the top 10 computer science departments now using Python to teach coding, as well as 27 of the top 39 schools. Because of Python’s use in the educational realm, there are a lot of libraries created for Python related to mathematics, physics and natural processing. PBS, NASA and Reddit use Python for their websites.
7.     PHP
Created by Danish-Canadian programmer Rasmus Lerdorf in 1994, PHP was never actually intended to be a new programming language. Instead, it was created to be a set of tools to help Rasmus maintain his Personal Home Page (PHP). Today, PHP (Hypertext Pre-Processor) is a scripting language, running on the server, which can be used to create web pages written in HTML. PHP tends to be a popular languages since its easy-to use by new programmers, but also offers tons of advanced features for more experienced programmers.
8.    Ruby on Rails
Like Java or the C language, Ruby is a general purpose programming language, though it is best known for its use in web programming, and Rails serves as a framework for the Ruby Language. Ruby on Rails has many positive qualities including rapid development, you don’t need as much code, and there are a wide variety of 3rd party libraries available. It’s used from companies ranging from small start-ups to large enterprises and everything in-between. Hulu, Twitter, Github and Living Social are using Ruby on Rails for at least one of their web applications.
9.    iOS/Swift
In 2014, Apple decided to invent their own programming language. The result was Swift – a new programming language for iOS and OS X developers to create their next killer app. Developers will find that many parts of Swift are familiar from their experience of developing in C++ and Objective-C. Companies including American Airlines, LinkedIn, and Duolingo have been quick to adopt Swift, and we’ll see this language on the rise in the coming years.
Any great craftsman has a belt full of tools, each a perfect choice for certain situations. Similarly, there will never be just a single programming language, and each language will evolve and improve over time to keep pace with innovation.
This is why, if you’re interested in becoming a developer, it’s important to be well-versed in a number of programming languages so you can be versatile and adaptable – and then continue to learn/master languages throughout your career.
Coding Dojo teaches five of 2016’s most in-demand programming languages. Whether you’re interested in picking up a new language, or learning several, make sure to check out Coding Dojo’s online and onsite programs!

Iclem - M.I.C

Download iclem M.I.C New Hit.

Monday 9 May 2016

A COMPLETE BEGINNER'S INTRODUCTION TO THE JAVA

A COMPLETE BEGINNER'S INTRODUCTION TO THE JAVA


So, you want to program in Java? That's great, and you've come to the right place. The Java 101 series provides a self-guided introduction to Java programming, starting with the basics and covering all the core concepts you need to know to become a productive Java developer. This series is technical, with plenty of code examples to help you grasp the concepts as we go along. I will assume that you already have some programming experience, just not in Java. This inaugural article introduces the Java platform and explains the difference between its three editions: Java SE, Java EE, and Java ME. You'll also learn about the role of the Java virtual machine (JVM) in deploying Java applications. I'll help you set up a Java Development Kit (JDK) on your system so that you can develop and run Java programs, and I'll get you started with the architecture of a typical Java application. Finally, you'll follow step-by-step instructions to compile and run a simple Java app. The Java 101: Foundations mini-series On March 31, 2000, Java World launched the original "Learn Java from the ground up," the first article in the new Java 101 column by Jacob Weintraub. After three articles, Jacob passed the torch to me and I contributed 30 articles. Java has evolved greatly since then, so I've decided to update some of the most popular articles in the series with code and examples that are current with the Java platform today. The Java 101: Foundations mini-series will start with the basics of Java's programming model, with updates to classic articles from the original Java 101 column. I will eventually cover all of the Java language features and key Java SE APIs through Java SE 8u45. I'll also introduce newer topics that were never addressed in the original Java 101 series, such as JavaFX, NIO, concurrency, and the Java Collections API. All topics will be introduced in a logical and easy-to-follow sequence, with plenty of code to bring you up to speed with Java programming today. There's a lot to learn about Java!



What is Java? 

 You can think of Java as a general-purpose, object-oriented language that looks a lot like C and C++, but which is easier to use and lets you create more robust programs. Unfortunately, this definition doesn't give you much insight into Java. A more detailed definition from Sun Micro-systems is as relevant today as it was in 2000: Let's consider each of these definitions separately: ☆ Java is a simple language. Java was initially modeled after C and C++, minus some potentially confusing features. Pointers, multiple implementation inheritance, and operator overloading are some C/C++ features that are not part of Java. A feature not mandated in C/C++, but essential to Java, is a garbage-collection facility that automatically reclaims objects and arrays. Java is an object-oriented language. Java's object-oriented focus lets developers work on adapting Java to solve a problem, rather than forcing us to manipulate the problem to meet language constraints. This is different from a structured language like C. For example, whereas Java lets you focus on savings account objects, C requires you to think separately about savings account state (such a balance) and behaviors (such as deposit and withdrawal). Java is a network-savvy language. Java's extensive network library makes it easy to cope with Transmission Control Protocol/Internet Protocol (TCP/IP) network protocols like HTTP (Hyper Text Transfer Protocol) and FTP (File Transfer Protocol), and simplifies the task of making network connections. Furthermore, Java programs can access objects across a TCP/IP network, via Uniform Resource Locators (URLs), with the same ease as you would have accessing them from the local file system.

☆ Java is an interpreted language;  At run-time, a Java program indirectly executes on the underlying platform (like Windows or Linux) via a virtual machine (which is a software representation of a hypothetical platform) and the associated execution environment. The virtual machine translates the Java program's byte-codes (instructions and associated data) to platform-specific instructions through interpretation. Interpretation is the act of figuring out what a byte-code instruction means and then choosing equivalent "canned" platform-specific instructions to execute. The virtual machine then executes those platform-specific instructions. Interpretation makes it easier to debug faulty Java programs because more compile-time information is available at run-time. Interpretation also makes it possible to delay the link step between the pieces of a Java program until run-time, which speeds up development. Java is a robust language. Java programs must be reliable because they are used in both consumer and mission-critical applications, ranging from Blu-ray players to vehicle-navigation or air-control systems. Language features that help make Java robust include declarations, duplicate type checking at compile time and run-time (to prevent version mismatch problems), true arrays with automatic bounds checking, and the omission of pointers. (We will discuss all of these features in detail later in this series.) Another aspect of Java's robustness is that loops must be controlled by Boolean expressions instead of integer expressions where 0 is false and a nonzero value is true. For example, Java doesn't allow a C-style loop such as while (x) x++; because the loop might not end where expected. Instead, you must explicitly provide a Boolean expression, such as while (x != 10) x++; (which means the loop will run until x equals 10).

☆ Java is a secure language;  Java programs are used in networked/distributed environments. Because Java programs can migrate to and execute on a network's various platforms, it's important to safeguard these platforms from malicious code that might spread viruses, steal credit card information, or perform other malicious acts. Java language features that support robustness (like the omission of pointers) work with security features such as the Java sandbox security model and public-key encryption. Together these features prevent viruses and other dangerous code from wreaking havoc on an unsuspecting platform. In theory, Java is secure. In practice, various security vulnerabilities have been detected and exploited. As a result, Sun Micro-systems then and Oracle now continue to release security updates. Java is an architecture-neutral language. Networks connect platforms with different architectures based on various microprocessors and operating systems. You cannot expect Java to generate platform-specific instructions and have these instructions "understood" by all kinds of platforms that are part of a network. Instead, Java generates platform-independent byte-code instructions that are easy for each platform to interpret (via its implementation of the JVM).

☆ Java is a portable language;  Architecture neutrality contributes to portability. However, there is more to Java's portability than platform-independent byte-code instructions. Consider that integer type sizes must not vary. For example, the 32-bit integer type must always be signed and occupy 32 bits, regardless of where the 32-bit integer is processed (e.g., a platform with 16-bit registers, a platform with 32-bit registers, or a platform with 64-bit registers). Java's libraries also contribute to portability. Where necessary, they provide types that connect Java code with platform-specific capabilities in the most portable manner possible. Java is a high-performance language. Interpretation yields a level of performance that is usually more than adequate. For very high-performance application scenarios Java uses just-in-time compilation, which analyzes interpreted byte-code instruction sequences and compiles frequently interpreted instruction sequences to platform-specific instructions. Subsequent attempts to interpret these byte-code instruction sequences result in the execution of equivalent platform-specific instructions, resulting in a performance boost.

☆ Java is a multi-threaded language;  To improve the performance of programs that must accomplish several tasks at once, Java supports the concept of threaded execution. For example, a program that manages a Graphical User Interface (GUI) while waiting for input from a network connection uses another thread to perform the wait instead of using the default GUI thread for both tasks. This keeps the GUI responsive. Java's synchronization primitives allow threads to safely communicate data between themselves without corrupting the data. (See threaded programming in Java discussed elsewhere in the Java 101 series.) Java is a dynamic language. Because interconnections between program code and libraries happen dynamically at run-time, it isn't necessary to explicitly link them. As a result, when a program or one of its libraries evolves (for instance, for a bug fix or performance improvement), a developer only needs to distribute the updated program or library. Although dynamic behavior results in less code to distribute when a version change occurs, this distribution policy can also lead to version conflicts. For example, a developer removes a class type from a library, or renames it. When a company distributes the updated library, existing programs that depend on the class type will fail. To greatly reduce this problem, Java supports an interface type, which is like a contract between two parties. (See interfaces, types, and other object-oriented language features discussed elsewhere in the Java 101 series.) Unpacking this definition teaches us a lot about Java. Most importantly, it reveals that Java is both a language and a platform. I'll have more to say about Java platform components -- namely the Java virtual machine and Java execution environment -- later in this article.