RSS
 

Archive for the ‘Tips on Programming’ Category

Microsoft Research parallel programming project set to go commercial in 2011

20 Aug

It’s been a while since the Redmondians have talked up “Dryad,” Microsoft’s answer to Google’s MapReduce and Apache’s Hadoop. (I think the last time Dryad got any coverage outside the research community was when Microsoft Chairman Bill Gates mentioned it to the New York Times in 2006.)

Dryad is an ongoing Microsoft Research project dedicated to developing ways to write parallel and distributed programs that can scale from small clusters to large datacenters. There’s a DryadLINQ compiler and runtime that is related to the project. Microsoft released builds of Dryad and DryadLINQ code to academics for noncommercial use in the summer 2009.

It looks like Dryad is ready to take the next step. Microsoft is planning to move the Dryad stack from Microsoft Research to Microsoft’s Technical Computing Group. The plan is to deliver a first Community Technology Preview (CTP) test build of the stack in November 2010 and to release a final version of it running on Windows Server High Performance Computing servers by 2011, according to a slide from an August 2010 presentation by one of the principals working on Dryad.

*Freely available for academic and commercial use

*Only a subset of the stack (http://connect.microsoft.com/DryadLINQ)

*Production of the stack underway (Transferred to technical team, CTP by this November, RTM in 2011 on top of HPC


But wait, there’s one more thing. (Actually, there are three more things.)

The Dryad stack is getting more detailed as the researchers continue to work on it. Here’s the existing Dryad stack diagram:

(click on the image to enlarge)

Here’s an updated version of the stack diagram from the aforementioned August 2010 presentation by one of the Dryad team members:

(click on the image to enlarge)
The Dryad layer of the stack handles scheduling and fault-tolerance, while the DryadLINQlayer is more about parallelization of programs.

The latest Dryad stack diagram includes mention of a new distributed filesystem, codenamed TidyFS, for parallel computation with Dryad. This file system “provides fault tolerance and data replication similar to GFS (the Google File System) or the Cosmos store.” (Cosmo, according to the previous stack diagram, was the codename for the Dryad file system which complemented the NT File System. TidyFS is either the new name for Cosmos or its successor, I’d say.)

There’s also a set of related data-management tools, codenamed “Nectar.” I found a white paper from Microsoft Research on Nectar, which explains its purpose this way:

In a Nectar-managed data center, all access to a derived dataset is mediated by Nectar. At the lowest level of the system, a derived dataset is referenced by the LINQ program fragment or expression that produced it. Programmers refer to derived datasets with simple pathnames that contain a simple indirection (much like a UNIX symbolic link) to the actual LINQ programs that produce them.”

There’s one more new Dryad-related codename worth noting: “Quincy.” Quincy is a scheduling system for distributed clusters. (Quincy, Wash., also happens to be the location of one of Microsoft’s major datacenters.)

Microsoft is continuing to step up its work in the HPC space, hoping to ice out Linux in that arena. The Softies are seemingly counting on Dryad to keep up their momentum both on premises, with Windows Server, and in the cloud with Windows Azure in its datacenters.

But wait, there’s one more thing. (Actually, there are three more things.)

The Dryad stack is getting more detailed as the researchers continue to work on it. Here’s the existing Dryad stack diagram:

Here’s an updated version of the stack diagram from the aforementioned August 2010 presentation by one of the Dryad team members:

(click on the image to enlarge)
The Dryad layer of the stack handles scheduling and fault-tolerance, while the DryadLINQlayer is more about parallelization of programs.

The latest Dryad stack diagram includes mention of a new distributed filesystem, codenamed TidyFS, for parallel computation with Dryad. This file system “provides fault tolerance and data replication similar to GFS (the Google File System) or the Cosmos store.” (Cosmo, according to the previous stack diagram, was the codename for the Dryad file system which complemented the NT File System. TidyFS is either the new name for Cosmos or its successor, I’d say.)

There’s also a set of related data-management tools, codenamed “Nectar.” I found a white paper from Microsoft Research on Nectar, which explains its purpose this way:

In a Nectar-managed data center, all access to a derived dataset is mediated by Nectar. At the lowest level of the system, a derived dataset is referenced by the LINQ program fragment or expression that produced it. Programmers refer to derived datasets with simple pathnames that contain a simple indirection (much like a UNIX symbolic link) to the actual LINQ programs that produce them.”

There’s one more new Dryad-related codename worth noting: “Quincy.” Quincy is a scheduling system for distributed clusters. (Quincy, Wash., also happens to be the location of one of Microsoft’s major datacenters.)

Microsoft is continuing to step up its work in the HPC space, hoping to ice out Linux in that arena. The Softies are seemingly counting on Dryad to keep up their momentum both on premises, with Windows Server, and in the cloud with Windows Azure in its datacenters.

  • Share/Bookmark
 

PHP Developers for Application Development Processourcing

05 Aug

Hypertext Preprocessor (PHP) is a scripting language for general purpose; it is designed for web development to produce dynamic web pages from simple form to complex E commerce website. PHP follows simple principle of Object Oriented Programming and its syntax is similar to Perl and C. It is extensively used as an option of Active Server Pages and can be embedded to HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document.

If you Hire PHP Developers from India you can be sure for all your application development as it is the most helpful option to get required PHP web development done in the desired manner and that too at an affordable costs. Whether you are launching a new website or renovating the existing one to improve on usability, sophistication and looks, if you outsource application development to India you can get more advanced and user friendly PHP development services. PHP development services from India are considered as the most cost effective and beneficial way of PHP application development and PHP web development. When you hire PHP developers or opt for Application Development Outsourcing you must make sure that they are trained, highly skilled and experienced personnel who can fulfill all your PHP application development and PHP web development requirements in the most competent manner.

PHP has become one of the most popular open source language for web development among developers. This language offers connectivity with almost all databases like MySQL, PostgreSQL, Oracle, etc. As a general-purpose programming language, PHP code is processed by an interpreter application in command-line mode producing program output on its standard output channel and performing desired operating system operations.

PHP develops complex solution in combination with Apache, Linux and MySQL .The solutions offered by PHP developers include:

Solution for Financial sector and Real Estate as per client’s requirement
Dating website
Classifieds website with product and image gallery
Offshore development service in PHP development
E commerce solution with online payment option
Community Website like messaging, blogs, etc.
Enterprise website for large corporation

The applications where Hypertext Preprocessor development has accomplished are Joomla development, WordPress development, Magento development, Drupal development and Zen Cart development. Web based application in PHP satisfies your requirement in a cost effective manner.

The major area where Hypertext Preprocessor (PHP) has done wonders includes:

Comparison system and Online Hotel Booking
Auctions and Reverse Auction
E-commerce oriented web-based systems and Online Store Front (e-store)
Application Development with consuming XML Data feed
Real Estate and Realty systems
Online Booking & Quote Engine
Sales Automation and CRM Solution
Online Communities, society systems, social bookmarking and blogging systems
Payment systems and payment gateways integration
Shipping systems integration systems.
WordPress Blog as CMS

Most of the organizations prefer to outsource application development to India the PHP application development in India offers the best cost effective solutions.
MCE

  • Share/Bookmark
 

Computer Programming and Software Engineering Programs

05 Aug

Computer software engineering has become a career of choice for many people considering its dynamic nature and exciting well-paying career opportunities.  It is a branch of computer science that deals with design, documentation, development and management of software.  Some of the subjects that will be offered by a programming school will include internet programming, application development, database development, custom business applications and web development.

A programming school will offer basic education on how to develop a computer program that is adaptable to the peculiar needs of each user as well as a chance to do research on relevant issues that are facing this field. A software engineering research includes analysis of software processes as well as measurement and modeling of computer usage behaviors.

The study modes offered at a software engineering school involve extensive and rigorous mixture of lectures, practical classes and tutorials.  Extra remedial classes can be offered to poor students to enable them catch up with their colleagues.  Before conferment of the degree, diploma or certificate to the student, they have to go through thorough assessments in form of course assignments and exams. A program especially the degree would not be complete without a project whether done in a group or individually.

Computer programming courses can be offered either as associate degrees, diplomas or certificates. The higher levels will go up to the masters and PhD ranks.  There is a number of software engineering schools that offer online programs which enable their students to take the course regardless of where they are located. This distance learning facility also enables people who are working but may wish to further their education to do so without necessarily quitting their jobs.

A course in a software engineering school prepares the student for a whole range of exciting career opportunities.  The information technology industry is very accommodating as the graduates can get a chance to work in whichever organization that makes use of computer services. Better still a course from a good and recognized programming school will enable the student to be absorbed in the job market even without the working experience.
KM

  • Share/Bookmark
 

The impact of computer gaming and software developers in Maryland

04 Aug

Interested in the history and industry of computer gaming in Maryland? Take a listen to this interesting and entertaining talk by Sid Meier, the “godfather of computer gaming” (and director of creative development at Firaxis Games.)

The state received a report prepared by the Sage Policy Group for the digital media industry — of which computer gaming is a part — which declared that the indusry is a $5.5 billion business in Maryland. Computer programming and software development and related jobs employed 32,000 in Maryland (as of 2008), the report found.

WB

  • Share/Bookmark
 

Robotics and Artificial Intelligence Combine in Modern War Robots

02 Aug


War Robots May Save Soldier's Lives - Stock Xchng Image by  John-b

War Robots May Save Soldier’s Lives -- Stock Xchng Image by John-b
Robots and artificial intelligence programming are now combining with human oversight for remote-controlled border protection at the DMZ in South Korea.

Artificial intelligence provides modern robotic technology with the ability to coordinate movements while processing information and reaching conclusions. South Korea’s robotic sentinels also use heat sensors, voice recognition and a variety of other tools to decide when to alert a command center to a potential security breach. Although these border control robots do not fire on intruders without human direction, AI gives them the ability to evaluate a situation and request human guidance when necessary.

Robots Making Decisions

To make a decision, a robot compares a set of circumstances with a set of rules, much like a human does. For example, a human that hears a cat’s “meow” will know that the sound is coming from a cat, because his brain has already compared the sound to all other known sounds, and found a match. By the same token, if a robot using AI to make decisions gets audio input, it compares the sound values to a database of sounds to determine the probable source of the sound, and level of the threat. The South Korean war robot, in particular, transmits audio and video to the command center when potential intervention may be necessary.

In order to prevent false alarms, AI programs used for security typically have a set of values that must be surpassed before an alarm is raised. The amount of heat that shows up on a heat sensor, the size of the moving object and the type of noises coming from the area are all clues that help an artificially intelligent robot decide if a movement is coming from an animal or a human. For a quick overview of AI decision-making, read A Simple Explanation of Fuzzy Logic and Introduction to Neural Networking.

Robotic Warriors With Guns?

Currently, robotic sentries do not have the capability of firing a weapon without human authorization. Instead, once an alarm is triggered, the robot sends the pertinent data to a control center. Human supervisors in the control center then make the decision to employ gunfire or other weapons to deter or destroy the invading presence. According to the UK Telegraph, South Korea is working toward development of even more advanced wartime robots to directly assist human soldiers in battle.

The Future of Robotics & AI

Real-time processing provides balance for coordinated movement and reaction to environmental changes, while neural networking allows the robot to make decisions and choose actions based on a complex set of instructions and guidelines. These abilities allow robots to provide both stationary and mobile security, which is valuable for domestic operations as well as wartime maneuvering and border security. Other uses for AI in warfare include Video Game Training Modules, currently in use by the Department of Defense.

  • Share/Bookmark
 

Artificial Intelligence Myths & Real Programming

01 Aug

Science Fiction vs. Science Fact -- What can AI Algorithms Really Do?


Artificial Intelligence Exists Without Emotion - Stock Xchng  Image by viedrie

Artificial Intelligence Exists Without Emotion -- Stock Xchng Image by viedrie
Artificial Intelligence is portrayed in science fiction as either being loving or homicidal. Emotion and violence, however, are not true tests of artificial intelligence.

Science fiction creates artificial intelligence myths in order to interest audiences. The test for artificial intelligence in science fiction is often a show of emotion and empathy. In the other extreme, science fiction depicts artificially intelligent beings killing people, or seeking to take over the world. True artificial intelligence is neither violent nor emotional, but simply able to respond creatively to outside stimulus. AI programs are improving, but emotion and internal motivation are areas in which artificial intelligence has far to go.

AI Software and Emotional Response

From movies to comic books, science fiction media often show artificially intelligent beings as robots with feelings. Current technology has not yet achieved an artificially intelligent computer program that exhibits genuine emotion. AI programs are not yet advanced enough to be able to learn about, or follow, social norms without direct input providing clear instructions for each situation.

Artificial intelligence programs are able to simulate human emotion to some degree through verbal responses. This is possible through extensive programming that establishes social norms for the artificially intelligent computer system. The computer program is given directives to govern appropriate responses to different situations. When the program responds with the words or actions it has been directed to use, it can give the impression of emotion. Each unique situation must be entered into the code with the appropriate responses, which results in a highly complicated set of instructions.

Motivation for Artificially Intelligent Programs

Artificially intelligent beings, in science fiction, are motivated by many things. Emotions, fears, or even the desire for world dominion cause these artificial intelligence programs to become violent or attempt to enslave the human race. In reality, however, AI programs are not motivated by anything other than their programming and directives.

The most advanced AI technology can accomplish many amazing feats. AI programs can play chess, solve logic problems creatively, simulate a conversation, and achieve many objectives set for them by a human programmer. Internal motivation, however, is completely lacking in AI programs. Just as emotion may be simulated, motivation can be added as a directive into an artificially intelligent program. This does not provide true motivation, however, only the semblance of motivation.

Capabilities of Artificial Intelligence

Science fiction creates many artificial intelligence myths, particularly regarding the capabilities of artificially intelligent programs. While AI technology is advancing swiftly, there are no artificially intelligent programs that experience emotion. AI simply simulates appropriate emotional responses by following programming directives. In addition, AI programs do not experience internal motivation, but simply perform functions as their programming requires. For real world applications of artificial intelligence technology, read:

  • Share/Bookmark
 

Why Learning About Computer Programming IS Essential

01 Aug


Computer Punch Cards - Extra Ketchup

Computer Punch Cards – Extra Ketchup
This article attempts to present why a layman might want to endeavor into the field of computer programming. Aside from the intended humor is some truth.

The use of technology pervades the lives of each and every individual from infancy to the grave. Computer technology and computer programming has an effect in daily life from creating bank and investment statements, processing a paycheck or bill, to the software that is used in hospital monitoring from birth to death.

The pros and cons follow.

Computer Programming, was not in the Plan

The first negative that comes to mind is that a computer engineering or programming career was never in the planning. Most people would agree but should consider other decisions made tangential to their avocation. Do young women list “being a mother”, “wife”, or “chauffeur” on a juvenile resume? Likewise, does the young man list “father”, baseball coach, or homemaker?

“Not in the plan”, does not indicate no need or necessity.

Too Complicated, not Enough Time

Life itself is complicated. It is the unknown and unseen and often irrational and definitely illogical. Computer programming is a stepwise, logical formulation of rules given to a computer.

As far as wasted time, consider time in traffic, time in boring and useless meeting, and time watching sitcoms on television. Taking a little time to understand some fundamentals of computer programming is not such a waste of time.

Don’t See the Benefits

A person working in an office spends hours in front of a screen “controlled” by others. Learning a little about computer programming may give an insight into what goes on behind the scenes or in a perverse sense, what “they” are doing to the helpless acolyte.

Having discussed the negative, it is important to see that the benefits outweigh the costs.

Becoming a Better Consumer

Learning about technology will make the consumer more aware and effective in making decisions in consumer purchases, When reading advertisements touting software and hardware products and solutions the consumer is often lulled into the non decision that “bigger is better, faster is better”.

This is the solution that manufactures of hardware, software, and data transmission want the consumer to believe. It is what has driven the computer industry forward for generations

Learning about computer programming at least to a sophisticated novice level can reveal some of the fallacies in the big and fast view which has made fortunes for those willing to market a product. Two simple questions should make it clear. What is a gigabyte in terms of the storage I need to do word processing or store pictures? What difference would be realized if rather than a 2 megahertz processor, a one megahertz processor was used, assuming a dial-up computer connection was used.

The ability to understand terminology and computer function comes in part from learning about computer programming and inevitably, as part of that study, computer technology.

Whether a Parent or Not

Computer programming takes a certain amount of planning and brain power. For parents, it may keep them on a par with their kids in terms of being computer savvy. For the population at large, it helps maintain mental agility and when all goes wrong, humility.

  • Share/Bookmark
 

Multi-Million Dollar Project Aims to Improve Surveillance

30 Jul

SurveillanceA UA-led team of researchers has received a multi-million dollar grant to build an intuitive system that would be able to detect suspicious behavior in humans.

Visual CommunicationThe idea behind the project is to build a “relatively light weight system that not only can provide computer vision in the conventional sense, but can tell you what it is seeing – to do some interpretation,” said Paul Cohen, the UA’s computer science department head. (Photo courtesy of Deva Ramanan, University of California, Irvine)

A UA team is working to build a surveillance system that, in addition to capturing video, would be able to detect suspicious behavior.

By La Monica Everett-Haynes, University Communications July 28, 2010

A surveillance video capturing a man removing his sweater near an SUV packed with explosives during the Times Square bomb scare in May swiftly resulted in a multi-agency search.

But as soon as news hit that the man was not connected to the threat, questions were brought to the forefront about the reliability of surveillance.

The challenge with surveillance is that it is costly and not always reliable, said Paul Cohen, the University of Arizona computer science department head.

“The cost of knowing what is going on is very, very high,” Cohen said. “The problem right now is not that we cannot put more cameras up, the problem is that monitoring those cameras is very, very expensive and error-prone.”

To help remedy some of these issues, Cohen and his collaborators are working to build an intuitive system not merely to capture video, but to detect suspicious human behaviors.

The team has received a $2 million grant for the project’s first two years from the Defense Advanced Research Projects Agency, or DARPA, with Cohen serving as the principal investigator.

After the initial period, the team will have a chance to qualify for an additional $3 million for a three-year period, Cohen said.

Drawing on ways the human brain processes visual information, the research team plans to build a visual detection and tracking system, models of human behaviors and simulators to generate possible future scenes.

Another challenge with modern-day surveillance is that it must be monitored, said Kobus Barnard, an associate professor of computer science and member of the research team.

What is required, and what the team intends to utilize, is high-level semantics. “We have to bring in a lot of information and pull together these hypotheses,” Barnard said.

Others involved at the UA are Ian Fasel, an assistant research professor of computer science, and Wesley Kerr, a doctoral degree candidate in the computer science department.

The team also is collaborating with Deva Ramanan, an assistant professor of computer science at the University of California, Irvine, and Clay Morrison, an assistant research professor in the computer science department.

One of the project’s major components is the incorporation of visual imagination, a process by which the brain decodes what the eyes see while also guessing what should occur next.

“The same parts of the brain are involved in vision and visual imagination. To some extent the brain is telling the eyes what they should be seeing. So we want to model this sort of heavy involvement of the brain,” Cohen said.

The researchers are taking on a highly complex and difficult challenge in training a system to do just that.

“It has been done before in small pilot demonstrations. But as the number of activities grows, the technology might not scale up,” Cohen said. He also noted that “getting from seeing to understanding” actions is somewhat difficult.

To start, the team will focus on 48 specific verbs or commands, developing a multi-level system that can differentiate actions such as “carry,” “escape,” “run” and “climb.”

But the system is not being designed merely to detect such behaviors, but to understand them in the context of interactivity – people interacting with people and people interacting with objects.

Given that goal, the team is figuring out ways to involve the three parts of the system simultaneously so that it will be able to make guesses and deductions, Barnard said.

“The goal of the system is to really take the next step forward in the semantics of actions that are a little bit extended in time and more complex than what has been achieved so far, which is still in the research domain,” Barnard said.

In addition to a range of different scientific disciplines, such as computer science and geometry, the project has implications for a several branches, including law enforcement and military personnel, Cohen said.

“We researchers have always been interested in unsophisticated things any human can do while funding agencies are often interested in things that only a tiny portion of the population can do,” Cohen said, adding that the initial proposal was one of the best DARPA programs he’s come across.

“You learn most about intelligence by studying what everyone can do,” he added. “Any 3-year-old can look at a movie and tell you what she sees. No machine can.”

Et Cetera

  • Contact Info
    Media ContactPaul Cohen

    UA Department of Computer Science

    520-626-2818

    cohen@cs.arizona.edu


  • Share/Bookmark
 

Still on A Programming Degree..

29 Jul

An online computer science degree requires full completion of 4 years academic format in computer science area. Enrolling in an e-learning plan enables computer science students to set up a plan of learning and to systematize the education process at their own pace. In the Online Computer Science Degree, the academic foundations of computations, information, software applications , implementations and workable procedures of computer science are studied methodically.

Online Computer Science Degree is a comprehensive academic curriculum that encompasses in itself a ample range of sub-topics of computer technology such as the advancement of software, web design, programming and Internet related securities. This degree course is best suited for those who have their attention and inclination towards computer technology and are really enthusiastic in charting their career in this field.

College students pursuing Online Computer Science Degree choose this professional course due to several explanations. The major motivation is the worldwide utility and application of Computer science.

Diversity is one more significant facet as a computer science career might be easily developed within various professional areas. In addition, the employment process is tremendously dynamic as computer science career opportunities are set on an ascending track and financial reward surpass the average remuneration. A four year university program in computer science offers the compulsory information to proficiently perform computer science software applications . As any other study-discipline, computer science college students may pursue a particular branch within this field such as web design, QA, software configuration and management. The alternative of optional courses is also open for those students who want to pursue postgraduate degree.An online computer science degree coursework includes both academic and professional challenges. Each area of activity has set a distinctive pay scale for entry up to senior level for professionals performing computer-related jobs.

Another reason of popularity of this degree course is its mounting demand in the contemporary work field. It also leads towards an enjoyable and a satisfying career that is a sought-after by most of the aspirants. Online computer science degree is reckoned as a valuable certification whereas employers credit candidates who have gained this kind of degree and consequently encourages specialists to join further postgraduate programs.

A credible Web-based IT Science Degree from a acknowledged business is of great worth to aspirants for getting established in computer-oriented industry. The degree is akin to a certified stamp of confirmation to the prospective employers who want best work force for their organization. Those aspirants who want a better future and a definite way to develop a successful profession for themselves in computers can enroll for Online Computer Science Degree at the earliest.

  • Share/Bookmark
 

Programming, Development Skills in Demand

28 Jul

C#, Java/J2EE and .Net application development skills are particularly hot.

July 27, 2010

advertisement

According to online job board Dice, U.S. demand for developers with Java/J2EE skills has become particularly strong, with 14,000 job postings nationwide. Employers are also looking for programmers with C#, .Net, Oracle, Sharepoint and SAP expertise. “Not only is demand strong for these professionals, but these positions as a group pay on average $10,000 more than the average national paycheck for tech professionals,” said Dice’s Tom Silver. “And confirming their coveted in-demand status, these IT pros are receiving double the pay raise this year, as compared to technology professionals as a whole.”

Geographically, New York City is the best place for developers to find work, followed by Washington, D.C., Silicon Valley, Chicago and L.A.

  • Share/Bookmark