Category - General

Challenges of Amazon MWS API: ISS Art experience

This article is focused on Amazon MWS API and some challenges related to its integration.
If you plan to integrate Amazon MWS into your PHP project, you should think twice whether you need this functionality or not.
In our Symfony project such integration is needed. However, there are a lot of hidden dangers. In the article I will try to give you a heads up how to avoid the pitfalls.

Read More

Deployment of Symfony2 application using Deployer

Deployment of Symfony2 application may be a complex task, depending on the setup and the requirements of your application. On some projects we update the test server at least once a day. And production server about two times a week. Developers spend a lot of time on this routine process.

Let’s take a look at typical steps taken during deployment process:

Read More

WebRTC: Real-time communication

“WebRTC is new front in the long war for an open and unencumbered web.“

Brendan Eich, Mozilla CTO

Today we will talk about WebRTC: how it works and how we can use it. WebRTC is an API project created by the World Wide Web Consortium (W3C). The project supports browser-to-browser applications for voice calling,video chat, and P2P file sharing without the need for both internal and external plugins. We are using WebRTC in one of our current projects. The application that we’ve developed creates rooms with many clients with video/audio chat.

 

75ffad9d2bfa22aff07d8460f477ef8f

 

And what is under the hood?

Read More

Microservices: dreams and reality

The Microservices Architecture becomes more and more popular. The successful experience of our large-scale and well-known projects inspires us to try this approach in our enterprise applications. Deciding to implement the project in this style, we forget that systems like Ebay, Facebook, Amazon, etc have a long history, these projects are not initially implemented in the architecture, but gradually came to it.
When you don’t have the whole scope of the requirements or use cases for your system it is hardly possible to avoid errors in the design.Read More

Social networks as a promotional tool: our experience of blog promotion

Needless to say, nowadays social media provides a great opportunity for every business to build relationship with the audience. By building presence on social platforms, you can get a chance to communicate with your potential customers directly, and if you manage to grab their attention, word of mouth won’t be long in coming. The great thing is that electronic word of mouth spreads more rapidly and massively than traditional word of mouth.

Of course, social media is not the only promotional channel. In one of our previous posts we’ve made a review of tools and techniques to promote your product. By the way, if you want to have such a guide ready at hand – be sure to download our software product promotion guide.Read More

How to select a good server-side Web framework

In the previous article I mentioned that we’ve decided to use Jetty+Guice+Servlet combination in our Java Web application. What was it motivated for? Why have we refused to use Jersey? Why have we decided to implement a separate Resource class for every Web action and even for every HTTP method?

When everyone of us selects a tool to work with, we all set some requirements to it, and it should meet all requirements to get a green light. Everyone knows them – these are such obvious things as code readability, ease of debugging/testing, following traditional coding practices (OOD, patterns) etc. But today I’ll tell you what requirements I set specifically for a good server-side Web framework. I’ll be happy to work with any technology stack meeting these key requirements, and Jetty+Guice+Servlet is just one of the options.

Briefly, the requirements are:

  1. Extensibility
  2. Common response format
  3. Automatic exception handling
  4. Transactionality of a request

And let me explain you what do I mean by this.

Read More

Tips for successful third-party systems integration

At the moment, there is a great number of various applications already developed. Most of them are connected with providing processed information, taken from different third-party sources.

First of all, let’s review common services that newly developed applications are often integrated with:

  • Social networks, such as: Facebook,Twitter,Google+,LinkedIn;
  • Delivery services: UPS,USPS,FedEx,DHL,Canadian Post,EMS;
  • Online payment systems: Authorize.net, PayPal, Moneybookers, Alertpay, WebMoney, QIWI, video streaming services – YouTube, Vimeo.

We have significant experience with third-party systems integration. And, as long as, this process is rather difficult, sometimes we face various issues. Our successful experience of resolving such issues allows us to develop some recommendations for dealing with third-party systems.Read More

Symfony 2: Doctrine 2 get random entites (MySQL)

Often during the process of developing projects on the Symfony 2 framework and Doctrine 2 ORM many web applications developers face the problem of getting random records from a MySQL database. Most developers know that this issue is not new, and all solutions that already exist have been known for a long time. But you can hardly find an implementation of any of them on the Symfony 2 framework and Doctrine 2 in the Internet. In this post I want to propose you , in my opinion, the most simple way of selecting random records from MySQL by means of the function RAND.Read More

Time tracking systems overview

We’ve already covered various aspects of software development process so far: how to choose a provider, which IP issues to consider, how to motivate your team, what challenges to be aware of when working on international scale… But how to make sure that the whole team is actually working? What if the majority of time is actually spent on non-project related activities (i.e. Facebook, chats with friends, etc.)?

Read More