September 15, 2019

Install Ubuntu on MacBook Pro 2011 with Broken Discrete GPU

For TL;DR people, here are the steps: Prepare a Ubuntu Desktop 18.04 LTS Live USB Start your machine with USB plugged in and select EFI boot Hit e to edit Try Ubuntu without installing entry and add nomodeset to the kernel command line Verify this version of Ubuntu works with your broken machine Install Ubuntu normally and reboot and select EFI boot again (don’t boot into the installed Ubuntu yet and you can’t) Hit c for the grub command-line Find the partition where Ubuntu is installed (assuming (hd2,gpt2), more details from Marco Miglierina ) grub> set root=(hd2,gpt2) grub> ls -l (hd2,gpt2) to find the partition UUID grub> linux /boot/vmlinuz-x. Read more

November 17, 2018


Asynchronous I/O isn’t new in Python. Since Python 3.4, asyncio is part of the standard library. From A simple introduction to Python’s asyncio and I quote here: Asyncio is all about writing asynchronous programs in Python. Asyncio is a beautiful symphony between an Event loop, Tasks and Coroutines all coming together so perfectly. I agree and I love the pluggable event loop model. Asynchronous I/O isn’t unique to Python. Read more

May 8, 2018

Disable MacBook Pro Discrete Graphics Card

After upgrading to Mac OSX High Sierra, I start to see split and blue screens on my MacBook Pro (early 2011). This normally indicates a failed graphics card on my old laptop. I send it to Apple store and the diagnostic results confirm it is indeed the discrete graphics card problem. Unfortunately, they don’t have any spare parts for my vintage model. Many people are having the same issues from a simple Google search, like stackexchange and macrumors posts. Read more

May 3, 2018

W7500P Chatbot?

I am working on Serial to Ethernet (S2E), StablE contest from It uses WIZnet’s new serial to Ethernet module WIZ750SR based on W7500P Ethernet MCU. W7500P SoC is an one-chip solution which integrates an ARM Cortex-M0 core. This chip runs at 48 MHz maximum frequency with 16 KB SRAM and 128 KB flash. When I submit my idea to build a slack chatbot on it, I really doubt if this is going to work. Read more

June 16, 2017

MicroPython on ESP8266

I got a cheap Espressif ESP8266 development board recently and reworked some of my previous Arduino projects. Comparing to Arduino Mega ATmega1280 that runs at 16 MHz + 8 KB of SRAM, ESP8266 is more powerful and feature rich. It integrates a 32-bit Tensilica MCU reaching a maximum clock speed of 160 MHz and a built-in Wi-Fi stack. The dev kit ships with an eLua based NodeMcu firmware so I have to refresh a MicroPython firmware. Read more

© 2015-2019 Jiawei Huang

Powered by Hugo & Kiss.