Reviews
-
Grad School
- Aug 17, 2022 CS-7646 | Machine Learning for Trading (ML4T) | Summer 2022 Aug 17, 2022
- May 9, 2022 CS-7638 | Robotics: AI Techniques (RAIT) | Spring 2022 May 9, 2022
- May 3, 2022 Georgia Institute of Technology May 3, 2022
-
Misc
- Nov 27, 2023 FAN EXPO San Francisco 2023 Nov 27, 2023
-
Reviews
- Apr 15, 2021 Product Review | Winter 2020 Apr 15, 2021
- Dec 1, 2020 Product Review | Fall 2020 Dec 1, 2020
- Sep 18, 2020 Product Review | Summer 2020 Sep 18, 2020
- Tech Tutorials and Project Write Ups
-
Travel
- Jul 27, 2024 Mt. Rainier 2024 Jul 27, 2024
- Jul 27, 2024 Seattle 2024 Jul 27, 2024
- Jun 25, 2024 Oahu June 2024 Jun 25, 2024
- Jan 6, 2024 Oahu 2023 | Day 5, 6, 7, 8 Jan 6, 2024
- Jan 6, 2024 Oahu 2023 | Day 4 Jan 6, 2024
- Jan 6, 2024 Oahu 2023 | Day 3 Jan 6, 2024
- Jan 6, 2024 Oahu 2023 | Day 1 & 2 Jan 6, 2024
- Aug 8, 2023 Olympic National Park 2023 | Day 3 Aug 8, 2023
- Aug 8, 2023 Olympic National Park 2023 | Day 1 & 2 Aug 8, 2023
- Jan 7, 2023 Las Vegas 2023 Jan 7, 2023
- Nov 24, 2022 Disneyland 2022 - Day 2 Nov 24, 2022
- Nov 24, 2022 Disneyland 2022 - Day 1 Nov 24, 2022
- Aug 22, 2022 Sequoia and Kings Canyon National Park Aug 22, 2022
- Jul 14, 2022 Seattle 2022 Jul 14, 2022
- Jun 1, 2022 Mount Rainier National Park Jun 1, 2022
- Apr 26, 2022 Coachella 2022 Apr 26, 2022
- Nov 20, 2021 Joshua Tree National Park Nov 20, 2021
Disneyland 2022 - Day 1
We took a trip down to Los Angeles during Thanksgiving week to visit friends and Disneyland. The last time I had gone to Disneyland was in 2012. I was excited to see all the new additions to the park, as well as the holiday theme, as I have never visited during the holiday season.
Solvang, California
On the way down, we stopped to see Solvang, California, a small danish town with unique architecture, shops, and wineries.
Downtown Disney
We met up with some of our local friends to hang out at downtown Disney, a shopping and food plaza adjacent to the Disney and California Adventure parks. Downtown Disney is a gateway to Disney hotels, trains that transport guests to the Disney parking lot, and many Disney related stores and restaurants. It feels like an extension of the parks, except it is free to enter.
Trader Sam’s
A tiki bar serving cocktails and island food.
Star Wars Trading Post
Day one at Disneyland started early at 8:00 AM when the parks opened. We had 2-day park hopper tickets to maximize our time between the two parks. We opted to start with California Adventure on Sunday, hoping Disneyland would be a little less crowded on Monday. Our first ride of the day was spider-man’s web slinger in the new Avenger’s Campus. As an adult, I could better appreciate the attention to detail that goes into each attraction.
Pym’s Test Kitchen
An Ant-Man inspired restaurant serving small snacks and drinks
Guardians of the Galaxy, Mission: Breakout
Previously the Tower of Terror, the tall free-fall elevator based attraction is now themed around the Guardians of the Galaxy.
Lamplight Lounge
We got lunch at the lamplight lounge, a sit down restaurant that could be easily missed, nestled next to the water with views of the Incredicoaster and Ferris Wheel.
The theme parks transform into a lively a cozy atmosphere at night, with Christmas lights and decorations lit up all around the grounds.
Naples
After a long day at the park, we ended the night eating pasta and pizza at Naples in Downtown Disney.
Sequoia and Kings Canyon National Park
Date: Thursday, August 18 - Sunday, August 21
We visited Sequoia National Park and Kings Canyon National Park for a weekend hiking trip and to celebrate a birthday. The national parks neighbor each other in central California near Fresno, and are typically grouped together in itineraries and official National Parks websites and documents. They are a short 3 hour drive from San Jose, California. We stayed at an Airbnb in a nearby city called Visalia.
Sequoia National Park
We spent the first whole day (Friday, August 19th) exploring Sequoia National Park. The park is filled with giant sequoia trees, including the world’s biggest tree, General Sherman. We started the day on the road at 6:00AM to drive through the south Ash Mountain entrance, which took around 1 hour from our Airbnb in Visalia.
Moro Rock Trail
Our first stop was Moro Rock Trail. Sequoia National Park is expansive, as it took an additional 45 minutes from entering the park to get to the trailhead. The trail is a short 20 minute walk up stairs to a viewpoint. This trail is the most popular trail on Alltrails, which is why we wanted to get it out of the way early in the morning to avoid crowds. We drove right up to the parking lot located at the trailhead, where we were met with swarms of little flies. Reaching the top gave us an overview of the park.
Congress Trail
Our next stop was Congress Trail, a 3.5 mile hike that tours all the large Sequoia trees, including the world’s largest tree, General Sherman. From Moro Rock, the trailhead was about a 10 minute drive. We arrived around 9AM.
Throughout the park, small chipmunks could be seen scurrying around the trail and forest grounds.
Pictures do not do justice for how large the sequoia trees are in person. General Sherman had a few tourists around 9AM. We were able to easily get pictures. By the time we revisited the area around 11AM, large crowds of tourists were present, creating a large line for picture ops.
Fires ravaged Sequoia National Park back in Fall 2021. Burn scars can be seen on various trees.
Many trees were named after American Government positions.
A cross section of a tree cut in the early 1900’s was on display. According to the park, this tree was around 2000 years old.
Macro shots of the tree stump using the iPhone 13 Pro Max.
Lodgepole Market Center and Wuksachi Lodge
For lunch, we visited the Lodgepole Market Center to shop, and ate at Wuksachi Lodge. The Wuksachi Lodge restaurant serves standard sandwiches, bowls, and pizzas. The Market center sold various snacks and souvenirs.
Tokopah Falls Trail
After an afternoon break, we began our hike at Tokopah Falls trail. The 4 mile hike is an out and back trail that ends at a small waterfall. The rocky terrain is surrounded by large trees, rivers, and small meadows.
We were pleasantly surprised after seeing a small bear while hiking. The bear seemed to have an ear tag.
After finishing our hike at Tokopah falls, our plan was to visit Foothills visitor’s center. Unfortunately the visitor’s center closed at 4PM, so we would not have made it. The closer visitor center, Lodgepole visitors center, was closed for renovation. We headed back to our Airbnb around 5pm.
Kings Canyon National Park
On Saturday, August 20th, we headed to Kings Canyon National Park. The 2 hour drive to the entrance and to Mist Falls trailhead was beautiful. After driving briefly through the forrest, the road opens up to an incredible view of a canyon surrounded by tall mountains. The layers of mountains were prominent in the soft morning light. We made our way driving through and down the canyon.
Mist Falls Trail
Our main hike for this day was Mist Falls, a 9 mile out and back hike through Kings Canyon. The trailhead was far east of the park, and is a gateway through many trails that backpackers take.
The trail starts through a flat meadow, and transitions through a shaded region surrounded by trees. After awhile under the trees and through some inclines, the trail opens up to reveal incredible views. Surrounded on all three sides are giant mountains that looked huge in person. The views reminded me of pictures you see online of Switzerland, with a few of the mountain peaks resembling Matterhorn. The views felt like views you would see on a multi day backpacking trip, not a day hike.
Grant Grove Giftshop and Kings Canyon Visitor’s Center
After our long 4.5 hour hike, we drove an hour to the Kings Canyon visitor center and Grant Grove gift shop to look around.
General Grant Trail
We then visited General Grant, our Nation’s Christmas Tree. General Grant was very large. On the backside was a scar from a fire.
Our two day trip to Sequoia and Kings Canyon was a success. We were able to explore most of the sites we had planned to see, and left satisfied and humbled by the large grand sequoia trees and massive canyons. We are fortunate to be a short drive away from these beautiful parks.
CS-7646 | Machine Learning for Trading (ML4T) | Summer 2022
August marks the end of my second semester at Georgia Tech. I decided to take CS-7646 Machine Learning for Trading (ML4T) for my Summer 2022 course due to it’s positive reviews and to get experience with Machine Learning. The course was created by Professor Tucker Balch, and instructed by Professor David Joyner.
CS-7646 is a mix of lessons related to investment trading topics, as well as machine learning algorithms. The course is project heavy, and includes a multiple choice midterm and final. Since summer is a condensed semester, a project was due every week, which put constant strain on completing the assignments on time. Overall, the topics of finance and how we could use machine learning concepts to determine investment strategies were interesting and were good primers to introductory topics in both fields.
Finance topics include stock market analysis (technical analysis vs fundamental analysis), market indicator evaluations(bollinger bands, simple moving average, rate of change, etc), market theory and concepts (efficient market hypothesis), and more. Machine Learning topics included linear regression and categorical learners, optimizing, implementing, and evaluation of learners such as decision trees, random forests, and bagging.
The course projects were written in Python, with heavy use of NumPy and Pandas libraries to deal with large datasets of financial stock data.
Below are brief summaries of the 8 projects we completed in this course.
Projects
Project 1: Martingale
Conduct probabilistic experiments and write code to analyze the Martingale betting strategy involving an American Roulette Wheel.
Project 2: Optimize Something
Use python to optimize a theoretical financial investment portfolio. Find the most optimal allocation of investments to maximize gains, and evaluate portfolio metrics including mean, standard deviation, cumulative returns, sharpe ratio, and more.
Project 3: Assess Learners
Implement and evaluate a decision tree learner, random tree learner, and ensemble learner using bagging.
Project 4: Defeat Learners
Create a dataset that is optimized for linear regression learner, and a decision tree learner.
Project 5: Marketsim
Simulate market trades and return portfolio values and metrics over time.
Project 6: Manual Strategy
Create a strategy manually without learners that would give an optimally max portfolio returns. Develop and research technical indicators that can be used along with a learner to make buying decisions.
Project 7: Q Learning Robot
Implement a model free reinforcement learning algorithm called Q-Learning. Implement a Q-Learner with model based Dyna Q to solve a robot navigation problem.
Project 8: Strategy Learner
Use indicators along with learner of choice to create a trading strategy, and evaluate portfolio performance against a manually traded strategy.
Summary
In summary, ML4T at times felt like a grind, with a project or test due every week. Some projects had a Report component which added additional time outside of coding. In terms of learning opportunities, I came out of the class with financial and machine learning literacy I did not have going into the class. I have a stronger understanding of common market terms, and an introductory understanding of regression and categorical learners, how to implement them, and how to evaluate their performance. I do not feel as if I can implement my current knowledge of the stock market into a productive strategy that would maximize gains, as learning these new topics exposed the nuances necessary to understand the market and the multitude of indicators investors track in order to make business decisions.
I am happy to have had more opportunities to practice coding in Python, and using NumPy and Pandas.
Seattle 2022
Date: Saturday March 28, 2022 - Tuesday March 31, 2022
We visited Seattle during Memorial Day weekend. The primary goal was to visit Mount Rainier National Park for a day, and spend the rest of the days seeing sights and trying the local food. We experienced the notoriously cloudy weather with a few sprinkles, but there were few glimmering moments of sunshine. Seattle is just a short drive away from lush green nature trails the pacific north west is known for. Paired with their bustling city with its’ walkable, friendly neighborhoods, Seattle charmed its way to the top of the list of places I would some day consider living. Listed below are a few of places we ate and visited during our trip.
Starbucks Reserve
Starbucks reserve feels like a mecca for Starbucks / coffee connoisseurs. The wooden building with large double doors feels grand upon entry. As you enter, your senses are overwhelmed with smell of coffee and the sight of large crowds of tourists / locals gathered to experience the joys of caffeine.
The roastery is split up into 4 main sections: pastries, a bar, your usual coffee baristas, and a downstairs seating area. We primarily visited to try their Starbucks coffee infused cocktails. The sparkling Sakura tasted like a mimosa, but was a little too sweet. The espresso martini flight was an interesting experience. The appear much larger in pictures.
As a tourist, the Starbucks Reserve felt more worth a visit than the first starbucks store on Pike Street.
Rachel’s Ginger Beer
Rachel's ginger beer was highly recommended by various sources when we were researching places to visit in Seattle. This review adds to that list of recommendations because we had a great experience and visited twice during our Seattle trip.
The fizzy ginger beer drinks make it a perfect refreshing pit stop when you need a place to stop and recharge for a bit. We were able to bring in our clam chowder from Pikes and pasta from Beechers to enjoy, pairing greatly with our ginger beer infused cocktails.
If I lived in Seattle, I could envision frequenting Rachel's Ginger Beer, or regularly purchasing their large jugs of ginger beer. 21+ to enter.
Pike Place Market
Piroshky, Piroshky
Pike Place Chowder
Beecher’s
Sky View Observatory
Sky View Observatory was a great stop to get a unique birds eye view of Seattle. Between the more popular Space Needle, Sky View has cheaper tickets, is taller, and has no time limit.
We went during Memorial Day weekend around 7pm and there wasn't a big crowd or line to get in. They offer tiered tickets, priced by extra feature that are included. Some extra features include a priority line, and access to reserved tables next to the windows on the top floor.
After taking an elevator up the building, the doors open up to a 360 degree floor that you can freely walk around. There is a cafe that serves alcohol, and a few tables.
The prices are fair for the unique and untimed experience. It was a great way to kill some time before dinner at night. Be sure to check what time the sun sets to get the best views and lighting. Unfortunately for us, the sun set late around 9pm, so we didn't get much city light views until closing.
Gas Works Park
Amazon Spheres
Watson’s Counter
Biang Biang Noodles
Tamari Bar
The dinner dining experience at Tamari Bar was exemplary. Starting with yelp check-in (check in is recommended), our table was ready a lot sooner than the listed time. The restaurant has a narrow, dark and moody interior, with a beautiful bar. The ambiance and vibe were excellent with house music pounding in the background and a full restaurant of patrons enjoying their meal.
The menu changes frequently with new shareable bites. We got the
Hotate Blast
Tamari Bar Sushi Roll
Spam Katsu Bao
Hellz Bao
and other things I forget the name of. We were happy with the presentation and taste of everything that came out. Would come back and easily recommend this place to friends for the vibe, presentation, and interesting menu.
General Porpoise Doughnuts
Mount Rainier National Park
Mount Rainier National Park
Mount Rainier National Park
Sunday, May 29th 2022
We took a day trip to Mount Rainier National Park during our Memorial Day weekend in Seattle, Washington. The national park is a 2-2.5 hour drive from Seattle depending on where you navigate to in the park. The park’s iconic green meadows filled with colorful wild flowers were unfortunately out of season. Most of the popular trails are still covered in snow in June at higher elevations. Hiking these trails is still possible, but require special hiking equipment like crampons or snow shoes. If you’re looking for wild flowers, peak season at Mount Rainier is in August. To make the best of trail conditions, we opted to hike in the lower elevation trails where the snow had already melted. We hiked the Silver Falls loop trail located in the Ohanapecosh camp ground, then visited the park’s visitor’s center in Paradise, next to the Paradise Inn.
Mount Rainier National Park is the fourth national park I have visited. I enjoyed the park’s lush green mossy forests, raging teal blue rivers, and white snow covered peaks.
Silver Falls Loop Trail
Silver Falls Loop Trail is a moderate 4 mile hike in Mount Rainier National Park. Sounds of the rushing river travels through the air as you walk surrounded by the lush green forrest. The roars get louder as you approach Silver Falls where you can witness the power of the water crashing between rocks. People of all ages were seen enjoying the trail.
https://www.alltrails.com/trail/us/washington/silver-falls-trail
Paradise Valley
Visitor’s Center
The visitor’s center is located in Paradise. Here park rangers are waiting to answer any questions you may have. You can also find gifts and snacks.
Paradise Inn
The Paradise Inn felt like a cozy cabin in the snow. The Inn is rich in history
Skyline Trail (?)
Skyline trail is the quintessential hike to get the most beautiful views of Mount Rainier’s wild flower meadows. In June, the trail and hills are covered in soft knee deep snow that engulfs your leg with every step, making it almost impossible to hike without special crampons or snow shoes. Fortunately, some of the trail was pre-packed by previous hikers, allowing us to explore the beginning of the trail in regular hiking shoes.
Miscellaneous Scenes Around Mount Rainier National Park
The grandiose scale of the mountains, rivers and trees in Mount Rainier National Park is hard to convey in pictures. The massive natural structures were awe inspiring to see in person.
The day trip ended with a visit from a friend.
Mount Rainier National Park is a uniquely beautiful environment with diverse climates based on elevation. The different climates made for a wonderful winter-y June hike. We will definitely be back during peak season to enjoy the wild flower covered meadows.
CS-7638 | Robotics: AI Techniques (RAIT) | Spring 2022
Choosing my first graduate school course at Georgia Tech required time and considerable research. With so many subject matters and difficulty levels to choose from, I had to conduct extensive research to pick the right one, as this first impression would set the tone for the rest of my graduate education. Another factor that I had to take into account was Georgia Tech’s policy that requires two B’s or higher in two courses the first year to maintain enrollment. After many hours cycling through reddit, google, and OMSCentral (a student run course ranking board website), I decided on taking CS-7638 - Robotics: AI Techniques (RAIT), an average difficulty course with great reviews.
Syllabus
The course teaches different artificial intelligence algorithms that are commonly used in robotic systems such as self driving cars, or robotic vacuums. The lessons are structured to teach us how to program all the major systems of a robotic car based on lectures from the former leader of Google and Stanford’s autonomous driving team, Dr. Sebastian Thrun. The course itself is instructed by Georgia Tech’s Dr. Jay Summet and various TA’s.
Learning Objectives
The objectives for this course were:
Implement filters (Kalman and Particle filters) in order to localize moving objects whose locations are subject to noise.
Implement search algorithms (including A*, Dynamic programming) to plan the shortest path from one point to another subject to costs on different types of movement.
Implement PID controls to smoothly correct an autonomous robot’s course.
Implement a SLAM algorithm for a robot moving in at least two dimensions.
These objectives were met through Problem Sets, Projects, and Exams. Programming in this course was done in Python 3. Math used in this course was primarily probability and linear algebra.
Projects
The largest bulk of information learned and what accounted for 60% of our course grade were projects. Projects contained some starter code and a doc sheet with requirements that our program had to follow. The goal for each project was to implement filters and algorithms we had learned from lectures using Python. Although time consuming, completing these projects solidified robotics AI techniques and was thoroughly fulfilling.
Project 1: Kalman Filter
In the first project, we were tasked to implement a Kalman Filter to estimate locations of incoming meteorites, and to navigate a turret towards the moving meteorites to destroy them. The course provided the working environment, with test cases that included a random set of incoming meteorites.
Kalman Filter is an algorithm used to estimate system parameters, even ones that are not observed. In our project, we used Kalman Filter to take in a noisy measurement input to estimate the future state and velocity of a meteorite.
Above are the general steps used in a Kalman Filter. In summary, the Kalman Filter works in two phases, the Prediction Phase and the Measurement Phase. In the prediction phase, the Kalman Filter produces estimates of the current state variable using the initial or previous state. In the Measurement, or update phase, new sensor measurement inputs are used along with our new predicted state in a calculation to predict the updated state. The average is weighted using a calculated Kalman Gain to determine which value (measurement, or predicted) we trust in more. The new updated predicted state is then fed back into the filter as the previous state until we get closer and closer to the actual state.
Having estimated the meteorite’s state of location and velocity using a Kalman filter, I was then able to use knowledge of our grid world, the predicted state, and trigonometry to guide our turret towards the meteorite to destroy it.
Project 2: Particle Filters
In this project we implementing a particle filter to estimate locations of planets in a solar system. We populated the grid world with N number of particles, assigned each a weight based on the particle’s gravitational reading from our sensor compared with the planet’s gravitational reading, and resampled our population with particles of higher weight being chosen more frequently. Particles with similar sensor readings to our planets are assigned a higher weight. This algorithm is survival of the fittest, where measurements that are far from actual are more likely to be removed from the population through resampling.
Project 3: PID Control
For this project, we implemented a PID controller to control a flying drone’s hovering altitude and location. Given a goal altitude and location, we needed to control the drone’s RPM to hover at the target location and altitude for a specific time limit. We implemented P, proportional control to reduce our error (in this case difference in position from goal) by controlling the drone’s propeller RPM in proportion to distance away from goal. This parameter needed to be tuned until we were getting our drone close to our goal.
This resulted in our drone oscillating around the target altitude, where the drone would approach the target altitude, but overshoot it, then correct itself. To account for this, we needed to incorporate the derivative of the error in our calculation. The derivative produces an output based on the rate of change of the error. This means as the drone approaches the goal altitude, the value of the derivative approaches 0, smoothing down the approach towards goal, which prevents oscillation and overshooting. To account for system errors, an integral of the error is added to the calculation. The integral control will continuously increment or decrement the controller’s output to reduce the error to 0.
The PID controller was simple to implement. The greatest challenge was fine tuning each parameter to minimize error. This could be done manually, or using a Twiddle Algorithm.
Project 4: Warehouse Search
The fourth project involved controlling a robot around a warehouse to retrieve and drop off packages. We were to implement search algorithms, mainly A* Star and Dynamic Programming for stochastic cases where the starting position is unknown. The warehouse world is a discrete grid, with each position having varying costs. We had to find the most efficient path to the package, and to the drop zone.
A* search algorithms uses a known starting position and expands outwards and checks whether neighboring spaces are the goal, all while keeping track of accumulating costs. A* Search algorithms also use a heuristic function as a map to guide its decision.
Dynamic programing accounts for the stochastic nature of the world by calculating optimum paths to the goal from any starting position. Implementation of Dynamic programming to find the optimum path from any position to a goal has the same structure as A*star, with some extra accounting steps for a value grid that is used to count backwards from the goal to calculate the cost of reaching the goal from any position. These costs are then used to assign the action that the robot needs to take.
Project 5: SLAM (Synchronous Localization and Mapping)
In project 5, we had to localize our drone while navigating the drone to a known treasure position. With an unknown map, we could not localize using traditional filters or methods. We implemented an online SLAM (synchronous localization and mapping) algorithm to localize our robot while mapping out positions of landmarks in our map. We use sensors of landmark positions and movements to update our state matrix with the location of our drone and of the landmarks. We do this by considering the measurement and movement constraints and doing simple matrix multiplication.
Conclusion
CS-7638, Robotics: AI Techniques (RAIT) was a great first impression into the program. I highly enjoyed the course topics, the way it was presented, and the support received from my colleagues and TA’s. At times, the projects seemed impossibly challenging, but the process of overcoming unknowns through days of research and debugging reinforced my learning of the implementation of the algorithms and was fulfilling. Aside from learning algorithms and python, It was a good learning experience for managing and allocating my time between grad school, a full-time job, and family and friends.