Magic in the box

I’ve been waiting for a long time before have been able to open that little box that was parked in the lumber room; a small orange cube that creates magic things was inside of it. The little cube I’m talking about is my new micro 3d printer.

I had never printed anything in my life but I’ve always been fascinated by 3d models. I never really put myself in doing something until one day I designed a 3d coffee cup and I had it printed.

coffee cup 3d model

Coffee Cup 3d Model

In that period I saw a kickstarter campaign and decided to give it a try. It took a long time before the campaign would end and then before the printer was shipped and then used 🙂 But I finally managed to print something.

m3d printing arrangement

m3d printing arrangements

 Actually I’m still in the process of test printing, discover materials, temperature, quality settings, and spool arrangements, calibration. In the meanwhile I’ll be waiting for the next 8 hours for my medium quality personal 3d over door hanger to be printed, designing a 3d door key hanger. I need a lot of useful tools in my house 🙂

And anyway this pla blue spool is much better of my abs white 😉

Outreach Program For Women a year later

It’s passed a year and a new Summer will begin…a new summer for the women that will be chosen and that will start soon the GNOME’s Outreach Program for Women.

This summer Mozilla will participate with three different projects listed here and among them the Mozilla Bug Wrangler for Desktop QA that is the one I applied for last year. It has been a great experience for me and I want to wish good luck to everyone who submitted the application.

I hope you’ll have a wonderful and productive summer 🙂

Destroy vs Delete in Rails

It has been not really clear in my mind the difference between “destroy” and “delete” for a while before attempting to delete an object and its related once. In this situation and, reading carefully the documentation and the source code, I have discovered that was impossible since delete is used to delete the objects without instantiating it and executing the callbacks, including :dependent for associations. While using destroy the object is instantiated first and so callbacks and filters are triggered.

Assuming the existence of two model a Customer and an Address. With a relation of has_many that connects them:

class Customer < ActiveRecord::Base
has_many :addresses, dependent: :destroy
end
class Address < ActiveRecord::Base
belongs_to :customer
end

I’ve tried to use delete to remove the customer from the database but all the addresses were pending in the database orphans. Then I’ve used “destroy” to destroy the customer and all the addresses related.

Customer.destroy(params[:id])

In this way the customer and all the addresses (marked using “dependent” option) are deleted.

Ruby and its destructive methods…

In ruby there are methods followed by a “!” symbol (exclamation mark). These methods alter the object itself.

For example in the Array class there are two versions of shuffle method
shuffle and shuffle!.

a = [1,2,3, 4] => [1, 2, 3, 4]
a.object_id => 70279519801380
a.shuffle.object_id => 70279519867040
a.shuffle!.object_id => 70279519801380

  • Shuffle version returns a new array with elements of self shuffled and as a.shuffle.object_id shows a different value from a.object_id.
  • shuffle! modifies the object itself,  shuffling elements in self in place and a.shuffle!.object_id shows the same object_id of a.object_id.

OPW at the end…

After three months has arrived the end of my internship period in Mozilla for the OPW. I’ve outlined in my mind a better idea of what is Mozilla and open source. I’ve experienced this movement of people that is really passionate about what it does; a new working way, an open and smart world. I’m really thankful for this opportunity.
This internship has meant a lot to me from both professional and personal point of view. I’ve had a great chance for improving my professional skills working with a large open source project and I’ve learnt or try to 🙂  :

  • Don’t be shy!
  • Be patience!
  • Have an open mind!
  • Read a lot of documentation and….ask questions!

I’ve started working with Bugmasters community, talking, helping triagers, developers and community members and I want to thanks my Mozilla mentor Liz Henry and everyone has made this possible for the help, the support and the work done.
During this period:

  • I’ve created a tutorial to help learning how to triage (1)
  • I’ve helped improving documentation on wiki.mozilla.org , I took part in Bugmasters Bug Days (Sumo Bugs days, Mentored and good first bus triage days, weekly triage events) and the sum of all the bugs I’ve worked on during my triage until now is in my user profile (2) and in the specific period June 17 – Sept 23 (3)
  • I’ve explored what has begun a new bugmasters project to triaging Middleage bugs (4)
  • I’ve created a Firefox add-on, a tool for bug wranglers to triage bugs on bugzilla.mozilla.org that has been preliminary reviewed (5)
  • I’ve fixed my good first bug on firefox (6) that will be in the Firefox 25 release.
  • I’ve started working on other existing coding projects on github related to bugzilla report as for example (7)

it’s the end of the summer but it’s not and and at all! 🙂 In the future I’ll keep on helping and profuse my efforts and my time to help Mozilla community and live open source everyday! 🙂
See you all around the web!

Crochet Hair clips

