Top Camper Trailer Towing Tips

The Northern Lights

Many people have the Northern Lights as one of their items on their bucket list. I will talk about my absolutely amazing experience and how I was fortunate enough to see this phenomenon; I hope to inspire you and also provide some advice on how to see it! The Northern Lights, also known as the Aurora, is a breathtaking natural event that happens in the sky during night time. They are extremely unpredictable -- I heard of many friends who went twice in an attempt to see the Aurora, only to go back home without ever seeing it! Because it is triggered by disturbances in the atmosphere, it can happen at any moment. What’s exciting about the Aurora is that it can be seen from many parts of the world. I highly recommend going via Alaska because you will be able to view it at essentially anywhere in this state. My trip started by flying into Anchorage where we rented a car. Our first agenda was driving to Fairbanks, stopping by Denali National Park and staying at an Airbnb in Healy. Note that you are able to check online on the likelihood of experiencing the Aurora. That night, in particular, said there was a small chance of seeing it. And so, we decided to stay awake until 3 a.m., only to be disappointed because the sky was empty and pitch dark. The next day, we went to Chena Hot Springs Resort (highly recommended) to stay for the night and relax in a soothing outdoor hot spring. The same night, we were told by the front desk that they will notify us if the Aurora would end up appearing. We relatively early this time, at 11 a.m. A few hours later, we jumped out of the bed, getting a phone call from the resort to immediately go outside. And there it was, green lights flashing through the sky at rapid speeds. It was unbelievably spectacular. It made me awe at the various moving parts in the natural world that allowed the Aurora to happen. At this moment, we were completely satisfied because otherwise the whole trip would be ruined. For us, it only lasted about 10 minutes, barely enough time to take some photos and admire its beauty. In addition to seeing the Aurora, we were able to see two more phenomena in our time at Alaska. We went during the fall season, so we could see the fall foliage, the period when leaves change color from green to brownish-orange. We would stop occasionally on the road to admire the natural scenery. Next, we visited Wrangell-St Elias National Park, which is known for its glaciers. It was an unforgettable and unique hiking experience, to walk on ice the whole time!  Last, but not least, we made sure to make our way to the North Pole, because who doesn’t like Santa Claus? So, the next time you think about seeing the Northern Lights, consider going to Alaska to make your experience as remarkable as mine!
Top Camper Trailer Towing Tips

Command Line 101

This post is inspired by a friend who has never heard of the command line before. This is not too surprising because I only started about two years ago. Now, I use it every day. One of the most important tools in data science is the command line (synonymous phrases include terminal, shell, console, command prompt, Bash). Especially when working with Amazon Web Services (AWS) and Elastic Compute Cloud (EC2), familiarity with the command line is a must. You may ask, “Why can’t I just use my own computer?” Well, the answer is simple — as data volume increases, it becomes impossible to process terabytes of data with merely 8 or 16 GB of RAM. Using AWS enables scalability when working with Big Data. You are no longer using one local computer, but perhaps 40 computers on the cloud, a concept known as parallel processing. In a nutshell (pun intended), you are paying Amazon to borrow their computers. The purpose of the command line is to interact with the computer (local or remote) and its filesystem. It provides a text-only interface (yes, no more point-and-clicking) to provide commands for your operating system to run. Some use cases: - Read, write, edit, find, move, copy, remove, download files Git/Github - Basic data exploration/manipulation - Logging onto a remote computer aka SSH-ing (Secure Shell) - Watch Star Wars (Open your terminal and type telnet towel.blinkenlights.nl) Some dangerous use cases: - Denial-of-service (DoS) attacks Hacking and stealing people’s information Let’s begin by grabbing some text (Pride and Prejudice, by Jane Austen) from Project Gutenberg: http://www.gutenberg.org/files/1342/1342-0.txt Anything inside [brackets] will be the definition of the term and anything starting with $ will be command line syntax.  [wget: download a file from a website] $ wget http://www.gutenberg.org/files/1342/1342-0.txt [ls: list files in your current working directory] Your terminal should show one file called 1342-0.txt when typing ls. $ ls 1342-0.txt Files with the prefix of . are hidden files. The argument -a will display them. Some arguments are mandatory while others like -a are optional. [man: view manual page for a command] Typing man ls will provide you with information on each argument. Multiple arguments can be done by typing them consecutively, i.e. ls -ltr will show your files in a long list format, and sorted by modification time, with oldest entries appearing first. [head: print the first 10 lines] $ head The Project Gutenberg EBook of Pride and Prejudice, by Jane Austen This eBook is for the use of anyone anywhere at no cost and with almost no restrictions whatsoever.  You may copy it, give it away or re-use it under the terms of the Project Gutenberg License included with this eBook or online at www.gutenberg.org Title: Pride and Prejudice   [tail: print the last 10 lines] What you see on the screen is referred to as the standard output. Let’s combine three commands into one. [cat: print the contents of the file(s)] [ |: pipe operator that passes the output of tone command as input to another] [wc: word count] $ cat 1342-0.txt | wc 13427  124592  724726 First, the text content will be printed to standard output. Then, the standard output will be passed to the wc command, which will provide the line count, word count, and character count of the file. [mv: move a file (can be used to rename)] [mkdir: create a directory/folder] [cp: copy a file] [rm: remove a file] [cd: change directory] Let’s rename the text file to pride_and_prejudice , create a directory called books , copy the pride_and_prejudice file to books. $ mv 1342-0.txt pride_and_prejudice $ mkdir books $ cp pride_and_prejudice books/ [grep: filter based on a pattern] [ >: write standard output to a file (overwrites if there is an existing file with the same name)] [ >>: append standard output to the end of a file] [touch: create an empty file] [echo: print a message to standard output] Let’s store all lines containing the word “happy” into a file called happy.txt. Next, let’s store all lines containing the word “sad” into a file called sad.txt Then, create an empty file called subset and combine the two files together. Add a message to the end of subset that says “Finished!” $ cat pride_and_prejudice | grep happy > happy.txt $ cat pride_and_prejudice | grep -sw sad > sad.txt $ touch subset $ cat *.txt >> subset $ echo "Finished" >> subset On the second line, the optional argument -sw is used so that words like dissadvantage are not captured as well. You can use the asterisk * to perform operations on all files ending with the extension .txt. Let’s say you were tasked with downloading 100 files (Books 1000–1099) from the Project Gutenberg website AND changing the file name to the title of the book. It might seem like a very monotonous task, but using the command line, it can be done in just a few lines! We need to learn how to do for loops. for i in 1 2 3 4 5 do     echo "Hi Person $i" done The output would be: Hi Person 1 Hi Person 2 Hi Person 3 Hi Person 4 Hi Person 5 A slightly more complicated example: for i in $( ls ) do     echo file: $i done The output would be: file: books file: happy.txt file: pride_and_prejudice file: sad.txt file: subset The $ enables you to use a command inside ANOTHER command. From the Gutenberg website, the files will be http://www.gutenberg.org/files/1/1-0.txt or http://www.gutenberg.org/files/1/1.txt (it is inconsistent whether or not they have a -0 in the file name. To account for both scenarios, we can use the || command which will only trigger the second command if the first one fails. [tr: translate a character (using -d will delete the characters)] The code will be the following (step-by-step details can be seen below): $ mkdir gutenberg $ cd gutenberg $ for i in {1000..1099} > do > wget -O file "http://www.gutenberg.org/files/$i/$i.txt" || wget -O file "http://www.gutenberg.org/files/$i/$i-0.txt" > name=$(cat file | head -n 1 | tr -cd "[:alnum:][:space:]") > name="${name/$'\r'/}" > mkdir "$i" > mv file "$i/$name" > done Typing ls should give you this: 1000  1007  1014  1021  1028  1035  1042  1049  1056  1063  1070  1077  1084  1091  1098 1001  1008  1015  1022  1029  1036  1043  1050  1057  1064  1071  1078  1085  1092  1099 1002  1009  1016  1023  1030  1037  1044  1051  1058  1065  1072  1079  1086  1093 1003  1010  1017  1024  1031  1038  1045  1052  1059  1066  1073  1080  1087  1094 1004  1011  1018  1025  1032  1039  1046  1053  1060  1067  1074  1081  1088  1095 1005  1012  1019  1026  1033  1040  1047  1054  1061  1068  1075  1082  1089  1096 1006  1013  1020  1027  1034  1041  1048  1055  1062  1069  1076  1083  1090  1097 To view the files inside the folders, you can use ls -R : ./1095: 'The Project Gutenberg EBook of The Light of Western Stars by Zane Grey' ./1096: 'The Project Gutenberg Etext of The Faith of Men by Jack London' ./1097: 'Project Gutenbergs Mrs Warrens Profession by George Bernard Shaw' ./1098: 'The Project Gutenberg EBook of The Turmoil by Booth Tarkington' ./1099: 'The Project Gutenberg EBook of The Riverman by Stewart Edward White'   Making a folder called gutenberg and changing directory to it $ mkdir gutenberg $ cd gutenberg Starting the for loop where i will be a number from 1000 to 1099 (inclusive) $ for i in {1000..1099} do The argument -O will rename the file to the namefile . It will first try to download .txt and if it fails it will try -0.txt. $ wget -O file "http://www.gutenberg.org/files/$i/$i.txt" || wget -O file "http://www.gutenberg.org/files/$i/$i-0.txt" This will take the text file, retrieve the first line (where the title is located), keep only alphanumeric and white spaces, and store the string as a variable called name. [:alnum:] and [:space:] are character sets for alphanumeric and white space respectively.The next line will remove weird, bash-specific characters that remain, e.g converting 'The Project Gutenberg EBook of the Riverman by Stewart Edward White'$'\r' to 'The Project Gutenberg EBook of the Riverman by Stewart Edward White' . This uses the concept of variable substitition, and uses this syntax: ${parameter//patern/string} . In this part, the /string component is empty so it replaces \r with nothing. $ name=$(cat file | head -n 1 | tr -cd "[:alnum:][:space:]") name="${name/$'\r'/}" This last part will end the for loop by making a folder with the appropriate number and moving the file inside it. $ mkdir "$i" mv file "$i/$name" done Thank you for reading! I hope you were able to learn the basics of the command line from this tutorial.
Top Camper Trailer Towing Tips

Landing That First Job

According to the National Center for Educational Statistics, in the 2016-2017 academic year, there were 4.5 million college graduates in the United States. Evidently, that's a lot of people. Let's make an assumption that most of these people are also in the job market. From sheer numbers, it is clear that job hunting is an extremely competitive landscape. To land the first full-time job is one the most fulfilling yet frustrating experiences in life. Although I am happily enjoying my work right now, I faced a long uphill battle to get to where I am today. I hope to shed some light on job searching tips and provide some motivation for those who need it. A critical mindset to have is that job hunting is a numbers game. This mean that even if you are an extremely qualified candidate, you will still need to submit many applications regardless. Looking at some data online, for every job, there were on average 250 potential applicants, culminating in only a single job offer. So, don't be discouraged -- part of this process is just luck! To clear up any confusion, however, I want to emphasize that this does not mean to send in half-baked resumes and cover letters, hoping one will stick. Every job that you apply to should be done with due diligence. Spend the extra few minutes to customize your approach on why you are interested in this particular company and position. This strategy may be less effective for larger companies but crucial for mid-size to small startups. Especially when getting an initial interview (usually with the HR or hiring manager), you should know basic information about the company and what the job position entails. My experience is pertinent to those looking for a job in the tech industry. It took me 200 applications before landing my first full time job; of these 200, many were automatic rejections -- companies nowadays use Applicant Tracking Software (ATS), meaning that the computer scans your resume prior to having a human read it. Amusing aside: I applied to a fairly well-known company back in May 2018; in January 2019, I received a generic rejection email, meaning the response time was 8 months! It is not uncommon to either be ignored completely or get an significantly delayed response. A rule of thumb is to keep your resume simple; fancy graphics or format will only confuse the ATS and cause it to throw your resume in the trash without any further consideration. Furthermore, I am a fan of the STAR method (Situation, Task, Action, Result) to eloquently and concisely describe your work experience and/or projects. It is widely known that recruiters only spend a few seconds scanning each resume so having a structured response is critical for your application to be further considered. For each job application, I recorded all of the relevant details in a spreadsheet and updated it if I heard any response from the company. During the job searching process--I encourage you to do the same--I strived to have 20 live applications at any one time. If I did not hear anything for 2 weeks, then the application was considered “dead". This encourages me to consistently apply to jobs and always have something in the pipeline for interviews and/or coding challenges. Whenever I had an interview, I would make sure to comment on what went well, but more importantly, what I could have improved on. This allows me to learn from my mistakes instead of recycling the same errors in subsequent interviews. Whenever possible, use LinkedIn as a resource. If the company you are applying for has a connection, whether it's a close friend or simply an alumni, do not hesitate to reach out. Referrals are a two-way street benefiting both parties -- they guarantee your resume will be looked at, and can potentially result in a job offer; on the other hand, the person giving the referral will receive a juicy bonus paycheck if you are accepted. Regarding cover letters, even if it is optional, make sure to submit one anyway. It is typical for companies to perform a simple filter on those who submitted a cover letter to narrow down the candidate pool. Thinking from the perspective of the company, it is practical to hire candidates who put the extra time and effort when applying for the job. I hope that I was able to provide some useful guidance in the difficult job searching process. All I can say is to keep pushing because a job will land eventually, whether it takes days, weeks, months, or even a whole year!
Top Camper Trailer Towing Tips

Finding My Passion

“Your time is limited, so don't waste it living someone else's life.” This invaluable piece of advice—articulated by Steve Jobs in his commencement address at Stanford— resonates with me. Growing up as a Chinese-American and a classically obedient son, my parents controlled many aspects of my life. Reflecting on the past, I now know from first-hand experience the consequences that can result when consistently succumbing to your parents without cultivating independence. Reminiscing the earliest memories when I was younger, I recall children around the neighborhood flocking to our house to have studying sessions with my mother. At the time, my mother provided complimentary tutoring simply because she enjoyed teaching and working with children. It was not long when our home became too cramped to fit so many children; one of the parents then suggested for us to start a formal tutoring center, triggering the transition from a pastime to a business. As small business owners, my parents would inevitably and reasonably begin to pave the path for me to become a businessman. Starting with relatively trivial tasks such as creating math exercise worksheets to necessary responsibilities like managing payroll, I was on track to take over their business. I never particularly enjoyed the work I did but was unable to express my discontent to my parents. Studying economics previously in high school, I was reluctant to have to touch this dull subject again. I nevertheless regrettably followed their wishes and studied business economics for my undergraduate degree. However, my indifference for economics became evident as my grades quickly deteriorated. My academic outlook had hit rock bottom, for the first time in my life. When I began deliberately skipping classes and refusing to prepare for exams, I realized that I needed to take charge of my life or else. Albeit long overdue, since my grades had already plummeted, I decided to talk with a counselor at the end of my second year. That is when I learned to take charge of my own destiny. My counselor recommended that I try statistics because of its shared prerequisites with economics. Fortunately, I was much more passionate and attentive about learning statistical theory and programming languages. My subpar grades served as a catalyst to start afresh and thus my academic performance skyrocketed in the latter two years of college. It was a life-changing period in my life where I fully grasped the utter importance of having passion and carrying the right mentality. In retrospect, I associate my discovery of statistics as sheer serendipity. I did not intend to study statistics, nor did I know what it entailed. Yet, I soon became enamored with statistics and its practicality. Statistics has the power to unlock the mysteries of data, enabling us to make sound decisions with quantitative significance and to better understand the real-world phenomena around us. While analyzing data, I am most fascinated by the idea that there is no correct answer. Unlike the archetypical math problem of solving polynomials with an irrefutable solution, statistics favors a probable explanation with margin of error. For data analytics, there are typically many ways to interpret data and synthesize solutions to the same problem, constantly forcing me to think outside the box. After completing my undergraduate degree, my knowledge of data science was still rudimentary, only touching the tip of the iceberg. I craved for something more so I decided to further study data science at graduate school; I became more adept at programming and widened my data science skill set. Now, I am enjoying my first full-time position in the field of data science. I cannot imagine how different and unsatisfying my life would have been if I allowed my parents to dictate my destiny. Although I am extremely fortunate to find my career path, simultaneously, I regret not having done so sooner. I did not explore enough options at the time and made the mistake of simply following my parents’ wishes. I cannot stress the need to make your own decisions in life. I encourage everyone to identify their passions, even if it is haphazard and through trial and error like me. The concept of passion was critical to my personal development by revitalizing my thirst for knowledge -- I was constantly looking to learn more and was genuinely interested in the field of data science. I was able to overcome a low point in my life by abandoning economics and simply searching for my passion. Furthermore, I was content because I can easily find myself doing data science in my day-to-day job for the many years to come. Your parents do not necessarily know what is best for you. I have many friends who followed their parents’ requests and ended up having regrets many years down the road. You are the only one that knows what type of career you will enjoy doing for the majority of your life. The words from Steve Jobs encapsulates my life story: your time is limited, so don’t waste it living someone else’s life.
Top Camper Trailer Towing Tips

Breaking Free From Glasses

Four eyes. Most millennials growing up in America are aware of this term. For those unfamiliar with this expression, four eyes was a derogatory term aimed specifically for people who wear eyeglasses. I felt insulted whenever people would call me this. I felt like an outcast – as if those who wore glasses deserved poor treatment by default. More mild phrases I would hear include: “Wow, your glasses are so thick!” and “How bad are your eyes?” Wearing glasses ever since elementary school, such phrases resonated and haunted me for most of my life. Upon hearing these remarks, I would often not give a proper answer. Instead, I chose to forget about and ignore this problem because I figured there was nothing I can do to remedy my eyes anyway. To provide some insight on the extremity of my prescription, a severe case of myopia (nearsightedness), in my early 20s, I was -16 in the left eye and -14 in the right eye. I never really knew the primary impetus that triggered my vision to deteriorate quickly over time. Perhaps, it was partly due to genetics, as all the boys on my mother’s side also needed to wear glasses – none of them, however, had prescriptions as extreme as mine. Or it would be reading books in my night vision without the use of lights. Too much time spent staring at the computer screen strained my eyes as well; I often immersed myself with my personal computer ever since I was young and utilized video games as a medium to temporarily escape away from the hardships in my life. For basically my entire life, I have always been struggling to see clearly, even with glasses on. Not only that, I would lack confidence – it is difficult to be confident if I am constantly questioning what is physically in front of me. In school, especially high school and college, I repeatedly struggled to see the board clearly, even if I sat in the front of the classroom. I relied on my peers to share their notes with me, so I could confirm and fix my lecture notes accordingly. On television, I am intermittently shown advertisements for LASIK (commonly known as laser eye surgery). When I was young, it was too complicated for me to understand. As I grew older, upon learning that my high prescription would disqualify me from LASIK, my world became engulfed with despair. I felt hopeless, thinking that I would suffer from poor vision for the rest of my life with little to no chance of recovery. My desolation was particularly apparent in my first two years of college, where I lacked motivation to put effort into academics. I still have flashbacks to the moments where I would perform better in one class versus another simply because one was blackboard-dependent while the other would use electronic slides. Fortunately, while entering my third year of college, I was able to prevent myself from hitting rock bottom by pulling myself together and changing to a major more aligned with my strengths – a more modern teaching style through lecture slides, a more hands-on curriculum through programming exercises, and coursework that was more appealing to my interests. Hitting a peak in optimism in my life in the latter two years of college, upon graduating, I decided to take a leap forward in my life. I began extensively researching if there were any alternatives to LASIK that would be suitable for me. After consulting various eye doctors and casually going for a free LASIK consultation (already knowing that I was not qualified), I was informed of a relatively new procedure called Toric ICL (Implantable Collamer Lens) that was the only procedure possible for my circumstance. I have astigmatism (the toric part), meaning that my eyes are completely spherical; this complicates the process slightly because it means that during the surgery, the lens must be inserted at an angle and poses higher risks. In the U.S., only the non-Toric version is currently available, which meant that I would need to go overseas to undergo the surgery. I put hours and hours of research, studying about Toric ICL, its side effects and possible consequences. I want to emphasize that LASIK is a much safer procedure – Toric ICL is only for extreme cases of myopia; I was shocked to learn that my surgeon only performs roughly 2 patients a month due to the lack of demand. Risks include glacuoma (about 1 out of every 1000 patients), inflammation, night glare, damage of the endothelium, etc. Nevertheless, I was fixated on giving the surgery a try. Fast forward to today, nearly two years later as of this writing, I have recovered from the surgery (It was a success and I recovered in about 2 months!). Overall, I am very satisfied with the surgery. I no longer need to reach for my glasses when waking up in the morning. I do not need to panic when losing my glasses; the difference with and without glasses was stark and analogous to watching a video in 144p vs 1080p. However, I am not yet satisfied with my current state. Although I can indisputably see better than I did pre-surgery, I believe that the lack of confidence for my eyes for the past 20 years has caused some damage to my attentiveness and overall perceptiveness. Recently, I am consistently criticized for keeping my eyes in my backpack, slammed for the inability to focus on what is in front of me. I expect to fully recover as my eyes become accustomed to analyzing and processing information in the world around me. My advice to those who have made it this far and read my story is to persevere. No matter how bleak life may seem in the darkest moments of your life, never give up and keep looking for the light at the end of the tunnel.