Apple is hostile to small ISV and business


Maya is a hypotetical cupcake shop owner. Like many small business owners, she is trying her best to make it all work for her and her employees. Knowing that she needed a presence in the Apple App Store, but unable to afford a custom design from a development company, Maya hired a small shop specialized in providing business like her with a good enough app to enable her to connect with her customers with a price that she could afford. She was happy, so were her clients, but now Apple changed her policies for the App Store and her app is in danger of being removed for not being original enough.

These type of little ISV building apps for small business owners with prices much more reasonable than those practices by bespoke solution developers have their days numbered. Apparently Apple does not consider them a valid citizen of the App Store developer community. With the recent changes in their policies, Apple has the right to ban apps that appear to have been created by a template/generational app.

Programmers are miniscientists

ideas, quotes

In this sense a programmer is a miniscientist. Scientists create approximate models for some idealized version of the world to make predictions about it. As long as the model’s predictions come true, everything is fine; when the predicted events differ from the actual ones, scientists revise their models to reduce the discrepancy. In a similar vein, when programmers are given a task, they create a first design, turn it into code, evaluate it with actual users, and iteratively refine the design until the program’s behavior closely matches the desired product.

Fantastic quote from how to design programs, one of the best books about programming ever released.

Creating Rust-based NodeJS modules

Creating NodeJS modules with Rust - sample webapp session from Amora Labs on Vimeo.

The popularity enjoyed by NodeJS in the past years made it a lot easier for front-end developers to become fullstack developers while mastering a single language — Javascript — and thousands JS-based shops flourished. The non-blocking nature of NodeJS and the asynchronous ways of JS made it relatively easy to ship quality webapps while in parallel, the copious amounts of cheap CPU and RAM available on the cloud allowed developers to mostly ignore naive algorithms unless they were working on products at a scale that most developers don’t do such as Facebook and Google stuff.

In this article I’ll show you how to build Rust-based NodeJS modules by exploring how to improve a naive webapp bottleneck. I thought this was a better example than the standard hello world we tend to see in these type of article, still, there are many ways to solve the problem presented here and before complaining to me that the one true solution to this problem lies elsewhere, one should remember that this is a demo crafted to show the reader about NodeJS modules. What is presented here is not a real product. So without further ado, lets first check what is that we are building here.

Addons Hack Day

mozilla, addons
Group photo

Group photo

What was the event all about

Brazilian development communities are very organized with constant meetups and chatty online groups focused on specifics points of interest, regions or technologies. Most of these online groups are based on Telegram instant messaging app and basically, people talk all day long. It was in one of such small talk conversations that one group member mentioned an Add-on he created, some other members expressed interest in knowing more about Add-ons because they wanted to port some web development focused WebExtensions from Chrome to Firefox. Thats how we decided to run a hack day event focused on porting Add-ons, it all begun with a single instant message.

Message launching the idea of an Add-on event

Message launching the idea of an Add-on event

As the idea matured, we learned that Firefox is yet to add the WebExtensions DevTools API, so our Add-on porting day would pivot into an Add-on creation day.


mozilla, portugues

Então, você está organizando meetups, oficinas ou ensinando a Web, e está se perguntando qual a melhor forma de treinar seus facilitadores? Bom, eu não vou afirmar que eu sei qual a melhor forma de realizar esses treinamentos mas nesse pequeno artigo eu vou mostrar uma forma que funciona muito bem para mim, eu chamo de treinamento em ondas.

Introducing Remote DB Lib

livecode, english

DB Lib is a minimalistic database library for LiveCode that works on Desktop and Mobile and allows you to build database-savvy apps without writing SQL directly. This post is to introduce a great new feature called Remote DB Lib. As you may know from posts on the How To Use LiveCode mailing list and forums, many developers would like to use DB Lib in their apps over the internet. Like all other database libraries that work on top of RevDB, DB Lib (until today) needed to connect directly to the database server to work and this is not a good solution for apps that work over the internet since exposing MySQL to the internet at large is a huge security risk.

Today I am releasing the first version of a drop-in replacement library called Remote DB Lib. This new library has the same API as the current DB Lib but instead of working on top of RevDB, it works alongside a matching PHP file on your server, it is this PHP file that actually talks to the database server. The Remote DB Lib picks all your DB Lib calls and packs it on an encrypted message that is sent to the PHP file where it is decrypted and executed. This library is using state of the art AES 256 encryption (you can also add a free SSL certificate from Let’s Encrypt to add even more security) to protect your data.

Cool Links of The Week #2

Links Bacanas da Semana