One our employees, Marek Bedkowski has published an article in JsMag magazine , for the second consecutive month. The December article was based on our experience with building quite complex applications based on Apache’s Cordova for iOS and Android. Check for yourself at http://www.jsmag.com/ and enjoy the read.
Written on December 10, 2012
RALF (REC Android Laboratory Future) is a system for automated execution of tests for washing machines and dryers, which is controlled by an application utilizing the Android operating system.
RALF provides a proof of concept and a working solution, which allows the Android application to control a washer or dryer. Functions such as turning the machine on and off, selecting and starting a washing/drying program or doing it in a predefined cycle (a testing sequence) without the need for a human operator to control it.You can also control the actions by using a graphical interface with the potentially to operate the washer or dryer from a remote location.
The project goal was to get knowledge and experience in the construction of a device, deeper knowledge of the Android operating system and project management. Despite being a team of software engineers and testers we were very happy to learn about hardware as well, so it was a great chance for us to gain knowledge about the mechanics of device construction. The RALF experience allows us to discover new ideas and work on innovative solutions that can be later applied in our everyday work.
The project was developed by a team of 9 people. The whole effort was done in our spare time and each team member decided how many hours he wanted to spend and which part of the project was interesting for him. A person assigned to the project manager (PM) role was not an experienced project manager, but was full of enthusiasm. People were not forced to stick to their professional profiles. Testers were encouraged to act as software or hardware developers, developers performed tests and PM took part in various tasks. Thus, the team members understood the problems of their colleagues better. New roles let people develop new skills, learn about their strong and weak points and even discover hidden talents.
We have several hardware experts in our company who were very helpful and shared their knowledge about the mechanical part with the team. We are experienced in manual testing of washers and dryers, so our motivation was to develop a tool that allows automatic test execution. RALF can replace a human, especially in long lasting stress or bug hunting tests. Using an intuitive user interface, a tester can control each element of a tested device and, with the support of test progress logs, compare received results with expected ones.
The hardware part of RALF is able to control the program selector and push the buttons of a home appliance’s operating unit. A USB interface is used to connect an Android-powered tablet with the hardware actuators. The device is divided into several modules. Each module is controlled with a relay card. A stepper motor is responsible for actuation of the program selector. A motor controller, supplied with a ready to use software, was used. Buttons are controlled by electromagnets via the relay card. The card is connected to the tablet with an isolated USB hub. The system is powered by a power supply developed by the team and has 3V, 5V and 12V outputs.
The housing is made of Plexiglas and metal brackets. Safety was an important aspect of the project. The user is protected from electric shocks. The robot has been made aesthetically and contains elements of lighting. A working actuator is illuminated with the LED backlight.
The software part of RALF consists of a Java application developed for the Android OS that is able to control the device with a USB interface, using native Android drivers. Thanks to this the application can be executed on various Android devices, without the need to write hardware-specific drivers. The application is also able to detect connected devices. The user can manually control the program selector and buttons. A simple time-controlled automatic test has also been implemented. The application was originally developed on a PC. It had a well-defined interface that enabled exchange of the device on which it worked. Therefore, the first version developed on Windows XP, was removed and developed further on Android. The application’s GUI is prepared in REC Global’s colors to link it to our company. Furthermore, the application has been tested on Archos 8.0 G9 with Android 4.0.3.
Every project has its own schedule and not every idea can be implemented in the limited time frames. Therefore we have prepared a TODO list with new features which hopefully will appear in the next versions of oursolution:
- complex configurable algorithms
- recording of display status
- scripting, automated test execution in test suites
- remote control
- easily adjustable actuators and sensors mounting
Even though a project created ina team’s spare time is difficult to coordinate, it is always a great catalyst for building a good team spirit. Being in a different role than usual allows understanding of each other better. Each member of the team gretaly enjoyed working onthe project, gaining a lot of experience and knowledge. No less important is the RALF system itself will speed up many aspects of our daily work. Project goals: accomplished!
Written on October 17, 2012
Yesterday, doing my usual weekend “catch up” with reading, I found a very interesting article on TechChrunch Think Hiring Is Tough In The Valley? Now Europe Joins The Talent Wars.
What hit me is that what I observe every day in my work now seems to be a European-wide trend. Particularly:
- the article mentions just two cities, London and Berlin, but “coincidentally” we (REC) are quite active in those two cities and have customers there; and the reasons are exactly as in the article: those companies just couldn’t get enough smart people for doing their project (we could help them).
- the article quotes some West-European entrepreneur that getting talent from Eastern Europe is not working well anymore because of exaggerated salary expectations. Frankly, no surprise here: when you are moving with your wife and children to, for example, Germany and neither you nor your family speak German, then it really has to make sense financially for you to move (been there, done that).
- as one of the commentators stated: “one possible solution is to hire people from Eastern Europe, but let them stay there; this way their expenses (and salary expectations) will be much lower, while still high above the local norms. That’s what successful local startups have been doing for a long time – check GISCloud, Farmeron, activeCollab or Nordeus – and there is no reason for others to follow suit, which has been proven successful by the likes of Skype. I’m especially pointing towards the “newest” Europe, i.e. the countries which recently joined or about to join the EU but still have a strong population of (undervalued) developers, particularly Poland, Slovakia and Croatia (joining in 2013).” Did I mention that REC has development centers in Poland, Slovakia and Croatia?
Read the entire article as it makes for an interesting read. And remember: if your start-up needs talented people, think about REC.
Written on August 7, 2012
Place: University of Warsaw
Event: The biggest (and the best!!!) free conference about Java technology
- around 850 (not only) Java enthusiast,
- about 25 speakers,
- 30 partners
- 20 volunteers,
Characters from the play:
- Attendee (A)
- Bad Journalist (BJ)
At the very beginning the author wants to put a remark that all complaints, which were said by the characters in this play, should not spoil the general impression that Confitura 2012 was definitely an event worth repeating. There were no reasons to complain about any aspects of the organization – from the presentations and catering through to the retro games room (great idea) to tons of gadgets and prizes from the partners. The “only” thing which wasn’t organized well was the weather – it was simply too hot. Author believes that it was SUN’s fault, as they have sold themselves to Oracle and the only way to be present on the conference was through open windows.
Bad Journalist runs into Attendee
BJ – Excuse me! May I ask you a question?
A – Yes?? How can I help you??
BJ – Do you know who these people are?? What are they doing at Warsaw University on Saturday morning during the summer break??
A – The biggest free Java conference is about to start… Go inside and see how strong Polish Java community is, and what is interesting in the Java (and not only Java) world.
Scene I – Performance in the Cloud by Akamai
BJ – What do you think about this keynote?? Why on earth were they talking about the internet traffic on Java conference??
A – Hmm I will answer “y!” ??. In my first Java project we had used Akamai CDN solutions… It’s good to hear that Akamai is opening their office in Poland. I will contact their office to see their new products and prices. I also liked the style of the presentation maybe it wasn’t the best presentation I have ever seen but many presenters may learn the light American style of presentation.
Scene II – Clojure in practice. Clojure as a tool for rendering HTML templates by Lukasz Baran
BJ – Functional language used in practice?? Do you really believe in that….
A – I’m very impressed that company from Poland uses Clojure in their commercial projects… I hope my company one day will give a chance to such technology… This lecture finally convinced me to try Clojure or other functional programming language in practice. Regarding the presentation it was a little bit too stiff and presenter tried to show too much technical details… But as I already said it was good to hear that Clojure can be successfully applied in commercial project.
Scene I – The Java Platform and the Future by Terrence Barr
BJ – Did you hear that guy… he said that Java FX is back and they want to work on embedded Java… who uses it these days?? Java for Android base devices – this is the future…
A – You don’t understand the Java world at all if you think that only Android is the future… There are billions of devices on which embedded Java works, half of my company works in this area… It is not so fancy and spectacular as Android application but it can be applied to almost every area of our life… Here you can see the power of Java technology – it can run on small device with 2kB of memory as well as on huge cluster with terabytes of RAM. I didn’t use Java FX earlier and I even don’t know what was wrong with the first version, but Terence claimed that they were able to run JavaFX on every mobile platform including iOS (on some developer’s configuration). If they manage to persuade Apple to include it on regular version of the iOS, I guess there is a bright future for Java FX.
Scene II – Agile estimation by Piotr Burdyło
BJ – Estimation. Is it a formal name for fortune telling which in the end often has nothing to do with reality?
A – This time (hopefully last time) I totally agree with you… Estimation is the process which I try to avoid the most during my everyday work. Piotr tried to present his best practice related to this topic and many of them may make estimation process more friendly and accurate. Fortunately for him and his colleagues, their company is more flexible and many good approaches can be applied. Sadly, my company doesn’t want to spend too much time on estimation and they tend to stick to a restricted and time limited process. Anyway I will try to sneak some new techniques into my organization. The one thing which I didn’t like during this presentation were the questions. Questions usually are a good aspect of each presentation, but this time there were too many questions like “did you use [TECHNIQE NAME]” and almost all of Piotr’s answer were: “No”. I’m sure that Piotr has more interesting examples to present but he wasted too much time on answering “did you use” kinds of questions.
Scene I –Bad tests, good tests by Tomek Kaczanowski
BJ – To test, or not to test: that is the question.
A – Of Course the answer is “to test”, but Tomek, during his presentation, mainly showed how not to test… to be honest, I expected more good practice than bad and ugly tests. But Tomek’s presentation was really good and I am sure more good practice can be found in Tomek’s book which I hope to read during this summer.
Scene II – CoffeeScript one-page-apps with MVC, AOP, DCI and TDD. Buzzwords heaven by Andrzej Krzywda
Scene I – Continuous delivery by Andrzej Grzesik
BJ – How long does it take you to publish your change into production?? What do you think about this presentation…
A – First question… It depends :-) … I totally agree with presenter but my feeling that in many cases it was about ideal world… We all know that convincing clients and bosses for some extra time (=money), which will make our life easier in the future, is not so easy (I just don’t want to say impossible in many cases). But if you are so lucky that you start a new project or you have clever client/boss you should go back to Andrzej’s presentation.
BJ – anything else you will remember from this presentation?
A – Yes, probably some Japanese saying “If it hurts, do it more often” ;-)
Scene II – How to be awesome at a Java developer job interview by Wojciech Seliga
Bad Journalist laughs at the Attendee
BJ – Do you think you know Java?? How far you are from the A-level developer?? Maybe you should change your job and become a gardener??
A – I am Java developer and this kind of keynote won’t change it. If you had observed the audience during this presentation you would have noticed that most of us hadn’t agreed with Wojtek. He pointed a lot of weak sides of many Java developers, but IMHO in practice not all of these aspects are crucial for everyday work, most of them are good to have and only some of them are MUST HAVE attributes of good Java developer. Another question is how many A (A+) level developers should work on the same project…
BJ – The more the better
A – Really?? You know the saying “Too many cooks spoil the broth”. But, my second thought that it was a very good presentation may be a little bit too emotional, but it pointed to our weak sides which should make us better people – I mean Java developers… My guess is that there will be a lot of comments about this presentation after Confitura 2012.
BJ – Why you are so sad?
A – Confitura is over….and I didn’t win any prize….
BJ – Don’t worry there will be another one next year, and I see that you have bunch of gadgets in your bag ….
Written on July 13, 2012
On the 3rd of July, two of REC’s engineers took part in the BlackBerry 10 Jam World Tour in Warsaw. This event was a part of the big tour covering 23 countries on 5 continents. The main goal of the tour is to encourage developers to write applications for upcoming BlackBerry 10 OS. The Conference Center in Warsaw’s Hilton Hotel was fully filled by attendees. Over 400 curious people made this event the largest one in the tour so far.
The conference began with a music video of a small band singing about writing apps for BB10 and how “waiting is the hardest part”. The band turned out to be made from Research In Motion’s employees with Alec Saunders (VP Developer Relations) as a lead singer. This turned out to be not the only musical element of the conference. One of the conference attendees was a famous polish rapper – Liroy. As it turned out – he is very interesting in creating apps for BlackBerry as a … developer.
David Keane, country manager for Poland, presented some numbers to contradict common myths about BlackBerry platform. There is an impression that people are leaving BlackBerry, but the truth is that there are 78 million people worldwide using BlackBerry, in the last quarter vendors number increased of 254%, there are 226% more apps and BlackBerry App World has just achieved 3 billion app downloads. Probably the most important part of David’s speech was the assurance that BlackBerry doesn’t want developers to just use their product, BlackBerry wants to collaborate with engineers, to listen to their suggestions. One of the results of such developer’s suggestions was a creation of a real device – BlackBerry 10 Dev Alpha, instead of just an emulator.
Very important part of developing any app for any platform is to know the end customer. BlackBerry users are responsible and, most importantly, willing to pay. They want quality apps and they don’t hesitate to pay for them. Hence, there is nothing surprising in the fact that developers can get more profit from BlackBerry than e.g. Android, where users usually prefer to get free apps. RIM stated that if you create a quality app which will gain at least $1000 in a year, you can make $10000 guaranteed profit. If you don’t earn $10000 in a year, RIM will pay you the rest!
The whole new BlackBerry 10 OS is made in cooperation with QNX. QNX kernels are known for their reliability and stability – they are used on space stations, medical equipment, cars. Most important (from developer point of view) features of the new OS are: – complete multitasking – apps can fully work even when in background, – deep integration between OS and apps, – whole screen to utilize – no status bars, action bars which lowers amount of screen available, – every interface which is available in the OS is available also for developer! There are several frameworks available for developers to create apps for BlackBerry (all are open source and available on GitHub!):
- Cascades C/C++
- Completely new framework written for BB10,
- Native C/C++,
- HTML5 WebWorks – for writing native apps using web technologies,
- Adobe AIR,
- Android Java Runtime – Android apps can be easily ported to BB10.
The second part of the conference was divided into two tracks – the native track and the web track. In the native track there were topics like – The anatomy of the BlackBerry 10 app, Cascades fundamentals and BlackBerry 10 Cascades Samples, Start to finish: developing the BlackBerry 10 application using the BlackBerry 10 NDK, BlackBerry native SDK for BlackBerry Tablet OS: advanced tooling. Taking part in the web track you could learn about: Building HTML5 apps with native capabilities, Advanced BlackBerry HTML5 development: WEBGL and remote web inspector, How to get that native look and feel using BBUI & ALICE.JS and finally – Making the most existing public web development frameworks. These panels covered the most important technical issues, encouraging to consider developing for BB. Developers were also able to ask their own questions to RIM specialists.
One of the most exciting parts of the conference was for sure the chance of getting the BlackBerry 10 Dev Alpha device. Not all of the attendees got lucky, but those who did are now equipped with a physical development device.
BlackBerry 10 Jam World Tour in Warsaw was a really big event. Professionalism, developer relations, huge crowd of attendees left a very positive impression. Now, while waiting for the final release, we can create apps for BB10, test them using BlackBerry 10 Dev Alpha devices and be ready for the launch.
We are very happy to announce that first project created under REC Labs program is officially released!!! REC Photo Editor is an Android based photo editor with social media sharing capabilities. Application is available on Google Play, and source code is available on GitHub.com.
This project had two main goals: First, to open the REC Labs application set and second, analyse capability of image processing on Android based mobile devices. Spectacular transaction of Facebook buying Instagram for 1 billion dollars was the motivation behind the analysis of this area of mobile applications.
About the application
REC Photo Editor can process pictures captured directly from device camera, or from mobile device gallery. There are four main operations available:
- Brightness balance
- Crop functionality
- Rotate functionality
- Filter based image modification
(In first version of application there are 23 filters available)
Application does not override original picture but saves users modification in a new file in the application folder.
Modified picture can be shared on social media. It can be done in two ways: standard Android share functionality and dedicated “one click three shares” solution which sends post to Facebook, Twitter and Picasa at once.
Project was developed by two developers in a month. The biggest problem was related to the Android memory per application limit, which forced us to resize the picture before processing, but Intagram also resize pictures (even more than we do :-) ). Another issue was the filter based processing performance. Some filters are based on pixel analysis and these take a little bit too much time…Application was mainly tested on Samsung Galaxy Ace with Android 2.3.3, which is not a high performance model, but general user experience was acceptable.
Used libraries and examples
- Twitter and Twitpic communication was based on example from Loren’z blog (http://www.londatiga.net/it/how-to-send-image-to-twitpic-from-android/)
- Google APIs Client Library for Java (http://code.google.com/p/google-api-java-client/) for communication with Picasa
- Twitter4j – http://twitter4j.org
- Oauth-signpost- http://code.google.com/p/oauth-signpost/
- Guava-libraries – http://code.google.com/p/guava-libraries/
Every project, including those from REC Labs program, has its own schedule and not every idea can be implemented in limited time frames. So we prepared a TODO list with new features which hopefully will appear in next versions of our application:
- New filters – more filters mainly based on channels curve transformation
- Picture frame – set of predefined frames which can be added to the picture
- Text labels
- Red eye reduction
- More social networks like nk.pl, flickr.com definied
- Tweak user interface and make it smoother
As mentioned at the beginning, REC Photo Editor project had two goals and we believe it fulfilled both. REC Labs program has its first real application which is available in public distribution. Hopefully, soon there will be more REC Labs application available. We have learned a lot about image processing on mobile devices. In the beginning it seemed there should not be big differences between manipulating photos on a mobile device and a PC, as the mobile devices have modern processors and enough RAM memory, but as quick (or even quicker) as hardware improvements come, user expectations grow. It is not acceptable for an end user to wait 2~3 minutes for a result, so most operations have to finish “just after the click”. That is why some filter operations e.g. those which involves pixel analysis, cannot yet be practically implemented on mobile devices now. Another issue which has to be handled is a memory per application limit set by Android designers. This limit makes processing of big pictures impossible. However, if we assume that images processed on mobile devices are mainly dedicated for sharing on social media, megapixel quality is not expected.
Despite the problems and limitation described above, we think that some image processing can be successfully handled on mobile devices and may be useful in many internet related areas. We are looking forward for further work on this project.
Written on June 27, 2012
Theoretically, the idea of cross-platform mobile applications is very good – by deploying one application on multiple platforms there is much work effort to be saved. However, the reality appears to be much more complex – even when using frameworks designed for it, it is hard to achieve the same look&feel and functionality on different platforms. It is also hard to build the application, because each platform requires their own SDK and tools, and one requires also different Operating System (iOS app can be built and deployed only on Mac). Below you can find a comparison of two cross-platform frameworks (RhoMobile, PhoneGap) as well as pros and cons of three leading mobile environments (Android, BlackBerry, Windows Phone).
RhoMobile is a whole package of tools for development and deployment of cross-platform mobile applications. It contains RhoStudio (IDE based on Eclipse), Rhodes (Ruby-based MVC framework for native applications), RhoConnect (Ruby-based solutions for synchronization between mobile and server) and RhoHub (cloud solution for deploying for multiple platforms at once).
I have started development of my application from this package and, even though I switched to other solutions, RhoMobile still looks very promising. The reason why I resigned from it is that it has no support for adding photos to device contacts. All other features of it seem very interesting, also because it utilizes a very good language – Ruby.
|+ Complete package of tools+ No need to have different environments and systems when using RhoHub+ No need to design communication and authentication client-server – RhoConnect does it for you
+ Supports “push” mechanism
+ It is more about programming than web developing
|- Does not have all native capabilities (e.g. contacts photos)- RhoHub cannot be used in every case for security reasons (app needs to be uploaded to the cloud)- Requires at least basic knowledge about Ruby|
The main idea behind every PhoneGap application is that having a PhoneGap environment configured for each platform (e.g. Android, BlackBerry, Windows Phone), it is possible to use the same assets/www directory in each of them to achieve the same effect.
|+ Based on well known HTML + JS+ Supports many native features+ Well documented||- Too many quirks between platforms- Needs environment set up for each device- Most of methods are asynchronous which can be hard when processing a linked set of data|
Android (Eclipse ADT + Android SDK)
|+ Eclipse is a well-known platform for developers+ Mechanism of virtual devices||- Emulator is very slooooooow- Requires “kill adb.exe” hack to work- Many bugs in emulator|
BlackBerry WebWorks (Ripple)
|+ Ripple has built-in web preview which allows to see the app without building and deploying+ Web Inspector available+ Emulator looks like a real phone (you can download simulator for any model you want)
+ Emulator runs fast
+ It is BlackBerry :-)
|- Ripple is still beta- Emulator loads slow|
Windows Phone (Visual Studio)
|+ Visual Studio is a well-known IDE+ Emulator loads and runs really fast+ Many debug tools available||- Emulator has no tools/options inside (there is only Internet Explorer available)- Windows Phone is still far beyond other mobile platforms in terms of standards support- Weird policy regarding contacts – it is not possible to add or update contact without user’s interaction|
Although the idea behind cross-platform mobile applications is very sublime, there is still much work to be done for the available solutions to exploit the capabilities. All platforms are still under development, tracking systems are full of reported bugs and requests for future versions. While versions are rapidly changing, documentation is sometimes insufficient.
Generally, the simple web application can be deployed as a native app for most of platforms without any (or only slight) changes. However, when it comes to use native smartphone functions, there arise changes between each system. I was not able to test the app under iOS, but according to online discussions, it is iOS and Android which are leaders of developer-friendly environments. These both systems almost fully implement web standards and differ only slightly between native abilities (mostly due to architecture differences). Then comes BlackBerry, which newest 7.0 OS version has almost all capabilities of the top two. Windows Phone 7 (Mango) is far behind them. In the end of cross-platform supporting systems are Symbian and Bada.
The good practice which saves much effort in developing mobile application based on HTML5 is to test it first without mobile (and native functions). It is much faster to tweak look&feel on any webkit-based desktop web browser (e.g. Google Chrome), than building and deploying app to device each time a single character was changed. Then, when the display is satisfying, you can test it on the mobile (device or emulator). The last step should be to implement native functions like e.g. interaction with device contacts or camera and GPS support.
Written on June 20, 2012
REC Labs — the concept behind:
- We do need to investigate new technologies
- Our employees have interesting ideas
- We all want to learn new “stuff”
- And we have employees eager to work on interesting new projects
This is how the idea of REC Labs was born.
REC LABS — the goal:
- To increase the qualifications of our employees
- To constantly refresh the technologies known and available in REC
- To make REC more visible on the Internet
- Potentially to lay the foundations for new products…
Stay tuned, more to come soon!
Written on May 28, 2012