Wednesday, June 25, 2014

Setting up a Linux Cross-Development Environment

Overview: This webinar shows you how to set up a Linux-based cross-development environment for doing development work on a typical ARM target board. Live demonstrations com-plement the lecture material to show you exactly how the process works. While the examples presented utilize an ARM processor, the basic concepts are applicable to any architecture. 

We'll begin by reviewing the basic cross-development paradigm and describing a typical toolchain. We'll configure the workstation's network interface to support the Network File System (NFS). We'll also need a simple serial terminal emulator for talking to the target board's boot loader. A typical ARM-based target single board computer (SBC), the Mini2440, will be intro-duced. We'll configure the board's network interface to connect with the workstation when it boots up.

Then, after reviewing the Linux notion of "mounting" file systems, we'll use NFS to mount the target board's root file system. Eclipse will be introduced to illustrate the value of an Integrated Development Envi-ronment (IDE). Eclipse is a popular Open Source project that has been adapted by several commercial tool vendors as the basis for their own IDEs. We'll demonstrate how a network-based target file system, together with Eclipse, speeds up the ed-it/compile/debug cycle.
Having built and tested a simple application program, we'll move on to review several Open Source build systems that aim to simplify the process of setting up a development environment. These packages encompass all of the elements of the environment in-cluding: tool chain, libraries, utilities in the form of BusyBox, Linux kernel, and boot loader.

Want to use Windows? Well, if you must. While it's a little more involved, it is possible to set up a usable Linux development environment in Windows. One of the problems is that Windows doesn't ship with an NFS server. We'll wrap things up then, by taking a look at a Windows-based cross-development platform.

Why should you attend: Any task is accomplished faster, easier and more efficiently with the right set of tools. Thus, when developing embedded devices with Linux, good practice requires that you have a well-structured development environment. While it may be possible to do develop-ment on the target device itself, it's usually not the most efficient or productive environment. The preferred alternative is a cross-development environment on a workstation class PC.

How or where do you get a cross-development environment? You can go to a commercial tool vendor and pay a lot of money. Or you can set one up yourself. The goal of this presentation is to show you that it's not that difficult, especially if you use one of the popular Open Source build systems. Even if your target does not use Linux, a proper Linux-based cross-development envi-ronment is still a good investment in productivity. You can just as easily use other target operating systems or program to the bare metal.

Especially if you're new to embedded development, this webinar will get you started on the right track toward greater productivity and quicker time to market.

Areas Covered in the Session:

  • Cross-development tool chains
  • Configuring the workstation for NFS
  • The target board
  • Mounting the target's root file system over the network
  • Eclipse
  • Open Source build systems
    • Yocto
    • OpenEmbedded
    • Buildroot
    • Linaro
  • What about using Windows?

Who Will Benefit:

  • Embedded engineer
  • Software engineer
  • Firmware engineer
  • System architect
  • Engineering Manager

The Big Deal with Big Data and Predictive Analytics

Overview: While I fully expect each enterprise to add its own flavor to the mix, here's one way to get the big data and predictive analytics conversation started: Big data is a collection of data from traditional and digital sources inside and outside your company that represents a source for ongoing discovery and analysis. 

Some people will constrain big data to digital inputs like web behavior and social network interactions; however most CMOs and CIOs agree that we can't exclude traditional data derived from product transaction information, financial records and interaction channels, such as the call center and point-of-sale. All of that is big data, too, even though the volume of digital data that's now growing at an exponential rate may dwarf it.

Why should you attend: Terabytes, Petabytes, Exabytes. Who can keep track? These strange terms have just begun to enter the business lexicon, but the hype surrounding them has reached a fever pitch. Big data is important because it will transform how we manage our enterprises. Like any new technology, there is a lot of confusion surrounding big data. There are endless debates about what is and isn't big data.

Senior Fellow and Chief Strategist, Melvin Greer provides clarity around big data and predictive analytics and shows how enterprises are transformed by their use. There is a growing divide between organizations' who use data effectively and those who don't. Big data means much more than a change in technology, it represents a structural transformation is how we will manage our enterprises.

Areas Covered in the Session:

  • The Big Deal with Big Data
  • Using predictive analytics to transform business
  • Big Data, Analytics And The Future Of Marketing And Sales
  • Big Data and Predictive Analytics
  • The Cloud and Big Data
  • Big Data Success Stories
  • Strategic Recommendations: What Should I do Now?

Who Will Benefit:

  • Chief Marketing Officers
  • CIO's
  • IT Architects
  • Sales Executives
  • Web Content Developers
  • Bank Executives
  • Venture Capital Analysts
  • Educators

Monday, June 16, 2014

Artificial Intelligence –advanced, yet a long way to go

Artificial Intelligence –advanced, yet a long way to go
This phrase has been around for a few years now. Artificial Intelligence is fairly self-explanatory. In very highly simplified terms, what it means is to equip machines with the intelligence needed to perform tasks on their own, without human intervention. When a machine has Artificial Intelligence, it is capable of carrying out tasks that it would not have, earlier.
Making unintelligent devices intelligent
This is, as we have seen, a rather simplistic definition. In the real world, it is the same as getting a machine that is dumb –really dumb –to do things that we humans would. Why should machines do these jobs? Simple –to reduce the work on humans. So, seen in this perspective; Artificial Intelligence can make life a lot easier. Imagine not having to go to the mall to shop and having someone (or, in this case, something) to do it for you. Or imagine not having to worry about whether you locked your house properly before you left for a tour. Or having a machine that can do the gardening for you so that you laze around. And, best of all: no questions asked! These are the kinds of applications Artificial Intelligence can create for humans.
Very, very long way to go still
But wait a minute. Have we reached a stage where humans will lose control of their destinies? The following should answer this: Machines with Artificial Intelligence can do most of what humans do. But the difference is so great and of such magnitude that even with the highest levels of intelligence a human is capable of filling a machine with; these machines studded with Artificial Intelligence have come just a small distance from where they started.
To relate it to human intelligence, it is akin to see someone evolve from the stage of being incapable of the slightest comprehension to being able to extend a hand for a handshake at the sight of a stranger. We could consider this as a kind of metaphor for the level of development and advancement Artificial Intelligence has made.  This sounds rude and could even appear humiliating to all the scientists who create Artificial Intelligence out of their own intelligence. But then, that is how far Artificial Intelligence has got. This is not to suggest that the optimum level of development has been reached. Far from it. Artificial Intelligence has always had, and continues to have the potential for changing human lives.
References:
http://ai-depot.com/Intro.html

Cloud Computing on Systems

A description of cloud computing
At its barest, cloud computing refers to having one’s data stored and accessing it online rather than on physical means such as premises and offices. So, why did the term “cloud computing” come into existence, and where is the cloud, if everything was in the Net? Simple: here, the term “cloud” refers to the Net. Then, why call the Net a cloud, when it has its own nomenclature? To find the answer to this question, let us go to those innumerable flowcharts and diagrams we used to make at presentations to drive home a point. To relate a set of distant objects to proximate ones, we used to draw the picture of a cloud to show how this cloud used to house all these smaller sets.

One source, many systems
Believe it or not, this is how the concept of using this word came into the world of cloud computing! Yes, this was considered a very relatable object to describe the way many subsets –here, meaning many individual systems –could be grouped together under an umbrella, or what we may call the cloud. This should give an idea of what cloud computing is: it is the collection of data from various systems into one common location. This location is usually away from the office premises.

Is cloud computing for you?
With the advent of cloud computing, do people need to give up the idea of local hard disc storage, or have they already done it? Not really. Many people still consider local hard disc storage far superior to cloud computing, which many see as essentially unsafe, because it stores the data of many other users along with yours. But then, experts and those in the business of cloud computing say they have put in place many safeguards for ensuring that privacy and security are not breached. Those who are convinced by this see it as a means for hassle free, space-saving storage. Others who have concerns over security despite the best assurances can continue to use local storage. It is all a matter of one’s convenience and practicality, and of course, concerns.

References:

What are Embedded Systems?

What are Embedded Systems?
Unlike most other concepts or terms in engineering; Embedded Systems as a term is a little difficult to define. The difficulty is not in getting a grasp of the concept per se, but in getting a perspective on the number of tools and products which use Embedded Systems.

A quick look at the micro and macro elements of a software device should serve as a good starting point for our understanding of Embedded Systems. Whenever you come across a device, have you wondered the nuts and bolts of it –that is, the innumerable parts that go into it? If it is a smartphone that we are thinking about, how many of us lay users have given a thought to the parts that coordinate and synchronize with each other to make the product functional? These could be both the hardware and the software that go into the device. This is what may be summarized as Embedded Systems.

A myriad of applications
Embedded Systems can consist of many applications, what are these?  When talking about Embedded Systems, one could think of anything among these:  alarm systems, answering machines, camcorders,  calculators,  automated teller machines,  cell phones,  copiers,  digital cameras,  fax machines,  home security systems,  scanners,  printers,  portable video games,  personal digital assistants,  microwave ovens,  lighting  systems,  washing machines,  and many parts of automobiles, such as transmission control and cruise control, fuel injection, anti-lock brakes, or active suspension. All these devices use Embedded Systems.
References:
http://searchenterpriselinux.techtarget.com/definition/embedded-system

What does Open Source Technology really mean ?

Understanding Open Source Technologies

A clear and simple description of Open Source Technologies would be to consider it as a pool of the technologies available with companies or individuals. This “pool” brings together likeminded people to help them share what they have achieved with what others have, so that there is open and clear comprehension of the whole technology scenario.
Where is the need for doing this? After all, don’t organizations spend millions on developing products for their profits? Yes, they do, but Open Source Technologies does not mean the gifting away of these innovations; rather, it is the exchange of available resources and developments with similar developments from related sources. This is what Open Source Technologies is essentially about. It is a platform for sharing the latest trends, developments and advancements. Interested parties may take these to their logical end, and uninterested ones may drop out. That is to it. There is no fight between unequals, so put in lay terms.

Common misconceptions associated with Open Source Technologies
Many people tend to associate Open Source Technologies with free technology. Yes, this idea is to make technologies and many allowable, related elements freely, but this is not the same as making them available for free. Open Source Technologies is merely what may be termed an extended or contemporary form of barter. Some aspects of this “barter” usually get worked on and adjusted with other offerings for balance, but it is something that comes close to a barter system.
Secondly, it is wrong to assume that the whole technology is made available by Open Source Technologies as is. Most companies or individuals make available only the core component, or what may be called the nucleus or the blueprint of the technology. Based on this, technologies may be made available for widespread use. The whole idea is build up a foundation collectively, so that more improvements can be made in the future. Thus, Open Source Technologies facilitates meaningful exchange of knowledge.
Reference:

What is Agile Methodology?

Agile Methodology is considered a ground-breaking practice in project management. Tied closely with software development, Agile Methodology is essentially a practice that helps project management anticipate and counter unpredictability and vulnerability. The quintessential aim of the Agile Methodology is to help avoid project delays and overruns by addressing bottlenecks at all stages of the project development. This goes a long way in cutting the costs and other problems associated with keeping all these activities towards the end of the project, by when it could be either too expensive or impractical to carry out these critical changes.

Deeply related to software project management
As the discipline of software grew, it spawned and spanned several technologies, as well as business requirements, which had to accommodate the new changes. This necessitated the development of a flexible system or model of software development, the culmination of which resulted in the Agile Methodology.
Agile Methodology did not come into effect out of the blue. It took persistent effort from the IT community to arrive at a model of project management that addressed their needs in a comprehensive manner.

Agile Methodology is not a standalone
The term 'Agile' is a comprehensive term with which several models used for agile development –Scrum being the primary one among them –are identified.

Features of Agile Methodology
1.      The overwhelming emphasis that the Agile Methodology focuses on is that the whole team should be tightly knit. It takes everyone and all aspects, be it quality assurance, developers, the customer, as well as project management itself, in the loop.
2.      Since coordination and integration of such complex parts is integral to project management; the Agile Methodology attaches a high degree of importance to frequent communication. The frequency of these meetings is best determined by the team based on its convenience, but meeting at least once a day is considered an acceptable frequency to discuss and take action on the progress made, so that oversights can be spotted and rectified then and there.
3.      Agile Methodology also has what are called sprints. These are delivery cycles. These sprints are designed keeping in mind the fact that there could be short-term deliveries, ranging from one to four weeks.
4.      The Agile Methodology facilitates very open communication techniques and tools. Everyone in the team –the customer included –is encouraged to express views and offer feedback in an open and transparent manner. When the software is being implemented; these are considered seriously.
References: