Monday, March 30, 2015

Java: The once and future king of Internet programming

What is Java to you? A programming language you learned in college? The lingua francaof corporate IT? Would you believe that Java is poised to dominate the next explosion of the Internet? Built for embedded computing and streamlined for real-time applications, here's why Java is the language for IoT.
The years from 1969 to present saw networked devices balloon from four university computers connected via the ARPANET to about two billion humans frequently accessing the Internet today. In the near future that number will exponentially multiply again, from a couple billion networked devices to tens of billions of embedded processors. Every aspect of our lives will be connected by networked devices: homes, workplaces, vehicles, appliances, tools, toys --you name it.

While chatter about the Internet of Things (IoT) includes a component of fashionable hype, the underlying reality is that imminent changes in Internet growth will make previous generations of computing look trivial by comparison. IoT is not only here to stay; it's here to change everything. Consider the following timeline, which shows previous tipping points for the Internet as we have known it:
Complementary technologies that enable IoT are coming online now. HTTP/2 is a crucial networking protocol that has been updated, in part, to accommodate machine-to-machine communications. Thingsee is an example of a developer kit for the kind of hardware that IoT will demand.
Silicon Valley sage Tim O'Reilly has emphasized that the result will not be just the usual caricature of pointless connections from coffee machines or refrigerators to the 'Net at large. With enough sensors and automation, IoT is really about human augmentation. Java will be a workhorse in that coming disruption.

How IoT works

In September 2014, Andrew C. Oliver wrote that at an implementation level IoT is about teamwork. In this case, the teamwork involves both humans and computers.
As devices communicate not just with human consumers, but with other devices, fundamentally new capabilities emerge. It's not only that your refrigerator will know you have run out of tomatoes, but that it can place an order for more on your behalf. The success of pervasive computing will be that it recedes into the background, working out facts and events and remedies with other connected devices. Only executive-level results will be communicated to human consumers. The triumph of IoT will be in all the things that we no longer have to think about, even as they are seamlessly done for us.
The most mundane examples are the most telling. Leave aside just-in-time agricultural pest treatmentsminiaturized bomb-sniffersimproved medical diagnostic technology, or similarly impressive applications of IoT in recent news. Think instead of the humble vending machine -- one that's properly stocked, well maintained, and always silently awaiting your command.
When you place your bills in a vending machine and push buttons to indicate your purchase, several mechanisms interact to ensure the satisfaction of your hunger. You don't have to understand or agree with all the details of implementation; your stomach is just happy with the results. Now, we have IoT-enabled vending machines. When you make a purchase from an IoT-enabled vending machine, your purchase triggers actions spanning the globe to keep inventory in balance and parts well-maintained, at a total cost 30 percent lower than the pre-IoT model.

Java for embedded computing

Few people today realize that Java began as a language for embedded computing. Its earliest versions specifically targeted home appliances such as television set-top interfaces. Communication between devices was central to James Gosling's original vision for Java, and he envisioned it being used for not only device-to-consumer but device-to-device communication. Twenty years later, those original design strengths are ready to support the Internet of Things.
Java's ubiquity also makes it a good fit for IoT. Massive resources worldwide are invested in transmitting Java to a new generation of programmers and ensuring that it is maintained to support all the production systems that rely on it. Hundreds of thousands of successful applications and systems already attest to Java's capabilities.
For developers exploring embedded programming it is important to distinguish the parts of the Java platform. Nothing about how you code or read programs needs to change for embedded programming: good Java programmers can read embedded source code just as easily as they do the source for typical desktop enterprise applications. The libraries, and especially the development (and testing) environments, are specialized for embedded Java programming, however. Just be sure that you have the right toolchain for the embedded environment you target.

Java embedded programming in 2015

Java already had the right stuff to make embedded programming possible in 1996, but it lacked momentum. Today that momentum is gathering fast, and an ecosystem of Java standards and tools for embedded programming is ready to leverage it.
Between 2000 and 2010, it was generally true that Java-based embedded or "micro" computing centered on J2ME (Jave 2 Platform, Micro Edition). Now, Java Platform, Micro Edition, or Java ME, is the standard runtime environment for embedded applications. While Java ME and its concepts --especially profiles and configurations --remain crucial, mobile Java developers tend to focus more on Android, and HTML5 for user interfaces. Cellular telephone handsets are the most visible embedded computers, and roughly four out of five mobiles sold now are based on Android. (Although Android supports Java ME, the two have different product lifecycles, and it's not entirely clear who will decide what the next generation of application environments for practical embedded devices will be.)
Profiles and configurations are crucial concepts in embedded programming. Anembedded profile such as MIDP is a collection of APIs supported on devices of interest. A configuration is a framework specification. While not strictly true it can be useful to think of profiles as belonging to configurations, including most prominently the CLDC or Connected Limited Device Configuration. (Also see "Jim Connors' Weblog" to learn more about profiles and configurations applicable to IoT.)
In addition to Java ME's profiles and configurations, a handful of enterprise Java technologies hold potential for embedded development. Java Management Extensions (JMX) is used for distributed resource management and monitoring and could one day complement embedded definitions neatly. Real-time Java also holds an important place in embedded programming for IoT.

Java's real-time model and tools

Embedded applications connected to sensors and effectors in medical, transportation, manufacturing, and other domains often have important real-time requirements. Predictable, correct results from heart pacemakers, engine controllers, pipeline valves, and so on are matters of life and death, not just annoying stack tracebacks.
While James Gosling intended Java to fulfill common real-time requirements, real-time computations weren't a strength of Java in its early years. In particular, many Java runtimes had a reputation for unreliability, or at least inconsistency in how they handled garbage collectionReal-Time Specification for Java (RTSJ) and related standards addressed temporal indeterminacy with support for periodic and sporadic task scheduling, task deadlines and CPU time budgets, garbage-collecting threads, and allowances that enable certain tasks to avoid garbage collection delays. RTSJ was approved in 2002 and has been implemented for a number of Java VMs.
Although RTSJ was officially listed as dormant in the Java Community Process until February 2015, specification experts have been actively at work refining and updating it throughout the last decade. As an example, JamaicaVM is an RTSJ implementation supported by aicas GmbH, available at no charge for educational and other non-commercial use.
More recently, Oracle has promoted Java SE for real-time systems, suggesting that Java SE has been enhanced sufficiently to meet soft real-time requirements. Softhere has at least two distinct related meanings. One is that requirements have to do with average behavior; for instance, it's good enough that an average bank transaction will post within 300 milliseconds. This is in contrast to hard real-time requirements, such as the requirement that a particular locomotive-switching solenoid close at worst within one-and-a-quarter seconds of the application receiving a specific alarm. The most important requirement for hard real-time systems, in this sense, is that the worst case must be predictable.
Soft real-time is good enough for many embedded and IoT applications. For applications that require hard real-time support, Java developers largely turn to JSR-302: Safety Critical Java Technology. This spec is a subset of the Real-Time Specification for Java, and parts of it depend on the CLDC. Among other features, Safety-Critical Java defines its own concurrency model and real-time threadsThe Open Group industry consortium originally began work on Safety-Critical Java in 2003. Asked about the spec's status, JSR-302 specification lead Doug Locke estimated that its long gestation will lead to an approved specification this spring, with a reference implementation possible by early May 2015.

Next up in Java embedded

Java holds much promise for embedded programming, and there is work to be done in order to enable it to meet the coming explosion of demand and possibility in IoT.Tens of billions of Java-capable devices will go into use as part of the IoT network over the next few years. My next article on this topic will feature specific examples of programming for embedded Java environments in both hobbyist and commercial contexts, along with a deeper explanation of why RTSJ 2.0 will impact Java far beyond traditional domains for real-time programming.


7 Easy To Operate Code Checking Tools

 Code checking tools come very handy at times. Code snippet tools are available and quite popular among developers. There are number of tools that help developers check different unrecognized codes. Today we have listed top 7 online tools that help developers for testing the code.


CodePen is one of the best tools for code verification. The tool has free trial period with all functions of code checking software. CodePen is a genuine code authentication tool. The tool is quite easy to use. Developers can upload the code and test it for unrecognized and incomplete lines of code.


Dabblet is a dynamic tool for testing unprepared code. You can test unprepared HTML and CSS scripts. Dabblet brings all the tools for data processing and code testing. Developers can manually identify embedded codes. The tool supports Chrome, Firefox and Safari tools.


Ideone is a great debugging tool for developers. The tool has list of unidentified codes produced by hackers on the internet. The tool comes handy to help developers identify free code and transfrom the same code in various programming languages. Ideone can be used with HTML framework to produce faster code and for modification.


jsFiddle is simple tool for JavaScript modification. The tool helps users in creating customer friendly, easy to understand code for debugging. jsFiddle helps users for perfect code checking framework.


Codepad helps developers to code online. Developers can test their code in real-time. Codepad is also used as the code complier to integrate code in single framework.


JSbin is an ultimate tool for specific code debugging. Beginners might find it complex to use JSbin but, experienced users can utilize this tool in creating properly optimized website. There are different versions of JSbin for JQuery, Mootools, UI and JQM.

Chop has great interface that helps developers to check and test code much faster. The tool follows easy ways to manage the data. Chop is a reliable tool for code checking and sharing. 


8 Must-Have Tools For IT Manager

 IT Manager has the responsibility to look after company’s entire technological infrastructure. IT manager looks after everything from help desk to servers to cloud-based apps. The security of the IT infrastructure is main concern for IT Manager. There are plenty of tools IT Managers use to ease these tasks. Today we have listed top 8 tools IT Manager can use to work more effectively.

Spiceworks is a set of IT management tools. The software toolkit can be accessed and controlled using one app. The software kit can be used to keep up with inventory, monitor network activity and manage help desk. Managers can access the information on every connected device suing network inventory management and monitoring software.

InvGate Service Desk

This software lets your agent log and assign the call. This is an ultimate tool for help desk. This is the most efficient way to redirect calls. The tool has built-in analytics and gasification that can be used to motivate employees and asses training needs.


ServiceNow’s IT Service Management software makes tech support way easier than it has ever been. The tool helps in creating a visual interface for help desk ticketing. Users can place tickets, view status updates and technicals can check in from the field using mobile device. It is the most favorited tool by IT managers and technicians.


ManageEngine is an extensive suite of services that help IT managers bring automation in their practices. The built-in suite includes tools to automate active directory, capture and deploy desktop images, set up mobile device policies and much more. ManageEngine offers a great selection for free tools for Windows and Android administrators. ManageEngine also helps IT Managers to ping servers and websites as well monitor system.

IT Manager

IT Manager is an ultimate app for iPhone users. The tool can be of great help to all the IT managers who need to be traveling all the time. IT Manager makes it easy to manage the networks with cloud-based interface. You can use the dedicated app or access the cloud interface using mobile device. IT team can remotely manage VMWare, Windows, Active Directory, SSH, Amazon Web Services and many more applications remotely using this app.


Basecamp is a great way to centralize all communications. You can simply log in to Basecamp to review assignments, post updates and communicate with each other, the tool provides similar simplistic user interface such as social media sites.


SurveyMonkey is widely used by IT Managers to conduct built-in surveys. You can easily create your own questionnaire using the application. You can know the painpoint of customers and come up with a revised technology or app as per customer requirements. SurveyMonkey is an ultimate survey portal.


Lansweeper provides information of all connected devices. The tool can act as an automated software to install new piece of software on all connected devices. You can push the update to information or patch from the server and save time. 


7 Simple Solutions To Daily Tech Problems

We are surrounded by technology and gadgets in today’s world. As the amount of technology in household increases, the complexity increases too. We often spend more time in maintenance of these gadgets than actually using them. Today we have listed 7 simple solutions to all your tech problems.
Increase WiFi Signal Range, Three Rules Of Router Placement, Wireless Storage & Printing, Charging Multiple Devices, Multiple Remotes, Eliminate The Power Drain, Cable Management, 7 simple tech solutions, tech problems, WiFi problems

1. Increase WiFi Signal Range

We all utilize wireless internet in today’s world. WiFi has become crucial part of our lives. The range of WiFi signals is dependent upon the antenna in receiving device. Some routers have high range than others but, it is quite possible to swap only the antenna in the router to increase the WiFi range. If you are comfortable with tickling around with settings, then you can check if you can increase the transmit power of your router. It is named as TX Power in settings. The default value may be in the range of 60 or 70.

2. Three Rules Of Router Placement

WiFi signals emanate in circular form. It is recommended that, to get the maximum WiFi coverage, you should place the router as close the center of the house as possible. WiFi signals travel down rather than up. So you can try place the router on height to maximize the coverage. You can place the router on a higher location like top of cupboard or on ledge. Remember that thick walls and interference from other devices like cordless phones, microwave, wireless headphone eat up wireless signals consistently.

3. Wireless Storage & Printing

Wired printer is usually placed in some room, connected to desktop. If you are planning to buy a new printer, spend a little more and purchase the printer with built-in WiFi. You might need to upgrade your router as well. Buy the one with print server support from Asus, D-Link or Belkin. The router with print server support starts at Rs 2,000 onwards. You can also setup network storage. You can connect a portable hard drive to the USB port of the router and configure it as network storage. The drive will be visible to all the devices connected to WiFi.

4. Charging Multiple Devices

Everybody has multiple devices these days. The power input is most important part in any charger. If you try to charge the device that requires 2Amp current with a charger that pushes only 1amp, the device will still charge but, it will take twice as long for a full charge. You can get something like Portonics 6port USB charger.. This can charge 6 devices at a time. Each port supplies 1amp of power. Some users rely on charging their devices through computer or laptop’s USB port. You should remember that, computer’s USB port offers only 0.5 amps of power, which is not enough to charge a tablet. It will take longer than usual to charge a smartphone. USB 3.0 ports on computer put out 0.9 amps of power.

5. Multiple Remotes

The television set in your house is usually connect to multiple sources. It is connected to a set-top-box, DVD or Blue-Ray player, a gaming console, media player and even PC. It is fairly common to have multiple remotes in household. You probably have remote controlled music system, air conditioner and so many other devices. You can buy something basic and inexpensive solution for all remote controls. Universal Remote is available for inexpensive amount these days. Logitech Harmony remotes are the best. It is available for Rs 2,300. The smart way is to get a smartphone with IR emitter. Some latest smartphones are from Samsung, HTC are coming with built-in IR emitters. These phones also have preloaded remote control app.

6. Eliminate The Power Drain

Most of the devices continue to draw a small amount of power even in standby mode. Most users don’t realize that this small amount of power can increase the power bill by substantial amount. The simplest way to check this is by making sure that you switch off the main supply of device instead of putting them in standby mode. You can also buy a power consumption monitor that shows energy consumption by any connected devices. These monitors come with a display that shows energy consumed as well as voltage readings.

7. Cable Management

This is a big issue for many tech users. You can notice that cables are popping out of everywhere as you add gadgets to your house. We recommend to get cable cover organiser. You can find this tiny tool for Rs 150. It is just a hollow pipe that can be used to cover and hide all the wires. You can also purchase zip ties and tie al cables together. The smart way is to invest in devices that enable wireless connectivity. Wireless projectors are easily available at low cost today. You can also buy a Bluetooth audio receiver for as cheap as Rs 1,000 to convert any audio system in Bluetooth speaker. 


10 Best Wire-Framing Tools For UX Designers

Wireframing tools have great importance in programming. Individuals can draft interfaces of websites and mobile applications. These tools are used for creating essential diagram, mockups and prototypes. Even though these tools are used for individuals, you can use them as group also. Developers use such tools to make low-loyalty wireframes while, some users utilize these tools to show more unpredictable outlines and techniques. Today we have listed 10 best wire framing tools to help you achieve your goal.
wireframing, tools, UI design, UX design, designers, prototyping tools, appery,, whatusersdo, trymyui, pencil evolus.

1. is an innovative tool to design and build interactive applications. You can use This tool for creation of interactive user interface in few clicks. lets you create fully interactive prototype that seem like an ap.

2. Attensee

Attensee helps in creating ad campaign elements. You can find out how much attention you can give to conversation oriented elements like value proposition, call-to-action buttons and some banner ads. Participants can explore blurred design within a small circle.

3. Appery

Appery is best way to create javascript frameworks. The tool utilizes Angular.js, Bootstap and jQuery mobile. You can create mobile and responsive websites using Appery. The cloud based platform makes it easier to integrate backend services in your apps.

4. WhatUsersDo

WhatUsersDo is a great tool for mobile tablet and desktop user testing. The tool lets you test detailed behavioral metrics. You can get behaviour metrics and UX insight reports. WhatUsersDo is quite helpful for advance international panel selection and screening expertise.

5. HandCraft

HandCraft is a best place to pull things together in website prototyping. The tool can be used to as HTML editor. Developers can edit the HTML code and see the preview in real time in browser window. HandCraft helps developers to host their stuff and also provides dedicated URL to share their apps.

6. Appesee

Appesee is popular mobile analytics platform. It provides in-depth analysis of user behavior. Appesee helps in providing ultimate app experience to users and developers.

7. Trymyui

Trymyui is known for testing website or app on any device. You can screen capture the video along with real-time audio narration for best experience. The tool has user gestures that include taps and swipes. Trymyui helps developers in providing best user experience without using external devices.

8. pencil.evolus

Pencil is built with a vision of providing a free and open-source GUI for prototyping. People can easily install pencil and create mockups for popular desktop platform.

9. NaviewApp

NaviewApp is an online service that helps you in designing and building navigation prototypes. You can test these prototypes in real-time with your users. The tool has extensive list of features.

10. SavahApp

SavahApp is another great example of prototyping tool. You can easily drag-drop elements to build functioning mockup. The tool helps you create interactive prototypes for web and mobile apps.