Understanding The Need For Servers With Mobile Apps

I was looking into different task management solutions and recently started using iProcrastinate on my Mac.  Let me say up front that I most definitely procrastinate.  I’ve been writing the same book for several years and I rarely get my taxes done on time!

iProcrastinate looks good so far.  It has the right level of functionality and the interface is intuitive enough.  I grabbed the iPhone version and proceeded to sync.  This was not so easy.  My desktop Mac is on a LAN and I had to go wireless to sync even though my iPhone was docked.  Say that again?

I soon realized though that this made sense for an application running on different devices when there is no central server.  My systems needed a direct connection to communicate and that can only be done with devices on the same network if there is no other central means to establish the connection.  I remembered that I did not have to complete a sign up process to get started, which in truth was a nice simplification.  I would either have to connect my iPhone to my LAN (not sure that is even possible) or add my Mac to the wireless.

Let’s dive into the role of servers and the whole sync issue for a bit.  For my devices, I have 3 ways to synchronize content:

File transfer – Files are transferred between the devices directly.  Launch the  iTunes application with your device connected and click the Apps tab after selecting the device.  You see all the apps sharing files with your device at the bottom of the page.

Central server – A central server synchronizes all data and files between various systems.  The master at this is DropBox.  Install DropBox and watch how changes on one device are reflected on the others.  Evernote.com is another good example.  Record a voice memo on your iPhone and then listen to it on Evernote.com.  Both of these examples use a file as the base transfer unit, but there is a lot more information being shared including accounts, meta-data, etc.

Direct sync – This is the third case best illustrated by iProcrastinate.  You don’t need iTunes or a central server.  The two devices, in my case my iPhone and desktop, set up a direct connection or socket after which information is transferred automatically. This is slightly better than straight file transfer as more than just files can be shared.  It also has benefits over a central server including no need for an account or even an outside Internet connection to sync.

My favorite approach is the central server and not just because I am a server guy.  I like to sync from anywhere whether I am in my office or traveling in Costa Rica.  I really don’t mind creating an account although I hate it when my account information is shared with another service.  A central server provides solid functionality including:

  • Centralized backup of my content
  • Support for multiple devices
  • Anytime access to my data and information
  • Security through account management

The primary reason developers don’t use a server is cost/effort.  After all, file transfer comes for free if you use that approach.  You don’t really have to do anything.  Data sync requires development time.  Once launched, however, there are no on-going costs or servers to support.  The server represents a commitment to users to keep the application running in a secure hosted environment that must be available on a regular basis if it is to have any value.

In my opinion, the server architecture is the ideal approach for supporting solutions that require data sharing and synchronization.  Server side languages and solutions are cheap enough and easy enough where a reasonable developer can develop a solution without too much effort or time.  My favorite combination right now is Ruby on Rails hosted at Rackspace.  In the end, there are other ways to support disjoint data, but none of them are as powerful and capable as a server-based solution.

Data Modelling Tips

Here is a post from our engineer José Luis.

A few days ago, I finalized a project where I did a complete database model and design.  I would like to share with you my best tips that I think are the most relevant when you are creating a database model:

  • Databases play a main role in application development  as data repository, generally implemented as a relational database.  Considering other options  such as record sets, flat files or custom file formats, none of these are robust or safe as a database.
  • Data modeling is the process of mapping real world information to logical representations of data. Here it is important to think about data from logical standpoint without being concerned with how tables and columns will in your database.
  • Keep in mind that a bad database design will inevitably create a severe scalability problem and is often extremely difficult to modify as time goes on.
  • Describe your data model as the map containing all the pieces of information needed by you application and how data relate to one another. It also provides a non-technical users view of data and can be very useful to gain user acceptance of the overall application design. When data model is properly designed, it becomes the platform agnostic logical “blueprint” for a physical database to be developed.
  • A good data model will provide better performance to your RDBMS by following standard data modeling rules to eliminate data anomalies such duplicating data. Also data accessibility makes data easy to understand by defining entities and tables that categorize the data you are working with, then analyzing your data reporting or data warehousing will be considerably easier.
  • Understand and apply the “building blocks” in your data model by understanding entities, attributes, relationships and domains.
  • As you already know, the Normalization process is another key task in data modeling and it defines as the process of grouping data in a logical way to avoid duplication and data complexity.
  • Normal forms are named simply according to their occurrence in the sequence. Typical First, Second and Third normal forms (1NF, 2NF and 3NF) are applied as progressive forms of a data model, each one stricter than previous. Also consider the Boyce-Codd Normal Form (BCNF) and the 4NF (primary key without multiple value dependency) and 5NF (ternary relationships).
  • Evaluate if you need to apply Denormalization to your data model for punctual situations like extensive reporting and massive warehousing.
  • Always handle your data model file versioned with tools like CA Erwin, Sybase Power Designer, Embarcadero ER/Studio, MySQL Workbench, or Oracle Designer.

I hope you can consider the topics described above and get better data models that will be the root for robust and top-notch data repositories.

2010 in review

The stats helper monkeys at WordPress.com mulled over how this blog did in 2010, and here’s a high level summary of its overall blog health:

Healthy blog!

The Blog-Health-o-Meter™ reads This blog is on fire!.

Crunchy numbers

Featured image

A Boeing 747-400 passenger jet can hold 416 passengers. This blog was viewed about 4,700 times in 2010. That’s about 11 full 747s.

 

In 2010, there were 25 new posts, growing the total archive of this blog to 59 posts. There were 75 pictures uploaded, taking up a total of 25mb. That’s about a picture per week.

The busiest day of the year was July 2nd with 213 views. The most popular post that day was About Avantica Technologies.

Where did they come from?

The top referring sites in 2010 were avantica.net, blog.expertceo.com, facebook.com, openmountain.com, and twitter.com.

Some visitors came searching, mostly for will apple overtake microsoft, lessons learned example, and avantica.

Attractions in 2010

These are the posts and pages that got the most views in 2010.

1

About Avantica Technologies May 2008

2

Visiting Avantica’s Northern Development Center November 2010

3

Run Mac OS X on PC Hardware July 2010

4

Design Lessons Learned Example February 2010

5

Avantica Mobile Development Leader Ronald Hernandez August 2010

Avantica Has Known Java For A Long Time

A few months back, we attended the JavaOne conference in San Francisco.  The conference these days is an adjunct to Oracle’s other conference and clearly is a side note to the database technology taking center stage.  Java was such an integral part of the Internet explosion and it makes me a bit nostalgic to see how it is not the central player it once was.  Yes, that’s right, I am feeling a bit nostalgic for my old friend Java who doesn’t entice me into coding projects like he used to and is just not as lively at parties as my new friends Ruby and Rails.  Java was like your station wagon before SUVs came along.  If you had Java, you could take the family anywhere.

The language was developed by James Gosling at Sun and released in 1995.  The timing was perfect for the first Internet boom that curtailed around 2000-2001.  One of our architects provided me this helpful information about Java’s origins.  Java was originally designed for embedded systems, but then it was ported to the desktop where it failed in the most painful way.  Java next evolved into a code-on-demand language with Java applets at a time when Javascript was still not as good in RIA and ActiveX was the proprietary competitor.  The introduction of the Enterprise Edition and Enterprise Java Beans established Java as the go to back-end system language (thanks William!).

My first Java project was at a company called Cuica, where we built an advertising marketplace using on Java.  The product was a precursor to ad words if only it had survived the bust.  Interestingly, Cuica was my first experience with outsourcing as well.  The company we hired to do the job was Avantica!  That’s right, it was Avantica’s first Java project and mine as well, and my first time working with the guys in Costa Rica.  In fact, the lead developer was a guy named Henry who is the head of development for Avantica.  You can read a little more about that experience here.

In honor of my old friend Java, I asked a few of the guys who worked on some early projects why they felt Java became the innovation and success that it was.  I hope you find there answers interesting:

“Java was a promise of a language that will keep the power of C++ without its complexity, with a big plus: running everywhere.”

“Best Innovation? I cannot name just one thing, and the ones I may think of are not necessarily part of the language, but the community.  For instance, the specification process created important standards that many vendors adopted, which lead to a major adoption and fast growing of solutions.”

“The simplifications and enhancements weren’t trivial: automatic memory management, standardization among data types, the introduction of interfaces and a simplified inheritance design, the usage of packages, among many others. These features solved real problems developers were having with C++, at the time the main language used for development.”

“The two features of Java that most excited me from the outset were Portability and Automatic Memory Management.  At the time JDK 1.0 was released I was working on a File Transfer application that I was supporting for DOS, OS2, Windows 3.1 and Netware. The idea of building a single application for all of these platforms had obvious appeal.”

“My first Java application on JDK 1.0 was a secure communications client/server application design for trading game assets for one of the first persistent universe games called 10-Six. My lasting impression from developing this application was how little time I had to spend chasing down memory usage related bugs. As a C/C++ programmer I was accustomed to spending up to 50% of my time on memory management and tracking memory leak bugs.”

“The infrastructure of frameworks that have come from the Java community.  These frameworks made Java/J2EE the premier web development framework. Hibernate/JPA solved the long running headache of managing the persistence layer in J2EE applications.  Spring enables management of all frameworks in J2EE applications. Central to the Spring Framework is its Inversion of Control container, which provides a consistent means of configuring and managing Java objects using callbacks.”

Avantica Supports Costa Rican Green

This post was written by Marisol Briceño, our marketing coordinator and champion of all things green!

We’ve Gone Green!

With only 51,000 square kilometers of land (about 0.03% of the earth’s surface) Costa Rica has over 4% of the planet’s biodiversity ranking among the 20 countries with the most biodiversity in the world. Growing up surrounded by green mountains, secluded rain forests and impressive volcanoes, Costa Ricans are by nature very concerned about the environment.  That is who we are and a very important part of our identity.

The Costa Rican government has set the goal of achieving carbon neutrality by 2021, and while industry and government leaders have taken significant steps over the past few years to kick start the country towards carbon neutrality, full-scale implementation of actions is needed in order to meet our international declaration.

Everyone is accountable for carbon emission reduction, and as individuals every one of us should evaluate our actions and rethink the way we do things, reform our patterns as consumers and reduce our carbon footprint. Living a simple life using only what is necessary and avoid waste. It sounds like a big compromise, but really, it takes a few adjustments to our every day routine to make a big change. Really!

With this idea in mind, Avantica as a corporate citizen has taken actions to reduce the carbon footprint of our operations.  We noticed a strong interest in environmental issues in a group of Avanticans and leveraged that initiative to start Avantica Green.   The idea of going green was put on the table and immediately we saw an amazing reaction from Avanticans. After just one meeting, the ideas started flowing and given the various backgrounds of the members of Avantica Green, from marketing to engineering, we achieved an interesting mix of perspectives and solutions.

The team is currently investigating ways to make our operations more earth friendly and developing projects to involve other Avanticans in the process. We believe that a process such as this will never be successful unless it conveys a sense of responsibility and community to all it’s participants.  And this is something that came natural to our team.

We started by joining the 10:10 campaign, assuming the commitment to make small changes that will reduce our carbon footprint by 10% starting on 2010.  You too can find out how to join 10:10 here.

Here’s just one example of what our teams came up with.  Being really close to a large supermarket, we noticed that the consumption of plastic bags was alarming.  Imagine nearly 200 people with the munchies! That is way too many unnecessary plastic bags. We came up with a very simple solution, hand crafted canvas shopping bags. This way we avoid waste and also help Santa Clara Group, an association that motivates women in social disadvantage to learn to sew and build their own business to support their families and keep their children in school.

This is just the beginning of our journey, and we are very excited about all the ideas and projects that are yet to come.

Here are some ideas you can use to make your business more sustainable:

  1. Turn off the lights and monitors when you don’t need them. How hard can that be?
  2. Avoid unnecessary printing, and use recycled paper for internal documents
  3. Find alternative biodegradable cleaning products for your offices
  4. Use a glass of water to rinse when you brush your teeth, you can save up to 5 gallons of water in 3 minutes just by doing this!
  5. Keep track of your energy consumption and make someone responsible of developing a plan to reduce it.
  6. Upgrade your equipment to energy efficient models
  7. Reduce unnecessary travel by using video conferences
  8. Motivate your employees to assume a commitment to make a difference in their homes too!
  9. Involve all employees in this plan, it is a responsibility for all of us
  10. Come up with fun activities and competitions to reward positive change

Tell us what you have done to make a difference, the more ideas we share the most we make of our efforts to preserve our planet.

Visiting Avantica’s Northern Development Center

I had the opportunity to visit our northern Costa Rica development center near San Carlos on my last trip to the country.  Avantica has resources in many locations including 2 development centers in Costa Rica, a center in Lima, Peru, and a collection of folks in the US.  Our distributed resources enable us to grow and staff effectively to meet customer need.  Hiring tight in San Jose?  No, problem we’re finding good people in Peru as well.  Need a consolidated work force?  We recommend a hybrid team with resources in the US and San Jose.  I think you get the point.

How exactly do we choose where to open a development center?  Generally, it is driven by opportunity or availability of resources.  The San Carlos office was a bit of both.  Our team in Costa Rica built up a partnership with a company called Northek.  Northek had created a talented pool of engineers through tight collaboration with local universities like the Tecnológico de Costa Rica by supporting programs such as workshops, technology fairs, and internships.  Some team members continue to work as part-time professors helping to form new groups of talented young engineers in each graduating class.  In 2009, Avantica formed a joint business with Northek under the name Avantek. and officially Avantek became part of the Avantica group.

Today, Avantek is one of the most recognized software companies in northern Costa Rica.  We have over 30 people in the office and grow more each year.  You definitely feel the technology vibe when you walk from desk to desk discussing projects with various team members.  The strong educational pedigree and agile development philosophy driven by the leadership has produced a talented and motivated team doing great things for our clients. But wait, I didn’t tell you my favorite part about the office.

It’s part of a larger corporation but it feels like a startup!

People collaborate around desks and share ideas and have interesting opinions on technology, software development and the industry.  Engineers are not only coding to specifications, but also evaluating new product ideas to help clients create innovative software.  During the company meeting pictured later in this post, some of the more senior engineers asked good questions about the corporate culture and what is happening in the US industry.  There is nothing like the energy of a startup, and I am very impressed they have been able to retain that energy while joining the Avantica group.

I can only assume that comes from the top.  My discussions with the general manager Jose Pablo Rodriguez, and all the Vargas brothers (there are 3 of them and, I tell you, these guys are smart), validated this group is lead by people who truly get software development.  They simply love hard problems and we have thrown a few at them including some pretty complex code architectures.  Who would of thought that the model for a US startup would be replicated in a city in northern Costa Rica?

To me, our partnership with this development center seems like an excellent growth strategy.  Here it is in plain and simple:

  1. Find pockets of talented people throughout Latin America.
  2. Hire them

Makes sense to me!

Here are some of our pictures from the trip.

On our way to the office we stopped at a well known spot for a traditional Costa Rican breakfast including gallo pinto and flavorful coffee.  In the picture, you see from left-to-right Tom Johnson, SVP Development, Bob Benedict, CTO and resident short guy, Mario Chaves, co-founder and CEO, Gerardo Delgado, GM for Peru and Luis Carlos Chaves, co-founder and President.

Mario Chaves, Luis Carlos Chaves and Jose Pablo Rodriguez address the development team.

The company meeting.

Our northern development center is located near San Carlos, Costa Rica.  It is a few hours drive from headquarters (A is HQ).

Visiting Avantica Technologies in San Jose, Costa Rica

We decided to do a post on visiting our corporate headquarters in San Jose, Costa Rica because of all the increased visits to our company by new customers.  We hope you find this information helpful so much so that you visit us for business and then spend some time visiting the country on the weekend.

How to Get Here

Most major airlines fly to Costa Rica.  We recommend Continental although we have also flown American Airlines and United Airlines.  The flight from California is a little longer than going from the East coast to the West coast in the US.  In other words, it is just not that far away!  Check with the embassy in your country if you are not sure about needing a visa, but most travelers including the US need only a passport.

When you land, go through immigration, and then customs after collecting your luggage.  If you coordinate with us, we will arrange transportation to and from the airport.  If you need a cab, speak with one of the assistants in a white shirt before exiting the airport and make sure you take an orange cab.  These are official cabs and will safely get you to your hotel for somewhere around US$ 20.  Drivers accept US$ in case you don’t want to exchange currency at the airport.

Where To Stay

We recommend a few places to stay that are close to the office and nice for visitors.  The below map shows you the location of the hotels in relation to the office and other notable landmarks.

We have two hotels we recommend.  Both are walking distance (literally just a short block or two) from the office and both provide breakfast:

  • Hotel le Bergerac (http://www.bergerachotel.com) – A large house converted to a comfortable and stylish hotel that reminds me a lot of France for some reason.  This hotel even offers Wi-Fi!
  • Hotel Jade (http://www.hotelboutiquejade.com) – Pronounced “hah-day”, the Hotel Jade is also comfortable and located right near an excellent restaurant.

The following two pictures show the entrance to the office building from either direction.  The entrance is marked with a yellow 1. The top picture shows the entrance if you come from the Bergerac hotel.  You actually enter through the back way by the Mercado market (marked with a yellow 2).  You can get typical grocery store items here like drinks, chips and food, and also Costa Rican chocolates and coffee.  Try Cafe Brit!  To the right of the back entrance, you see the Giacomin cafe (labeled 3) which is an excellent place to get a coffee when you need a break.  You can even hold a meeting or discussion there if you prefer.

The entrance from the Jade Hotel is displayed below and again the way to go is marked with a yellow 1.

In either case, you are looking for this doorway which leads to the entire building.  Just inside the lobby near the security guard, you’ll see a small placard indicating Avantica Technologies is on the 6th floor.  That’s how you’ll know you have the right place.

Avantica occupies several floors but reception is on the 6th floor.  Head to your left upon exiting the elevator and then go left again.  You’ll be able to see reception through the glass doors.

What To Do On A Weekend

There are several options for weekend excursions depending on your tolerance for driving or flying.  If you prefer not to brave the streets, both hotels offer trips by bus to see the rain forest or do activities like river rafting and zip lining.  If you are more adventurous, rent a car from one of the many US brands like Hertz.  Make sure you get the GPS!  The amazing Arenal Volcano is just a few hours drive way.

I stayed at old observatory on the back side of the volcano.  You can see in the picture how close the lodge is to the volcano.  There are many spas and hotels on the front side in case you prefer something less remote.  Near Arenal, there are fun activities and hot springs, and even this amazing waterfall that is just a short hike through the rain forest.

The Monteverde Reserve is also a nice drive from San Jose.  Here’s a picture of Tom walking across a suspension bridge.  You can stay in town and spend the day walking over bridges and trails.  Or better yet, take a guided tour from your hotel.

And finally, for just a little more spend, hop on a flight with a regional airline and head to the coast.  We recommend Tamarindo and below you can see why!

How to Launch a New Technology Service

Software companies must stay informed of the latest trends and technologies to remain leading edge with their work.  Avantica is no different.  How do we do it?  How do we bring new technologies into our service offering efficiently?  We have 3 main phases we go through before customers are offered a service or technology.  Let’s go through them one at a time.

Step 1 — Vision

The first step for any new technology is for someone to have a vision about the benefits of the technology to the industry and the company.  Someone has to champion the topic so to speak and raise awareness of the potential.  We’re lucky that our company is loaded with early adopters and an abundance of technology geeks.  Chances are if it’s new and hot, we already know about it.  Knowing about new technology is not the same thing as having a vision or seeing the market potential however.  The visionary must be the advocate or the champion to drive interest within the organization.  Let’s look at a couple of our recent examples.

While everyone in the US was going crazy for iPhones and Android, the adoption rate for nearshore providers was a bit slower.  Our CEO recognized that mobile would be big and so would mobile as a companion for Web.  In fact, he was given an Entrepreneur of the Year award for his vision and for recognizing the potential long before others.  I am proud to say that with Ruby on Rails, I was the one who recognized the power of doing things the “Ruby-way”.  I started learning language several years ago and attended industry events like the 2008 Rails Conference in Portland, Oregon.  We’re several years into our Ruby on Rails practice and truthfully it has been very successful and continues to be one of our fastest growing market segments.

In both of these cases, we recognized not only the power of the platform but also the potential of the market.  We investigated further and determined this was a good place to focus our leading edge people.  Then, we championed the idea to start to build momentum.

Step 2 – Research

Your CEO or CTO says this is a business to be in, now what?  Simple really.  Call in the gurus!  We have these people in our company that generally serve as  architects and leads on projects, but part of their time is set aside for research and exploration.  You know the type of engineer I am talking about.  These are the people who look at a blank white board and know what to draw.  They can look over an SDK and compare to the 5 other similar ones they already know.  Truthfully, we think this is something that sets us apart from more traditional outsourcers. Our senior guys are really into technology.  It’s a hobby and a way of life in addition to a job.

Our leading edge engineers explore the new technology and validate the vision.  They study the internals and create sample products and solutions to see how the pieces fit together.  Once they are proficient, these technology leaders work to bring the rest of the organization along.  They provide links to Web sites and articles that explain all angles of the technology.  Our best engineers go so far as to develop classes like the one pictured below to teach our teams the new technology.  That person in the front is one of the aforementioned gurus by the way.  We even do internal projects for teams to learn.  For example, we did a Ruby on Rails project called RubyNearShore to implement a community site with expert exchange functionality and social networking based on Ruby on Rails.  The site was only viewed internally but served as a great project for people to work on real implementations of the language.

Step 3 – Opportunity

At some point, our research validates the technology and we have enough trained engineers to field a team.  We start marketing our new capability and looking for clients who need a product based on leading edge technology. Generally, the companies we engage with are start-ups and technology companies looking for a competitive edge.  For example, when Ruby on Rails first emerged, the attraction was speed of development and that lead many venture funders to push their new companies to launch on a new language.  Over time, the technology matures as our customer base grows and eventually we end up with a stable practice that we offer to new and existing customers.

We’ll see who in our company has the vision for that next great technology movement.  Perhaps we’re already seeing that in location-based services or maybe even high volume messaging.

Avantica Mobile Development Leader Ronald Hernandez

We interviewed our head of mobile development Ronald Hernández about his group and what they are working on.  Read his comments below.

What are the goals of the mobile group and what are you trying to achieve?

Obviously there is the goal of getting some great products out there.  We are trying to expand our knowledge and put in place some processes that will make mobile development run smoothly.  As a group we are a functional unit inside Avantica, meaning that we would have a whole set of resources dedicated to this specific area, like an independent group that provides services not only to external clients, but also to Avantica’s internal projects.

What types of applications does Avantica have experience with?

I guess we’ve been pretty much across the board in types of apps: Finance, Entertainment, Lifestyle, Health and Fitness. We are talking to a new client about a music application that should begin development shortly.  The apps that we’ve worked on vary a lot in terms of functionality and what it takes to piece them together to have something the client will be satisfied with.  We’ve developed them in all platforms: Android, iPhone, Symbian, Blackberry, Windows Mobile, so I can say we have experience across the whole board in both categories and platforms.  We’re never shy to go ahead and expand that.

How did you get involved with Avantica’s mobile group?  What interested you to lead the group?

I think that I’m a very technical person.  I love to work with gadgets and play around with stuff, so, all mobile things and working with small devices comes really natural to me.  Henry [Avantica Director of Development] came to me and asked me if I was interested to get the group going.  I did a couple of applications and the company saw that there was potential to get into this line of work.  Ever since then, I’ve grown to like the experience.

Can you describe a favorite project your group has done?

One of my personal favorites is a news app we developed for La Nación, which is an important Costa Rican newspaper that has the largest circulation in the country. It’s a personal favorite because it took a big effort to get it done, it’s a really cool app, and I think it pushes the boundaries in the UI side more than what we have done in the past.  It meant working with a very important client in Costa Rica and it’s going to give us a lot of exposure as a development company.

What mobile platforms seem interesting to you and what technologies are you looking at?

Every day is a new learning experience for us.  We try to cover as much as each SDK has to offer. We are investigating cross platform options like Phone Gap or Mono Touch to be able to go ahead and build mobile applications from other types of frameworks.  That is interesting to us because then we can generate apps in a lot less time across all platforms than if we create different applications for each platform.

From the Graphics point of view, I would say iPhone and iPad are very interesting to us. Obviously we don’t want to outcast other platforms, but seeing an iPad and the real estate that it offers, the possibilities we can explore are very interesting to us.

How do you envision Avantica´s mobile division in the future?

I see it growing in size.  Our engineers need to be fully trained in a whole suite of platforms.  Obviously I want them to be experienced in iPhone, Android, Blackberry and all major platforms.  Also I see us as a unit that generates content and learning material so that we can give back our knowledge to Avantica and all its resources, so that if they are not directly involved with the unit, at least they know what we are doing.  And from then on I also think that at one point we will be able to be recognized as experts in the area and we will be able to give back and share our knowledge to clients and the regional mobile community via seminars.

What is your favorite device and why?

My favorite device at the moment is the iPad.  It just rocks! It’s a tool that helps you with your every day activities. I’ve been using it for work, to write down notes, check out websites, check out trends and new apps coming out, that’s pretty cool. I carry it with me all the time. It’s great and it has given me an excuse to not carry my laptop around anymore, and that is always welcomed.

If a person is interested in mobile development, what do you recommend they do?

Read a lot.  Scour blogs and forums because it is an ever-changing environment and new stuff comes out every day.  Just being able to browse through the information that the Internet offers is a great start. Certainly, mobile is something that is flourishing at this moment.  Not all the rules and standards have been written down and there is new stuff coming out every day so just keep up with the trends and all that is going on.

I would recommend that if you are looking to get into mobile development, to start only with one platform and then move on to the others. If java developers are serious about doing mobile they can start off with Android or Blackberry because they can actually do java developments in there.  They just have to learn the quirks, nuts and bolts of how to do the application, but they already have the skill to start with.  If they want to do iPhone, I would suggest they get a book.  There are a ton of really good books out there that feature the craft.  Just keep in touch with other developers and what they are doing.

Any final thoughts?

Mobile devices are adding more functionality every generation so consequently apps will get more and more complex.  That gives developers and users lot of opportunities.  Faster processors, larger memory and bigger display screens are giving great opportunities to get creative and we are getting to a point where the sky is the limit to what you can do.  It is only going to get better with time.

I would encourage companies and developers to go ahead and jump into this. It is very interesting in the technical side and is something that the end user is going to be craving, especially with the proliferation of smart phones. It’s good business-wise and is also great progress from a technological and scientific approach.

Avantica Ruby on Rails Expert Christian Segura

We interviewed our most senior Ruby on Rails expert Christian Segura about this growing technology movement.  Read his opinions below.

When did you start learning Ruby on Rails (RoR) and what interested you about it?

I started learning RoR more than 2 years ago based on the fact that I am a web developer specialized in scripting languages and at that time I used to work mostly with PHP. The forums, discussions and the web in general terms were pretty hot regarding the Ruby programming language and its most popular framework Rails.

What type of applications is RoR suitable for?

In general terms, RoR is suitable for most types of web applications that currently exist. However many people have been using it for quite a long time in apps such as e-learning systems, content management systems, blogs, CRM, social networks, e-commerce solutions, web services and API connectivity applications among others.

Do you think there is a real benefit for customers who choose RoR?

Indeed they are going to perceive real benefit from the start.  RoR allows you to set up a basic application literally in minutes, which makes it great for the customers that enjoy watching results sooner than later (what customers don’t like that?). In that same line, Rails gems and plug-ins allow you to add core functionality into the application (authentication, pagination, etc.), that have been used by many applications and even more important are being tested around the world, so you can focus on development of customer specific business rules.

What are you favorite parts about working with RoR compared to other languages and frameworks?

I have to say that what I like the most from RoR is the fact that it is based in a pretty solid language. Ruby native core functionality provides developer with powerful tools such as metaprogramming and reflection which makes it really flexible and effective in some tasks that in other languages would be painful to accomplish.  I think definitely Rails has an advantage over other frameworks because it is based in simple principles like convention over configuration, DRY and even the Model/View/Controller pattern (MVC). Any developer with the notion of MVC will feel comfortable working with RoR.  The ramp up process for new developers that join an existing RoR project is clearly minor than with other languages/frameworks.

You are now the company teacher about RoR.  Can you tell us how you train new engineers?

I like to start by taking a look at the powerful functionality that the language provide.  Ruby has many interesting features that any developer can take advantage and that definitely is worth it to teach first. Also, I think it is important for developers to recognize where the programming language ends and the Rails framework starts.  After that, I like to teach the basics and theory behind the framework: Active Record, Action Controller, Action View, etc. After some basics, I like to combine theory with the creation of a project from scratch since it is great for developers to see before their very eyes how fast they can build an application.  At the very end, I include other more complex topics/tools not only from the framework but also that help to create better products.

What is interesting about upcoming changes in the language and framework?  Do you like the direction it is going?

The next major milestone is going to be Rails 3.  It’s really interesting because they are also merging the Merb framework (another popular Ruby framework) into Rails, and the core dev team is going to receive great input from Merb.  Besides that, I think some of the interesting features are going to be ActiveModel which is going to allow the use of validators and other ActiveRecord functionality into regular classes, Responders which will allow to set specific business logic to be wrapped when you are sending a result back from controller to views (like the format of response, etc) and also performance improvements among others.  They are also planning on defining more standards to have better API integrations, for example, new ActiveModel would make easier to include a particular ORM’s (by following the standards) instead of ActiveRecord if needed.  The direction I think is the correct one.

Why do you think engineers like RoR so much?

I’m one of them!  I can say that in general terms we like the flexibility that Rails and Ruby allow without leaving out important topics such as security or performance.  Definitely Rails facilitates the learning process when you need to move from one project or application to another since you don’t need to learn the whole stack and architecture from scratch.  The conventions will show you the way to go.  One thing that every human being appreciates is having an easier life.

Follow

Get every new post delivered to your Inbox.