Tuesday, July 26, 2016

my love hate relationship with Atom (mostly hate)

I was (to an extent still am) a staunch supporter of the Atom editor, but today I think I am finally considering moving on to Visual Studio Code (vscode). Who would have thought Microsoft would (IMO) create a faster editor using Github's Electron better than Github themselves? (Github created Atom, Electron is a UI container to write cross platform GUI apps using web technology like Javascript and html). Atom and vscode are both built on Electron.

Atom is a wonderful editor developed with node. It rightfully earned its slogan "A hackable text editor". There are tons of plugins/packages written for the editor and they are simply amazing. So why am I shying away from Atom? It is so slow! Painfully slow. Want to open a simple file to edit? 5-6 seconds (16gb ram Mac). I found myself just firing up Vim most of the time to edit, and I am not so proficient with Vim.

Things I tried to speed it up:
  • Uninstalled most of my plugins/packages (no dice)
  • Reverted my themes to default (no dice)
  • Tried the beta version (slightly better)
  • Am i missing anything else?

Visual Studio Code (vscode): I first tried out this editor when it was in beta, and I hated it. It had no plugin support, clunky (IMO) user interface, but I did like it's git integration. I fired it up a couple of months post beta and it was really fast, it also now has supports for plugins! and boy is the plugin/extensions community growing rather rapidly. I installed similar plugins/extensions like I had on atom and it was still fast! 

Things I like about vscode:
  • Fast.
  • Great git integration (diff tool is lovely)
  • Integrated terminal support off the bat
  • Has support for recent files or folder (so basic! A plugin for atom 🙄)
  • Amazing support for Typescript. (to be fair Typescript is created my Microsoft, so it was a given)
  • I prefer the auto suggestion of vscode

Verdict? Pending. I am still going to use both of them because I have a soft spot for Atom but vscode is making me more productive. I just wanted to rant. /r

Sunday, July 24, 2016

what have I been up to?

A while ago (previous post) I made a statement about me learning golang and publishing updates as I went along. Guess what? Life happened and I got sidetracked. For now I have put that endeavor in the back-log and started working on some side projects. This time around i waited to make sure I had something up and running before blogging about it.

So, I am happy to present Parrot Status. It is a desktop app to help configure your Parrot Zik headphone. This was done with the intention of learning Swift/Xcode for both desktop and mobile apps.

Tech stack

Going forward

I had originally approached building this app from the perspective if a back-end Java enterprise developer. I did not adopt any Swift nomenclature in terms of design patterns and suggested approaches e.g (Protocol Oriented Programming).
So far I am okay with what I have done and might use this as a test bed to implement best patterns (only if applicable, if it ain't broken... don't... break... it).


Saturday, October 24, 2015

been a while

I have been quite busy of late, traveling, learning, resting and building my life. I plan to be back more often posting interesting stuff.

So what's new? Of recent I have been intrigued by the go (golang) programming language and trying to round up my javascript/Angular skills. So far it has been quite interesting.

I will be building a production ready code using these tools in other to force me to better understand them inside out and I plan on sharing my experiences. I am not sure if it is going to be open-sourced, the jury is till out on that.

Well.. I hope you keep your eyes glued for more updates. 

Tuesday, November 26, 2013

clearer code using underscore chaining syntax

I was working on a story with a client that had to take a list of filters and intersect them.

Using uderscorejs and the reduce and intersect functions i implemented a fix. Below is an example implementation of said functions

   val1 = _.reduce([1, 2, 3], function (v, a) {
        return v + a;

After pushing this, I noticed not everyone was familiar with functional programming and found it taking a little bit longer to wrap their head around the code from a readability point of view

I decided to take a second dive but this time focus more on the readability. 

 val2 = _([1, 2, 3]).reduce(function (v, a) {
        return v + a;

And the crowd went... no crowd... but in my head they cheered and bought me nachos!

Tuesday, August 13, 2013

my foray into javascript

I was an Oracle PeopleSoft developer for over 5 years and just over a year ago decided to write custom software using non proprietary tools (JAVA, Ruby, e.t.c) with .Net being an exception. I've been doing back end development in Java and have had very little contact with Javascript. 

On my present project, we ran into a bug when refactoring some JavaScript. This bug involved comparing two objects using a predicate being passed into an underscoreJs function _.some.

For those not familiar with underscoreJs's _.some, it takes a collection and a predicate, and returns a boolean if a search based on the predicate matches or not as seen below:

When you try this with an object, it fails. This made us scratch our collective heads for quite a while. running this fails:

The solution was to use JSON.stringify(arg) to convert the object to string literal. This would not work if the fields in the object are not in the exact order as shown below. Preferably you should compare on the object fields. But for what we wanted, that was not an option.

Saturday, August 10, 2013

insurance, lost wallet and passbook

A few months ago my wallet got stolen, it involved lots of kung-fu fighting, ninjas and pirates, but unfortunately, they won. I did put up a good fight though. ٩◔̯◔۶

Anyway, as with all victims of stolen wallets, I had to cancel my credit cards and the whole nine yards. I got most of my cards replaced, except my medical insurance card. In reality there are some cards you do not need to carry on you, the only information that's needed from them is some identification number. So I thought to myself; how can I store my info where it can be easily accessible? Email! Google Drive! DropBox! Just take a picture, upload it and viola, use your fancy phone and there it is!

All that made just too much sense and was way too simple! I needed something more interesting, more techy, time consuming and equally useful. Then came PassBook!

I scoured the universe looking for articles to create just a passbook pass and then saw this amazing figure everywhere $99, so I modified my search adding the discount code "free" and came up with this site passkit.com. They are not free, but they let me template stuff for free and install it, then keep it for $0.99 on my device.

I created a template for my Insurance provider under my present place of employment ThoughtWorks and made it publicly available. I have no idea how long the free account lasts, but it can be found here

Password protected, use the wifi password for ThoughtWorks
Serial No: <<Your Insurance ID >> this helps generate a barcode that spits out your ID when scanned.

Modify the details to add your name and Insurance ID, then the passbook is created and stored automagically! (Look at that, the dictionary did not complain with red squiggly lines, automagically is a word, who knew? *types "techy"* hmm now its asking for my English teacher's name ).

It also asks you for your email so you can retrieve a new pass if your phone gets lost, stolen or replaced. 

Screenshot: Click for larger image

Let me know what you think and if this is something worth building an in-house  API.


Well This is my first blog post, so come back here for my musings, questions, and new found awesomeness that I always seem to be the last at finding out... They slice bread now? Wow, what's next? Cloning?

Seriously, my reasons for starting this blog are:
  1. Improve my writing skills! More like attain one first.
  2. Share my knowledge and resourcefulness in acquiring said knowledge to help advance my career

Does this support comments?