Altabel Group's Blog

Archive for September 2012

Microsoft has officially rolled out Windows Server 2012, the server partner to the Windows 8 operating system it is launching on 6 October alongside the eagerly anticipated Surface tablet.

Unveiling the new offering on the 4th of September, Satya Nadella, president of Redmond’s Servers and Tools Business, has dubbed the new-gen system as the first “cloud OS.” In his keynote speech, Nadella described how Windows Server 2012 is a cornerstone of the Cloud OS, which provides one consistent platform across private, hosted and public clouds.

Windows Server 2012 is seen as a central part of Microsoft’s new enterprise ecosystem, which also features Windows Azure and System Center 2012 for customers to manage and deliver applications and services across private, hosted and public clouds.

The Microsoft Cloud OS provides enterprises with a highly elastic and scalable infrastructure with always-on, always-up services. Automated management, robust multitenant support, and self-service provisioning help enterprises transform their datacenters to support the coordination and management of pooled sets of shared resources at the datacenter level, replacing fragmented management of individual server nodes.

The new operating system provides a comprehensive set of capabilities across the enterprise private cloud datacenter, and public cloud datacenters.

• Agile Development Platform: The Microsoft Cloud OS allows enterprises to build applications they need using the tools they know, including Microsoft Visual Studio and .NET, or open-source technologies and languages, such as REST, JSON, PHP, and Java.

• Unified DevOps and Management: The Microsoft Cloud OS supports unified DevOps and unified application life-cycle management with common application frameworks across development and operations. With Microsoft System Center integration with development environments such as Visual Studio, enterprises can achieve quick time-to-solution and easy application troubleshooting and management.

• Common Identity: The Microsoft Cloud OS implements Active Directory as a powerful asset across environments to help enterprises extend to the cloud with Internet scale security using a single identity and to securely extend applications and data to devices.

• Integrated Virtualization: To help enterprises achieve the modern datacenter, the Microsoft Cloud OS includes an infrastructure which provides a generational leap in agility, leveraging virtualization to deliver a highly scalable and elastic infrastructure with always-on, always-up services across shared resources and supporting cloud service delivery models with more automated management and self-service provisioning. With Windows Server 2012, the Microsoft Cloud OS is engineered for the cloud from the metal up with virtualization built as an integrated element of the operating system, not layered onto the operating system.

• Complete Data Platform: The Microsoft Cloud OS fully supports large volumes of diverse data, advanced analytics, and enterprise BI life-cycle management, with a comprehensive set of technologies to manage petabytes of data in the cloud, to millions of transactions for the most mission-critical applications, to billions of rows of data in the hands of end users for predictive and ad-hoc analytics.

At the core of the Microsoft Cloud OS is Windows Server 2012. The software supports 320 logical processors and 4TB of physical memory per server, with 64 virtual processors per virtual machine. Virtual disks can scale up to 64TB apiece, according to the firm, or 32 times what it said the competition can offer at the moment, adding that Server 2012 is capable of virtualising 99 per cent of all SQL databases.

New features of Windows Server 2012 include a refreshed version of Hyper-V, including expanded network visualization capabilities to run multiple configurations on the same LAN. Also debuting is a new Resilient File System (ReFS), which improves reliability.

Appearance wise, Windows Server 2012 is built in the Modern UI-style, featuring a tile-based interface like that of Windows 8 and Windows RT.

Microsoft officials say that launch of Windows Server 2012 is perhaps the biggest release of their server products in history, bigger than NT. They also believe that Windows Server 2012 ushers in the era of the cloud operating system.

Do you believe the release of Windows Server 2012 is a breakthrough in the server industry? And do you think Microsoft Cloud OS will be the winner in the competition among emerging Cloud operating systems?

Thanks for sharing your opinion :)

Kind regards,
Aliona Kavalevich
Altabel Group – Professional software development

While there are some cool new flourishes and features, there are some problems too. Here’s what you need to know before downloading the new OS on your device.

iOS is polished. For instance, notice that the music app received a visual overhaul and some tiny but amazing new touches. Try tilting the app in multiple directions while listening to a song and you’ll see the details (the new volume and track knobs will animate). Or turn on Do Not Disturb and watch the animated crescent moon icon appear next to the time. It’s these small and subtle additions that have made using iOS 6 such a pleasure.

Check the features that will work on your Apple device

So the question stands, is it a worthy upgrade? Without a doubt if you are on an iPhone 4 or 4S, then yes. But let’s talk about what you don’t get and what really didn’t feel polished this time around. Apple provides a list of features on their iOS 6 page found here: http://www.apple.com/ios/whats-new/.

If you scroll to the bottom of the page, Apple lists the features that are available and for which devices. It may help you avoid some headaches if you know exactly what will work on the device that you own. Here is the list:

1. Turn-by-turn navigation is available only on iPhone 4S, iPhone 5, and iPad 2 or later with cellular data capability. Flyover is available only on iPhone 4S, iPhone 5, iPad 2 or later, and iPod touch (5th generation). Cellular data charges may apply.

2. Siri is available on iPhone 4S, iPhone 5, iPad (3rd generation), and iPod touch (5th generation) and requires Internet access. Cellular data charges may apply.

3. FaceTime video calling requires a FaceTime-enabled device for the caller and recipient and a Wi-Fi connection. FaceTime over a cellular network requires iPhone 4S, iPhone 5, or iPad (3rd generation) with cellular data capability. Availability over a cellular network depends on carrier policies; data charges may apply.

4. Offline Reading List is available on iPhone 4 or later and iPad 2 or later.

5. Made for iPhone hearing aids require iPhone 4S or iPhone 5.

6. Panorama is available on iPhone 4S, iPhone 5, and iPod touch (5th generation).

7. Find My iPhone and Find My Friends enable you to locate iOS devices only when they are on and connected to a registered Wi-Fi network or have an active data plan.

iCloud requires iOS 5 or later on iPhone 3GS or later, iPod touch (3rd generation or later), or iPad; a Mac computer with OS X Lion or later; or a PC with Windows Vista or Windows 7 (Outlook 2007 or 2010 or an up-to-date browser is required for accessing email, contacts, and calendars). Some features require iOS 6 and OS X Mountain Lion. Some features require a Wi-Fi connection. Some features are not available in all countries. Access to some services is limited to 10 devices.

But some features may not be available for all countries or all areas.
Siri is available in Beta only on iPhone 4S, iPhone 5, iPad (3rd generation), and iPod touch (5th generation) and requires Internet access. Siri may not be available in all languages or in all areas, and features may vary by area. Cellular data charges may apply.

What’s up with Maps?

Aside from all of the other new features, there are two new items that are getting a lot of coverage from other reviewers. The first is Maps. Maps is taking a beating due to the lack of transit information and missing data. I can’t imagine Apple not working aggressively to bring their map implementation up to speed with Google. This, however, may be a make or break issue for some, but also keep in mind that Google is working on a separate Maps app to take the place of the one Apple removed.

What’s else? You’re welcome with your comments.

Best Regards,
Kristina Kozlova
Altabel Group – Professional Software Development

Data is something that companies grapple with every day – after all, we are in the era of Big Data. How to gather it, analyze it and interpret it. But one important part of dealing with data is figuring out how and where to store it. Below are 10 things to think about when choosing the right data storage technologies for your enterprise or project.

1. Consider all your options.

Relational databases may still be dominant, but their hold has slipped. While they have been a successful, leading data storage technology for 20 years, IT architects have been challenged by the impedance mismatch between the relational model and the in-memory data structures, and the unstructured nature of the data. Now, there is a movement away from using databases as integration points as the need to support large volumes of data by running on clusters results in a change in data storage. Relational databases still provide advantages and, for now, will continue to be used in most cases. However, multiple database options are now available depending on the nature of the data stored and how it will be manipulated.

2. How big is your data?

When evaluating data storage technologies, it’s important to know how much data you’re dealing with and in what format. With organizations grappling with massive amounts of unstructured data, a new data storage technology has emerged as “king” of Big Data, NoSQL. The growing need for rapid access to lots of unstructured data has led to the growing use of NoSQL databases, which process large volumes of data on clusters of machines more efficiently than relational databases.

3. If developer productivity and large-scale data are your pain points, NoSQL may be a good choice.

NoSQL is generally applied to a number of recent non-relational databases such as Cassandra, Mongo and Riak. The common characteristics of NoSQL databases include:

- Not using the relational model
- Running well on cluster
- Open-source
- Built for 21st century web estates
- Schemaless
- Horizontally scalable
The two main reasons for using NoSQL technology are to improve programmer productivity by using a database that better matches an application’s needs and to improve data access performance via some combination of handling larger data volumes, reducing latency, and improving throughput.

4. Different business problems need different solutions.

Storing user activity on websites is totally different than finding out which of your users is most connected to other users or dealing with huge write volumes such as capturing live stream of data. These different problems need different solutions. IT architects should make sure to understand the problem and choose the right solution before making the default choice.

5. If you’re working with NoSQL databases, consider the data model types.

There is a common approach to categorizing NoSQL databases according to their data models. These include:

* Key-Value Databases – Key-value stores are simple hash tables, primarily used when all access to the database is via a primary key. These are the simplest NoSQL data stores to use from an API perspective. Some of these databases include: Riak, Redis or MemcachedDB.
* Document Databases – Document Databases store and retrieve documents. These are self-describing, hierarchical tree data structures, which can consist of maps, collections, and scalar values. Some of these databases include MongoDB, CouchDB, Terrastore and others.
* Column-Family Stores – Column family stores, such as Cassandra, HBase and Amazon SimpleDB, allow you to store data with keys mapped to values and the values grouped into multiple column families, each column family being a map of data.
* Graph Databases – Graph databases such as, Neo4J, Infinite Graph or OrientDB, allow you to store entities, also known as nodes, and relationships between these entities

6. Scale solutions to suit growth of data.

The rate of growth of data is no longer predictable. Gone are the days when we could plan for three-year cycles to upgrade hardware and do capacity planning. NoSQL allows scaling for performance and volume without any downtime by allowing expansion of clusters transparently.

7. You may need more than one data storage technology.

The most important outcome of the rise of NoSQL is the acceptance of database technologies beyond relational databases. However, NoSQL is only one set of data storage technologies, and other data storage technologies should be considered whether or not they bear the NoSQL label. Other options include file systems, event sourcing, memory image, version control, XML databases and object databases. This has led to a new era of “Polyglot Persistence.”

Polyglot persistence is about using different data storage technologies to handle varying data storage needs. It can apply across an enterprise or within a single application.

8. NoSQL solutions can be introduced in existing applications.

In existing applications, functions that don’t need relational databases such as searching, indexing content, relationship between customers and products, can be moved to use NoSQL solutions allowing the applications to scale and react to emerging customer needs.

9. Remember to consider the complexities.

Employing more data storage technologies increases complexity in programming and operations, so the advantages of a good data storage fit must be weighed against this complexity before moving forward with a specific technology.

10. Experiment!

Only by working with NoSQL and others – and discovering their strengths and weaknesses – can IT architects understand these new data storage technologies. In the future, organizations will use many data technologies. Data professionals will need to be familiar with these different approaches and know how to match them to different problems. When you introduce different data storage technologies, you will need to think about new ways of data modeling, data consistency, and evolution.

Learning the concepts is an important first step, but to really understand multiple storage technologies, you’ll need to get the experience of building representative systems using them.

Best Regards
Kristina Kozlova
Altabel Group – Professional Software Development

Blackberry, iOS, Android, Windows Phone… the number of existing mobile platforms exceeds all reasonable limits while the developers can hardly choke down their moaning hearing cheery management appeals about supporting another platform…

I think when another mental eclipse caused by progressing deadline occurs, every person who is connected with software development has this banal thought – why is it not possible to make one project that would magically deploy on all the platforms in the native predictable view basing on one source code? There are a few frameworks that make this dream real.

In fact they use 3 approaches: interfaces generation based on

– javascript/HTML5
- C-like languages
– mixing these two approaches above

In some cases device-dependent things are boxed up into one package (in this respect AppCelerator upsets greatly, although the developers swear that do their best to optimize the resultant applications), or at the compilation moment there is a painful choice of the specific platform and device the package should fit (MoSync impressed with endless checkbox list sorted by brands and phones models). Commitment to flexibility constrains available functionality and productivity just because every platform has its own standard set of controls and its own view on optimum UX. In short, everything is not as rosy as we would like it to be, but these projects develop, lofty Partners sections on their sites pepper with sounding names, so we will not throw back this idea determinately – in the end everything depends on project aims and frames.

Below are the results of the experiments, when for the project realization a tool needed to be chosen. The criteria were simple: single code base, cross-platform (iOS, Android was enough), a possibility of creating own GUI elements, connection with web-services.

http://www.appcelerator.com – initially it was planned as development environment in javascript based on its own framework in the specially prepared Eclipse build for mobile development. At the moment HTML5, CSS3 support has been added, critical code parts can be written in ‘native’ languages for the target platform – Java or Objective-C. Nice IDE. To write for iOS you will need MacOS. Basic version is free, although the distributors assure that all this platform capacity consists in usage of additional commercial extensions (50 USD per month).

http://phonegap.com/ – they were among the first who decided to forget about native “look and feel” and turn to the universal tool – web-interfaces. Hence, the major language is HTML. JavaScript, jQuery, CSS can be used as well. Potentially all the major platforms are supported (iOS, Android, WebOs, Bada, Windows Phone, Symbian),practically– to develop for iOS safely, again you will need Mac workstation. It is required to download sdk for every platform. Range of additional libraries for application development is supported; I’d like to highlight Sencha Touch in particular. The process of building final packages is quite interesting-you prepare the project code, upload it to the special service – https://build.phonegap.com/ and geta package ready to install on the target platform in return. Supported features list is here – http://phonegap.com/about/features. Phonegap for open source projects is free, as the status of build-services is still beta – they do not take money from other developers, but the situation can change with the release. Devices support features upset.

http://www.mosync.com/ – the main language is C++. JavaScript and HTML5 can be used. Development environment – specially prepared Eclipse build.The options of integration into Visual studio are described on the site. Blackberry and Windows Phone 7 are not supported, but you can write for everything else – Android, iOS, Windows Mobile, Symbian, JavaMW. You can’t write with Windows for iOS – in this case MacOS is strictly required. There is a detailed description of support status of platform-dependent elements – http://www.mosync.com/documentation/manualpages/featureplatform-matrix. If you write something for GPL – mosyncsdk can be used for free, otherwise the license costs 200 EUR.

http://www.madewithmarmalade.com/ – the main language is C++ (code is written in Visual Studio or Xcode). It was mentioned about a possibility of using insertions written in native languages for the target platform. You can write for iOS with Windows. It has its own devices simulator. There were heard some complaints for resources voracity and the size of binaries in the output. The licence costs 500 USD.

http://xamarin.com/monotouch and http://xamarin.com/monoforandroid – The creators of the free Sharp version have been leading a very interesting project – Mono. They suggest commercial versions of the libraries for development in C# for Windows Phone, Android and iOs. If needed, it is possible to resort to C++, objective-C and work with the ready libraries that are specific for both platforms. A module for each platform costs 400 USD. The development processes in MonoDevelop IDE.

Embarcadero RAD Studio (a modern reincarnation of Delphi and C++ builder). Although their specialization is not mobile development, they provide very promising tools for developing applications for iOS based devices basing on Fire Monkey. They also say about forthcoming support of Android and Blackberry devices. For a single developer the price is a way too expensive (more than 3500 USD). There is no version for mobile development only, and it’s not worth considering until there is no support of additional mobile OS. At the same time it makes sense to keep a look out which side it develops.

If you know some similar tools, it would be interesting to read about them and your experience of using them-both successful and not.

Kind regards,

Nadya Klim

Nadya Klim
Nadya.Klim@altabel.com
Business Development Manager
Altabel Group – Professional Software Development

The aims of agile software development are beyond reproach: prioritising rapid delivery of working software that does what the user wants. But the application of agile methodologies can leave a lot to be desired – with frequent delivery of code mistaken for progress and users calling the shots but not understanding what they want. Here are five dangers to look out for when following an agile software development methodology.

1. Two steps forward, one step back
Agile, in the case of one of its commonest forms known as Scrum, breaks down projects into iterations that deliver potentially workable software within two to four weeks. The scope of what is being delivered from iteration to iteration can vary dramatically based on feedback from users.
This flexibility is one of the strong suits of agile. The finished software product doesn’t have to be set in stone years in advance and therefore is more likely to be relevant to a business’ needs on completion.
However, being blind to certain future demands can lead to products being developed in a way that doesn’t support those iterations, says Mike Gualtieri, principal analyst with Forrester.
Gualtieri gives the example of business users who ask developers to allow customers to look up their account history during one iteration, and then in the next iteration ask developers to allow customers to combine their account history with that of family members.
Situations such as this one leave the development team frustrated at having to go back to alter previous work, according to Gualtieri, saying, “I wish you told me that before. I didn’t anticipate that when I created the database structure.”
Also, while agile is supposed to control scope creep, there are reports that the iterative design process can lead to users demanding a multitude of changes at each iteration – making it difficult for developers to deliver.

2. Users don’t know what they want
Agile methodologies are designed to produce the software the user wants, after all the stakeholders are involved in the development process from the start.
However, people are not always the best judges of what they want. As Henry Ford supposedly said about his decision to bring the automobile to the mass market: “If I had asked people what they wanted, they would have said faster horses.”
The problem with developers relying too heavily on users to tell them what they want is that users are limited by their understanding of the underlying technology, according to Forrester’s Gualtieri.
“Say there’s a mobile app. A business person can envision the way that mobile app would work but may not be aware there’s an accelerometer and GPS, and how those can be used in combination to do some fabulous things,” he says.
Of course the end product of an agile project is supposed to be the result of a meeting of minds between the developer and the business user, rather than one leading the other.
However, the resulting product is frequently not a joint effort, according to Gualtieri, but instead the result of developers letting the user make the design decisions so they can get on with the coding.
Having business users guide coders is no substitute for a developer with a deep understanding of the business domain, he says.

3. Not ready for automated testing
The rapid delivery cycles under agile make software to automate testing a necessity to keep the quality of the product and the code from slipping.
The cost of adopting automated testing and the hassle in changing ways of working to accommodate it can seem more bother than they’re worth.
But failing to introduce automated testing makes it tricky for manual testing teams to keep on top of bugs during the short delivery times for each iteration of the software – particularly as the overall code grows in size.

4. It’s hard to get buy-in
For businesses with a long history of developing software using alternative methodologies, switching to agile requires a profound change in the way everyone from software maintenance teams to management operate.
Yet people are creatures of habit and getting the maintenance team to drop their demands for a library of documentation isn’t easy.
Getting everyone involved in a project to understand how they and their colleagues can work and mitigate risk without extensive documentation to fall back on will take a long time – for example, in the case of the Wellcome Trust it took 18 months.
Time commitments can also be onerous both for developers and business users. The IT team and the rest of the business will have to be prepared to devote regular blocks of time to discussing project requirements and outcomes, which they need to fit around the daily demands of the job.

5. Agile ignores the creative nature of coding
Critics of the agile movement claim it embodies a wider problem with software development methodologies – that the focus on process ignores the creative nature of programming.
Forrester’s Gualtieri says software development is more akin to making a movie than building cars on an assembly line.
“With these processes and methodologies, people want to take software developers, say they are all created equal, and put them into a process, turn a crank and software will come out,” he says.
“But software is a one-off. It isn’t a product of an assembly line. We need to recognize the design and creativity that goes into it.”
This focus on process ignores how important design decisions are when developing software, he says.
“In software development design decisions determine everything from how long it’s going to take to develop the software, to how good the user experience will be.”

Kind Regards,
Lina Deveikyte
Altabel Group – Professional Software Development


%d bloggers like this: