Showing posts with label linux. Show all posts
Showing posts with label linux. Show all posts

Wednesday, January 29, 2020

My Thoughts: Learning Linux is hard (from Microsoft products) but worth the price?

The amount of information that is purely leaking out of my head as I write this article is just ridiculous. I just finished configuring Django/Python, Debian, Apache, MariaDb (after PostgreSQL), Google Cloud, PuTTY, DBeaver, Eclipse, and Git from scratch (no knowledge). That experience was so very tedious.

If I were to do this again, I would have learned Java and MySql first. The rest are fine. The biggest hurdles was reading documentations for MariaDb which some doubles from MySql. This worked for the most part, but in some rarer instances, MariaDb has kind of split from MySql. So, I spent a lot of time following directions that didn't work. Django was an added layer too because I was not sure if it was Django configuration or an Apache configuration. I think by going with Java and MySql, I would have one less layer of technology to figure out where my problem was.

Another hurdle was that I was working of a Windows system while configuring these technologies on Google Cloud. Of course, I also went with Debian without the GUI so I had to learn all the terminal commands. I did not setup a comparable environment on my machine so I had to upload to Google Cloud to test things. This of course meant that I had to figure out how to connect PuTTY and DBeaver to Google Cloud.

Visual Studio may be a good alternative to Eclipse and DBeaver. That I am not sure would have been easier or not. From my experience most people in this tech stack typically use Eclipse. I am not so sure about DB IDE.

Compared to my experience with Microsoft products, this was much much harder than learning MS products. Wizards, tutorials, how-to instructions, etc. were all levels easier to focus on the configurations that needed to be changed. MS definitely got my up, running, and programming within the same day. This took me about 3 weeks only weekends and some nights, so maybe equivalent to 10 days of actual work. Either case, way longer than it took for MS. Maybe this is a sign of my age...

As for pure learning curve goes, MS is way easier and faster.

As for performance, empty shells of a project is already way faster than empty MS projects.

As for price, MS is way too expensive.

In conclusion, there are pros and cons to both. As a person that wants to make decent wage to effort, learning non-MS product is worth the price as they are paid more in general for similar jobs. Good MS developers can still be paid well in higher tiers but there are fewer available openings and more lower quality developers vying for the same role plus managers who cannot recognize good talent.

Saturday, October 12, 2019

Expanding to Linux, Apache, Postgres, Python, and Django in Google Cloud

I finally got around to learning Linux and Python for the second time. I tried many years ago at a friend's place but never went back after I messed up a build. This time it was way faster with Google Cloud.

I spent about half a day figuring out the free trial versus always free. In reality, I was trying to figure out and extrapolate the always free part. Because as a hobbyist, this was very intriguing part. So basically, I can spin up a small VM and Cloud Sql for free, of course up to a certain limit which I think is well below the traffic and usage that I will be working in.

I think this is great because I am mostly on to practice and learn. If I were to expand my projects, scaling up my projects looks to be kind of simple for both infrastructure and cost. Although I did not delve deep into how to do that exactly. But the costs seem rather reasonable on a personal level.

I spent the rest of the day learning the different parts of google cloud. I quickly went through some of the options then saw all the different types of OS and DB google cloud has to offer. Of course, I spent most of the time figuring out which Linux distro to choose (Debian) and database (Postgre).

I chose Debian because it was free and seemed to have good amount of documentation online. I chose Postgre because it is new to me (I have worked with Oracle, MySql, and MS Sql in the past) and appears to be gaining some popularity (and also been seeing quite a few on job posts).

The next day, I spent all day trying to install Python, Apache, and Django. I spent part of the day looking into which web server to use which I almost scrapped because Python had its own server. I could not get the Python web server to work properly because I did not know how to open a web browser to be local within my google cloud "space" (I am still unsure if that is even possible). I was not able to open the ports to access it from an external source.

I also spent a lot of time trying to learn all the Linux commands to install. I spent a good amount of time trying to find what I can do without super user (sudo) which I found to be almost nothing. I was eventually able to install Apache with Python by following directions and open it from my system's browser (outside of google cloud).

I then looked into Python IDE which then I stumbled across Django which I later learn is a framework for python web development. So then I attempted to install Django, but ran into a lot of issues. Because I already had Python and Apache installed, I was trying not to repeat certain steps or skip certain steps. Because I was not exactly clear on what needed to be done and things were not working, I deleted my Django project and tried to start over.

I had to start over a few times until I found a different site (https://www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-apache-and-mod_wsgi-on-debian-8) that eventually got me up and running. On the bright side, I am now a bit more familiar with a few basic Linux commands: sudo, nano, mkdir, rm, mv, cp, service, etc. At least I think they are Linux commands as opposed to Python or Apache commands.

I have not started any programming yet, but excited to eventually get to that point. I still need to learn a bit about the Django framework before I can really start. So hopefully, I will get some time to work on that soon. Also, I still need to find an IDE or text editor.


Reference

https://www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-apache-and-mod_wsgi-on-debian-8

Wednesday, October 9, 2019

I stopped using Microsoft Visual Studio and Azure (2019)

I am mostly a hobbyist developer. I had moved to more process management in software engineering. So the cost of paying for the professional version ($1200 / $800) of Visual Studio is quite steep even though I still paid for several years. I am aware there is an Express version which I had used initially but the professional provided a lot of neat features also provided Azure credit so I figured it compensated some of the cost.

I was content with paying but then my real work got busy for several months, also many things came up in my personal life, so I had neglected programming for a bit. When I returned, I realized Visual Studio no longer let me log in. I eventually found that my subscription had expired. I then noticed that I had received a bunch of emails that said I was overdue. This was due to a fraudulent charge on my credit card which was canceled, and that card was the one on record to renew.

This was extremely confusing, because I thought they had moved to subscription basis which I had been paying. When I paid all the overdue costs, I was still unable to use VS 2019. But somehow VS was separate and that had expired several months past, so it will cost me another $1200 to repurchase to use. I am still a bit confused exactly what is what, like what was Visual Studio and what was monthly subscription.

My current understanding is that I was paying monthly for Azure which does not include VS. I had paid for VS the prior year. Sadly, I didn't notice that I had been paying some much to MS for so long. So I still have Azure to host my site temporarily, but absolutely no access to VS. But if I paid for VS, then I should basically own my copy of VS. After talking to support, this was confirmed to be the case. I was unable to find a key in my MSDN subscription. I just grew tired and frustrated, then just refused to use VS again... not even the Express version.

On top of that, since I had purchased VS 2019, I should have had $50 monthly credit to Azure so why was I paying the Azure monthly costs (which was under $50 / month)?! Ugh.... this is so painful.

In Summary

I had once forgot to renew in the past and paid the full cost, so this is the second time. I was barely ok with the cost. Then they moved me to subscription basis which I had complained about because I just wanted to pay a flat amount. Then I found out that I still had to pay the VS subscription and I guess I was paying the Azure subscription. I had been using VS for over 10 years, maybe around 15 years.... and absolutely no sympathy for my situation. I have been a promoter of MS VS, .NET, and MS SQL, but no longer. I don't hate them, but definitely no love anymore. 

And so, I have moved to Google Cloud, Linux, Python, Apache, Django, and Postgres. After one week, the pricing scheme is very reasonable for hobbyists and people who wants to experiment before going full production. First impressions for this new tech stack will come in the future.

Will I go back? Maybe if there were some changes, but unlikely. I'll continue to use MS Windows, although a good chance I may move

Wednesday, December 11, 2013

Work Life: Ubuntu - First Impression

I finally got around to installing Ubuntu. I have never really used Linux although I did have some exposure over a decade ago. Unfortunately, I installed the server version so there was absolutely nothing there except for the terminal. The only command that I knew how to use was [ls] which just provides me the list of directories and files.

A friend then work his magic while I tried to follow what he was doing. Eventually ended up with a gui interface (I think it was called X Windows) with nothing there. He then just recommended to use the GUI version of Ubuntu.

Since he's out, I tried to play around with the flash drive and found that I could run Ubuntu right off the drive. This was much easier to use with the interface. It is much easier to navigate directories and open files which are very similar to Windows. I was able to open Firefox and watch YouTube videos on Linux tutorials.

I started by searching for how to install files from Ubuntu although I kind of figured how to do so in the terminal. From the GUI, I would just get a folder-like directory when I clicked on the files that I downloaded. I also did not know what the difference was between YUM and RPM. So... I have much to learn.

One minor thing that I have to get used to is that the icons to close, minimum, maximize, etc. are on the top left corner. Also what takes me a while to adjust is that the icons do not appear in max size unless the mouse hovers in the upper regions of the screen. This seems to throw me off for some reason.

In conclusion, I was not able to do much with my working knowledge of Windows except to navigate the directories and configure the wireless. My goal was try to get to installing a web server and database, so there may be other basic functions that I could figure out for regular use.