Tuesday, 27 September 2011

Setting Up the Massive Network of the NextGen Air Traffic Control System Discussed

Imagine trying to keep track of 4,500 to 6,000 airline flights per day, as well as all the general aviation flights, while still interfacing with all the military operations. Yes, huge, and the deluge of data is no laughing matter, neither is the reality of a 100% uptime, because if all those computers crashed, well, it spells danger for all the flights in the air as well - meaning real aircraft might crash too or they might run into one another.


See how serious this is? Okay so, let's discuss this massive network of our NextGen Air Traffic Control System with a couple of think tankers; Troy Laclaire and myself. Troy suggests that we use a "gigibit interface between the computer systems and from the computer system to display, and bandwidth shouldn't be too much of a problem." Gigabyte?


Really, yes, really, consider if we are running 3D or holographic displays, we are talking about mega-amounts of data, information flow that never stops 24/7, for every ATC computer in the nation. Additionally, Troy points out that;


This would be more for the communications between local system networks, but you would then use burst transmissions for communication between long distances between systems, compressing the data into as small as possible, add a layer of encryption, and then send the data, where it will be decrypted and expanded on the other end.


Indeed, the security is almost as important as the actual system, remember cyber terrorists, foreign nations with cyber hackers, and the occasional hacker testing their skills for fun and bragging rights. It's all serious, so it must be secure, not only from outages but also from infiltrations - insiders, cyber terrorists, and hackers too. The additional layers of encryption as Troy explains has lots of benefits namely; "making the data hard to read if someone intercepts, as well as reducing the amount of necessary bandwidth necessary to send data between locations."


This should make sense to any computer programmer or IT professional. I asked about IP Address allocations - IP and frequency hopping. Troy explains that "actually using IP hopping would be the wrong thing to do as this adds another layer of complexity to the whole system, and if something happens, you have to spend more time tracing it back to the source."


Now then, if we are using vast amounts of data such as are needed for 3D and Holographic visual displays for the ATC operators, we have other things to deal. Such as you ask? Well, Troy explains it like this; "the big question would come into the refresh rate of the visual system, hence why I would prefer VR, however if the visual system could be designed to have a visual refresh rate of between 20-30ms, you should be able to have fast enough refresh to keep the system showing more or less real time. (by comparison, standard modern monitors are generally between 5-15ms)


Hmm, I thought, yet another set of issues to tackle in that case. Another problem is if the system becomes infected with a computer virus everyone gets tagged too. And the programmers have that bridge to cross too. Which is why Troy and I both agree; "That's why you have to build your protections in, both software and physical, from the beginning!" Indeed, I hope you will please consider all this.


Lance Winslow is the Founder of the Online Think Tank, a diverse group of achievers, experts, innovators, entrepreneurs, thinkers, futurists, academics, dreamers, leaders, and general all around brilliant minds. Lance Winslow hopes you've enjoyed today's discussion and topic. http://www.WorldThinkTank.net - Have an important subject to discuss, contact Lance Winslow.

Sunday, 25 September 2011

Using Modernizr and CSS3 Pie to Make ALL Your Websites CSS3 Ready

This article is about how to use the wonderful code by Jason Johnston called CSS3 Pie, and the Modernizr JS library (Faruk Ates, Paul Irish and Alex Sexton) to implement CSS3 features such as border-radius, box-shadow, border-image and multiple background images, without adding any additional overhead to those who are using modern CSS3-capable browsers.

Okay, I would start this article with your typical bash-internet-explorer mantra, but since we are all painfully aware of IE's shortfalls in the past, let's just be thankful that IE9 is shaping up to be a pretty good release and move on.

One thing that we can't move on from (yet), however, is the fact that (as of this article writing) 40-50% of internet users still use IE8 or less. This is simply too large of a market for us to ignore. Additionally, ie9 is only available to Vista and Windows 7 users, while XP users still make up about 50% of Operating System market share. This means 50% of IE users (around 25% of the overall browser market share) will not be able to upgrade to IE9. I have a hunch that this will cause IE9's growth to come about much slower than previous internet explorer releases, and so we will have to deal with this 25-40% of the market share appropriately (and no, flooding them with pop-ups 'encouraging' them to upgrade is usually not an appropriate solution).

We could, as many do, simply build our sites and use CSS3 features to enhance and upgrade the experience for those using modern browsers, leaving a much plainer site for IE users to enjoy.

We could also use images or javascript libraries to implement those nifty new CSS3 features.

These solutions were not good enough for me.

I wanted to be able to use CSS3 features today, out of the box, in much the same way I would be using them in a perfect world where all browsers rendered each page perfectly. I wanted to be able to just write code, as it was taught to me, in the way that the w3c recommends, with as little messy, non-standard, hacky markup as possible.

Enter CSS3 PIE. CSS3 PIE utilizes the behaviour() property implemented in Internet Explorer's version of css to allow you to implement CSS3 properties in your classes without using messy images, additional stylesheets or external js files. Here is an example:

#divname

{

border-radius: 10px;

behavior: url(../css/PIE.htc);

}

Note* - make sure your path to the PIE.htc file is relative to the HTML file that calls the css file, not the css file itself!

Simply add the pie.htc file (link below) to your css folder and you are set. Only one extra line of markup in your css files, and as a bonus, only IE renders the "behaviour:" tag; so other browsers will skip over it and your users using modern browsers will not experience any additional download overhead.

This by itself is a pretty good solution to our problem. But there is one drawback. IE9 users will also have to download the PIE.htc file (about 30kb).

We could fix this utilizing a conditional stylesheet:

But to me, this is a messy solution. It requires extra code that is far far away from your standard styles. In case you ever want to change this style in the future, you may have a hard time navigating all of these disparate classes if you have a large site.

Enter Modernizr.

Modernizr is a great solution to this problem (it is especially nifty if you have already loaded the library for other purposes, but the file is less than 3 kb gzipped either way).

Simply load the modernizr.js script into your web page and its ready, no JS coding needed:

Modernizr, if you are not familiar with it, detects support for most CSS3 features, and automatically adds classes to your tag based on whether those features are present or not. Example:

Code:

The result is simple: the ability to do if statements in your css based on naming conventions, for example:

Code:

.multiplebgs div {

/* properties for browsers that

support multiple backgrounds */

}

.no-multiplebgs div {

/*properties

for browsers that don't */

}

So, with CSS3 pie, it would look something like this:

Code:

#divname

{

border-radius: 10px;

}

.no-borderradius #divname

{

border-radius: 10px;

behavior: url(../css/PIE.htc);

}

The second class only affects (and therefore only loads the htc file) for users who do not have the border-radius feature available in their browser.

The advantages of this are numerous. For me, the biggest relief is having my internet explorer styles right next to their modern browser counterparts. To me this is a beautiful solution that is much more elegant than using separate stylesheets called from your html file. It also follows the principles of structure, presentation and behaviour a little bit better than other solutions. Your js files will still be used for behaviour (not to make up for lacking presentation capabilies in older browsers). Your html will contain more markup and less IE conditionals, and your css is now all together in one place and easier to navigate.

Another nice thing about Modernizr is that if the browser does not support a feature, it will apply the alternate class no matter what browser it is (as opposed to conditional comments for IE, which only help IE users with lacking browsers). On the off chance that your user is using Firefox 1, he or she will also benefit from your alternate styles.

My question when I started this quest was whether or not a browser will load a file into cache for css classes that are NOT used in your html file. For example, a class (like our.no-borderradius #divname class) that is declared but not called into use for that page.

It turns out (thankfully) that the answer is no. (see http://stackoverflow.com/questions/1299478/does-every-image-in-a-css-file-load-when-the-file-is-loaded). The htc file will not be loaded into cache unless (in this case) the border-radius feature does not exist for that browser. I did some additional testing with IE developer tools to confirm this, and, indeed, the HTC file is not loaded unless that class is specifically called into use.

So, this should be a useful solution to many out there, and it only adds an additional overhead of about 3 kb. Modernizr can then also be used as a very convenient (and cross browser) alternative to other methods of accounting for browsers with lacking capabilities.

CSS3 PIE found at http://www.CSS3pie.com

Sunday, 18 September 2011

How To Choose The Best Offshore Outsource Software Development Company

Developing good computer and mobile applications is a very difficult task. For many companies, creating custom programs is nearly impossible to do in-house due to high costs, long turnaround times, and the need to hire additional employees. Fortunately, offshore outsource software development is a good option that can save money and result in the production of an easy-to-use application that has been built according to your specifications.

Today, many countries have multilingual companies that are capable of developing a wide range of computer and mobile applications, including video games, database management, and customer relationship management programs, to name a few. Many countries offer highly competitive pricing, especially those that are able to benefit from cheaper labor forces and lower taxation.

Selecting the right company is not easy. You need to start by finding a company that understands your language well. Any breakdown in communication can lead to slower turnaround times, extra costs, and an inferior program being developed. Be sure to speak to representatives of the companies you are considering and gauge how well they can understand what you are saying and your needs.

Fortunately, many countries, including third world countries, are able to provide exceptional services that are on par with those of developed countries. Do not disregard their services, since some of these countries are currently producing some of the best programmers around.

Since the number of companies are increasing, you will need to separate the well established companies from the newer companies. Companies that have a history of working with people in other countries for a number of years may be able to provide a higher level of service than newer institutions.

To figure out which company is right for you, you should take the time to look through their portfolios. You may notice that some companies have some well known software titles on their resumes. If you find a company that has titles that you have not heard of before, try to find a demo of it, so you can get an idea of what their applications are like.

Once you have created a shortlist of your favorite companies, you should find out what their customer service is like. Find out what their hours of operation are and ensure that they work for your schedule. You should also look into how they communicate. For example, some companies offer live text or video chat, phone lines, and shared online project management services.

To choose the right company, you will need to consult with each one prior to making a final decision. Provide them with a detailed description of what you need and consult with them to find out how they have interpreted your specifications. This is a great way to figure out who clearly understands what you need your application to do. They should also be able to provide suggestions for improvement.

When selecting a company for offshore outsource software development, you will need to request a detailed document on their fees. Find out what they charge for and how much they charge. You do not want to get surprised by any unexpected fees.

Saturday, 10 September 2011

Learn Android Programming

Android applications development features a software improvement kit (SDK) and supplies a variety of libraries and tools. The software improvement package offers a complete set of tools to design the consumer interface for software and likewise to develop and debug software code. Android functions improvement assists in creating new and unique applications for many who use mobiles with Android platform.

The chances are infinite with Android Utility Improvement to push up the extent of flexibility. We rent a set of sensible Android Software developer's crew who attempt to be specialised on Android and are serving our beneficial clients to construct Customized Utility on Android, worldwide. It also allows units to communicate with one another for enabling social applications. It also helps builders to combine information of the consumer like contacts, geographic location & calendar to offer user more relevant experience. This app may make it easier to finish your building project on time with out extending your budget. It additionally has the function of in-app purchase for all items.

Our Google Android app developers have developed and deployed many functions starting from personalised apps to enterprise stage Android apps. Android recreation improvement is intrinsic part of our Android internet utility improvement companies and developers have mastered the art of crafting elegant games that sparkle on you Android phone. We will develop completely different sort of sensible applications that synchronize Internet and mobile platforms. The emerging Android pill phase will further enable penetration of PCs and low cost computing units for mobile computing purposes that may otherwise require a personal computer. For example, a restaurant supervisor might very nicely take orders utilizing the android pill or the doctor at a hospital could make efficient use of EMR (Electronic Medical Information) utilizing android pill based mostly apps requiring minimal keyboard interaction.

Android is a fast emerging platform for cell growth and has a really fast rising mobile market; this raises the bar as one needs to be technically sound and imaginatively progressive to seize some of its share. Every single day we see new and fresh innovative ways on how an organization can make it big by the social media market. An enterprise can only run efficiently if it has the gasoline of the customers or purchasers, and the social media is an effective way to get that needed fuel.

After mulling over the significance of being experience we determined to specialise in Android utility growth and gratify the users fully by serving their function of custom Android application. Following is the listing of versatile classes of android purposes that we work upon. Ask about getting your development environment arrange, get assist with the first steps of Android improvement (your first User Interface, your first permission, your first file on the Android file system, your first app on the Android Market.). Be sure you examine the archives first earlier than asking new questions. This legal professional's quiz app presents random regulation a question after which collects the consumer response. Upon completion it presents the person with a summary of how they did.

If you have a cell application development concept that you simply need to convert into outstanding Mobile software, we're here to help you. Our skilled Cellular Utility Improvement Specialists will coordinate with you, perceive your requirements, contribute their ideas, give you your best suited needs and get the Cellular Software ready for you. To know more about how we develop your dream android mobile software contact us now.

Monday, 5 September 2011

Tips to Be a Good Programmer

One weblog subject that by no means seems to get outdated is what makes a superb programmer, or the way to be a superb programmer, or what you can do to be a better programmer. The identical activities are sometimes listed as being the path to successful codewriting, when actually it's just the method by which the true magic happens. With programming, like many issues, it isn't what you do, it's what you learn from it and the one key ingredient to being a superb programmer (in addition to practice) is publicity to programming. Exposure is available in many types, whether or not it's through hands-on apply or taking a look at somebody else code. Here's a few of typical examples given and how it exposes us to programming.

Work on initiatives outdoors of the workplace

Working by yourself projects outside of labor allows you to follow programming and exposes your self to your personal code. It additionally enables you to practice drawback fixing and offers you the opportunity to experiment with different solutions. Additionally, a lot of occasions I've gone again and re-read something I wrote and found higher methods of doing it. Nevertheless, it needs to be combined with exposure to outdoors code so that you don't just hold yourself in your own rut and writing the identical code with the same mistakes.

Works on Open Source tasks

Not only does this provide you with extra observe but in addition the ability to work on different individuals's supply and see how they code their means around certain problems. It also gives you publicity to the construct and testing processes which are instruments than that help improve your skills. Normally, in the case of libraries, you don't even need to work on the venture, you could be uncovered to a few of their ideas simply by utilizing the API.

Is aware of multiple languages

Working with a number of languages does give you exposure to completely different concepts and methods of doing issues, however in itself, doesn't make a greater programmer and can even be detrimental. A local English speaker may enhance their vocabulary and be exposed to totally different phrases by knowing French or German, but it surely doesn't make them a lot better English speaker or writer. Flip that round and a local French speaker goes to give a greater speech than an English speaker who picked up a bit of French. Equally, a hardcore Java/c/C++/Delphi man goes to be higher than someone who dabbles in it.

Other Components

It may very well be argued that it's apparent that getting more experience leads to being a greater programmer, but not so. Solitary follow and accumulation of non-public expertise may get you to date, even will get some people very far, but for many, external exposure is required to drive new experiences and studying whether or not it's writing code, drawing photos or enjoying the guitar.

Joel Spolsky wrote that good programmers are good and get issues performed which additionally occurs to be what makes good lawyers, doctors, accountants and applies to just about each other profession. Clearly being smart is an efficient thing, however that can solely take you to the point where you have to sit down and write some code.

Passion is commonly stated as a requirement for being an excellent programmer, however it is only a means to an end. In itself, it doesn't make a very good programmer however can be the gas that drives the activities that do improve your game. I've recognized various capable (not great) programmers who've little passion for it, they take pleasure in it, however it is purely a 9-5 job for them. The lack of ardour shows in that they're content material to simply use present expertise without spending any time studying new ones or exploring the technical ecosystem out there to them.

Abstract

Try and expose your self to as a lot code as potential, even bad code will be good for you as long as you aren't copying it. Identify design patterns and more importantly, take into consideration why those patterns have been used over different patterns and what potential consequences are there of using that pattern. Studying the pondering behind other architectures will assist when the time comes to make your individual decisions. In spite of everything, when we get caught as builders the first thing we do is Google it to see what someone else has done. This is just pre-emptive research!