Altabel Group's Blog

Posts Tagged ‘application

If you love beautiful code and believe that development must be enjoyable, you’ve come to the right place. Let me introduce you Laravel, a web application framework of new generation. Don’t be skeptical, because it deserves to be noticed.

Laravel has become one of the most popular PHP framework. Laravel has changed the way many people write PHP for the better. It is a powerful MVC PHP framework, designed for developers who need a simple and elegant toolkit to create beautiful web-apps using elegant and expressive syntax. Currently, it is the most starred PHP project on Github and a lot of companies (including Altabel Group) and people all over the world use it to build amazing applications. In 2015 sitepoint.com conducted a survey to find out the best PHP-framework for developers. Laravel won in nomination of Enterprise Level Framework and Personal Project Framework.
 

 
You are here because you want to start your project on Laravel, and don’t know what course to take, right? Let’s get started.
 
Backgroud

Every framework has its own version history – it’s being maintained and updated. So every new version brings new functionality, some functions are changed or deprecated.

Laravel was created by Taylor Otwell in 2011.

  • Laravel 1 was made available in June, 2011. It lacked support for controllers that prevented it from being a true MVC framework.
  • Three month later Laravel 2 was released, bringing various improvements from the author and community. As a result Laravel framework became fully MVC-compliant.
  • Laravel 3 was released in February 2012 with a set of new features including the command-line interface (CLI) named Artisan.
  • Laravel 4, codenamed Illuminate, was released in May 2013. Laravel 4 version was the one which brought big popularity to Laravel framework, but it’s not updated anymore, and also it lacks a lot of functions released in Laravel 5.

There is an important term – LTS version, which stands for Long Term Support. It means that bug fixing for that version is to be provided within 2 years, until the next LTS version is released. For non-LTS versions bug fixing will take only 6 months, unless it’s a security fix which is carried out within1 year after a release date.

The first version to have that status is Laravel 5.1 (June 2015). According to the roadmap released by framework author, there should be a new subversion every half-year: Laravel 5.4 – Winter 2016, Laravel 5.5 – Summer 2017.

It’s quite important to know which version you will be using for your projects. For new ones it’s not advised to use Laravel 4.x version – you should use Laravel 5.x, probably Laravel 5.3 as the newest version at the time of writing this.
 

 
Peculiarities

  • The Laravel framework has a few system requirements: PHP >= 5.6.4, OpenSSL PHP Extension, PDO PHP Extension, Mbstring PHP Extension, Tokenizer PHP Extension, XML PHP Extension. This whole component kit’s presented in Windows OpenServer. Also make sure you have installed Composer on your machine.
  • Here are the framework’s main features: bundles, eloquent ORM (object-relational mapping), query builder, application logic, reverse routing, restful controllers, class auto loading, view composers, blade templating engine, IoC containers, migrations, database seeding, unit testing, automatic pagination, form request.
  • Using Laravel you can complete massive common tasks such as database migrations, queuing, authentication, routing, sessions, and caching with simplicity.
  • Laravel has made processing with database very easy. It currently supports following databases – MySQL, Postgres, SQLite, SQL Server.

If you are familiar with HTML, Core PHP and Advanced PHP; Laravel will make your task easier. It will save you lots of time when you are developing a website from scratch. The website built in Laravel is also secure. It prevents the various attacks that can take place on websites.

Laravel offers a robust set of tools and an application architecture that incorporates many of the best features of frameworks like CodeIgniter, Yii, ASP.NET MVC, Ruby on Rails, Sinatra, and others. Laravel is built using Symfony, Doctrine, Faker, Carbon and other libraries. All of these components work flawlessly with Laravel.
 
“Pros”

1. Flexibility – there are many ways to complete one task.
2. Excellence – Laravel is the result of a long-term commitment to excellence, best practices, use of solid design principles, and the steady vision of the Taylor Otwell.
3. Evolution – each new Laravel version brings us more and more the new features which are worth trying.
4. Documentation – Laravel has beautifully written and comprehensive documentation. The Laravel forum also has many answers to common problems.
5. Official Packages – The Laravel framework has a number of extremely useful packages that we can add via composer that extend the framework.
 
“Cons”

Everything has its failings. And Laravel is not an exception.

1. Syntactic sugar – there is too much syntactic sugar in Laravel. Often you can face difficulties trying to maintain a unique build for your project code.
2. Juniors – Laravel attracts lots of newbies who can’t even cope with essentialities: framework documentation, composer and automatic loader.
3. Taylor Otwell – Why? Is it a real minus? Taylor alone determines framework future, e.g. he’s closed issues on Github, or he demands from developers to describe bugs through pull request, and so on. Yes, it’s okay from one side. But from the other – it’s not an open source.
 
Community resources

The Laravel community is growing fast and there are a lot of support and learning resources available.

Documentation for the framework can be found on the Laravel website. The documentation is very detailed and there is a large community based around Laravel. Some of the notable community resources are Laracasts, Forums, Podcasts, Jobs, Laravel News and Laracon.

Laracast
  • Laracasts. Laracasts is a paid video site, with numerous series that contain programming lessons on Laravel, PHP, Javascript and more. Jeffery Way does a fantastic job of explaining how things work and the concepts and design patterns that fuel the Laravel framework. Laracasts is a huge plus for Laravel. And having this resource available is another reason to love the framework.
  • Forums. It’s the most common way to find an answer to about any problem.
  • Podcast. You generally get a behind the scenes look at what’s coming down the road.
  • Laracon. Laracon is a conference centered around the Laravel framework, covering its development, uses, and related general software development practices. Laracons are taking place in both United States and Europe, organized primarily by UserScape with additional help provided by a number of sponsors.
  • I recommend to anyone who wishes to learn the framework to get acquainted with above mentioned resources. It’s worth your time to do it.
     
    Conclusion

    I hope that this little introduction to the world of Laravel has shed some light and help you get some insights about it.

    Laravel is an awesome framework to work with. It focuses on simplicity, clarity and getting work done. It’s designed to help you get started on building your own apps with Laravel. And Altabel Group will be happy to assist you with it. Remember, coding with Laravel is coding with elegance.

    If you have any questions or comments, be sure to post them below and I’ll do my best to answer them!

    Thank you for reading.

     

    Victoria Sazonchik

    Victoria Sazonchik

    Business Development Manager

    E-mail: victoria.sazonchik@altabel.com
    Skype: victoria_sazonchik
    LI Profile: Victoria Sazonchik

     

    altabel

    Altabel Group

    Professional Software Development

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

cog

If you are a techie person, you, of course, know the tradition to write a little program to print the text “Hello, world!” to the screen when learning a new language. So today I would like to say “Hello, Rust!” to relatively new system programming language that runs blazingly fast, prevents segmentation faults, and guarantees thread safety.

Rust gives many of the same benefits as traditional systems languages while being highly reliable, more approachable, safer and often more productive.

Although Rust development is sponsored by Mozilla, it is an open community project that strives to be a warm, welcoming and inclusive network of people, who act together to build something awesome. Today, Rust has a worldwide audience with its users in Europe, Japan and Australia. And what is more, Rust jumped to the first place in Stack Overflow annual survey for being Most Loved Programming Language of 2016.

Now we’ll go a little bit deeper into Rust and find out why this programming language grows in popularity and stays focused on three main goals: safety, speed and concurrency.

History

Mozilla employee Graydon Hoare started developing Rust as a personal project in 2006. In 2009 Mozilla began sponsoring the project. In 2010 Rust was officially announced on Mozilla Summit 2010. After several years of active development the first stable version (Rust 1.0) was released on May 15, 2015. Thereafter the release of new version is available every six weeks.

Nowadays we see more companies dealing with Rust. Each one has its own reason to do this.

  • Mozilla. The company has developed Rust code to replace the C++ code that currently handles complex media formats.
  • Dropbox. While much of Dropbox’s back-end infrastructure is historically written in Go, some key components were rewrote in Rust.

Aside from above mentioned tech giants, the other companies that use Rust in production are Skylight, Terminal and MaidSafe.

Peculiarities

