Altabel Group's Blog

Posts Tagged ‘development

The big languages are popular for a reason: They offer a huge foundation of open source code, libraries, and frameworks that make finishing the job easier. Sometimes the vast resources of the popular, mainstream programming languages aren’t enough to solve your particular problem. Sometimes you have to look beyond the obvious to find the right language, where the right structure makes the difference while offering that extra feature to help your code run significantly faster without endless tweaking and optimizing. This language produces vastly more stable and accurate code because it prevents you from programming sloppy or wrong code.

The world is filled with thousands of clever languages that aren’t C#, Java, or JavaScript. Some are treasured by only a few, but many have flourishing communities connected by a common love for the language’s facility in solving certain problems. There may not be tens of millions of programmers, who know the syntax, but sometimes there is value in doing things a little different, as experimenting with any new language can pay significant dividends on future projects.

The following six languages should be on every programmer’s radar. They may not be the best for every job — many are aimed at specialized tasks. But they all offer upsides that are worth investigating and investing in. There may be a day when one of these languages proves to be exactly what your project — or boss — needs.

Erlang: Functional programming for real-time systems

Erlang’s secret is the functional paradigm. Most of the code is forced to operate in its own little world where it can’t corrupt the rest of the system through side effects. The functions do all their work internally, running in little “processes” that act like sandboxes and only talk to each other through mail messages. You can’t merely grab a pointer and make a quick change to the state anywhere in the stack. You have to stay inside the call hierarchy. It may require a bit more thought, but mistakes are less likely to propagate.

The model also makes it simpler for runtime code to determine what can run at the same time. With concurrency so easy to detect, the runtime scheduler can take advantage of the very low overhead in setting up and ripping down a process. Erlang fans like to flourish about running 20 million “processes” at the same time on a Web server.

If you’re building a real-time system with no room for dropped data, such as a billing system for a mobile phone switch, then check out Erlang.

Go: Simple and dynamic

Google wasn’t the first organization to survey the collection of languages, only to find them cluttered, complex, and often slow. In 2009, the company released its solution: a statically typed language that looks like C but includes background intelligence to save programmers from having to specify types and juggle malloc calls. With Go, programmers can have the terseness and structure of compiled C, along with the ease of using a dynamic script language.

While Sun and Apple followed a similar path in creating Java and Swift, respectively, Google made one significantly different decision with Go: The language’s creators wanted to keep Go “simple enough to hold in one programmer’s head.Thus, there are few zippy extras like generics, type inheritance, or assertions, only clean, simple blocks of if-then-else code manipulating strings, arrays, and hash tables.

The language is reportedly well-established inside of Google’s vast empire and is gaining acceptance in other places where dynamic-language lovers of Python and Ruby can be coaxed into accepting some of the rigor that comes from a compiled language.

If you’re a startup trying to catch Google’s eye and need to build some server-side business logic, Go is a great place to start.

Groovy: Scripting goodness for Java

The Java world is surprisingly flexible. Say what you will about its belts-and-suspenders approach, like specifying the type for every variable, ending every line with a semicolon, and writing access methods for classes that simply return the value. But it looked at the dynamic languages gaining traction and built its own version that’s tightly integrated with Java.

Groovy offers programmers the ability to toss aside all the humdrum conventions of brackets and semicolons, to write simpler programs that can leverage all that existing Java code. Everything runs on the JVM. Not only that, everything links tightly to Java JARs, so you can enjoy your existing code. The Groovy code runs like a dynamically typed scripting language with full access to the data in statically typed Java objects. Groovy programmers think they have the best of both worlds. There’s all of the immense power of the Java code base with all of the fun of using closures, operator overloading, and polymorphic iteration.

Finally, all of the Java programmers who’ve envied the simplicity of dynamic languages can join the party without leaving the realm of Java.

CoffeeScript: JavaScript made clean and simple

Technically, CoffeeScript isn’t a language. It’s a preprocessor that converts what you write into JavaScript. But it looks different because it’s missing plenty of the punctuation. You might think it is Ruby or Python, though the guts behave like JavaScript.

CoffeeScript began when semicolon haters were forced to program in JavaScript because that was what Web browsers spoke. Changing the way the Web works would have been an overwhelming task, so they wrote their own preprocessor instead. The result? Programmers can write cleaner code and let CoffeeScript turn it back into the punctuation-heavy JavaScript Web browsers demand.

Missing semicolons are only the beginning. With CoffeeScript, you can define a function without typing function or wrapping it in curly brackets. In fact, curly brackets are pretty much nonexistent in CoffeeScript. The code is so much more concise that it looks like a modernist building compared to a Gothic cathedral. This is why many of the newest JavaScript frameworks are often written in CoffeeScript and compiled.

Haskell: Functional programming, pure and simple

For more than 20 years, the academics working on functional programming have been actively developing Haskell, a language designed to encapsulate their ideas about the evils of side effects. It is one of the purer expressions of the functional programming ideal, with a careful mechanism for handling I/O channels and other unavoidable side effects. The rest of the code, though, should be perfectly functional.

The community is very active, with more than a dozen variants of Haskell waiting for you to explore. Some are stand-alone, and others are integrated with more mainstream efforts like Java (Jaskell, Frege) or Python (Scotch). Most of the names seem to be references to Scotland, a hotbed of Haskell research, or philosopher/logicians who form the intellectual provenance for many of the ideas expressed in Haskell. If you believe that your data structures will be complex and full of many types, Haskell will help you keep them straight.

Julia: Bringing speed to Python land

The world of scientific programming is filled with Python lovers who enjoy the simple syntax and the freedom to avoid thinking of gnarly details like pointers and bytes. For all its strengths, however, Python is often maddeningly slow, which can be a problem if you’re crunching large data sets as is common in the world of scientific computing. To speed up matters, many scientists turn to writing the most important routines at the core in C, which is much faster. But that saddles them with software written in two languages and is thus much harder to revise, fix, or extend.

Julia is a solution to this complexity. Its creators took the clean syntax adored by Python programmers and tweaked it so that the code can be compiled in the background. That way, you can set up a notebook or an interactive session like with Python, but any code you create will be compiled immediately.

The guts of Julia are fascinating. They provide a powerful type inference engine that can help ensure faster code. If you enjoy metaprogramming, the language is flexible enough to be extended. The most valuable additions, however, may be Julia’s simple mechanisms for distributing parallel algorithms across a cluster. A number of serious libraries already tackle many of the most common numerical algorithms for data analysis.

The best news, though, may be the high speeds. Many basic benchmarks run 30 times faster than Python and often run a bit faster than C code. If you have too much data but enjoy Python’s syntax, Julia is the next language to learn.

Polina Mikhan

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

 

The infrastructure-as-a-service (IaaS) market has exploded in recent years. Google stepped into the fold of IaaS providers, somewhat under the radar. The Google Cloud Platform is a group of cloud computing tools for developers to build and host web applications.

It started with services such as the Google App Engine and quickly evolved to include many other tools and services. While the Google Cloud Platform was initially met with criticism of its lack of support for some key programming languages, it has added new features and support that make it a contender in the space.

Here’s what you need to know about the Google Cloud Platform.

1. Pricing

Google recently shifted its pricing model to include sustained-use discounts and per-minute billing. Billings starts with a 10-minute minimum and bills per minute for the following time. Sustained-use discounts begin after a particular instance is used for more than 25% of a month. Users receive a discount for each incremental minute used after they reach the 25% mark.

2. Cloud Debugger

The Cloud Debugger gives developers the option to assess and debug code in production. Developers can set a watchpoint on a line of code, and any time a server request hits that line of code, they will get all of the variables and parameters of that code. According to Google blog post, there is no overhead to run it and “when a watchpoint is hit very little noticeable performance impact is seen by your users.”

3. Cloud Trace

Cloud Trace lets you quickly figure out what is causing a performance bottleneck and fix it. The base value add is that it shows you how much time your product is spending processing certain requests. Users can also get a report that compares performances across releases.

4. Cloud Save

The Cloud Save API was announced at the 2014 Google I/O developers conference by Greg DeMichillie, the director of product management on the Google Cloud Platform. Cloud Save is a feature that lets you “save and retrieve per user information.” It also allows cloud-stored data to be synchronized across devices.

5. Hosting

The Cloud Platform offers two hosting options: the App Engine, which is their Platform-as-a-Service and Compute Engine as an Infrastructure-as-a-Service. In the standard App Engine hosting environment, Google manages all of the components outside of your application code.

The Cloud Platform also offers managed VM environments that blend the auto-management of App Engine, with the flexibility of Compute Engine VMs.The managed VM environment also gives users the ability to add third-party frameworks and libraries to their applications.

6. Andromeda

Google Cloud Platform networking tools and services are all based on Andromeda, Google’s network virtualization stack. Having access to the full stack allows Google to create end-to-end solutions without compromising functionality based on available insertion points or existing software.

According to a Google blog post, “Andromeda is a Software Defined Networking (SDN)-based substrate for our network virtualization efforts. It is the orchestration point for provisioning, configuring, and managing virtual networks and in-network packet processing.”

7. Containers

Containers are especially useful in a PaaS situation because they assist in speeding deployment and scaling apps. For those looking for container management in regards to virtualization on the Cloud Platform, Google offers its open source container scheduler known as Kubernetes. Think of it as a Container-as-a-Service solution, providing management for Docker containers.

8. Big Data

The Google Cloud Platform offers a full big data solution, but there are two unique tools for big data processing and analysis on Google Cloud Platform. First, BigQuery allows users to run SQL-like queries on terabytes of data. Plus, you can load your data in bulk directly from your Google Cloud Storage.

The second tool is Google Cloud Dataflow. Also announced at I/O, Google Cloud Dataflow allows you to create, monitor, and glean insights from a data processing pipeline. It evolved from Google’s MapReduce.

9. Maintenance

Google does routine testing and regularly send patches, but it also sets all virtual machines to live migrate away from maintenance as it is being performed.

“Compute Engine automatically migrates your running instance. The migration process will impact guest performance to some degree but your instance remains online throughout the migration process. The exact guest performance impact and duration depend on many factors, but it is expected most applications and workloads will not notice,” the Google developer website said.

VMs can also be set to shut down cleanly and reopen away from the maintenance event.

10. Load balancing

In June, Google announced the Cloud Platform HTTP Load Balancing to balance the traffic of multiple compute instances across different geographic regions.

“It uses network proximity and backend capacity information to optimize the path between your users and your instances, and improves latency by connecting users to the closest Cloud Platform location. If your instances in one region are under heavy load or become unreachable, HTTP load balancing intelligently directs new requests to your available instances in a nearby region,” a Google blog post said.

Taken from TechRepublic

Lina Deveikyte

Lina Deveikyte
Lina.Deveikyte@altabel.com 
Skype ID: lina_deveikyte
Marketing Manager (LI page)
Altabel Group – Professional Software Development

The digital age has changed customer behavior forever. They have no patience with 9 to 5 and they’re shredding the concept of after-hours and weekends. They have a voice, and that voice demands to be heard whenever, wherever.

Working hours, what’s that?

Banks—previously such strict observers of “working hours” all over the globe—have risen to the challenge by embracing technology. Net banking and ATMs have virtually done away with the need to visit those hallowed brick-and-mortar portals. Mobile payments are being made directly from person to person, minimizing the need for even small amounts of cash. While this is great news for all of us as individuals, the risk for the bank is that it becomes a marginal player in the life of the valued customer.

Let’s take a look at E-commerce. This is the case with several consumer-facing industries, such as cloth, books, groceries, appliances, furniture and such—all of which can be ordered online and delivered while you are away at work. No interface or face-to-face conversation with the company required.  Especially when you’re working from home, you meet the shipping company rep rather than someone from the company you ordered the goods from.  This is perfectly okay for the average buyer, except when something goes wrong!

Say you ordered blue curtains, but what you saw is not what you got. Colors on the digital screen often look different than when seen off-screen. Simply returning what’s arrived is not the solution. Speaking to someone and explaining what you had in mind so you get the right product is. This means that online dealers need to have someone customers can have a live discussion with. Beyond a live agent, online dealers more than ever are finding customers who expect to engage in live conversations any time of the day. Research by Social Bakers, an agency that measures how well brands perform in terms of social customer care, found that the number of questions asked on brand pages on Facebook has increased by 85 percent over the last year, and that airlines had the best response rate of answering 79 percent of these promptly. “Working hours” is not a phrase that works anymore.

Engage, not enrage
Companies selling anything at all cannot afford to be out of touch with their customers. So while digitization may keep the consumer from physically visiting you, it has also forged a path for newer ways in which to meet up through social media. Businesses are following their clients where they go, meeting them where they hang out, not in their offices but online.

Have you noticed that the online store you bought something from recently keeps popping up not only when you google something but also on all kinds of websites that you visit? That’s because The Web knows and tracks your online preferences. Personally, I find pop-ups asking to indulge in a live chat very intrusive—it’s like a store attendant following you everywhere and asking, “Can I help you?”  While it’s good to know there’s someone who can answer your queries, nobody likes to be stalked.

Smart businesses know how to keep track of the customer without being obviously there.

Keeping them engaged is in fact a bigger challenge than ever before since your customer can close that communication window with just a click.

Fly with the experts

Let us take an example of an airline that’s effectively engaging with customers. Lufthansa has its fingers on the pulse of the customer, and potential ones, through an enviable Facebook presence. Contests, events, quizzes all have earned the airline something every self-respecting Facebooker looks for—likes! Over 300,000 likes (on the India page alone), and if even a small percentage decides to fly with it because of the online excitement generated, that’s a big win.

Understandably, retailers and consumer-facing companies have a big Facebook presence. Coca-cola, Starbucks, McDonald’s, Walmart, Levi’s, Target, Nike, Kohl’s are among those that have the highest number of likes. Twitter accounts of many of these companies also have a very, very large number of followers. Clearly, they have managed to reach out effectively to their potential customers using social media.

What to outsource!?

These are still early days for outsourcing social media marketing and engagement, but it makes sense to outsource at least some of your efforts to begin with. Look holistically at your social media marketing plans and start by assessing what skills you have in-house and skills you are lacking. You may decide to start with getting the design and development built by an outsourcer to get your framework up front.

Other areas to consider include:

Savvy social media writers may be a skill your current writing team lacks, so content writing could be a place with clear payback. If you’re content doesn’t attract and maintain customers, you could be doing more harm than good to your brand.

Analytics can easily be done by a third-party and is probably the least vulnerable to subjectivity. That will save precious resources that you can deploy towards strategizing and hiring in-house of local experts to manage the customer community.

Customer experience management or customer care is another area to consider, especially if your customers are global and resident in different time zones. Be cautious to consider outsourcers who understand your business and your customer engagement model.  Since the outsourcer will be “you” during customer interactions, you need to feel confident they can successfully represent your brand.

Needless to say, do monitor what’s going on closely enough so you can step in when necessary. The important thing now is to be open for business all the time. Not just 24/7 but 24/7/365 and even up to 366 in a leap year!  Business process outsourcing companies are gearing up to meet the demand when it arises. That will finally help harried executives to get their well-earned weekend off to do their own personal networking, online or otherwise.

Testing could be outsourced. Minimizing risks and cost either manual testing or automotive one can easily be performed by third party.

Recently we could see the most prospective and fast growing social spheres that potentially need and could outsource a big part of them. There are:

–   Banking /finance

–   Mobile development sectorE-commerce

–   E-commerce

–   Medical/health care

–   Tourism

Has your organization outsourced marketing and customer engagement yet?

Polina Mikhan

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

With the growing popularity of smartphones, tablets and other mobile devices the living has become more comfortable. The different types of apps help us to wake up in time, to entertain reading books, booking tickets, listening to favorite music and just chat with friends without extra expenses. Among the challenges in mobile app market stands also the developing of effective web browsing solutions.

In this article I would like to take a look at DHTMLX Touch framework that helps to create nice-looking and easy-to-use mobile web apps oriented to touchscreen devices.

DHTMLX Touch is a free open source Javascript framework/library for building HTML5-based mobile web apps.
DHTMLX was originally designed to work in traditional mouse-driven web browsers, however since the web moved to mobile devices, it was important to have all parts of the web interface touch-ready and looking good on small screens. After some tests made were approved that DHTMLX library will definitely work in mobile environments with Javascript support too. So the planned mouse was replaced with touch events to provide touch-based user interactions.

Let’s see what the characteristics of DHTMLX Touch are:

-compatible with the main web browsers for mobile platforms that support HTML5;

-free under both GNU GPL and commercial Licenses;

-lots of technical samples with the source code that simplify studying how the UI elements work;

– expanded builder tools:
Skin Builder – an online tool that allows you to build mobile web apps through a user-friendly, drag-and-drop interface. Since v.1.2, you can save your design or share it by sending an URL.
Visual Designer – a simple online tool that provides an easy way to choose the skin for you app and customize the skin colors. A set of predefined skins is included.
Touch UI Inspector – a free extension for Google Chrome that provides a handy visual tool for monitoring the inner state of DHTMLX Touch JavaScript components on a web page.

-server side is based on the on dhtmlxConnectors (the same that used for DHTMLX Ajax library) that simplifies client –server communication;

– simplified scheme of CSS editing.

The current version of DHTMLX Touch framework took a long way from the release of its first components dhtmlxTree and dhtmlxGrid in 2005-2006 to become a complete tool that covers the most required aspects of modern application interface. Three months ago in September, 2012 was presented the updated version 1.2. And now we will see what are the new features and improvements were added:

* Bug fixing – more stable and faster performance, better compatibility with the latest iOS and Android platforms;
* Updated visual designer tool: new Unitlist component, new charts, and the ability to share and save your design;
* Auto-complete for IDEs: Microsoft Visual Studio, PHPStorm, WebStorm, NetBeans, Aptana Studio, Eclipse, and others
* Multiple fixes in form validation logic
* Better memory management: automatic destructors clean up the memory, which helps to prevent memory leaks if the app has a complicated inheritance structure
* Better support of full-screen mode

Many companies around the world make the preference towards DHTMLX saying that it’s very simple, flexible and easy-to-use with a live support forum.

If you have already an experience working with DHTMLX Touch framework or heard something about using it, feel free to share your thoughts/experience by leaving a comment.

You can also have a look at new features of DHTMLX Touch framework and the samples of apps already implemented following the link to the official website http://dhtmlx.com.

Thank you for your attention.

Katerina Bulavskaya

Katerina Bulavskaya
Katerina.Bulavskaya@altabel.com
Skype ID: katy.bulavskaya
Business Development Manager (LI page)
Altabel Group – Professional Software Development

OutSystems recently released Agile Platform 7.0. The really big news in the announcement was a total overhaul of the multi-tenancy system. Another item that flew under the radar is the new Lifetime feature, which is a method of deploying applications and managing the lifecycle (without any relationship to the TV channel).

In Lifetime, you define a number of environments and which direction things get deployed out. The pre-defined environments are Development, Testing, and Production. Lifetime allows you to “tag” a particular set of revisions with a version number, and then push them to the next environment in the chain. It detects if changes have been made in an environment’s version by marking the version number with a plus (for example, 1.8+), which gives you a cue that you may need to backport changes or deploy from downstream servers with caution. This is great for the age-old issue of people patching directly on upstream servers.

Hand-in-hand with the Lifetime feature is improvements to the way you define Applications and the system for maintaining them. There are a lot of minor changes to Applications that add up to an overall improvement. For example, there is a little reason to use an Application over a Solution, but with Lifetime, the Applications get all of the versioning and single-click deployment of a package and dependencies that Solutions have, with additional awareness of things like which eSpace in the application manages users and roles.

Ideally, you make your changes in Development, and when you are ready to test, you tag them with a new version and push to Testing. Once your testing is complete, you deploy to Production. But, what if you have to hot patch in Production? Well, there are no worries. If you take the patched version from Production and deploy it to Testing or Development, it will show the versions as being in sync again. The worst-case scenario is that you have patched Production and have changes in Development to push out. Going to the Development version and doing a merge from Service Studio with the Production version to backport the patch and then deploying the merged version back to Development will mark everything as up-to-date and happy.

Kind Regards,
Lina Deveikyte
Altabel Group – Professional Software Development

I’ve found that people have a general idea of what SharePoint is, but many have no idea how to apply it to their own business. I’d like to share with you the top ways that SharePoint can solve common business needs. And I want to emphasize that these are only a few of the many ways to utilize the SharePoint Services. Once you start using it, you will begin to realize the many other valuable benefits that can easily be accomplished by the everyday user. Hope you’ll find a few productivity solutions here.

With SharePoint you can:
1. Store all your emails on a secure and centralized Website for easy archive.
2. Keep a central task location for assigning tasks to team members. These tasks will also link to your projects so you can easily find out what tasks are still open for each project.
3. Organize large events and store the related documents, assigned tasks, and generally post anything and everything related to the events. It will also integrate with Outlook for added efficiency.
4. Collaborate with team members on all documents and stay on top of who did what. Earlier versions can easily be restored in case someone has made too many mistakes. Projects can also be linked to related documents.
5. Assign tasks to your team members, and automatically notify them that they have a new task. Alerts are sent when there have been updates to the tasks.
6. Quickly manage all projects for your team or organization so there’s no need to explore buying an expensive project management solution.
7. Use the efficient check-in / check-out management feature to sort your documents.
8. Implement a help ticket resolution for your organization or team without breaking the bank.
9. Start a private company blog to communicate and share ideas with your team that’s viewable only by those you give access to.
10. Gain more control over your company’s documents with the content approval function.
11. Offer training materials to your teams, clients, and/or partners in a password-protected Website that can be accessed anywhere in the world.
12. Offer a secure and private place to share documents and other information with clients and/or partners.
13. Access and work with your data using your Internet-enabled mobile phone for added convenience while traveling or out of the office at client meetings.
14. Create better team communication and brainstorming sessions where everyone can participate when their schedules permit.
15. Centralize where company and team project announcements are posted. Everyone will receive a notification via email or mobile phone automatically, anywhere in the world.
16. Work offline on the files, project tasks, tasks, discussions, contacts, calendars, blogs, etc. and then sync the updated information later on.
17. Create “central” documents (and synchronize), so all team members, clients, and/or partners are able to work on the same document and make changes. Updates are accessible with a click of a button. Everyone can then sync back to the “central” document and have all edits merged into that single document.
18. Easily add custom fields to any area and capture the information that’s most important to your company, all without the help of a web designer or IT person.
19. Pull up and update Microsoft Access database from a local desktop and sync information to a central location that can be accessed from anywhere at any time.
20. Create a project dashboard where on one page you can view and filter on common project elements, such as: project details, project documents, project tasks, project issues, project calendar, project milestones, project lessons learned, project risks, project change orders, and more.
Keep in mind that a little training goes a long way in increasing productivity in the products you use in your business.

Altabel Group highly recommends taking the time to learn this efficient and effective tool and watch your productivity, along with your profits!

Happy SharePointing!

Best Regards,
Kristina Kozlova
Altabel Group – Professional Software Development

What are the most common mistakes that are being made by mobile application developers?

Well, many of them to be honest hardly care what they produce and focus on how financially rewarding the night after it’s being released is, but what they don’t know is that it’s not about how much of a hit it was the night it was released, it’s how much people tend to use it, and the more something is used, the more it is needed, these guys need to make their made apps into needs, not wants, since wants end, needs don’t. One of the main mistakes they make is giving up too early. If you look at the apps that made it big, they’ve often been growing for a year or more, or they’re only the most recent of several apps that have been made by the developer. ‘Overnight success’ can take a long time. The most common mistake is to neglect marketing. A developer cannot merely build and ship a product. He/she also must have a plan to market the apps. Most apps stores are filled, and to succeed you must get noticed. The biggest mistake developers make is focusing on downloads versus usage. Some of them chase trends too much and then app stores end up clogged with similar apps.

The key to designing and building good software is to have a comprehensive understanding of how and where it fits into today’s world. I know it’s a lot to ask developers to also be aware of the business and world requirements. But everybody involved in the chain needs to be able to put themselves into the shoes of the end customers (whatever the target market has been identified to be). Do this objectively and then decide what part of that end users life this app will actually impact (good and bad). Every mobile app needs a story. There is a villain and a hero. The hero must win in the end. Otherwise, who cares?

Kind Regards,
Lina Deveikyte
Altabel Group – Professional Software Development


%d bloggers like this: