Skip to main content


A rootless, (nearly) full-featured shell for iOS

iOS is a BSD-like system (according to Wikipedia, the kernel is actually based on BSD). In this way, we sometimes expect it to have similar functionalities or behavior to BSD or Unix-like systems,  However, iOS doesn’t expose a shell to us. Unlike macOS computers, which provide a that users can launch directly into a shell of their choice, like Bash or Zsh, there isn’t a for iOS. And even if there was, user-land permissions would prevent the installation and use of many packages and services. This carries into other Unix-like systems, like Android, where even though most distributions of Android don’t include a terminal (unless you are using its’ open-source variant like Lineage OS), you can still download one from the Google Play Store . In fact, you have many options. However, on the iOS side, the situation looks far bleaker. If you have root access and the ability to install self-signed or unsigned code, you can install one of few popular terminal emulator
Recent posts

Why climb on the roof of your school?

Hi! You might not know me but my name is Gideon Tong and I’m a first-year electrical engineering student at the University of California, San Diego. This quarter, I had the great opportunity of being able to visit the roof of Geisel Library, one of the tallest buildings on campus and our largest library. The purpose of this was for a project I did with my university’s branch of the Institute of Electrical Engineers (IEEE) society. This project I did is called Outpost, and you can check it out at its’ GitHub repository. It is an Internet of Things long-range connectivity toolkit, which sounds like a bunch of fancy words, but it’s basically a collection of tools programmers and developers can use in order to build a long-range device. Originally, this project was supposed to debut at a quarterly showcase of projects, but due to miscommunication on scheduling neither I nor my partner, Brian Lam, was able to be there for a presentation. However, I’d still love to address some of the

Super Holloway store project

The following is a post sharing a small adventure I had while I was still in high school. My journal originally dated this as September 2018, which was almost a year ago, but I thought I would share it simply because of how interesting it eventually was. Also, sorry it’s been so long since my last post: I’ve just been swamped with a lot of work, but I’ve had a lot of fun projects which I will be getting around to posting on my website as soon as I have a moment to write about it. The project was simple: I wanted to build an online shop to capitalize on fun physics-themed products and merch that people might buy, and I could donate the proceeds to benefiting a charity or donating it to the physics club on campus. And so it begun. We’ll have a shop! Our teacher runs the website called Planet Holloway, so maybe we’ll sell Planet Holloway Answers, as we can sell answer keys to the solutions of the homework problems on his website. In addition, we could sell Planet Holloway Air and Pl

Getting an OpenAuto installed for Android Auto - Carpi Project pt. 4

In this part, we can look at various options that might be suitable for making the Carpi project better or easier to create in some way. Since this project is not a new or novel idea and cheap projects already exist that can be bought from China, I am sure that someone has also created software for it. After some research, it turns out that Crankshaft (GitHub) is an actual turnkey solution that makes it appear as if getting Android Auto on a Raspberry Pi is quite easy. On YouTube, I found a YouTube tutorial that went into detail on how it might be possible and easy to do, but this YouTube tutorial is not only outdated but newer versions of Android and Android Auto have come out since then. However, because the project is open source, I do not believe it would be too difficult to rebuild the project for a newer version of Android and Android Auto. It turns out that Crankshaft is actually an OS wrapper for the OpenAuto project. So we’re gonna try to build the OpenAuto project. T

How I got the AirPlay server working - Carpi Project pt. 3

Continuing off from the last part, I will be detailing what steps I took to get the Airplay server working using the Shairport Sync project. Like before, we will be loosely following the guide in the file. This is continued from the same project as the last post, just split into multiple parts for the sake of brevity. June 13th, 2018. First, update and upgrade the system, improving audio drivers, as well as downloading the latest package lists. sudo apt-get update sudo apt-get upgrade sudo rpi-update It is also advised to update the audio drivers. The guide also includes information on updating the audio drivers, which I have done. However, you can do that by sudo nano /boot/config.txt and then appending to the bottom of the file at /boot/config.txt audio_pwm_mode = 2 In addition, the Raspberry Pi has a feature that automatically causes the WiFi card to go to sleep after a duration of time. However, we do not want the WiFi card to go to sleep, so we can exec

Hardware experiments and creating an AirPlay server - Carpi Project pt. 2

I think it is quite important to realize that this project is not unique, so it would be a good idea to learn not only from the mistakes of others, but to find out the methodology they approached this sort of project from in order to find solutions that I may not have thought of. A Google search of ‘carputer’ brings of the Instructables guide called ‘ Building a Carputer ’ as well as the YouTube video ‘ Raspberry Pi Java Carputer. ’ The Instructables guide uses a barebones computer running Windows XP in order to achieve this feat, something that I am not interested in. However, his hardware section mentions a few things that I think are worth going over, because without reading through this guide I may very well would have forgotten them myself. June 13th, 2018. There are a few products that I might be interested in buying in order to enhance the functionality of the Carpi project. On Amazon, I found this Global Satellite USB receiver for about $15. Since the Raspberry Pi does not

Designing and researching a Raspberry Pi car stereo - Carpi Project pt. 1

The first step to any successful project is to ensure that there is a working design and that it has been thoroughly researched. This is especially true when the project entails modifying a car stereo and replacing it with a project of your own, including the probability of completely breaking the car. June 2nd, 2018. What I plan to do is to first build a working prototype that demonstrates the features that I would like. Lying around the house, I have several old computers, but I also have access to a rather popular single board computer known as the Raspberry Pi. Specifically, the Raspberry Pi I have is the Raspberry Pi 2 model B. I’m going to use Etcher in order to flash the latest version of Raspbian Stretch Lite , which as of writing is the April 2018 build . This copy of Raspbian no longer comes with SSH enabled by default, but according to the documentation here, it appears that creating a blank file “ssh” in the boot partition will cause SSH to be enabled by default. Nex

Building a custom calculator: setting up the prototype

My objective for starting a new project is to build a completely custom calculator that fits within a currently existing Texas Instruments calculator so I can simply pass off my mini-computer as an officially recognized standardized testing compatible calculator. Since I need to make sure this is a feasible project, I need to first gather materials that I currently have accessible so I can build a working prototype before I begin making any adjustments. So what can I find around my room? I have quite a few Raspberry Pis from my purchasing sprees in middle school, so that seems to include an original revision Raspberry Pi Model A+. Although the Raspberry Pi Zero W would be better suited for this application, as it is a smaller profile, is smaller, faster, and uses less power, for the purposes of a basic prototype this should work just fine. The next thing I found was a second revision PiTFT 320x240 touchscreen LCD that I bought from Massdrop. It is the only thing I ever b

Blogger just introduced HTTPS for custom domains

Yesterday, April 4th, 2018 Google introduced an HTTPS option for Blogger websites that used a custom domain. They made it extremely easy to simply enable this option with one click, and the resulting certificate seems to be from Let’s Encrypt. As a result, many websites hosted with Blogger that use custom domains can now use custom domains, making it very appealing to use Blogger as an alternative to Google Sites for a easy to use, easy to set up website that can sustain large amounts of traffic for free. Although probably not sustainable for ecommerce websites, informational websites as well as websites that don’t require dynamically updating content (and even some that do, for certain use cases) can take advantage of these new security policies. Once you click yes, the banner at the top, originally warning about content policies in the EU (if you never dismissed it) will change, changing into a banner that displays a small warning that you have changed HTTP to HTTPS on your webs

The premise of creating a 4TB network share using only an 80GB drive

Clearly, the title is an attention-grabbing headline that might imply either lying or something that I didn’t mention – and you’d be exactly right. The basic idea is I have 4TB in “Linux ISOs” (no, it doesn’t involve anything illegal or 18+. Get your mind out of the gutter.) that I would like to store, however my main desktop only has a 1TB drive an and 80GB drive, my old desktop only has an 80GB drive, and my laptops obviously won’t have enough storage. While drives can now be found in the range of $35-50 per TB, in the interest of saving money I will be attempting to take advantage of what I have right now to create an “infinitely expandable” (more on that later) 4TB network share. Obviously, this network share will have some limitations that I am already aware of. Allow me to explain how it works, and then discuss not only the obvious limitations but also other possible limitations with this design. However, you can’t be free, so the goal will be to minimize limitations withou

Winning a prize at my first hackathon: the story of Meloread

Edit 1/3/2018: I'm so sorry this blog post took so long to publish. I forgot to schedule it correctly, and thus it ended up getting pushed back later and later until I remembered to publish it. For reference's sake, I originally wrote this post on 12/4/2017, one day after the hackathon. Edit 1/20/2018: I can’t believe it took me two months to post this. Next time, I’ll make sure to be on top of my own schedule. I have never been to a hackathon before, so when the Ventura County Office of Education started advertising the Hackathon by the Sea , I was quite excited. Although I had my reservations about staying up the entire night (another thing I have never done in my life), I thought overall the hackathon was a great experience. Initially, the plan was find others that also went to Westlake High School in order to develop a winning idea. found included Adam, Inaya, Himani, and Adele (Pictured from left to right is me, Adam, Inaya and Himani.) At the beginning, we s

Thoughts on FIRST's 2018 game, Power Up

As a newcomer to the world of FIRST but already acclimated to the world of robotics through building my own robots, quadcopters and participation in VEX, I find FIRST to be fascinating. I think that the games designed by FIRST seem more fun, engaging, and competitive and bring all aspects of people together much better than VEX, albeit at a more expensive price point. It is not just an efficient robot at stake here, which require talented programmers, designers, and builders in and of itself, but also the ability to strategize and adapt before and during the game. So for those who haven’t read the rule book yet (which you should have at this point, so I don’t know what you are doing if you have not yet, so I will just link it right here for your reading pleasure), or are reading this post in the future as you came across it in a Google search, here is a quick rundown of how the game works: As usual, you are in an alliance with two other teams, with all three alliance stat

Streaming encrypted movies using rclone from Google Drive

Netflix is expensive. So what if you legally  obtained copies of movies you want to watch, but you don't have enough storage space on your computer to, but have more than enough bandwidth? rclone is a great utility in order to synchronize files between different cloud storage systems, and for the purposes of this analysis, I'm going to use Google Drive because educational Google Drive accounts have unlimited storage. We can take advantage of this storage however we want, so I've gone ahead and uploaded my entire movie library (which, some is DRM protected, and as I found out later, cannot be streamed without DRM protection stripped from the file). For the purposes of this, we will be taking a look at Lion King, which was released in 1994. The file is 4.7GB, in 1080p, so in order to stream the video, we're going to need some serious bandwidth. Luckily... It seems like my download speed is being throttled during peak hours, or the rest of my family is also u

How to disable word auto-completion editing a Notepad++ text document

Have you ever been in a situation where you were typing normal text into a text document in Notepad++ and it gave you that really annoying word completion that would autocomplete words for you, even when you didn't want it to, and would do it regardless of whether you hit enter or space? Or even backspace? Well, it's really easy to disable it... No problem, just open Settings, then Preferences... then Auto-Completion. Change the radio button from "Function and word completion" to "Function completion" and click close. ...and you're done! Wow, that was easy! Gideon Tong

How long does it take to complete APUSH extra credit?

For the purposes of keeping this write up simple, and the fact that while I'm writing this I've only completed the multiple choice section so far, I will be limiting this small analysis to only the 90 multiple choice questions that were required for the extra credit. I was curious to see how much time I would spend working on it, as this was an extra credit assignment where you had to complete 90 multiple choice questions for APUSH with a paragraph explanation for every question. I spent 8 days working on the extra credit assignment, starting from Christmas day and skipping December 29th, and usually spent between 2 and 4 hours per day working on the assignment. In total, I spent 17 hours and 23 minutes working on the assignment, and this is a first draft, which means I still have to check my work, add any additional details that are needed, as well as the final 12 document based questions that I have not yet completed. Overall, it seems I spent about the same amo