Let’s review how Rust can solve the problems and what type of solutions best flow from it.

  • The goal of Rust is to be a safe language that means ‘doesn’t do anything unsafe’.
  • Rust lets us control the costs and guarantees of a program. Rust is a compiled language. Its compiler adheres to strict safety rules, thanks to which additional costs for code execution are missed. As a result of that it’s needed minimum time for implementation or in some cases this time isn’t required at all. So Rust can be used in a real time mode or as an add-in project.
  • There are only two kinds of statements in Rust: ‘declaration statements’ and ‘expression statements’ and everything else is an expression. So Rust is primarily an expression-based language.
  • It is also important to have a well-defined interface, so that some of your functionality is private, and some is public. To facilitate these kinds of things, Rust has a module system.
  • Like most programming languages, Rust encourages the programmer to handle errors in a particular way. That’s why return values are responsible for error handling here.
  • If you know C, C++ or even Java, you will become familiar with the language without any problems.
  • The Rust project uses a concept called ‘release channels’ to manage releases. It’s important to understand this process to choose which version of Rust (Nightly, Beta or Stable) your project should use. New ‘Nightly’ releases are created once a day. Every six weeks, the latest ‘Nightly’ release is promoted to ‘Beta’. Six weeks later, the ‘Beta’ is promoted to ‘Stable’, and becomes the next release of 1.x. Generally speaking, unless you have a specific reason, you should use the stable release channel. These releases are intended for a general audience.
  • Rust is a good solution for: middle and large-size developers team; long-term usage in production; a code with regular support and/or refactor; a great number of existed unit-tests.

Rust was developed with aim to work on various programming platforms. And now it operates on Linux, Mac OS X, Windows, FreeBSD, Android, и iOS. Thanks to Rust wide functionality this language can be used for diverse tasks, such as:

  • front-end applications and interfaces;
  • device driver, games and signal handlers;
  • server-side applications;
  • real-time mode systems (e.g. operating system kernel);
  • embedded systems;
  • robotechnics;
  • web-frameworks;
  • large-scale, highly-productive, resource-intensive and complex software systems.

What’s the difference between Rust programming language and the other ones?

1) Rust is a safe alternative to C++ to make systems programmers more productive, mission-critical software less prone to memory exploits, and parallel algorithms more tractable.
2) The syntax of Rust is similar to C and C++. But despite the syntactic similarity, Rust is semantically very different from C and C++.
3) Rust object orientation isn’t as obvious and advanced as in Java, C#, and Python. Since Rust has no classes.
4) Rust’s more sophisticated than Go. In comparison with Go, Rust gives you larger control over memory and resources. This equates to writing code on a lower level.
5) Swift and Rust are both considered as substitution of C, C++ and ObjectiveC. Swift developers spend more time to make the code readable adding majority of syntactic sugar into the language. While Rust is more distant, it deals with minimum things.

Let’s observe how the competition of mentioned above languages can improve technical picture in the future. And we hope it will do a power of good.

Minuses

It’s impossible to imagine any programming language without drawbacks. If it was so, we’d live in an ideal world. So, let’s back to reality and quickly determine the gaps in Rust.

  • Rust cannot prevent all kinds of software problems. Buggy code can and will be written in Rust. These things aren’t great, but they don’t qualify as unsafe specifically.
  • As a systems language, Rust operates at a low level. If you’re coming from a high-level language, there are some aspects of systems programming that you may not be familiar with.
  • It’s a pretty new language. So using it in development still brings the risk that Rust won’t survive for long and in a few years you need to rewrite it.
  • Considering the previous point, Rust tutorials are quite poor. But Rust’s still a comprehensive language. You can’t become familiar with it quickly and start writing professional code in just several weeks. It’s often needed to peruse RFC, blogs and even GitHub comments to find out necessary information. And still there is no dead certainty in it.
  • Rust isn’t as fast from the beginning as it is often told to be. You can write a fast code, but this still needs good optimization of your algorithms and program structure.
  • Rust compiler is rather strict. People call it a disciplinary language. Everything that isn’t obvious for Rust compiler you should specify on your own. Interestingly enough, when start coding with Rust you can be not aware of your intentions at all. So this learning barrier (altogether with the other ones) leads to the fact that the first Rust impression turns out to be frustrating.

Updates

And yet Rust itself hasn’t been standing still. So I’m pleased to mark an important milestone: with Firefox 48, Mozilla’s shipped its first Rust component to all desktop platforms in August, 2. Ralph Giles and Matthew Gregan implemented the component. For the Rust community as well, this is a real achievement: Rust code shipping to hundreds of millions of Firefox users. Seeing Rust code ships in production at Mozilla feels like the culmination of a long journey. But this is only the first step for Mozilla. For instance, Android support’s coming soon. And more to come! The latest ‘Stable’ version of Rust, 1.11 was announced in August 18, 2016.

