June 09, 2018 I hate vendor lock in. It’s terrible.
This is when a software corporation sells their product hard to another corporation.
The corporation who bought the software then develops their entire software stack around this,
and the seller charges a license fee in perpetuity. The buyer can’t stop using the software,
because the cost to switch is impossible. If you want to switch, you have to hire tons of developers
to build existing software on another platform.
I really don’t know if there’s a good way to solve this problem. Maybe companies should be obligated by law makers to open source some aspects of their software. Or even standardize all save formats of all software once the category of tools reach
critical mass.
Even in the case of UML diagrams, sadly there is no one standard that would allow you to easily convert diagrams
from one program to another.
This is ridiculous. It’s kind of scummy. But no one is ever forced to buy someone else’s product. It’s their choice.
Yet it’s really hard for a company to determine that the software that they’re buying will solve their
problems adequately, and that it will cause them crippling amount of tech debt and tears…
At work we use this tool called Informatica, which is a pretty common ETL tool. But
once you start developing on this platform, I think you’re pretty much locked in. You have to
keep paying license fees to Informatica for perpetuity if you want to keep you stack running.
And some of the stuff in Informatica is real crap. The GUI looks like it’s from the 1990s, and
unfortunately there’s no way for our team to scrap this software.
Maybe I’m too inexperienced to know this, I still don’t know why this ETL tool costs so much and requires so much custom
servers, repositories, the whole nine years. There’s a list of patents that Informatica has.
But Christ, it’s an Export, Transform, Load. It’s not rocket science. At least I wouldn’t think so.
Does it really require patented technology to change attribute names and transform integers to Strings?
I really don’t know…
The reason I’m complaining is that I’ve been learning Informatica in the past few weeks, and
there’s a lot of things that go against my intuition. I’d like to look into alternatives for us to use,
but it’s kind of pointless considering that there’s so much to rebuild…
This vendor lock in such bs. At the same time, are there really any other alternatives out there?
If a company decides to open source their systems, them how will they feed their families?
There’s a reason why Linux hasn’t taken over mainstream computer usage - it lacks the polish
that comes with Windows or Mac. And people are not going to do this for free…
That said, God bless Linux Torvalds.
My thought on this is that open source is the way to go, and that approach to software helps out
humanity in the long run. However, we don’t have the economics to back this up. So far, many open source
projects and tools are supported by big companies with ulterior economic motives.
For example, in the case of Chrome, it’s not even Google’s main product. Rather, it’s a product
that enables Google to easily allow users to use their money making Google Search. To some degree,
this could be the same for any open source project run by a company. It’s something that is not
important enough to keep hidden, and open sourcing the project drives some agenda, whether that be
free publicity, or becoming a leader in how certain frameworks are developed.
One day, maybe we’ll see an awesome ETL tool that is completely open source, slick, and awesome.
A tool that doesn’t cripple companies by charging ridiculous fees.
May 21, 2018 Yesterday, I spent 2-3 hours doing work for my company. It was for modifying the diagram for our application.
That weekend, I didn’t write work on much of my own stuff. I read a good amount, but I didn’t really work on my own things.
But it led me to a critical insight. A severe contradiction. Here I am. On Sunday. Doing work for my company that was semi-urgent,
putting so much effort to prettify and make this diagram accurate. But not having spent a single hour coding my own things.
What a contradiction.
Do I really not care about myself? About my own creations and dreams, to the degree that I would prioritize the dream of some other entity?
It just made me feel uncomfortable. It’s hard to put into words, but it left me with a deep sense of disappointment.
I want to build my own things, and proudly have my name on the things I have created.
May 18, 2018 One of the most common themes that run across time is that whatever you are doing, check your work. Verify, Verify, Verify.
Did I forget? Verify.
Recently, my mother had car troubles. She thought her car had serious issues, and drove back home with emergency lights on.
When my dad, who is no expert with cars, but decent enough to do oil changes, swap out tires, and replace batteries took a look at it.
One of the tires was flat.
Dad pretty much exploded and berated mom for not checking the tires over a span of a few days. He said that this is the basic of basics
of car maintenance. His argument rested on the fact that this is literally a 5 minute check, and driving with a flat
tire is extremely risky.
My mom was extremely stressed about this, and said that it wasn’t right for my dad to be so angry at her.
Hearing this, I really don’t what to say. Maybe it isn’t right for dad to be angry. Maybe he should have kindly warned my mom about this
and not made a huge deal out of it.
At the same time, I understand my dad’s point of view. If you let something so important go without a fuss, people won’t remember it.
Sometimes, you need to express anger and frustration when something is mission critical.
For example, I think that if your kid shoplifted something and you found out, you should be furious. Otherwise, the kid would take the misbehavior
lightly. However, I really don’t think the same type of fury is justified if, say, the kid ate an extra piece of M&M…
So there are times when you should unleash all the rage and fury, and there are times where it’s not proper. This is what wisdom is. The ability to pick the optimal choice and apply that knowledge is, without a doubt, the most
valuable skill at a human being can possess.
But I digress.
The point is, a 1 minute check could have prevented all this trouble of driving back home with a flat tire.
Similarly, last week at work, I asked a coworker if the files on his local directory was pushed, and asked if the same files were the same across multiple
computing environments. He said they were.
Five hours later, I found out that they weren’t. I was a little frustrated, but I wondered if was partially my fault as well. Rather than asking him,
maybe I should have verified it myself - it should have taken no more than 5 minutes.
I feel that this a common thread across my life, and maybe others. That 5 second check to make sure if you have your phone. One look at the fire stove
before you leave the house. The little checks and verifications can really prevent a major catastrophe…
May 09, 2018 Recently I’ve had a chance to read 12 Rules for Life by Jordan Peterson. I’ve been gifted this book on my birthday by my brother, and he’s a die hard fan.
My thoughts on the book? I think that it could have been so much more. It could have been a total classic, but it fell short. As in it needed 2 or 3 more revisions.
Here are the reasons why:
-
It lacked coherence. I feel that it could have been so much better if it focused on one thing either trying to help people with real life concrete examples, or
be an actual philosophical treatise on his philosophy on life. Based on the title, it should have been trying to focus on the rules themselves, and helping people through
experiences that Peterson draws as a psychologist rather than this thoughts on philosophy. I think he should have focused on ONE thing.
-
From the rules, the book spawned off topic after topic every page until the topic I was reading was exteremly different from the rule, or the title of the chapter.
This book had some parts where it was a total mess. I would be reading a page, and thinking, “What the hell does this Russian writer have anything to do with the title of the chapter?”
The way I like to think about his writing style is that it’s a tree that is way too deep. From the first topic of the chapter, you spawn off a branch, and that branch spawns off a new
branch, and so on. First, the branches themselves were loosely related. Second, the branching became excessively too deep. When you get to the end of the branch, you have trouble following the logic all the way up to the original topic.
I think the danger of writing this way is that:
- The deeper you go in, if one of the connections is fragile, then your whole argument starts to crumble.
- Readers get lost very easily.
If I have to summarize the good points, it’s that:
- “Circumstances have changed. You can too.” This left a remarkable effect on me. I think if I have to pick a few words out of this book that I found most valuable,
this has to be it. The circumstances of what you faced in the past doesn’t matter. Things have changed. There is no reason for you to not to change as well.
Don’t get stuck in the past. Move on.
- Compare yourself to who you are yesterday. Don’t compare yourself to anyone else. I think this is sound advice as well. You have to be actively trying to become a better
person everyday. Your frame of reference should you ONLY You. This I agree with.
- Little changes build up to make huge effects. This is what I’ve been thinking of lately. In the natural world, there is probably no such thing is a discontinuity.
Everything, in microscopic detail, is smooth. That is to say, a sudden change doesn’t happen instantaneously. For example, a car doesn’t suddenly flip in the other direction.
It makes a smooth turn step by step. Another way to think about this is that people don’t gain weight overnight. You can a pound a week, gradually, until you’re thinking:
how the hell did I become so fat? In a similar manner, if you’re changing to become better, it takes time. Start with the little steps. Peterson emphasized this a lot,
so I wholeheartedly agree with his advice.
- Religious stories are engraved in human psyche, and these stories tell us important lessons that are a fundamental part of being human. Stories in the bible depict
some of the core aspects of being human, and concepts and morals that have appeared throughout human experience. We should not take them lightly, and really think
about what these stories mean, and reflect on them.
Overall, I wouldn’t consider this book a waste of time. But would I read it again, and enjoy it? Probably not. I would go back to some of the key-points that he mentioned,
and mull over it. And skip all the philosophizing and think about the core concepts he emphasizes, and reflect on how they can be incorporated into my life.
April 02, 2018 I really think that you don’t really learn something until you actually do it. This may be pretentious, and even wrong, but I really feel strongly
that our current education system is backwards, in the sense that you go to a lecture and hear one person talk, and then after an hour leave.
It makes no sense to me. How do you expect anyone to learn from this?
I think most of the learning comes from doing the problem sets and homework. Or even doing projects. Recently, I’ve been trying to come up with a schema for a side project,
and there are so many questions that I haven’t considered before. It really makes me motivated to go take a database class from an expert to get my questions answered…
Or even in the United States, maybe there should be a massive effort to take a year off and do the actual job you want to do prior to graduation. That way, you have a lot of questions that need answering, can be grounded on WHY you need to be focused at learning as much as possible in college, and also be able to ask relevant questions when you take your courses.
If I was ever a teacher(which I plan on becoming eventually), this is what I would do:
- I’d automate the crap out of grading papers. Maybe there would be a slick AI company that focuses on this. Who knows. Which reminds me. I had a professor back in college
who would not give any points if the final answer was off by like a decimal point. This was so cruel, and it caused a lot of bitter tears among students. IF it was up to me,
I’d make the tests graded in a way that the next question, you can use that answer as an input to solve all the other remaining problems. But I digress.
- I’d try to assign all my problem sets without giving the lecture first, and expect them to turn in their problem sets BEFORE I turn in the lecture. That way, the students can try to learn this stuff on their own, and will probably have ample amount of questions after they got their hands dirty =D. It would help if the questions I assigned were not Googleable. Perhaps this I’d have one set of questions prior to lecture, and another set after the lecture.
- Anyhoo, the focus of learning should be to explore different approaches to current ideas, challenge them, and make enough dots on the concepts prior to a professor’s lecture before the lecture. I think that would be immensely helpful in learning.