Blog


Work smarter rather than hard

Swift Vs Objective-C the ultimate answer

Since 2014 Swift programming language has gotten the fascination of developers and strangers, but what about the old and reliable Objective-C, that for years has been the default language in iOS and OSX applications. Is Objective-C dead? Do the new generations should only know Swift? Is Swift the tool for everything? In this article, I will try to answer those questions, by comparing them in different categories. > In this article I am not considering backend development with Swift

No big framework, No problem

Recently you might face the need to learn a new frontend framework, and last year you had to do the same. Unfortunately, this is a very common practice among web developers, spending too much time during the learning curve for a technology that won’t be using in their next job. A pure javascript solution is not very sexy, but with the right architecture, any developer can be productive since the first day.

8 Reasons Why You Should NOT Shoot in JPEG

One of my hobbies is taking pictures, although I am still learning, with my computer science background I know, that If I want to post process my images I need the RAW files. Why because compression algorithms used today sucks! And no matter how good your camera is, the algorithm will do the same to your images. JPEG is NOT Film JPEG as any other digital format, it will always be digital: a sample of a real world signal(consider pictures as 2D signals).

What and where precision matters

It is well known in all programming languages the floating point math loses some accuracy. Therefore we have something like the following statement 0.1 + 0.2 != 0.3 This is explained in detail in here, but basically, is because some fractional numbers aren’t well represented on binary, and the carryover loses accuracy, but it keeps precise. There are several ways to mitigate this effect, the most known use double numbers or big decimal representations, the problem with those is the operations tend to use more computing resources, especially with BigNumbers, that usually are objects with large strings and complicated math behind.

Divide and... conquer?

It has been taught “divide and conquer” is a great technique to solve any problem. Well, sometimes in practice it is harder than we, though, here is a case study of how our team apply this concept and still wasn’t enough, we need to divide even more and tweak some other things. The problem In the beginning, a the developer in charge to create an algorithm for the mean value for some data points did not have in mind the massive data and the required memory to process that piece of code in the future.

5 reasons I move form X to Y programming language?

These days there is the a trend of experienced developers leaving X programming language to move to Y, but why is this happening? Is X awful? Is Y the future? The answers is simple, personal preferences. Here in this article, I try to expose some of the wrong reasons you shouldn’t consider moving to another programming language where most of your current experience and knowledge is useless, and you will start almost from zero.

Lessons Learned from a computer graphics background

The dream from almost all computer nerd is to make his own video game, unfortunately this goal is harder than we though. It turns that is not only required a computer science knowledge, but an additional amount of skills, from complex math to 3d modeling and game design. When I finished college, I realized that if I wanted to build a video game I will need to work with a big team to build a good one, or at least have some artistic gifts(which I don’t have).

Heroku hybrid application with Go and Ruby

As a ruby developer I like how easy and convenient is to have an asset pipeline, specially when your frontend gets larger or complex. Serve fewer and smaller files is a good practice on web development, however the best tool(that I know) for asset pipeline is sprockets, and is really hard to build from scratch an asset pipeline handler with compression and minification. Instead of reinvent the wheel, lets use it.

Benchmark tools for Rubyist

When in doubt test it! Sometimes in the development process you might find yourself with the need to know if a component is performing better or worse, there are couple ways to get that information, one is through run benchmarks and you could do it from server side handling it as another test within your suite, or you can test the response times on your app with some external tools to get a better profile.

Speed things up with Go