There’s a lot more to say about what’s happened and what’s coming up in the Rust world. I however tried to dwell on the most essential and valuable details.

Now that you have Rust introduced, Altabel Group will help you start your first Rust project. And I personally would encourage you to play with this programming language. It’s a great time to get started, and increasingly, to get involved with something safe, speed and concurrent.

So are you ready to give Rust a try? We’d love to hear your comments!

 

Victoria Sazonchik

Victoria Sazonchik

Business Development Manager

E-mail: victoria.sazonchik@altabel.com
Skype: victoria_sazonchik
LI Profile: Victoria Sazonchik

 

altabel

Altabel Group

Professional Software Development

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

As the Internet of Things begins to revolutionize businesses, economies and our society, IoT platforms are coming up being the core basis in the overall IoT infrastructure. IoT platforms, in simple words, are just about connecting the sensors to data networks and integrating with back-end applications to provide insight into huge volumes of data.

However developing for the Internet of Things is a complicated undertaking, and almost nobody chooses to do it from scratch. IoT data platforms provide a starting point by integrating many of the tools needed to operate a deployment from device control to data prediction and grasp into one service. Ready-built IoT platforms can meet the needs of any company and smoothly accommodate constant growth and change. In the light of the possibilities offered by IoT, many high tech companies started taking advantage of it. For the time being there are more than 300 hundred various IoT platforms on the market and the number is continuing to grow. So, let’s see what features of IoT platforms take into consideration while choosing one for your business.

Before selecting an appropriate solution which may be suitable for your organization, you must determine:

1. Three different types of IoT platforms. Here they are listed from most complex to least complex:

  • Application enablement and development (AEP/ADP): This encompasses platforms that offer modules, widget-based frameworks or templates for producing (with minimal or no coding) actual end-user applications. These platforms are capable of turning data into either intelligence or action very quickly. The vivid examples of such platforms are Oracle, ThingWorx and etc.
  • Network/Data, and subscriber management (NM): In the wireless carrier and mobile virtual network operator (MVNO) space, this kind of platforms try to streamline connecting cellular M2M data, so you don’t have to build much of the data infrastructure behind it. For instance Cisco and Aeris do network management as well as device management, while Jasper and Wyless do more sheer network management.
  • Device management (DM): These platforms are more about monitoring device statuses, troubleshooting issues, configuring embedded device settings and administrating the provisioning and health of the endpoints. Usually in the IoT space this fairly elementary software is provided by hardware vendors. Like both Digi and Intel provide pure device cloud management.

While these platforms can be found as distinct standalone products, it is becoming increasingly common to find vendors that combine two or all three types in a single offering.

2. Implementation, integration support and device management. Device management is one of the most significant features expected from any IoT software platform. The IoT platform should maintain a number of devices connected to it and track their proper operation status; it should be able to handle configuration, firmware (or any other software) updates and provide device level error reporting and error handling. Ultimately, users of the devices should be able to get individual device level statistics.

To make implementation smooth, the provider should possess convincing manuals, blogs and feasibly lively developer-community around the IoT platform.

Support for integration is another vital feature expected from an IoT software platform. The API should provide the access to the important operations and data that needs to be disclosed from the IoT platform. It’s typical to use REST APIs to achieve this aim.

3. Comprehensive Information Security. There are four main technological building blocks of IoT: hardware, communication, software backend and applications. It’s essential that for all these blocks security is a must-have element. To prevent the vulnerabilities on all levels, the IoT infrastructure has to be holistically designed. On the whole, the network connection between the IoT devices and the IoT software platform would need to be encrypted and protected with a strong encryption mechanism to avoid potential attacks. By means of separation of IoT traffic into private networks, strong information security at the cloud application level, requiring regular password updates and supporting updateable firmware by way of authentication, signed software updates and so on can be pursued to enhance the level of security present in an IoT software platform. Nonetheless while security ought to be scalable, it is unfortunately usually a trade-off with convenience, quick workflows and project cost.

4. Flexible Database. There are four major “V” for databases in IoT space:

  • Volume (the database should be able to store massive amount of generated data)
  • Variety (the database should be able to handle different kind of data produced by various devices and sensors)
  • Velocity (the database should be able to make instant decisions while analyzing streaming data)
  • Veracity ( the database should be able to deal with ambiguous data in some cases produced by sensors)

Therefore an IoT platform usually comes with a cloud-based database solution, which is distributed across various sensor nodes.

5. Data analytics.

A lot of IoT cases go beyond just action management and require complicated analytics in order to get the most out of the IoT data-stream. There are four types of analytics which can be conducted on IoT data:

  • Real-time analytics (on the fly analysis of data),
  • Batch analytics (runs operations on an accumulated set of data),
  • Predictive analytics (makes predictions based on different statistical and machine learning technologies)
  • Interactive analytics (runs numerous exploratory analysis on either streaming or batch data)

While choosing the right IoT platform, it’s better to keep in mind that the analytics engine should comprise all dynamic calculations of sensor data, starting from basic data clustering to complex machine learning.

6. Pricing and the budget. The IoT platform market features a diversity of pricing methodologies underlying various business strategies. And sometimes providers’ costs aren’t always transparent. Thus it’s very important to check out all the nuances of your provider’s pricing pattern, so you are not plainly bought into introductory teaser rates or into the prices for the base model.

Further you should bear in mind that you licensing cost for the chosen platform is just the beginning. The major expense can turn out to be the integration itself, as well as hiring consultants (if you are not able to do it on your own) to support the system.

Therefore, it’s extremely vital to brainstorm what your entire IoT system will look like at scale and choose which features are most critical to you chiefly — and only afterwards decide what sort of platform you need.

A lot of companies do this backward. They get the IoT platform and believe they’re getting the complete necessary solution—then realize the mistake half a year into development. Thus it’s critical to be aware of this before you get started.

Also it should be mentioned that some companies don’t use IoT platforms—they’re developing their own platforms in-house. Yet, depending on how you want to go to market, it may be clever to research pre-built options. Depending on your situation, you may save a lot of time and money by partnering with one of these platforms.

Have you ever faced the difficulties of choosing the IoT platform for your business? If yes, can you please let me know what kind of difficulties? And what do you think is it better to use a ready-built IoT platform or develop your own from the scratch? Looking forward to getting your ideas and comments.

 

Anastasiya Zakharchuk

Anastasiya Zakharchuk

Business Development Manager

E-mail: anastasiya.presnetsova@altabel.com
Skype: azakharchuk1
LI Profile: Anastasiya Zakharchuk

 

altabel

Altabel Group

Professional Software Development

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

Programming cells may soon become as easy as programming a computer. Just as computer software designers create programming for computers, scientists have created a programming language that allows them to design DNA-encoded circuits that can give new function to living cells.

Using this language, anyone can write a program for the function they want, such as detecting and responding to certain environmental conditions. They can then generate a DNA sequence that will achieve it.

“It is literally a programming language for bacteria,” says Christopher Voigt, an MIT professor of biological engineering. “You use a text-based language, just like you’re programming a computer. Then you take that text and you compile it and it turns it into a DNA sequence that you put into the cell, and the circuit runs inside the cell.”

In the new software — called Cello — a user first specifies the kind of cell they are using and what they want it to do: for example, sense metabolic conditions in the gut and produce a drug in response. They type in commands to explain how these inputs and outputs should be logically connected, using a computing language called Verilog that electrical engineers have long relied on to design silicon circuits. Finally, Cello translates this information to design a DNA sequence that, when put into a cell, will execute the demands.

dna

The good thing about it is that it’s very simple, without many of the intricacies often encountered in programming.

“You could be completely naive as to how any of it works. That’s what’s really different about this,” Voigt says. “You could be a student in high school and go onto the Web-based server and type out the program you want, and it spits back the DNA sequence.”

For now, all these features have been customized for the E. coli bacteria, one of the most common in studies, but researchers are working on expanding the language to other strands of bacteria.

Using this language, they’ve already programmed 60 circuits with different functions, and 45 of them worked correctly the first time they were tested – which is a remarkable achievement. The circuits were also strikingly fast, and the whole process promises to revolutionize DNA engineering. Before, it could take months or years to design such a circuit. Now, it can be done in less than a day.

Dr. Voigt’s team plans to work on several different applications using this approach — bacteria that can be swallowed to aid in digestion of lactose; bacteria that can live on plant roots and produce insecticide if they sense the plant is under attack; and yeast that can be engineered to shut off when they are producing too many toxic byproducts in a fermentation reactor.

What do you think about this rapidly developing revolutionary computer industry? Can it replace drugs and medicine in future? Can it help to cure cancer and AIDS? Will it make a living cell immortal?

Please feel free to share with us your opinion and thoughts here below.

 

Kate Kviatkovskaya

Kate Kviatkovskaya

Business Development Manager

E-mail: Kate.Kviatkovskaya@altabel.com
Skype: kate.kviatkovskaya
LI Profile: Kate Kviatkovskaya

 

altabel

Altabel Group

Professional Software Development

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

We are often asked about which iOS game engine to use. It is believed that most companies are looking for a free game engine so here is a comparison of the different open source iPhone game engines that actually have apps out there.  Also these game engines now support the iPad.

Sparrow Framework

The Sparrow Framework is a very lightweight 2D game engine created in Objective-C.

It was built from ground up for iPhone, iPad and iPod Touch. You can easily integrate it with your existing UIKit apps, access all iOS APIs directly and benefit from native performance.

If you have already worked with Adobe Flash or Starling, you will feel right at home: Sparrow uses the same concepts and naming schemes. Even if you’re coming from a different background, you’ll get the hang of it quickly, because everything is designed to be as intuitive and easy to use as possible.

The game framework includes all the necessary features you’d require for creating a basic 2D game such as easy animation, and a sound engine.

Cocos2D IPhone

The Cocos2D iPhone game engine is a port of a game engine originally created in Python and converted to iPhone Objective-C.  As you can tell from the name, Cocos2D is designed for 2D games, that being said, although the engine is in a 2D world, the engine includes a growing collection of high quality 3D special effects.  Cocos2D has also been released on the Mac so you can ease the release on 2 platforms.

Cocos2D is the first engine to check out, while many may be turned off by the engine not supporting a 3d world, if you look at most of the top iPhone games the gameplay is 2D, in fact the iPhone’s touch screen controls can make it difficult to operate in a 3D world.

The engine provides more examples than any of the other engines out there because of the large community.

iSGL3D

iSGL3D (iOS Scene Graph Library) is a 3D framework for the iPhone, iPad and iPod Touch written in Objective-C, enabling the creativity of developers to flourish in a 3D world without the complexities of OpenGL.

With its rich set of features, iSGL3D provides the necessary tools to develop 3D applications in an incredibly short time frame, even with a minimum of experience in 3D graphics. The principal behind iSGL3D is to make construction and manipulation of 3D scenes as simple as possible for a developer.

With a single line of code you can add a 3D object whether it is a simple primitive, a sprite (or particle) or your own imported asset. Properties on these objects allow you to modify their appearance, position, rotation and more very simply. You can add containers too to group objects and manipulate them together. In a short period of time you can build up a complex 3D scene.

Moai SDK

The Moai SDK is an open source 2D game engine. It designed more for people who know what they’re doing. While it includes the ability to start developing a game immediately from a downloadable binary, it only supports using the FreeGLUT library on the desktop. It is designed in such a way that it expects the developer to be able to create the windowing system themselves.

The main language used with Moai is Lua. Most of the time you shouldn’t need to use C++ to extend the base engine, but the capability to do so is there. The documentation for the Lua codebase is kind of weak however, so you should be ready to do some searching to find out how to use various capabilities. You can create your games with Moai on both Windows (Visual Studio) and Mac (Xcode).  In order to
submit your games to the iOS app store you will need to do so with a Mac.

Oolong Engine

The Oolong Engine is written in C++ with some help from Objective-C. It will help you to create new games and port existing games to the iPhone, the iPod touch and the iPad.

Oolong provides support for a wide variety of features and provides excellent performance.

Haxe

Haxe is a multi-platform language that most notably compiles to SWF and has been used in many Flash games.

Galaxy Game Engine

The Galaxy Game Engine is a very promising engine with an extensive feature set. This is a BSD licensed 3D engine that includes some very useful tools such as a level editor, terrain editor, model viewer, particle editor, and shader IDE.

Sure, we may make this list longer, but let me stop here. The most important thing, which I’d like to notice, is that you should select the engine which fits your project needs and suits your purposes in the best way.

And what do you think? To what engine would you give your preference?

Feel free to share with us your thoughts!

mk

Marina Karabanova
Marina.Karabanova@altabel.com
Skype ID: m.karabanova
Business Development Manager (LI page)
Altabel Group – Professional Software Development

There are many opinions about Google’s new privacy policy among bloggers, journalists and friends. After studying all of them I have some questions left: Is Google’s new strategy of replacing separate policies for each application with one shorter policy — one which allows them to share our data across all those applications with no way to opt out short of pulling out of Google’s ecosystem completely — simply a matter of adding user (and vendor) convenience, or a gross violation of our privacy? And if the latter, is it so egregious that those of us who are invested in that ecosystem should consider pulling out?

This last option — which is currently the only one available to those who truly object to Google’s new policy — could be very difficult, especially for Android users. And most especially for those who have recently invested in Samsung’s Galaxy Nexus Smartphone, which is pretty much useless outside of the Google net verse.
I must admit, the idea of being completely unable to opt out of specific privacy issues has me very troubled. My immediate reaction is to read Google’s policies, check out some of the more knowledgeable commentators on the subject, and if I find that I do agree with those privacy activists who believe that Google has stepped too far over the line, to join those hoping to pressure the company to alter its new policy.

Google’s new Privacy Policy will go into effect on March 1, 2012. It specifies what information Google collects, how it uses that information, the control users have over their information, accessing and updating personal information, and which information Google will share. The only applications that will not be part of this policy are Chrome and Chrome OS, Books and Wallet.

Google Terms of Service, which will also go into effect on March 1, 2012, includes the clause “Google’s privacy policies explain how we treat your personal data and protect your privacy when you use our Services. By using our Services, you agree that Google can use such data in accordance with our privacy policies.” There is a general explanation of Google’s policies and principles. The latter states explicitly, “If you continue to use Google services after March 1, you’ll be doing so under the new Privacy Policy and Terms of Service.”

Google’s applications and products have become an important resource for a large number of people. Their new policy has just been announced, and has over a month to be put into effect. Things can go several ways at this point: Google could simply stick to its guns and hope that the resulting fallout will only be a bit of bad publicity and a relatively few lost users. But if enough Google users become uneasy, Google could back off (the way Facebook has several times over the last few years), at least in it’s “all or nothing” opt-out policy. It will be interesting to watch.

Best Regards,

Kristina Kozlova

Marketing Manager

 

altabel

Altabel Group

Professional Software Development

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

It’s well known that Android is fragmented or, as Google CEO Eric Schmidt contends, “Differentiated.” In a bid to codify design principles for the operating system’s look and feel, Google unveiled Android Design at CES 2012.

This website seeks to help app developers create apps with a more uniform look and feel for Android 4.0, also known as “Ice Cream Sandwich.”
“[Google] definitely wants to have a uniform look. They never have provided a style guide before,” Melissa Skrbic-Huss, creative lead at Amadeus Consulting, told LinuxInsider.
“This is Google’s attempt to try and rein in the craziness of how Android apps look,” said Al Hilwa, a research program director at IDC.
The major issue with Android’s fragmentation “is the loss of brand identity,” he told LinuxInsider. “If you call a device an Android device, what does that mean?”

The Android Design website goes into great detail. Among other things, it spells out Google’s creative vision, design principles, style, themes, typography, patterns, gestures, building blocks, and switches and dialogs.
Google has three overarching design goals for its core apps and the Android OS at large.
One is that apps should be sleek and aesthetically pleasing on multiple levels, with crisp, meaningful layout and typography, and clear, fast transitions. The experience should be “magical,” Google said.
The second is that the apps should be intuitive and easy to use, without overwhelming users with too many choices.
Third, the apps should empower people to try new things and use the apps in inventive new ways while feeling personal.

The Android Guide is Google’s attempt to inject a level of standardization in Android’s look and feel. Google is probably trying to resolve some of developers’ complaints about Android.
Developers have to worry about differences in the UI of different versions of Android, differences in hardware specs, and differences in the versions of Android that run on various hardware platforms, Simon Khalaf, president and CEO of Flurry, told LinuxInsider.
“Software and applications are the fuel of an ecosystem, and software developers make that fuel,” he pointed out.
Fragmentation enabled the rapid pace of R&D development — “a key factor in Android’s success,” according to Hilwa — but the problems with the OS “will become more prominent to the extent that the market matures and the growth rates flatten.”
Schmidt’s discussion of fragmentation “is evidence that it’s an issue for the brand and the platform,” he argued.

Kind Regards,
Lina Deveikyte
Altabel Group – Professional Software Development


%d bloggers like this: