World Bipolar Day
and Git Object Errors

For today, I have this mighty Stack Overflow savior for my morning Git error. I almost fainted in panic when I could not run a git status on my local machine. As it turns out, I may have encountered some bug on git when my laptop died midway during a commit last week. It was compounded by the fact that I did not properly configure the 2nd laptop that I was using while I was on a writing assignment. And it caused some objects to be bungled up at the back. After an hour of googling and switching between Mozilla Firefox and the Terminal, I eventually succumbed to the SOS function.

I talked to a very prolific Django mentor. I said that I almost fainted in panic, and then he said: “See! That’s the thrill of it!” AND I AGREE! HAHA. 😀

For Ubuntu today, I discovered a very, very simple way to use virtualenv and virtualenvwrapper for Python version 2 or Python version 3:

mkvirtualenv –python=/usr/bin/python3.4m environmentname

(Just leave out the –python thing if you want to use version 2. 😉 )

I screwed it up on my main laptop the first time so now at least they are happily lumped in a single folder on the second laptop. I am making good progress and my next step is to automate everything by way of Bash scripts to save me typing time when I open my PC.

There is no coherent theme in this post because honestly, control is an illusion and I do not have much time today to edit this piece. Laundry is still waiting to be fixed, I have a dinner date with a high school close friend, and there are blueberry tarts that need to be delivered to my mom and sister.

I just wanted to write something–anything– because it’s been a long while since I last wrote. I am keeping this blog to somehow document snippets of my life as it unfolds. So that I will not forget these days and how I had to climb my way with all the power that I can muster.

It’s been a whole month, more or less, since I practically own my hours and my life energy is at its peak. However, I completely underestimated the demands of real life! And the awesome daily plan continues to be adjusted.

Yesterday was an extra special day for me because it’s World Bipolar Day. It’s a personal advocacy because the stigma is strong here in this country. In some countries, people with this disorder are respected and provided enough care. Here, you get ridiculed branded or stigmatized in some way, with the exception of the more open-minded lot — in my case, a handful of individuals that I can only count with the fingers in my hand. And I do not mind that they are few.

Because in this culture where friendships are branded by the number of likes you generate on a social media post, nothing beats the amazing quality of real-time bonding over coffee or a two-hour shared meal that does not involve crazily checking your phone or digital accounts every few minutes.

Being able to be your friend’s Facebook support group for 24 hours is not necessarily the ultimate indicator of friendship. There are boundaries that need to be respected. And the foundation of true friendship (not the superficial type of Facebook friendship being mass produced to everyone) is real quality time offline, trust, respect, and genuine care for that person’s welfare. I have actually found these awesome relationships when I decided to go on a Facebook hermitage. 🙂

I am genuinely thankful this year because so many good things happened to me despite the challenges that I had to face. I drew strength from a lot of places and it helped so much to have a good perspective about life even when you have this nagging health problem.

I accepted my situation as gracefully as possible. And the moment that I did that, things started picking up. Opportunities started popping up LIKE DAISIES.There is a clarity that has not existed before. And I was able to travel and meet new people and create things that were unthinkable a year ago.

I do not post as much as I’d want here because I have this whole adult life being lived outside of the computer. And then I have other intellectual explorations from inside the internet that demand my undivided attention. I cannot really believe how lucky I am considering the unemployment rates and the stigma and the difficulties of even basic things like waking up on some days. I cannot say that it is easy but this life is beautiful and worth living and there are places to explore, people to help, things to do, and mountains to climb.

I just wanted to write this all down because 5, 10, 15 years from now, I will look back at this moment in time and tell my future children that, hey, this was that moment that I stepped out of the useless bullshit and drama of life and began to really consider building a better future for you. 🙂 And you were worth it.

 

 

One-Third of the Track

coursera-third

Prior to my decision to temporarily suspend all simultaneous and unrealistic activities for 2015, I got to reap a bit from my hard work through this certificate. It really means a lot to me that I managed to crawl through this course during January. It was super challenging to balance it with other things but somehow I knew that this is really something that I want to accomplish.

Tidying data is not exactly a glamorous course. It had this rigorous coursework that I had to spend hours and hours trying to make sense of. I already have some basic ideas on where to use what I learned from this course. Just the potential of the knowledge learned to mix with the other things I know from my other intellectual pursuits fills me with excitement beyond words. It is a lifetime of exploration. I may not necessarily leave my computer for a long time for this, but it’s worth it.

Somehow, the pursuits I have laid out for myself for the last two years are taking shape slowly but surely. I know that I started from a completely different industry professionally, but recent events have shown me that this actually might work for me and it’s worth giving a second look. Heck, I really gave it more than a second look! I am transitioning into whole new realms altogether, a joint output of circumstances and my personal preferences. A lot of people look down on my decisions for work. I met one of them before Christmas and I swore not to subject myself to that kind of company again. Since the year kicked in, I have relieved myself of the need to “CONFORM” to what people call as acceptable or normal work. I am carving out something new and if it doesn’t work, I can just wing it til I make it.

There are so many things I realized about life since last year and one of them is that time is a non-renewable resource. I keep writing about this because it can never be emphasized too much anywhere.

So with three subjects down in this signature track course of John Hopkins, there are six remaining demanding subjects that will claim for my attention in the latter part of the year. I am psyched! I am really looking forward to doing more of my adventures in Python and R this 2015. I cannot see myself thriving in any other way. 🙂

 

 

 

Python PEP Talks

I have been scripting Python things for a while now but I never got around to tinkering with standards until today. I got acquainted with the Python Enhancement Proposal (PEP) and the override powers of the Python founder, fondly called as the Benevolent Dictator for Life (BDFL) in the community. Everything from style guides to syntax to implementation is discussed in the PEPs of Python. There are so many of them; it will take me a lifetime to get a full hold of them. I am now reading probably the tip of the tip of the tip of the tip of the iceberg.

The astounding documentation and organization of ideas and best practices in Python inspires and amazes me. I am working on consultancy projects for a bunch of convoluted and primitive data sets that require this level of organization. To mimic even a subset of this good crowd-sourced documentation and organization will really make waves and change any organization or institution for the better and permanently.

There is a reason why free and open source software works, and I think that the main reason Python succeeds (and other open source programming things, for that matter) is because of this level of organization.

Vaguely, this reminds me of the father of Singapore transport, a legend by transport planning standards. He planned the 100-year transport plan of Singapore. The father of Singapore and the father of Python possessed this insane level of foresight to the future with what they did and designed it in a way that the whole thing can outlive them and other people are not shut out of the development. It’s really nice to find these things while I am in the middle of my own life hacking pursuits and thinking of how to organize the other pieces of work in the industries that I have the privilege to organize. 

There are also numerous phrases that comprise the jargon of the world of computers. Now I know about the big ball of mud, the Cathedral and the Bazaar, and many other things that I did not know before. (In the same light, I fear becoming a young museum, as Pope Francis said in his message to the youth two weeks ago here in Manila. So I try to find projects to offer all these pieces of information to and keep it all relevant and in check.) The synthesis of all the available knowledge is quite awesome. Combining everything to make a synergistic tool that people can use to improve their lives is the ultimate objective of it. Sometimes, it is so easy to get lost in the process and lose sight of the main objective of making the world or even a subset of the world a better place.

 

Virtualenv and Virtualenvwrapper

Four Terminal Windows with Virtualenv and Global Linux Env for Python

Four Terminal Windows with Virtualenv and Global Linux Env for Python

I really spend a great deal of my time optimizing processes and holing up in the computer because there are so many things to learn! One of my latest favorite tools in Linux is the virtualenv and virtualenvwrapper. It allows me to have multiple versions of Python running for different Python projects. Virtualenv or virtual environment, allows me to create a development environment that can autonomously set up its own requirements in Python version or additional dependencies. The virtualenvwrapper is the extension that makes the commands of virtualenv organic to the terminal bash.

It allows me to experiment freely on multiple versions. And with the help of the Terminator app on Ubuntu, I can already see all my working environments in a single view if I want to put them side by side. This, and add the nice semi-IDE feel of Sublime Text, and I have my good old working machine up and running to speed.

During my first year, I was really focused on setting up Drupal mapping projects. Drupal helped me get started with web development. These days, my learning has abstracted a bit and I started venturing in other territories, territories that I would not have imagined for myself two or three years ago. But here I am anyway, exploring frontiers in the backend side of things that are truly fascinating albeit sadly time-consuming. If I were to trace my GIS roots from college, I think that going for Python is one of the more logical paths to take: python-logo-masterI began working with Python in the scratching-at-the-surface kind of way when I learned how to script. These days I am starting to look at Python in the eyes of a much larger website project framework. I have frequently heard of the powers of Django as a framework. The official website’s tagline is that it is the framework for “perfectionists with deadlines”. With someone extremely OC about details as I am, I am up for the challenge and I want to learn Python and Django framework all the more.

Aside from Python, I also started getting myself acquainted with the supreme powers of R programming for statistical analysis. I am just mind blown at the number of available resources online; the main challenge these days is really to fight for the time to learn the new technologies and make something extremely useful out of it. In the same way that I started to make peace with the kitchen for whipping up ingredients to create a new recipe, I am also starting to see how all these different tools tie together and help me create something new that can be consumed or of use to me and other people online and offline.

Simultaneously learning two languages has its drawbacks. Occasionally, I find it hard to focus and the context switch sometimes makes a dent on my personal productivity. But I have perpetually multiple pursuits and this challenge is the price I have to pay for the many wonderful things being thrown my way, code-wise. The only logical thing to do is rise to the challenge and say no when the tank of my work load is full. My constant gripe about getting started in web development at age 28 is that I should have started sooner! But it’s never too late, and I can compensate for the time loss by my passion to learn.

And with this kind of setup, I really have my game face on! 🙂 <3

 

 

 

 

Django is Sweeter
the Second Time Around

Around two months ago, I downloaded the latest and meanest OS from Ubuntu, the 14.04 LTS version. I had no use for it then, since matrices and management ate up so much of my time. So it ran the risk of rotting away in my Downloads folder. Fortunately, the year-end of 2014 picked up some nice avenues for me to practice Python so I was finally able to try the new Ubuntu OS with Django framework. I just finished setting up my dev environment for this particular project. It took me quite a while because I needed to carve out the appropriate RAM allocation for the Ubuntu setup that I created. If I get past the semi-urban poor state I am in, I will probably just get a new computing machine altogether for Linux-related exploits.

Django is a really mean Python framework. Mean in the sense that it’s powerful. Mean in the sense that it will kill you to learn it for a while because of the monster learning curve. I first encountered Django in July or August of 2012. I was completely clueless about web development at the time. I started learning Git in September 2012 along with basic Python scripting. And for a complete beginner who is close to monkey levels of coding, I think I bit off more than I can chew with Django at the time.

So I let it slide for at least a year and a half. And then I explored other beginner-friendly frameworks. For almost a year, I dabbled into Drupal CMS because of its immense mapping support. But eventually, I started craving for more… CONTROL. CMS in general already restricts you and hard coding is actually a nice route for some things. As a fledgling webdev that I still am, I look for the versatility of working with both hard code and a framework.

Usually there are tutorials that aim to give an overview or tip of the iceberg feel for web development. It’s like a cookbook recipe but the science behind really lies in the hardcore documentation, the official ones that the project or framework or language has online:

Django 1.6 Detailed Documentation Page

Django 1.6 Detailed Documentation Page. Look ma, no pictures!

Self-studying web development topics from scratch is difficult, even when I have a technical or engineering background. But I managed to cruise through and do projects by patching what I know with what Google knows for almost a year. Recently, I got some serious Python dev advice from one of the team leads of a nice project. He advised me to go straight to the documentation. And this is what I am doing now, when I revisited Django for the second time. The first time was not really as serious as I would want.

And the change from 2012 to 2015 is quite remarkable by my standards. I now understand it to a certain extent and I am actually interested in what used to be complex gobbledygook in my mind book. One of the things I found as a pain when tinkering with PHP is the URL complexity. There are modules, like in Drupal, but it seems to me like Django makes it easy natively without module additions. It also provides for a workaround against complex database queries by using a data model mapping approach. These things, when I read them in 2012, sounded just as interesting as warts. Today, I find it fascinating and worth looking into more deeply.

I had a good tutor named RK when I began web development. He was quite difficult at first because like many total noobs to web development, I had the inclination to want to be SPOONFED. I must say he trained me really well because I learned to READ THE DOCS. This is really the first commandment for anything for web development in any language. During my first month, I found myself asking stupid questions because I did not exhaust my means. Google is so useful and so are the documentation pages. It’s just all there, most of the time. In fact, I find it more difficult to create something unique because sometimes it’s just there and it’s inefficient to reinvent the wheel if it is working well.

I really feel like my development of skills is slow. But looking at how I respond to a documentation that I tried to crack in 2012 and today showed me that progress was actually made. Served as a benchmark on what has transpired in the last 2 years and how it has improved me in so many ways.  I am deeply grateful for it because I only had the internet, a few good and patient intelligent friends, and my enthusiasm as resources when I started out.

In reading I always nurtured the belief that reading materials have a certain age of ripening for readers depending on their circumstance. At this point, Django documentation is quite ripe for my liking and something that I can now explore more freely. And indeed, this realization is the reason why I think that Django is sweeter the second (or even nth) time around.

 

 

 

Day 51: #100HappyDays
Python Data Science

The Python Logo

The Python Logo

 

In college, I did not really understand the guys who loved programming and loves diving in the internet at the backend side. But I had such friends. I just did not understand them as much as I do now.

It was only recently that I learned to appreciate the beauty and magic of it all.

For a previous project I handled, I was privileged to learn Python scripting basics. It was amazing! In college, I had C++ basic lessons and some Java but that’s it. I only really learned to love it when I started working as an engineer, although I did get a good mark on C++ course.

Python is quite special since it had that shocking quality to it. The syntax is so simple yet so powerful. It does not need terminating semi-colons that can wreak havoc on your code.

For May, there was this meetup of Python experts today and I decided to attend with my good friends. It was a very nice way to spend Friday night, have a bit of pizza, and have a lot of Python pizzazz for the head. The speaker was no less than Miss Stef Sy, Stanford graduate and ex-Googler, who works as a data scientist.

You can check out the slides by clicking here. To know more about Data Science, I think this nice online course on Data Science Masters will really help you. <3 <3 <3

What can I say? I am the reformed crawlie hater who now loves the crawling code of Python…

Codecademy:
the Fun Programming School
for the Unschooled

Screenshot (33)

My chief passions are fairly few and far in between and they often involve computers. Imagine my giddiness when I discovered Codecademy. A friend told me before that bar none, W3 Schools is the best online website resource for learning all kinds of programming languages. I tried working my way up with W3 Schools but I found it a bit too dry for my taste. Months later, I stumbled upon Codecademy. And while I use W3 Schools as my online reference material for the HTML codes that I forget, I find myself hanging out at Codecademy portal not because I have to but because I want to.

It’s nice because I need to learn some PHP for new work responsibilities and the interface of Codecademy is interactive. I enjoy the ground up approach very much and it does not assume that you have prior background in programming. In college, I may have taken a couple of programming subjects but I did not have the chance to explore it. I got a flat 1.0 in C++ basics, but that’s pretty much it.

The only downside is that it just focuses more on technique. If you want full foundations and theory, you won’t find it in there. But if you just want to learn how to code and use it immediately for your web needs, I think it serves its purpose well for a FREE RESOURCE. Yep, FREE ITO. 🙂

Codecademy also has a loaded environment on the right side that allows you to see the results of what you code immediately. They have tracks for HTML, PHP, Ruby, Python, and Java Script. The interface and language used in this portal is so easy that even my 13-year-old sister can understand how it works.

I ruminated on enrolling for a Master’s degree to make myself seem smarter and accomplished like what everyone else within my age range seems to be doing. Given my constantly traveling and busy schedule coupled with intermittently long hours that spread from a few hours to a full overnight session, I don’t think I can afford to enroll in any physical class. Open university proves to be a bit too expensive at this point and I cannot juggle it with my upcoming wedding expenses. And besides, if you have something like Coursera classes already, Open University’s tuition fee offers the advantage of giving you a diploma and a curriculum.

You can still learn everything online if you have the time and a good computer with internet connection and lots and lots of EBOOKS. It’s like practicing engineering and not having a title and practicing engineering with a license. You’re doing the same thing, just that, the other one seems more prestigious when keeping up with appearances for people and expecting salary increase especially in academic institutions. 🙂

I have to admit that I may have the title engineer in my name but I know of non-engineers who are more well-versed in field work than I am. It really happens.I pay my respect to these people because they get paid so little and do so much in the construction industry. 🙂

Now, I am a licensed engineer veering a little closely to programming lately because of the Geomatics and IT wing of my multi-faceted degree. 🙂

At this practical age, I’m not that interested in pleasing people for as long as I am pleased with what I am learning, officially or unofficially. 🙂 For learning how to code, I can just learn just for the sheer pleasure of it and the possibility of tying it with all my mapping pursuits. Nothing beats self-motivation.

So if you’re like me,  more concerned with learning just for the learning part and not for the certificates you can show off on your bedroom wall or brag about to your friends just for the heck of it, you can try programming by Codecademy and look at many other online courses.

I really admire the brainchild of these programs because they are so generous in sharing themselves and changing lives. If I complete Codecademy’s tracks in a year, that’s tantamount to enrolling in around 6 subjects in a college or university. Isn’t that nice? I don’t think other people will be that genuinely generous especially if it does not benefit them personally. I am quite happy to have bumped into the generous side of the web, and yes, I plan to give back and spread word especially if it is well-deserved.

I am a fan of Open Source. Long live open source and free programs online. <3

Thanks Codecademy and more programming power to your organizers. You guys are beyond awesome.