Thursday, January 28, 2016

Week 1 of algorithms

I have just finished the first week of the coursera course Algorithms, Part I.

We learned about the union find algorithm and how to do some basic analysis of algorithms. I enjoyed the presentation of the union find algorithm (from an initailly naive implementation to a more robust final solution). The material on analyzing an algorithm is of course important, but a little drier and less fun for me.

The quizzes were helpful in forcing me to work through the gritty details of the lectures again. It often took me about 3 tries for each quiz before I got a perfect score. I think each failed attempt forced me to really think about the material.

I didn't really enjoy the programming assignment this week. Setting up the IDE was a chore. The assignment wasn't really about algorithms. It was more about using an API than understanding algorithms.

One of my worries before starting the course was whether I'd have enough time to do all the work. After one week, I'm still worried. I finished all of the work for this week before the next lecutre comes out tomorrow, but it was close. I didn't have much time to review the optional job interview questions. If the material gets more challenging, I may run out of time. To give myself some more leeway, I think I'll have to cover more material on the weekend.

Sunday, January 24, 2016

Back to School

I have just started the coursera course Algorithms Part 1.

I half-heartedly tried out the course before. I listened to some of the lectures, I glanced through some of the exercises and programming assignments, and I may have tried to do some quickly (using Python instead of Java). But this time, I am going to give it a good effort and do all of the assignments and try to really complete and pass the course.

On Friday, the course began, and I started watching the videos. After the introduction video, I found it easier to just read the lecture notes and the slides. It was quieter and I felt myself concentrating a little bit more. As things get a bit more complex, I may watch the video, especially when there are demos that don't animate in the slides.

By Saturday, I finished the first round of lectures, and I began looking at the programming assignment. Since it's the first assignment, I've been spending a lot of time getting my environment set up. I tried the recommended IDE called Dr Java, but it felt a bit unpolished. I decided to use Eclipse, which I had to re-install. Eclipse is not as light-weight, but I think it makes things a little easier to do, especially since I am a novice Java programmer.

It's a bit annoying getting all of this started. I wish they had set up an initial pre-class assignment before. Before the class started, I could have tried to set things up, and we could have had a simple HelloWorld style project where I could iron out the process of creating files and submitting them. Oh well, once I get this working right, hopefully it won't be so bad in subsequent weeks.

Ok, time for breakfast, and then I will go ahead and give the first week's programming assignment a try.

Thursday, January 21, 2016

5 Days in Cartagena Colombia

We went to Cartagena Colombia for 5 days and 4 nights. You can probably do all of the things we did in a shorter period of time, but we decided to take a very leisurely pace to do everything.

Before I list our days, here are some overall impressions:

The dollar to colombian pesos conversion was especially in our favor. $1 equaled about $3000 pesos. Here are some typical prices of things, converted to United States dollars in the center of the city. Prices could be even cheaper as you go away from the center.
- $1 for a cup of fresh fruit or a beer on the street
- $1-2 Empandas
- $2-3 for a beer in a bar
- $4-5 for a cab from the center of the city to the airport

I felt like the city was the inspiration to the Emerald city in the Wizard of Oz. Emeralds are a big thing in Colombia. They say the best quality emeralds come from Colombia. The center of the city is a walled area which has the nicest neighborhoods. There are lots of very small doors, which reminded me of things that munchkins might use.

My immediate thoughts on Colombia, before going there, is that it is a dangerous place. After going, I think it's pretty safe to be in the city of Cartagena. Now, onto the 5 day itinerary.

Thursday travelled to Cartagena

Uber to JFK. JetBlue to cartagena. Cab 15k pesos to hotel.
Ate chicken empanada, fruit popsicle, and cup of fruit for lunch.
Swam in hotel pool.
Ate at Carmen for dinner. There was a tasting menu, but we didn't go that route. We ended up ordering these items, which were all good: mojito, lemon and coconut rum, Korean taco, crab cake, beef risotto, steak and potatoes. The restaurant also threw in a free appetizer of a fried snail. I think the tastiest dishes was the Korean Taco.

Friday tour of the city

Pancakes and breakfast in room.
Walking tour of fortress, La Popa Monastery, Boca grande beach (just drove by), and an emerald museum. We paid for a private tour which made getting around easier.
Had empenadas with good pesto sauce for lunch. Coffee from Juan valdes and cup of mangoes from street.
Went to pool
Watched sunset on wall at Cafe Del Mar Cartagena. This is probably the best thing to do in Cartagena. We got there about 15-20 minutes before sunset, had a drink and relaxed.
We had dinner at diva pizzeria, which was tasty.
We walked around at night. We probably stayed out until about 10 or so. At that hour, there is still alot of people out walking and a lot of things to see.

Saturday

Relaxing at hotel
Went to pool in morning, read there.
Had lunch at some inexpensive place that served empandas, sandwiches, etc ...
Had Coffee from Cafe San Alberto which was very good.
Went to Clock Inn to watch the Patriots vs Chiefs NFL playoff game. Had burgers and beer.
Walked around the city. There's a lot of action on Saturday night.

Sunday

Rosario Islands with Gente De Mar.
Sat on the beach in the shade and read. Went into the water a little bit.
We had a fish soup, rice, plantains and fish lunch.
City was much quieter on Sundays.
We ended up going back to Diva Pizza for dinner. My wife's stomach was a little upset, so we wanted to get something safe that we knew wouldn't upset things further.

Monday

Aripes for breakfast in hotel.
Did some souvenir shopping, last pictures.
Went to airport. Had a beef empanada which was OK, and a cheese empanda roll which was unbelievably salty and basically inedible.
Flew back to JFK, and uber'd back home.

Tuesday, January 12, 2016

Bugs at Work Messing with My Head

I was debugging an issue yesterday, but I could not fix it.

From the start, I knew the problem failed in an API call written by some other team. I traced through the unfamiliar code stack and determined the problem was that I couldn't write to a given database. But the settings on the machine indicated otherwise. So, it took me all day, and I was still stuck.

Because I couldn't perform at work, I was in a bad mood.

Apologies to my wife. The bug screwed me up.

Update
I subsequently found out that the problem was a deprecated API that was no longer supported in my test environment. It was as if I was trying to figure out why a webpage was rendering poorly on Internet Explorer 6 on a Windows NT machine.

After I discovered this, it just didn't make any sense to try to fix this problem anymore. So, that put an end to my debugging. All in, about 7 hours wasted, but now I could at least move on.

Tuesday, January 5, 2016

End of 2015 review

The end of the year has come so now's a good time to reflect on the past year.

I've really embraced two new ideas/concepts/practices into my approach on life.

The first concept is that every day (whatever I am doing) I am contributing one programmer day's worth of work into my life's work. So whether I am highly productive in building something, or just relaxing with my wife and friends, it's all added to the big tin foil ball of my life. Will it amount to something great? profound? underwhelming? I am not sure. I can only hope and work for today's contribution to be something of significance.

Along with the idea of contributing to my life's work day-by-day, I have embraced a daily routine. It's a simple yet powerful thing. It's something that I critique, review and then follow to make my life better.

So, onto resolutions.

I started the year with one resolution, to finish everything that I start. It's hard to know if that's true, because I've surely finished some things (like my 2nd android app and some DIY home projects) but there's probably countless things that I've left undone. Since my resolution was to finish everything I start, and I'm not sure if I've actually succeeded in doing this resolution, I'll resolve to keep on trying to finish everything I start for 2016 as well. Sounds like I'm in a bit of an infinite loop, but oh well.
Update I just signed up for a coursera course and plan on signing up for another one right after. By the time they are over, half of the year will be gone. I've started and never finished a few of these online courses before, so I resolve to finish at least these two this year.

A second resolution that I'd like to make for myself is to improve my personality. As a science major/engineer/software developer I think I gave myself the excuse that I was good enough socially for an engineer. But as I reflect on the year, I think I've let myself go too much, and that I should work towards being better socially. Similar to physical and mental health, it's not a good idea to not care about my social health at all. I think it will take some effort and uncomfortable-ness, but I hope it will make me a more enjoyable person and help to ground me in stronger relationships as well.

I have a lot of other things that I'd like to improve on (foreign languages, health, computer science skills), but I've already been working on those, so I don't think a new resolution is necessary, but those are still under active development as well.