Archive for the ‘Custom Development’ Category

5 Bold Moves Microsoft is Making with Internet Explorer 10

In May 2012, Microsoft’s Internet Explorer lost its long-reigning position at the top of the browser usage charts to Google Chrome. While no longer the world’s most-used browser, IE is not content to stay in second place for long. With IE 10 this Fall, Microsoft is making bold moves to stay relevant in the fast-moving “browser wars”. Here are 5 big changes in IE 10 that are sure to make an impact:

1. Speed and Performance

When it comes to web browsers, speed and compatibility are of utmost importance. With improved HTML5 functionality and a sped up Javascript engine (a new iteration of IE 9’s “Chakra” Jscript engine), IE 10 is Microsoft’s fastest browser yet. Preview releases of IE 10 have already impressed reviewers with Javascript speeds on the Metro version, optimized for Windows 8 on tablets.

2. Web App Focus

Microsoft is betting big on the future of web applications, particularly those using HTML5. IE 10 is incorporating major updates to its HTML5 functionality, allowing video with links to specific times and embedded captions. With these updates, advanced web applications can be optimized for IE 10, allowing for complex browser games and applications, like Office 365, to run smoother than ever. Web developers and designers can take advantage of this improved horsepower with more robust sites.

Internet Explorer 10 Bubble Test

Internet Explorer 10 flexes its muscles with high performance benchmarks.

3. Touch-first

Announced last month, the Microsoft Surface tablet demonstrated the company’s commitment to mobile browsing. The new hardware, along with Windows 8’s “touch-first” design standard, means IE 10 is built from the ground up around touch screen interaction. With a rapidly growing smartphone and tablet market, Microsoft saw the need for a browser that is truly mobile. Fluid design and a tile-based interface for favorites and tabs are key components of the touch-first standard.

4. Windows 8

Microsoft is tying the fate of IE 10 closely with that of its new Windows 8 operating system also releasing this Fall. Finally shedding its older operating systems, IE 10 will not run on Windows XP or Vista. Even its support for Windows 7 is suspect, as recent preview builds have only been made available for the Windows 8 developer’s preview build. Microsoft is completely changing their model by charging only $40 for their latest OS upgrade.

5. Do Not Track

Perhaps most controversial is Microsoft’s decision to enable their “Do Not Track” setting by default in IE 10. This represents a strong stance in favor of consumer privacy from Microsoft. However, it has certainly angered online advertisers who rely on tracking technology to deliver targeted ads. The effects of this change are still unknown, as some critics believe the do not track setting won’t even help consumers protect their privacy. Regardless of the outcome, Microsoft aims to be on the forefront of evolving web standards.

 

With these significant upgrades to their browser, Microsoft is making a major push to get back on top of the browser usage charts. But will it pay off? We’ll find out when IE 10 and Windows 8 launch this Fall. For up to date web applications and technology information follow @Unidev on Twitter.

 

Why Hospitality is One of the Biggest Hi-Tech Industries

Technology is taking over in the hospitality industry. Resorts and hotels provide their guests with interactive resources literally at the tip of Hospitalitytheir fingers. Instead of guests making multiple calls to the front desk to find their way around a resort, they now use portable devices to make their stay even more enjoyable.

 

Revel, a resort in Atlantic City, recently implemented the use of innovative tablets to engage their visitors. Revel has implemented an interactive guest-service solution designed by a collaborative team of technology partners, Suitelinq and Unidev. The Cisco-created hardware and the integrated software package device allows guests to easily access extensive amounts of information. Visitors can check the weather, order room service, view promotions, track flights and more. The tablet also acts as the room phone and alarm clock. You can attach the tablet to the phone and make a call or remove it from the phone dock and call through a speaker phone.

 

Along with the convenience, interactive menus such as the one used at Revel allow for metrics of data. If the hotels or resorts would like to track the times and frequency people are ordering food or scheduling a massage, they can do so quickly and efficiently using a digital platform. Another example of this advancement is mobile apps. Mobile apps stored on the tablet allow guests to access additional information regarding the hotel properties.

 

Revel is not the only hospitality venue integrating technology changes. The Hilton chain increased its customer satisfaction by implementing Hilton Design Studio. The Hilton Design Studio guides online users through the hotel and gives them the opportunity to ‘design a guest room’. The Hilton will also be adding interactive products for the valet and a connectivity station. Another example of technology arriving in hospitality is Hyatt Hotels enhancing its rooms with interactive televisions. Through the TV, guests can not only decide on entertainment choices, but ordering room service, searching local information and file downloads will also be available.

Technology is growing rapidly in hotels and other resorts because of the competition. With more of the popular hospitality establishments growing digitally, they create a pressure in the market for other providers to keep up. This generates a need for companies like Suitelinq and Unidev to design unique digital solutions.

 

With new technology, hotels can dramatically improve and innovate upon the “guest experience”. Employees can better manage their time using a digital solution rather than taking phone calls. Technology implementation in the hospitality industry is continuing to grow and is bringing new solutions to workers and travelers everywhere.

 

For more information on Unidev and how we can enrich your technology, contact us.

 

 

Las Vegas: Next Silicon Valley?

guys with computers

Community is the root of innovation.  If no one ever said that, they should have.  If no one ever said that, I’m claiming the catch phrase.  Trademark that.

At the risk of offending hundreds of respected technology start-ups in California, I’m going to pose a question.  Is Las Vegas the next Silicon Valley?  In the name of full disclosure I’ve become a bit of an adjunct Las Vegas tech community native.  On a monthly basis, I wake up at 3 am in the morning and board the red eye flight from St. Louis to Las Vegas to network, explore, innovate and oh yeah…help Unidev, the software and mobile development company that employs me, to launch our new west regional office which just opened in January 2012.

So why is Las Vegas the next Silicon Valley?  They possess something very rare in an often insulated technology community.  They have community.  This community is “hip”, sort of underground, “quirkishly fashionable” but most importantly it’s not hard to find.  Just search the hashtag #vegastech or handle @VegasTech on a Thursday night and whether you join the meet up on Fremont Street or not, you’re there at the Las Vegas Jelly. That’s right, the “Jelly” (@VegasJelly).

Jelly organizations exist in several communities across the country but the one-year-old Las Vegas Jelly organization can stuff almost one hundred people into a “library” that’s not a library to learn from “start-ups” that are not start-ups. Las Vegas Jelly attracts professionals from Zappos and Microsoft as easily as they attract entrepreneurs from start-ups like Tracky and TicketCake.com.

The point I want to make is that Las Vegas Jelly supports a strong technology community but they’re also part of a larger community of technology support organizations working to promote wide spread adoption of technology innovation at the local, regional and state level.  A few of those other organizations include the Technology Business Alliance of Nevada (TBAN), Nevada Development Authority (NDA) and the Microsoft supported Linq360 Innovation Center.  Silicon Valley, did you know a booming technology community is boiling over right next door?

And this community will boil over in a good way.  Linq360 is quickly attracting big players in the hospitality industry with exciting new launches like Suitelinq’s in-room application developed for the new Revel Hotel and Casino in Atlantic City.  Yes, that project originated in Las Vegas. Likewise, Tony Hseih is relocating Zappos into the old Las Vegas city hall building and is fostering a Zappos backed technology brokering community in downtown Las Vegas with the potential to rival campuses of Google’s calibur – but probably with more neon signs and arcades.

Unidev discovered the community in Las Vegas last July when staking out new locations for expansion.  We chose Las Vegas – and we don’t think we will be alone.

What Makes a Good Developer?

What Makes A Developer from http://alvar.a-blast.org/plat_forms/ Here at Unidev we pride ourselves on the diverse skills and years of experience our development teams bring to their projects. Whether it’s custom software design or mobile application development, our developers have what it takes to provide innovative and elegant solutions to our clients.

But what exactly makes a great developer? Are there certain traits, skills or habits a successful developer needs? Well, we asked the talented members of the Java, .Net, and mobile development teams at Unidev to find out.

Testing

Of course, a great developer tests her code thoroughly to ensure it performs just as the client expects. Christine of the Unidev West development team in Las Vegas submitted the mantra, “testing, testing, testing” to highlight its importance. This element is essential in delivering high-quality code with confidence.

But testing isn’t simply a phase at the end of a project; it’s a mentality integral to the entire development process. We couldn’t say it any better than one of Unidev’s talented developers, Teresa:

“Besides having some test cases before he starts coding, [a great developer] is also thinking of test cases as he goes, so he can try to break his code in the testing phase. Oh yeah, and he tests his stuff- thoroughly.”

Communication

This development skill may not seem as obvious as technical skills or problem solving abilities, but it is extremely important nonetheless. Great code cannot simply exist in a vacuum, it needs to comply with client needs and function properly with code from other developers.

Strong communication skills reduce errors and can catch minor problems and miscommunications before they become major headaches. Kevin from our development team in St. Louis puts it best:

“A good developer must be a good communicator. He must be able to understand a client’s needs and then be able to respond with useful solutions. He must also be able to explain his development strategy to co-workers.”

Teamwork

Another intangible skill a great developer must possess is teamwork. Successful development may rely heavily on individual abilities, but without positive interactions between other team members, things can fall apart quickly. Brian, another member of our development team in St. Louis, shares his thoughts:

“Although development is largely an individual activity, ultimately the efforts of all the individuals on the team are combined to make the final program, product, or website. If a developer cannot handle the teamwork aspect, he/she will likely be limited to projects where his or her efforts will not adversely affect the larger team.”

These are just a few aspects that the Unidev team thought distinguished a “competent developer” from a “great developer”. Do you agree or disagree? Tell us what you think makes a great developer in the comments below!

 

How to Migrate from HP-UX to Linux: Undefined Behavior

The C and C++ languages don’t try to define the results of every syntactically correct program.  For example, if you dynamically allocate some memory, and then free it, and then try to access the memory you freed, you invoke undefined behavior.  The C and C++ standards don’t specify how the program will respond.

Undefined behavior means that anything can happen, because the compiler is under no constraints.   The traditional formulation is that undefined behavior can make demons fly out your nose.  In practice the consequences are usually less dramatic.

If demons ever fly out your nose, you’ll know you have a bug.  You can track it down and fix it.  More insidious is undefined behavior that happens to be exactly what you want.

I ran across an example as I was preparing to port some code from HP-UX to Linux.  The program was freeing a linked list, using code similar to the following:

 

Node * curr_node = first_node;

while( curr_node )

{

free( curr_node );

curr_node = curr_node->next;

}

 

To a long-time C coder, this code immediately looks fishy, because the loop has only two statements in it.  Look a little closer.  The second statement in the loop tries to access memory through a pointer that has already been freed.  It invokes undefined behavior.

This program has been running for years with no obvious ill effects from this bug.  Apparently HP-UX isn’t very persnickety about accessing previously freed memory.  That’s legal.  “Anything can happen” includes “what you want.”

When I first saw this code, I wasn’t ready to port the entire program to Linux yet, but I could experiment.  I dashed off a little test program that built a linked list and then freed it, using the logic shown above.  Under HP-UX this program ran to completion without incident.  Under Linux, the same program stopped abruptly in the first iteration.  It didn’t issue any messages, dump core, or even leave a non-zero condition code; it just stopped cold.  That’s legal too.  Anything can happen.

I don’t know whether this difference is attributable to the operating systems, the compilers, the libraries, or the machine architectures.  I don’t care.  What matters is that I can’t run this program under Linux without fixing the loop:

 

Node * curr_node = first_node;

while( curr_node )

{

Node * temp = curr_node->next;

free( curr_node );

curr_node = temp;

}

 

A few days later, another example of undefined behavior popped up, in the form of a buffer overflow.  Under HP-UX the overflow had no visible effect, at least not until I started poking around with printf statements.  Under Linux the code just didn’t work.  Probably the variables are arranged differently in memory.  In HP-UX the overflow didn’t damage anything that mattered, and in Linux it did.

These examples are just things that I stumbled across.  There will be more, and I won’t catch them all so painlessly.  Fancy code analyzers may help catch things in advance, but there is no substitute for vigilance.

It’s tempting to conclude that HP-UX is more forgiving of blunders than Linux is, since some things work in HP-UX but don’t work in Linux.  That conclusion is premature.  Maybe the two platforms are just forgiving about different things.  If the bugs had done obvious damage under HP-UX they would have been fixed already.

There’s a Darwinian process at work here.  Bugs survive when they’re well adapted to the environment.  When the environment changes, some of those bugs will go extinct.  Unfortunately, new species will probably replace them.