Making new things, creating, is one of the things I love the most, even if my creations – whatever they are – end up in a closed drawer. I love the feeling to connect with the real world surrounding me. It’s a marvelous feeling.
That’s what I felt in these past few days when I’ve finished making a bunch of hair clips.handmade hair clips

These crochet clips are made with cotton and little buttons attached with hot glue. These will go to friends and families but I think I’ll be making more in the future.
Ah, and by the way: they look great with the new iOS 7 candish color palette.:)

One month to go…

One month and my OPW experience will finish. I was reading a blog post of Gabriela Salvador Thumé, an OPW intern involved in a Mozilla Crash Stats project named Socorro.

This week closed a cycle of 2 months in this amazing OPW experience. I am so glad to be part of an incredible team like Socorro. I was reflecting about our hopes and expectations, sometimes we feel that we don’t have to dream huge because the risk of the dream come true is little, but if we always dream at the lower limit, we never are going to experience the happiness of doing something that really challenges you. I know that doing challenging things all the time can be frustrating, but the gratification is so much higher than the fear of do not getting whatever you want.
I am digressing into this because I have just one month till the end of the OPW and I am enjoying so much that I don’t want it to end. But I am sure that because of this awesome experience I am rethinking a lot of thoughts that I have about myself, like my capability of doing what I really want (maybe sometimes I feel a little about getting into the impostor syndrome).

She was reflecting about this internship and I’ve started thinking about these two months that have passed; about all the expectations, feelings, experiences…
It seems to me to have lived two months of challenges, professional and personal challenges. It’s like when you go to a game shop and you see a shelf full of puzzles. You decide to buy a puzzle game because you like it, you feel that you can finish it and that it will fits good in your home.  Then, each day you look at the puzzle and you add a new piece.
The same way each day of this internship has been a new challenge, a new peace to add to complete the puzzle. Sometimes you find the pieces that perfectly match to the others and you feel like you are doing well but, there are days when you discover that a piece is not in the right place and you need to remove it and start working on it again.

This internship is spurring me on keep on working, it is spurring me on be confronted with others, to let the fears go away, not to be too much worried about mistakes that can always happen, and to hardly work to reach my goals and improve myself. You could sometimes feel like have chosen a puzzle too great for your abilities but maybe you should only need more time, or more studies, more efforts and I’m sure it will be ok…you’ll finish the puzzle!

Every new experience is a challenge, you’ll never feel like everything is clear at the beginning but the gratification at the end will be the reward!

 

[good first bug] FIXED

One of the projects I’m working on during my OPW internship is triaging mentored and good first bugs. [good first bug] is the tag used in the whiteboard in bugzilla.mozilla.org to signal that a bug could be a good first step to work on for newcomers to Mozilla. A [mentor=x] tag is also added in the whiteboard if that bug has a mentor assigned to it who can help developers working on it.

Triaging good first bugs and mentored bugs means running through those and making sure that they are current and still valid (Most of that bugs are a little stale but valid, other are not valid anymore). Another goal is unassigning inactive bugs and let them free for a new person to work on it. One of the bug days organized by Bugmasters is that of Mentored Bugs. Even if there is no active Bug Day it is possible to work on that in any moment. During this activity I’ve noticed this one bug 854952 and I’ve decided to try to work on it :).

  • I’ve started reading about how to contribute to the Mozilla codebase,
  • I’ve contacted the mentor assigned to that bug. I’ve spoken with him trying to understand the work to do.
  • The bug has been assigned to me and I’ve started to work!…my [good first bug]!.

After the bug has been assigned to me

  • I’ve downloaded the Firefox source code and built it.
  • I’ve started exploring the source code for understanding which part I needed to take under control;
  • I’ve implemented the changes needed. I’ve submitted my patch asking for needinfo before having a definitive patch to submit.

My patch has been approved and added to mozilla-central repository and it will be available in Firefox 25 even if it is still visible from the Nightly 26.0a1 (2013-08-06). It involves changes in the fullscreen permission prompt and the changes have been required css and XUL knowledge other than a minimal understanding of Mercurial and Javascript. I’ve worked on Mac OS but during the development process I’ve tested it on Windows, too. So I’ve learned how to build Firefox on other platform,too. (and with my Windows machine with only 4 GM RAM it’s not so quick 😉 )
This is the result of my work 🙂

Fullscreen Permission Prompt

Current Fullscreen Permission Prompt

While this was the previous prompt.

Previuous Fullscrren Permission Prompt

I’ve changed text and buttons’ order on UNIX systems, added a background image and halved the border-radius to make the prompt prettier 🙂 . I need to thanks my mentor Jared Wein and all the developers’ community, that can be reached on #introduction channel of irc.mozilla.org, if my good first bug has been RESOLVED FIXED in a short period of time and now I’ve learned a little bit more 🙂