Mozilla at Campus Party Brasil 2014

Mozilla at Campus Party

Mozilla at Campus Party

This year we took 15 people (Volunteers + Staff) to Campus Party Brasil which is probably the largest tech event/gathering in the world with eight thousand people camping at the venue and an unknown number of people floating at the expo area. Even though this event was organized at the nick of time, it was one of our best events ever. We had numerous activities planed among them 3 talks at the normal schedule (a.k.a. during the day), 5 talks during community schedules (a.k.a. so late it is almost day again), 1 workshop and 1 hackathon.

These activities were all great but they were not our main mission at Campus Party for we had a secret plan in our mind…

Help Save Torresminho the Cat

Torresminho Looking Sharp

Torresminho Looking Sharp

Once upon a time, there was a frightened and skinny cat named Torresminho, because he raised himself at Noronha Torrezão street, who decided one day to help an SUV driver and change the tire of a moving car.

It didn’t work. The driver, mad with the bad service drove away never looking back.

Uncle Andre and Aunt Lili who were passing by rescued what was left of the crying-half-broken kitten and drove quickly to the vet clinic.

Even though we can rebuild him, we have the technology we can’t actually afford to pay the surgeries and treatment that he needs. Thats why we need your help to make sure this story has a happy ending.

What Actually Happened

Torresminho after rescue

Torresminho after rescue

Now in plain half-decent English: We were driving back home when we saw a little kitten lying down resting in the middle of the road. We managed not to hit him and stopped our car to rescue to little clueless cat. Lili, my wife, waved the car behind us that she was going to grab the cat. The car was an SUV that was far enough to stop or dodge our group. They never changed course and hit the 45 days old kitten. The driver never stopped, just drove away.

We picked the bloodied broken cat and drove to Pet & Vet clinic where he is undergoing treatment.

The Initial Crowdfunding Campaign

As soon as we rescued him and placed him under the care of the clinic we started a crowdfunding campaign to help treat him but we were naive in how much it would cost and we asked for way less money than we needed. Our initial campaign is already closed and we got 110% of our target which was close to USD 400. This was enough to pay for the first three days of treatment and the initial exams.

That first campaign got us about USD 400 but by the end of the week we had already spent close to USD 500. The costs started piling up and thats why we’re making this page and a new appeal.

The State of Torresminho

Torresminho UTI

Torresminho UTI

After many exams (X Ray, Ultrasound) we learn that Torresminho is OK inside (aka no broken internal organs) but his hips, left femur and front left leg are broken. Basically his left side and hips are a mess.

The first X Rays of Torresminho displays a Cat so broken that would not be willing to move but the reality is a bit different. Torresminho stands up and tries to walk, he loves to play and is in constant look for food and being pet. He purrs at the mere sight of us and one of the mostly friendly cat we’ve ever seen. Our little needy playful friend looks pretty sharp and we want him to heal completely.

Our whishes to see Torresminho treatment complete means that he needs to undergo surgery to fix his femur, Torresminho will become a hero to all cats because he is going full cyborg with some tiny metal plates. He could even pose as a pro bike racer or something after surgery. If we don’t go to surgery, he’ll limp, probably not be able to jump and one of his legs will be on an L shape like a Picasso painting. We’d like the Cyborg version better than the Picasso version. Unfortunately the surgery costs about USD 800 and we can’t afford it.

Torresminho Needs You!!!

Torresminho Awwwnnn

Torresminho Awwwnnn

Me and Lili are doing all we can do for Torresminho but we simply don’t have enough money. To paint a clear picture into your mind, while I was writing this post, the cable TV guy came here to pick the Sky STB because we’re canceling the cable TV to cut costs. If we’re cutting cable, imagine how hard it is for us to pay for his treatment.

You can help Torresminho by donating money using the PayPal button below. If you can’t contribute in a financial form to help this gorgeous sweet kitten then at least force all your friends and enemies to do it.

PayPal accepts all major credit cards. Help us help Torresminho. He already lost 3 lives by being hit by an SUV and surviving. He needs your help not to lose the few remaining lives he has.

Andre & Lili

PS: Whoever wants an update or see exam results from Torresminho can get them by sending me an email at andre@andregarzia.com.

DB Lib Goes Open Source with GPL

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. For example consider the following code:

dbWhere "country", "Brazil" put dbGet("contacts") into tDataA set the dgdata of control "contacts" to tDataA

It picks all records from the contacts table that have the country field equals to Brazil and set a datagrid to it. It’s very easy to use. A more involved example:

on mouseUp -- assemble array put dbCardToArray("contacts") into tDataA -- check if we're adding a new record -- or updating an existing one. -- -- this check depends on the record id being present. if field "id" is empty then get dbInsert("contacts", tDataA) if it is not a number then answer error it else answer "New Record Saved" end if go card "contact list" else dbWhere "id", field "id" get dbUpdate("contacts", tDataA) if it is not a number then answer error it else answer "Record Updated" end if go card "contact list" end if end mouseUp

In this code first we pick the data from a card using dbCardToArray(), a function that magically picks data from fields, buttons and other controls, and assemble an array that is used to insert or update a given record depending on the presence of an id field.

This is just a quick glimpse of what you can do with DB Lib. It is basically a ORM for LiveCode.

A simple publisher/subscriber library for LiveCode

livecode, english

This is a simple library I made to use in a game we’re making where we needed a way for objects to interact with each other without hard coded object references. This pattern is known as the publisher/subscriber pattern or the observer pattern.

In this pattern objects can register themselves as listeners for specific events. Once an object triggers an event, all objects that we’re listening for such event will receive a callback message. You can use this pattern to allow controls to react to events in your program without the need to hard code dispatch/send messages. A good example is a progress bar that listens for a message that is triggered by a download operation. The download routine would trigger this message without the knowledge of the progress bar, it is just broadcasting it like: “hey, I am downloading something” and the progress bar will listen for this broadcast and react to it. The code could be like:

on openCard put the long id of scrollbar "progress" into tTarget addEventListener "downloadProgress", "downloadProgressCallback", tTarget libURLSetStatusCallback "urlstatus" load URL myURL with message "downloadComplete" end openCard on urlstatus pURL, pStatus switch item 1 of pStatus case "loading" put 0 into tDataA["start"] put item 3 of pStatus into tDataA["end"] put item 2 of pStatus into tDataA["progress"] trigger "downloadProgress", tDataA break end switch end urlstatus on downloadComplete ## this is just cosmetic to guarantee that ## the progress bar goes to 100% once the download ## is completed. put 0 into tDataA["start"] put 100 tDataA["end"] put 100 into tDataA["progress"] trigger "downloadProgress", tDataA end downloadComplete

In the given scrollbar script:

on downloadProgressCallback pDataA set the startValue of me to pDataA["start"] set the endValue of me to pDataA["end"] set the thumbpos of me to pDataA["progress"] end downloadProgressCallback

This way we can change the UI that reacts to the download without touching the urlstatus message implementation. We could have many controls listening for the downloadProgress event. Also check out how both the urlstatus message and the downloadComplete message trigger the downloadProgress event. None of these messages have any prior knowledge of whom is receiving this event and nothing is hardcoded.

Using such patterns, you can decouple your user interface from the inner workings of your application easier than before. In our little game we have stuff such as objects broadcasting events like “exploded” and “died” so that other objects can react. Since in games you tend to create and destroy objects at runtime a lot, this library makes our life easier.

This library is released in the public domain. Use it as you see fit, can’t sue me. To download this library, use the link on the sidebar (or link below if you’re using a mobile device).