Don’t be afraid of handing out cards by Fernando Cardoce

In this post I'm going to address the two more important situations that help me learn and grow as a professional in the last 15 days. First, the one that I enjoyed the must, putting networking on practice. We been reading a networking book in the weekly book club, Ferrazzi's "Never Eat Alone", but until now it was mostly theory for me, I hadn't had the chance to put it in practice. Ive talk to Carlos about how it help him on his last trip, and then I realize maybe I could m ...More

When you feel something is wrong, move! by Fernando Sanchez

Well I am not going to lie, these last days for me have been complicated, I started working on a new project, and made a 180 (Not 360 since I would be on the same place) degree change from the point of view of the different technologies I used on the last project. In my last project I used AngularJS, Firebase, Ionic, node.js and similar technologies. For this new project I have been using things that are really different such Hibernate, Maven, PostgreSQL, Jersey, Java, ... So it's been di ...More

Modules on ES6

Modules are one of the most exciting features of ES6. They allows to decouple our code easier than before. How to use them Before to import a module you need first to export it: function myFunction () { ... } export { myFunction } ...More

Angular & ES6

Why using ES6? Now ES6 incorporates modules which make our code cleaner and readable. Also because new version of angular, Angular 2, is written on ES6 and writing our 1.x version of angular applications with ES6 can be very close to what is coming on this new version.   Angular Components Now let's see the most common methods used on angular.module and what do they expect: angular.mod ...More

Great Insights from a Pitch Night

Discussing MVPs and target markets, moderated with a fine humor and complemented by valuable questions from the jury , we heard how six people are trying to join Pernix Labs. Several months have passed since Pernix decided to get involved even more actively in the Costa Rican innovation ecosystem. With the creation of Pernix Labs, we are giving entrepreneurs an opportunit ...More

How we tested a business idea generation experiment

Team collaboration by brain writing, focusing on problems instead of solutions or thinking in the perfect world can help us to start bringing up with new business ideas.   Talking with friends about what you did over the weekend, listening to radio while stuck on a traffic jam or just while taking a shower. Those are everyday situations we all live that have something in commo ...More

3 advices to raise capital for your startup

Promoting yourself instead of your idea, being the first one to take risks on your project and having a clear plan since the beginning are crucial for investors.     A few weeks ago, Alex Luzes, Innovation Director at Microsoft Latam New Markets, offered a workshop about how to build a business plan for startups. On this session, Mr Luzes developed some key factors investors use to make the decision of where to p ...More

Being part of the community: RailsConf

Rails devs may be used to hear about Ruby conferences, Rails conferences, Atlanta, Portland, Austin, DHH, tenderlove. In my case, well I heard before that there were these types of conferences, but never got really into the community to learn about them and the most important characters in there.   Well actually, I have been working with Ruby only 5 months and with Rails just one month! So, when they told me I was heading to the RailsConf in ...More

Early Releasing of Products – Part 1

Do you remember the last time you released a product? Let me tell you an story about how not to develop software that I have seen happening everywhere, but we haven’t learned it yet. In part 2 I answer the questions to solve this kind of problems. Once upon a time, at Yoshi’s Island...   Mario Bros had an amazing idea and was convinced this would make millions for his family. He decided to contact an offshore software development company called Luigi ...More

Agile 2013 – Conference Report

This year I attended along with Mr Jonathan Avalos  to Agile2013 at beautiful Nashville. I arrived to the conference on Tuesday as I had a family commitment and had to fly to Nashville late; luckily enough I got in with enough time to catch the conference ...More

OOP Principles (part 7) – Liskov substitution principle

The idea of this principle is that all the methods that works with certain class should work without problems and without making extra modifications with any other class that is a subtype of  the first one. In other words, if S is a subtype of T, then objects of type T in a program may be replaced with objects of type S without altering any of the desirable properties of that program. That means that not every "is a" (as in the phrase a square is a rectangle) should be treated or modeled ...More

OOP Principles (part 6) – Open/Close Principle

The main idea of this principle is that a class or module should be open for extension, but closed for modification, that's mean that we should only modify a class to correct errors, and when we want to add some extra features, or change the existing ones we should create a new class. This class can copy behaviours or characteristics through inheritance.In other words:A module or class is open for extension when we can add new behaviour to the moduleAnd is close for modificatio ...More

OOP Principles (part 5) – Single Responsibility Principle

This principle says that each class should have a unique responsibility and that responsibility should be encapsulated by the class. This principle is similar to the principle of cohesion, but in this one the responsibility is considered as a reason to change.To accomplish with this principle our class should have just one reason to change, one responsibility, so in the moment we add another responsibility to our class, this one violates the principle.Let's study this class: ...More

OOP Principles (part 4) – Tell don’t ask

How the name of the principle indicates, tell don't ask, means that we shouldn't ask things to our code, what we should do is indicate what we can to do.What I mean with ask things to our code is that usually we ask to our objects for a state, we make a decision and then tell them what to do and what we really should do is to tell, to give commands.And as Alec Sharp said in his book Smalltalk by Example Procedural code gets information then makes decisions. Ob ...More

OOP Principles (part 3) – Cohesion

As the coupling the cohesion can be measured as low or high cohesion.The level of cohesion is related with the responsibilities of the class, in other words, we have high cohesion when the methods of our class tends to be similar, they work under the same responsibility of the class. That means that the methods are grouped in the classes by their functionality.So the low cohesion is when the class have methods that doesn't have relation at all.Let see a example: ...More

OOP Principles (part 2) – Coupling

Coupling can be either low or high.We talk about high cohesion when some class has high interdependency with other classes. That means that our first class depends to the working of the other ones.We can find interdependency in various cases, for example:When one class has attributes that belongs to another class.When the class uses a method from other class.When some of our methods use attributes or return an object from anot ...More

OOP Principles (part 2) – Coupling And Cohesion

Most of the time coupling and cohesion are contrasted between them. Low coupling often correlates with high cohesion and vice versa.CouplingCoupling can be either "low" or "high".A high level of coupling implies that a module has high interdependency with another module, that is when one module modifies or relies on the internal workings of another module. Also with a high coupling with need to work with more coordinations and informations flows between the modu ...More

OOP Principles (part 1) – Encapsulation

EncapsulationEncapsulation or information hiding is one of the OOP(Object-Oriented Programming) principles. The encapsulation is used to hide values of an object inside a class, preventing the direct access to them, then to securely access to them public methods are providing in the class.One of the advantage that the encapsulation brings us is that if we build a very solid interface for our objects the we could change some implementations and the cli ...More

MVP (Minimal Viable Product)

The basic idea of The Minimal Viable Product is to maximize validated learning for the least amount of effort.According to Eric Ries the MVP is just "the minimun features that are required to learn what customers want", the a MVP can be:A landing page that identifies whether or not there is potential demand, ...More