Altabel Group's Blog

Archive for April 2013

WHY DO YOU NEED A MOBILE FRIENDLY WEBSITE
There is no secret to anyone that people are browsing the web more from their smartphones and tablets rather than from traditional computers. So having a mobile-friendly site for business nowadays is more important than ever. This is both a big problem and a big opportunity for businesses seeking to engage with new customers.

In the end of 2012, Google conducted an independent survey to learn what users want most from mobile sites today. And the numbers are striking! In fact mobile-friendly site can turn users into customers, according to a survey about 67 percent indicated they would be more likely to purchase a product or service from a business that built a mobile-friendly website. On the contrary not having a mobile-friendly site helps your competitors , for example, 61 percent of users indicated that they’d leave a site that’s not optimized for mobile. Actually non-mobile friendly sites can hurt a company’s reputation: about 52% of users said that a bad mobile experience made them less likely to engage with a company and 48% said that if a site didn’t work well on their smartphones, it made them feel like the company didn’t care about their business

HOW TO MAKE YOUR SITE MOBILE
Just shrinking your text into the device’s screen won’t give good impression about your business to the customer. The development of your mobile site should be determined by the kinds of products and services your business provides.
There are several options how to optimize your website for mobile, free and paid, having their own pros and cons. Here are a few strategies how to make your site mobile friendly:

– Mobile Website Conversion Service

There is a number of services on the web, that will convert your existing website and provide a script that will direct mobile users to your newly created mobile site from the main website. Among these services are Duda Mobile, bMobilized, and Mobify

– Separate Native Mobile Site

Some businesses want to keep their desktop and mobile websites separate. By creating a mobile website, you maintain control: its design, maintenance, hosting, and security. A script will be added to the main website that will determine if the visitor is using a mobile device and if so, it will automatically direct the visitor to the mobile version.

– Responsive Design

Responsive design is becoming more and more popular. It allows having one website that will display correctly on all devices — desktop, laptop, tablet, or smartphone. It takes advantage of CSS “media queries” to style pages based on the width of the device being used. To determine if your website is responsive, just resize the browser window. If it adjusts — so that the images and text are readable with a narrower browser window — it’s responsive.

-Mobile Version from the Main Site

Some e-commerce providers are heading for mobile. For example, Magento has taken its way to mobile commerce! Magento Mobile introduces exciting Free of cost Magento Mobile extension which allows store owners to manage multiple native applications across various mobile devices from a single Magento interface and provides support for iPhone, iPad and Android base mobile devices. The beauty of Magento Mobile is that it integrates just seamlessly with your account management, product catalog and checkout functions and facilitates your users to experience the same functionality of web store on their mobile devices.

In this article I wanted to draw your attention to the importance of optimizing your website to mobile. Is having a mobile friendly website important for you?

Anna Kozik

Anna Kozik
Anna.Kozik@altabel.com
Skype ID: kozik_anna
Business Development Manager (LI page)
Altabel Group – Professional Software Development

Have you ever thought that mobile industry will become so popular? Never!
According to the recent research more than $10 billion were spent on downloading mobile applications in 2011, $21 billion in 2012 and according to forecast users will spend more than $30 billion in 2013. Rather impressive, isn’t it?

And all this is just for downloading paid mobile applications! And their number on the market is approximately 20 percent. The rest of mobile applications are free.

It is not surprising that mobile application testing spins up because of such boom in the industry. It is one of the most popular kinds of software testing performed by software testing company. What kinds of mobile applications do you know? Let’s try to find them out.

Types of mobile applications:

• Web applications;
• Platform applications;
• SMS;
• Mobile websites.

Let’s see what is the difference between? Should different kinds of mobile application testing be performed for them?

Web applications
Web applications are considered to be the most acceptable as mobile web browser is an application that sends content to the mobile device. It means that such application is independent of any device, platform or operating system.

Platform applications
The development of such applications is rather simple but their supporting and testing are very costly.

SMS
It is the most simply type of application. User usually send a query in form of short code to receive immediately the desired information just like train schedule, ticket’s price, etc. They are testbased and have limitations of the message content.

Mobile websites
Mobile websites are considered to be the source of simple and accurate information just like weather, news, sports, etc. Their great disadvantage is that the limited resolution screens information is hardly readable.
Different kinds of mobile application testing should be performed for them as they are very different. But there is nothing impossible for software testing company.

What Are the Typical Problems You Can Face During Mobile Testing?

• The software installed on a mobile device depends greatly on its creators and the decisions they take during the process of software development. Sometimes they create such type of software that may influence the overall behavior of your phone.
• The specific feature of mobile testing is that accurate test results may be really hard to obtain. The obtained data is usually quite conflicting. A software tester should have enough practical experience to be able to single out key challenges and the most important issues.
• Sometimes you may face the problem caused by a certain network operator. Sometimes they customize the software’s interface and functionality for their specific needs and it may cause its overall performance.
• Some models of mobile phones can also be very problematic in handling. Sometimes they may limit or even disable certain parts of tested software.
• Some application’s content may prove to be unsuitable for certain mobile devices. For example, it may contain unsuitable format.

If you consider all these issues when planning your mobile testing, you are sure to succeed.

Tips for Conducting Successful Mobile Testing:

• Sometimes the best option is unite mobile testing with another software testing type, namely automated testing. Automation will make your testing more productive and greatly economize your time.
• Take into consideration that depending on a software type, not all of the software products can be easily automated. Some applications require only manual testing if you want it successful.
• Check the software installation process (installation testing)
• Consider the used language (maybe you will need to implement the elements of localization testing).
• The preinstalled web browser is also something you should consider when planning your software testing.
• Verify that the device type doesn’t put any limitations on the software under testing.
• Check whether the software doesn’t influence the overall device performance.
• Make sure that the stated software is technically most suitable for the users’ devices.
• When choosing the most suitable devices to conduct mobile testing on, choose the most popular models with most popular environment (OS version, preinstalled software etc.).
• Test the software’s performance.
• Sometimes exploratory testing can be a good way of guiding the overall testing process.
• Combine several types of software testing in order to get the maximum profitable testing result.

Why do many software companies just ignore testing?

According to one of the latest researches, around 57 percent of application performance issues are usually found by users and 67 percent of applications are usually used without outsourcing software testing to ensure that they can scale to support desired traffic levels. I think it just proves one more time the necessity of mobile application testing and web site testing. Why not to supply the market with software equipment of high quality?

As my personal point of view mobile testing is necessary just as any other type of software testing. And it is really important because we all make mistakes. Some of those mistakes are unimportant, but some of them are expensive or dangerous. We need to check everything and anything we produce because things can always go wrong –humans make mistakes all the time.

In the conclusion I would like to ask you what are your considerations on the question if there is need and importance for mobile testing. Should we think twice before launch developed mobile product to the production without any testing performed?

Polina Mikhan

Polina Mikhan
Polina.Mikhan@altabel.com
Skype ID: poly1020
Business Development Manager (LI page)
Altabel Group – Professional Software Development

Stories are told about the greatness of the free and mighty Magento e-commerce platform. There is much talking about Magento in comparison with other eCommerce platforms but in this article we thought it would be a good time to talk about Magento on its own. Now we’ll talk about the pros of Magento and some great ,positive things to expect while using it. Later on we’ll discuss another side of the medal which of course is there as well 🙂

The Pros of Magento:

Out of the box features: Magento boasts some of the most impressive features straight out of the box, including:
– Marketing / promotional tools
– Search engine optimization
– Catalog management
– International support
– Shipping (multiple addresses, multiple shipments, free shipping, etc.)
– Analytics and reporting
– Site management
– Catalog browsing
– Mobile commerce
– Payment (multiple payment options, payment extensions available, etc.)
– Customer accounts

Open Source: We think it’s common knowledge how much software developers love open source software. Magento Community is completely free to download, plus every version of Magento is able to be built upon and tailored to the specific needs of developers.

Administrative Interface: As we suppose Magento has the best administrative interface of any open source eCommerce platform. Magento provides a customer-friendly interface that is also a very flexible solution. The out of the box features go hand in hand with the power of the administrative interface, namely the features of order and customer management, catalog management, and analytics and reporting data.
Community and Updates: Magento has continued to thrive as a community with their number of users increasing dramatically over the past few years. Magento likely has the largest and fastest growing community of developers of any eCommerce platform. Magento also has continued to release new updates and versions of all three Magento editions on schedule.

Extensions: The extensions available for Magento help set it apart from all of the other eCommerce platforms. Magento’s core development team set out to create Magento as one of the most extendable eCommerce platforms available. Magento has the architecture necessary to allow its functionality to be extended while still remaining stable and maintaining its elegant looks.

The Cons of Magento:

While there are hundreds of the Magento-lovers, I am also willing to provide an objective view of the eCommerce platform which has some negative sides as well. Now I would love to cover the cons since we discussed the pros of Magento earlier above in the article. Below each con, we also provide the best solution, so don’t get too worried about getting scared off by the information below.

Speed: One of the main complaints people have about Magento is its speed. Magento has been known to be quite slow. Magento was designed to be the most extendable eCommerce system available, which is still the case today. In order for the system to work efficiently despite the extensions added to it, the system was created in such a way that isolates each feature so that changing that feature (via an extension) does not affect any other part of the system. The result of which is an immense number of files in many different folders.
The solution: Get a good host that specializes in Magento eCommerce sites. As would be expected, if you try to use Magento on an incapable server, of course it will be slow. If you have a dedicated server and your site still runs slowly, the problem is likely due to a custom theme, a custom query, or your extensions.

Documentation: Magento, as an open source platform, falls victim to the typical issue of not being well-documented. There are manuals for Magento available for purchase, but may not be of much use because the system is full of unique terminology.
The solution: If you’re having trouble with the administration side of running your site, you should look into Magento-specific training. Find a firm or developer group that has extensive experience with all the versions of Magento that can help you get the most out of Magento.

Updates: We talked about the large community and the timely and on-schedule release of updates earlier. While this can be a definite pro of Magento, it can also be a downfall because of how often updates are released since an update will sometimes cause something that was functioning just fine to have a glitch after installing the update.
The solution: Hire an experienced development team to make sure that your Magento site is always using appropriate extensions and is developed using Magento-suitable practices. Also, if you’re worried, go through your upgrade process in a separate development environment with a Magento expert available to make sure the glitches are fixed before your site goes live.

Complexity / Cost: One of the other complaints we hear about Magento is that it can be too complex for people who don’t have much development experience. In addition, if you’re interested in creating a more extensive online store, you’ll likely need to use Magento Professional (starting at $2,995 per year) or Magento Enterprise (starting at $12,990 per year). If you need a large store and you don’t have any development experience, using Magento would require you to spend money on the yearly costs, as well as on the web development firm you hire to create your store.
The solution: Make Altabel your go-to Magento developers. With our dedicated developers and experienced project managers, we’ll keep your costs as low as possible by giving you exactly what you need and nothing you don’t.

Please don’t misunderstand me here. I am not saying Magento is bad ecommerce platform. What I am saying, is that Magento does not have a place for every level of ecommerce store and that users require training. Our advice to consult a professional with Magento experience, if you’re considering Magento for you platform and take note of the following:

• Don’t get caught up in the sales speak and try to ignore the shiny default template
• Remember you’ll need to set aside a great deal of time to learn the administration area – you may need training here
• Magento is not for every niche/business. The feature set and size of Magento implies you have a high volume of and complicated product variations
• Remember that due to the complexity of Magento, you’ll no doubt pay a premium for updates where a plugin will not suffice

Let us know What are your views on this matter in the comments section below. We are looking forward to a discussion on this important topic.

Polina Mikhan

Polina Mikhan
Polina.Mikhan@altabel.com
Skype ID: poly1020
Business Development Manager (LI page)
Altabel Group – Professional Software Development

Within a short period of time since its initial release in late 2009, Node.js has gained the interest of thousands of experienced developers, grown a package manager and a corpus of interesting modules and applications, and even became the reason for a number of startups to appear. You may have heard about node.js, or read articles claiming how great it is; you may have even read some technically focused explanations on why it is so good.

So let’s try to understand what it is about this technology that makes it interesting to developers. And what the commercial pluses of adopting Node.js when developing and deploying web applications.

I’ve carefully look through a number of forums and experts’ opinions in these regards. Below you could find some main reason why it is worth to use Node.js.

* Node.js is a platform for writing high-performance, scalable web applications and network programs in JavaScript. It has an asynchronous, non-blocking, programming model for lightning-fast speeds and enables the use of JavaScript on the server-side so that both client and server run using the same language.

* Node.js was designed to be great at transporting small bits of information around the Internet very quickly, and in real-time. Server-side events, instant messaging apps, real-time games, and collaboration tools are all great example of this.

* Also the reason to use Node.js is based around the idea of not waiting on things. Instead of waiting for a db query to return results, it just triggers a DB query and sets a callback event. Then, while the query is processing, your program can be doing other things (like handling another request). This is what makes Node.js seem so fast.

* Node.js allows designing of scalable applications at a very high speed. The importance of scaling is going to be at a premium for all applications going forward. One of the secrets to Node’s massive scalability is the event-loop. This construct, which is fundamental to the architecture of Node, provides a completely different model for the handling of client connections than those of traditional web server technologies. The event- loop, which your Node.js applications are naturally built upon, transparently treats the connections from your clients extremely lightly. The memory usage per client is negligible, and as such a single Node.js server can handle hundreds of times more clients than a server with other languages.

* Node.js provides non-blocking libraries for database, file and network access. Since I/O is not a fundamental part of JavaScript, nothing had to be taken away to add them. Python’s Twisted and Ruby’s Event Machine have to work around some basic language components in order to get similar evented behavior.

* In addition to the performance wins Node gets “for free” by using the V8 JavaScript engine, the event loop model itself allows Node servers to handle massive concurrencies in network connections very efficiently. It often approaches the benchmarks achieved by high-performance reverse proxies like Nginx (which is also based on an event loop).

* Unlike PHP, Node.js is not “web centric”. Node.js is a general-purpose JavaScript runtime with a host of powerful libraries — one of which happens to provide an HTTP/HTTPS server implementation. With the Node.js it is easy to build command line clients and other TCP/IP servers. This could characterize Node as a quite flexible one, but at the same time, since Node.js isn’t HTTP-centric, you may find yourself having to implement code to do things once provided for you by the framework.

These are only some of the reasons I could provide and answer the question why this library gains popularity and worth to be working with.

Hope this information would be of interest and of use to you. Please feel free to share your thoughts and opinions why we would need to use Node.js. By the way how you think what to expect for it the future?

 

Natalia Osipchik

Business Development Manager

 

altabel

Altabel Group

Professional Software Development

E-mail: contact@altabel.com
www.altabel.com

When planning the application you have to choose the right programming language to make your application work appropriate. The choice depends on many factors you need to consider. Such as but not limited: you need to think over on what platform the application will run, how easily new features would be added to the existing platform, the code size, performance, support and community etc.

There are various web programming languages and selecting the right one makes a website function properly. In my article I would like to focus on three of them, so called three “P”: PHP, Perl and Python to answer which of these languages is the best one.

Let’s have a look at them and try to make a comparison analysis

PHP – is free of charge open source scripting language and widely used in web environment. The best advantage of PHP is that it is easy to learn and easy to use. It is flexible and used for developing from small websites to giant business and organizational websites. Most common are informative forums, chatting platforms, CRM solutions, e-commerce shopping carts, community websites, e-business, shopping carts.

In terms of efficiency it is executed by the server and server parses the code at its source, executes and send properly formatted html to the client computer. Therefore it increases the speed of PHP applications.
What concerns the advantage of running, PHP is multiplatform language and compatible with all operating systems and platforms.

Being open source language, a large group of PHP developers help in creating a support community, so it’s maintained and when bugs are found, it can be quickly fixed.
A lot of websites including such giants as Wikipedia, Yahoo!, Facebiook, Digg, WordPress and Youtube are written in PHP. The popularity of PHP is based on its simplicity and coding style that is quiet easy to understand.

Nevertheless, the simplicity in developing, precisely principle so called «structure is not important» in PHP has its reverse side, precisely it’s hard to maintain for large applications since it is not very modular.

Also it’s weak in terms of security since its open source, all people can see the source code, and if there are any bugs it could be used to explore the weakness. About 30% of all vulnerabilities listed on the National Vulnerability Database are linked to PHP. The last summary on vulnerabilities you may find following the link: http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2013-0427

Perl –refer to all purpose languages. Perl was developed as a text editor for converting or processing large amounts of data for tasks such as creating reports. Nowadays it intended improvements and suited for web development, game programming, GUI development, popular among system administrators etc.
The Perl reusable code structure provides flexibility in apps development and at the same time creates the problem of code reading after. As there are so many ways to do, there are a lot more ways to mess up in what you’ve done. If the code was written without proper care, the reading could even take 6 months.

So from one hand Perl is a good language for small programs because of its messy syntax structure it’s hard to write and maintain large programs. On the other hand if you’re planning to develop big web application you need to consider good coordination between developers work on discussing the code stile, mentoring and managing work in the team.

In terms of portability Perl code doesn’t use system specific features, so can be run on any platform.
Among popular websites created on Perl could be named bbc.co.uk, Amazon.com, LiveJournal.

In respect of vulnerability Perl takes the second place – 9.4%. I assume that it’s not bad taking into consideration its complexity and its long history.

It has fallen out of popularity lately a bit because of the slow development of Perl 6. Most people still use Perl 5.

Python – is considered to be very elegant programming language. It’s general purpose, high level programming language. On the one hand Python’s syntax and semantics are minimal; on the other it has complex standard libraries.

Python supports multiple paradigms: object-oriented, imperative and functional programming styles and has features including fully dynamic type system and automatic memory management.

In comparison with Perl Python is easy to read language. And its key idea is vice versa “there should be one—and preferably only one—obvious way to do it”. It means that the code written by one developer could be easily developed and supported by the others. Besides to delimit blocks Python uses whitespace indentation, rather than curly braces (C, C++, ….) or keywords (Delphi).

Python is often used as a scripting language, but is also used in 3D animation (Maya, Softimage XSI, Blender) and image editors (GIMP, Inkscape, Scribus, Paint Shop Pro). It was also used for writing several video games.

Python is actively used by Google, Yahoo!, CERN and NASA. But it has problems with popularity, precisely with spreading. The reason is that it’s less simple than PHP. Working with Python you need to learn numerical libraries. So that’s why some people prefer choosing PHP instead of Python. But only the betrayed ones could explain why they choose Python, the answer is easy the development on Python is faster on 30% and his vulnerability consists only 0.67% against 36% of PHP.

Conclusion

PHP at first sight seems to be a leader in this so called comparison race. It’s simple, easy to learn and efficient for building small and middle size websites. Going further with analysis in terms of scalable large system it turns out that here Python will perform better than PHP. The reason is in readability that makes Python easier to maintain and extend. Besides, Python is object-oriented. PHP is not. Moreover, Google supports Python with its Google App Engine where web sites can be hosted on Google’s server for free. What concerns Perl, analysis showed that it’s simple programming language with cross platform running and open source modular architecture that provides to develop interesting things. If the task is to perform administration scripts Perl is much better to use here than PHP.

After the analysis it follows that the choice any of three P is a good choice. Also it means that for a certain purpose there is a right tool to choose. Besides the analysis showed that all three “P” have in common the following:

• are cross platform;
• have open source code;
• have well written documentation;
• have large user communities;
• extend libraries and big amount of code written;
• have high-level frameworks (PHP – Symfony, php.MVC; Python-Django, CherryPy, Pylons; Perl -Catalyst, CGI::Application, Gantry);

So I hope that summary based on technical analysis we made could help to make a right decision in future web projects you might have.

Thank you for your attention and if you have anything to add, please feel free to leave a comment.

 

Katerina Bulavskaya

Business Development Manager

 

altabel

Altabel Group

Professional Software Development

E-mail: contact@altabel.com
www.altabel.com

Not so long ago you could only develop on Objective-C (for iOS) or Java (for Android). Still recently a lot of new mobile app development frameworks have appeared and found their own niche on the market. I think, you have heard about such frameworks as PhoneGap, Sencha, jQTouch, jQuery Mobile, Kendo UI, Corona, Titanium Appcelerator, RubyMotion and many others that allow to create apps using Javascript, Java, Lua and Ruby.

So how do you define what framework to use? Below you could find a few tips that could help you to make a choice.

1) If you know programming
Of course most of the frameworks expect you to know programming. Still even if you don’t know programming there are a number of app builders that allow you to create complex apps in the “drag and drop” environment. In case you are dreaming about developing a game, so GameSalad will help you: it has an intuitive Drag and Drop UI which gives you the possibility to build apps without coding. If your intention is to develop a business app, so BiznessApps will let you build the app for many scenarios.

2) Create apps in a language you know
I suppose you all know that the “native” languages for iOS and Android are Objective-C and Java respectively. Even if you don’t know these languages, please don’t give up as you can create apps in a language that you know. In case you know Javascript, you can use Sencha Touch to build a HTML5 app and then compile it for iOS or Android native app using Phonegap J In case you know Lua, you can easily build a cross platform native game using Corona. In case you know Ruby, RubyMotion will help you to build an iOS app. In case you are master of Java but would like to make smth for iPhone, you can use trick with GWT-touch to create HTML5 app and then compile it using PhoneGap J.

3) How native or cross-platform do you want it?
Do you know that there is a kind of tradeoff that some of the frameworks make? For example, a HTML5 app build with the help of Sencha, jQtouch and GWT-touch could have almost native look and feel, but not 100% native of course. But if you use Titanium and Corona with native UI components, the apps will have 100% native look. The advantage of HTML5 apps is that they could be further compiled for more platforms. Plus they can also be deployed on the web without making any code changes.

4) If you are a web developer and want to continue using your old tools
Firstly, hello to web developers who are reading this article 🙂
Another advantage of these HTML5 apps is that a web developer already knows most of the technologies and has most of the tools available. For instance, if a web developer has to create an app using jQuery Mobile or Phonegap, he can use IDE which he has always been using, for debugging you are welcome to use Chrome Inspector or Firebug. If you still insist on using your trusty tools, go on with Sencha or jQuery Mobile.

5) If you select a frame by taking into consideration their “pros” or “cons”
In case you choose a framework based on “+” and “–“, so hope the following short list will be of use to you.

· jQuery Mobile

+ Great tools like Theme Roller and Codiqa UI builder;
+ View only framework (you can use whatever to handle the MC parts)
+ Based on jQuery;
+ Lots of plugins;
+ Most popular.

– Could be too heavy for some smartphones;
– No official paid support.

· Sencha Touch

+ Based on ExtJS;
+ Complete MVC framework;
+ Official paid support;
+ Sencha Architect is great.

– Some controls look off;
– No native controls;
– Performance;
– Few customization options;
– Client side DOM generation.

· Titanium

+ Rapid prototyping;
+ Web-oriented;
+ Well-known JavaScript for many developers;
+ It’s sross-platforming;
+ Native UI.

– Increasing complexity (and costs);
– No freemium;
– Flexibility limitations;
– Native UI*.
*The native UI is both an advantage and disadvantage. If your UI is simple enough, you may be able to use a single code base. But more than likely, you will need to tweak the UI for each platform to take full advantage of each platform.

· PhoneGap

+ Single code base for all platforms;
+ Rapid testing and deployment;
+ Multiply Platforms;
+ Access basic native functionality;
+ Offline usage.

– Poor performance;
– Lack pre-built UI widgets, transitions, standard controls;
– Access advanced native functionality;
– Complex Business Logic etc.

Make your right choice my dear readers 🙂

Hope this article was interesting and helpful to you. Should any questions or comments arise, you are welcome with them.

Elvira Golyak

Elvira Golyak
Elvira.Golyak@altabel.com
Skype ID: elviragolyak
Business Development Manager (LI page)
Altabel Group – Professional Software Development


%d bloggers like this: