My experience at Seattle CodeCamp 2015

Last week I had the chance to speak at the Seattle CodeCamp 2015. It truly gets better each year; the quality of speakers and the support from the community. For those interested, I gave two talks, one I had done previously and a new new.

Talk 1: Introduction to Jenkins

Honestly, the first talk had a rocky start, my fault for not noticing that my demo laptop had HDMI instead of VGA. After that we were able to dig into Continuous Integration  and how Jenkins plays a key role on distributed development teams. The key takeaway for the group was to use nodes (slaves) to distribute workloads and also to be able to test in different operating systems/browsers, etc.

Talk 2: Slack for mere mortals

This was the first time I talked about Slack and my personal experience within small and large groups. Being in thee DevOps track the bulk of the questions and examples were geared towards ChatOps and the concenpt of bringing work to the conversations you are already having.

I am very impressed by the organizing team and the large number of volunteers, they totally made this event seamless for speakers and attendees. Thanks.

Tagged , ,

Introduction to jenkins for the .net developer at @netda

Today I had a chance to share with a group of .NET developers some of the features of Jenkins and how continuous integration fits in today’s software development world. We talked about some of the options on source control, plugins, workflow, jobs and master/slave node architecture. Here are the slides for those interested.

Hope those who attended @netda enjoyed it. Feel free to share with me your experiences with Jenkins.

Add some pride to any picture – Inspired by Love and created with Love

Inspired by the decision of the Supreme Court of the United States to declare same sex marriage a constitutional right and the celebratepride tool that Facebook launched on that same day, I decided to create an MMS ( Twilio powered) version of the same for those who (and I’m not sure why) do not have a Facebook account yet. Here are the steps I followed to make this happen; if you want to see the demo go to

Step 1 – Change Opacity:

First I needed to find a way to change the opacity of the rainbow flag; a 50% seemed like the right choice here but I made this option part of the input for the method, just in case you want to play with this in the future. Check this article for some more details into this.

I tried this method and got some results, but not quite what I wanted. See what I mean here:

Background Image with Overlay at 50%

Background Image with Overlay at 50%

Step 2 – Scale Image:

I wanted like the rainbow flag to cover the whole image, So I tried making both images the same size and this is what I got:


Stretched with Uniform Ratios

This didn’t turn out like I wanted it. I needed to scale the image using ratios horizontally but needed to retain the same vertical height.

Check the results now:

Final Result

Final Result

Step 3 – Putting it all together for Image Manipulation

When I receive an MMS message what I get is not the actual file (binary) but a link to the media file in Twilio’s servers. Therefore I needed to do a webrequest to get the media file (this is the MediaUrl0 parameter). I grabbed the flag image from a public Flicker url.

I then do the scaling, overlay and return the (in memory) image to the main controller.

Step 4 – The MMS Controller

I created an MVC controller to handle the incoming images and return back TwiML markup (Note: This controller must inherit from TwilioController in order to be able to send that TwiML markup back). You can do the same with a WebAPI controller, Node, etc. I just went for simple here

The same way that Twilio sends images via MMS, I needed to send them back; this means I had to save the image somewhere and then send the URL to that media file back. To do this I used Azure Blob Storage; again nothing fancy here, check this tutorial for a quick how to. I created a container for my images,created a blob and uploaded the image to that blob.

Warning: don’t forget to set the Content-Type for the blob, failure to do this will serve the blob as “application/octet” which Twilio won’t be able to handle. 

Hopefully you enjoyed this little project, I surely did. Feel free to reach out if you have any questions with this demo.

Have fun and celebrate love

Neat tool to visualize your site’s attention hot-spots and visual clarity

I recently ran into EyeQuant a neat tool to visualize how cluttered a website is. Here is an example of the attention map with my own blog:

Attention Map

Attention Map


In addition to attention maps you can visualize how you scale in terms of clarity.


Visual Clarity

Visual Clarity


I had previously seen a post (somewhere) that detailed how the same analysis could be applied to resumes and other important documents. It is a little sad to see how even after this concept has been drilled into most of our minds, cluttered design and ad-ridden websites are so prevalent.

A blank canvas for your browser… and another nifty hack

Sometimes it’s the little things that make us productive (i.e. new browser tabs). I use many browsers and get teased regularly for having a hundred tabs open and hogging the memory of my pc, but amid all those tabs, and God forbid plugins you installed in your browser, there is a disconnect between the new tab page for each. You could call it visual clutter and disuniformity… or you could call it boring, whatever floats your boat.

If you use Chrome you will probably see something like this (FYI I had a theme installed at the time of the screenshot so yours might look “cloudy”) :

Chrome New Tab

Chrome New Tab

It has the small icons for recently visited pages and another search bar.

If you use Firefox you might get something like this:

Firefox New Tab

Firefox New Tab

It just has the recently visited pages but those icons are huge.

If you want something more productive and simple I recommend this little hack; paste this into your address bar and press enter:

data:text/html, <html contenteditable>

Peaceful isn’t it?

Did you notice it? Or were you just angrily looking at a white screen? Well if you clicked on the screen and started typing you would see that this white space is now editable! What this means is that this whole screen is now a fully equipped HTML notepad for you to write on.

This means you can copy and paste text and it will retain it’s hyperlinks and formatting; so maybe we can call this the poorman’s HTML editor too as all you have to do is then save the page and you have an actual HTML page you can host.

Advanced Tip:
If you want to take it to the next level, you can make this hack your default “New Tab” behavior. Follow this article to add an extension to Chrome or Firefox (sorry IE Users) and make this your new setting.

Have Fun :-)

Tagged , , , ,

A night at #StartupGrind with John Cook (Co-Founder of Geekwire)

via Instagram
Last Wednesday I had the chance to participate in #StartupGrind Seattle. We had the pleasure to have John Cook that night, for those who know, John is the Co-Founder of GeekWire the very famous Seattle tech news hub.
I gotta say John was very funny and insightful. Some items stuck with me like these:
  • Always be open to personal feedback. Especially the hard ones.
  • “If you are not having fun, you are doing something wrong” – self -explanatory no?
  • Don’t surprise people – when breaking  big news or internal company conflicts, always give the chance to talk or give a heads up to whoever will get impacted.
  • As with life (e.g. marriage), find partners/founders that complement you; ones with skills you don’t possess.
  • Learn how to fight (again, just like in marriage). Understand that even when things blow up, you will have to come down and do it quickly.
  • Collect a good set of mentors, including parents and colleagues in different industries.
Tagged ,

How Dominion made me like board games again

via Instagram
I recently attended a potluck event with friends and got introduced to this little game called Dominion. Now, hear me out i don’t think i have liked board games since i was a kid. I hated playing monopoly for 4 hours to then just stop and see nobody win. That was not what i felt with this game. We played with an expansion deck but the dynamics made it a bit hard for the players, we went back to the original game and then “it was on!”. The flow was faster therefore more enjoyable. I don’t know how i hadn’t seen this game before but I’m glad I did.
If you are interested here is the original one: Dominion

Tagged ,

Get every new post delivered to your Inbox.

Join 1,732 other followers

%d bloggers like this: