How to resolve angry beeping when GalliumOS refuse to boot

This time, I am going to post about a bit of troubleshooting with GalliumOS in my Chromebook. A little detour from my regular NextBus Compare project progress posting. This is more about working with developer tools, I guess.

I don’t actually use Chromebook that often since most of my work is on Macbook. As a result, it is not charge everyday. A few day, I forgot to turn it off. Left to its sleep mode, the battery completed drained itself.

Oops.

If I just have ChromeOS, it wouldn’t be a problem – but my system is dual-boot with a Linux OS. GalliumOS to be precise. To boot into GalliumOS, I typically just do a simple Ctrl-L. But this time, there is an angry, angry beep and no boot.

Chromebook Alert: OS Verification is Off
Chromebook’s white screen, now stucked

Oops.

I am almost certain it have to do with the battery drain, but what happened?

A bit more research on the documentation and GalliumOS reddit revealed that because the crossystem flag used for booting is a firmware level setting, it is therefore stored in volatile memory. When there is a complete drain, there is a possibility for the flag to be lost. To solve it, here are the steps:

  1. Boot into ChromeOS – yes, not GalliumOS, but ChromeOS. We need to access the developer mode! Usually, the command for ChromeOS booting is Ctrl-D.
  2. You may have to configure wifi if it is not set up. My Chromebook still remembers it, so it was good to go.
  3. Do a Ctrl-Alt-=> (=> is the right arrow on the first row your keyboard) – to boot yourself into the developer terminal.
  4. Enter chronos as username with no password.
  5. Enter sudo crossystem dev_boot_legacy=1. Some guides online may say dev_boot_usb, but as the GalliumOS documentation mentioned, that flag is not related to legacy boot issue. I should know – I tried it!
  6. Enter sudo reboot.
  7. Now the GalliumOS booting should be good to go!!!

Installing the Linux Distro GalliumOS in My Acer Chrombook

I love customization. Which is also why ever since I won a Chromebook during a HTML5 Meetup (Hooray!!!), I have been thinking about installing Linux on it. Finally, I got around to it!

Firstly, I debated on which Linux OS to get. The most popular one seems to be Crouton. However, I eventually decided on GalliumOS, because it was specially designed for Chromebook and seem less likely to break on updates – at least according to what people are saying online. Plus, built on top of Xubuntu, GalliumOS is a fully functional desktop. I would sacrifice some GPU performance, but I think it’s worth it. I will be working predominately in Linux instead of ChromeOS, so it is a good exchange. The simple-to-follow wiki guide from GalliumOS also is another plus – hurray to good documentation!

Secondly, following the wiki, I identified my hardware and its associated flash firmware requirements. My Chromebook is an Acer Chromebook 11, CB3-131. According to the Hardware Compatibility page, it is a Bay Trail model, and thus require custom firmware. Using Firmware page, I chose to use the firmware update of RW_LEGACY from MrChromebox – RW_LEGACY would allow me to duo-boot and I don’t have to open up the Chromebook and remove the write-protect.

Thirdly, with the choices made, I followed the Baytrail installation guide. Time for me to set my Chromebook into Developer mode!

The process was pretty smooth. The powerwash did took a while as the guide stated. The white developer mode boot screen appeared and stayed there for a while before the screen emits 2 loud, alarm-like beeps that had me a bit worry. Fortunately, it was a false alarm and a setup panel for ChromeOS appears:

Chromeos Setup

I logged into my wifi and log into the crosh shell as instructed:

Looking good. Now is time to update my Legacy Boot capability, which in my case, is the RW_LEGACY from MrChromebox as mentioned earlier. After that, to get back to the ChromeOS login screen, I restarted the laptop. The 2 loud beeps happened again and I got back to the ChromeOS setup panel, which shows that I am still logged into my wifi.

Finally, it was time to install GalliumOS. I had 2 choices, the standalone setup that uses a bootable USB and dual-bootup that uses chrx install script. I decided to go with the dual-bootup. The process for that was also pretty smooth. I followed the steps and went with the recommended 9 GB space allocation:

First Run of Chrx Script

After chrx rebooted and “repair” the laptop, I have to run the chrx installation script a second time:

Chrx Installation Script
The anticipation……

There were some confusion as the second run of the chrx install script didn’t seemed to work, which turned out to just be a disconnected wifi. After that, it was a smooth sailing!

Installing GalliumOS Core Image
It’s loading… it’s loading!
GalliumOS
Yes!!!

I set up my chronos account password, and the rest is just customization all I want! I found a reddit for GalliumOS, and got some good recommendation from the post What To Do after installing Gallium OS: A noobie’s Guide for other chromebook noobies. Some softwares I added were Firefox (with all my favorite addons: ABP Adblock, NoScript, Blur, Firebug, and Pocket), PIA VPN, Cisco AnyConnect, VIM, Sublime Text, GIMP, LibreOffice Writer, and Gnome Software Center.

Installing Fedora 24 with Guest Addition in Virtual Box

Ah, the moment of triumph!!!

I had installed Fedora before in Virtual Box. In fact, I had done it several times. I have also installed Guest Addition to Ubuntu to correct display resolution problem. But this time? Not only did I ran into trouble with installing Fedora, but the Guest Addition for it as well! I have never had so trouble before!

So, what happened?

Well, at first there was problem with the hard disk installation refusing to stick. I would installed it, and it would me to re-install each time it boots! Turns out the optical drive was being booted first, and because I am on a VM, I can’t use F12 to choose the boot drive. So instead, I just went to Settings->Storage and remove the optical drive. That worked for a while… than I decided to install Guest Addition.

When I attempt to mount Guest Addition, it tells me that my optical drive is empty.

Error Dialog: No optical drive
An error dialog! No optical drive?

Huh?

Ok. Optical drive. Optical drive. Wasn’t that what the Fedora iso was on? Am I suppose to keep the Fedora iso as an optical drive for some reason? But the VM boots the optical drive before the hard drive every time. Did I missed something? Luckily(?), I realized that I can changed the boot order while Settings->System->Boot Order. Then I added Fedora’s iso back as virtual optical drive (Some of you may already realized what happened and is laughing at my idiocy. For the others? Yep, that was not the right train of thought.). Yea! I did it, right?

Then my Guest Addition refused to mount.

VirtualBox Dialog: GuestAddition Unable to Mount
Another error? Unable to insert GuestAddition.iso…

*Head hits table*

The “Force Unmount” button and the “VERR_PDM_MEDIA_LOCKED” under “Details” led me to deduce the process failed because there is something locking the media drive. Then I though, “Did I accidentally mounted the Guest Additions already?” So, I tried both clicking the “Force Unmount” button and entering a umount VBoxGuestAdditions.iso command. Neither worked.

I did a mount and grep for the Guest Addition file, but it’s not in the list. I tried to check what’s in /dev/cdrom. There is a README.MD file there, so there is something… I did another mount, but grep for dev. Then, the light-bulb lit – /dev/sr0, which is where the symlink of /dev/cdrom connect to, is not mounted to the Guest Addition. Some of you who may have noticed about my mistake earlier – I did mounted something to virtual optical drive… I created a virtual optical drive by mounting the Fedora iso, which mean the drive was occupied with another mount already. I should had created an empty virtual optical drive, or created a virtual optical drive with the GuestAddition.iso .

I did a umount of sr0, and this time the install was success, and upon reboot, the resolution of screen is correct.

*sigh with relieve*

Here are the the steps:

Creating the Virtual Machine VDI file:

  1. Open VirtualBox. Click New.
  2. In “Name and operation system”, enter something for Name. Make sure the Operation System is Fedora.
  3. In “Memory Size”, enter 2048. (1024 works at first, but I started having mouse problem. Seems like 2048 works fine.)
  4. Stay with default for “Hard Disk”, “Hard Disk File Type”, “Storage on physical hard disk”, and “File Location and size”.

Install Fedora in the Virtual Machine you created:

  1. Make sure the iso file for Fedora Workstation had been downloaded. Start the VM. When it ask you to select a virtual optical drive, select the downloaded Fedora iso.
  2. Select “Install to Hard Drive”. Select your choice of language.
  3. Click on Installation Destination. Confirm that you are fine with “Automatic partition” by clicking done (unless you want to change the partition).
  4. Click “Begin Installation” at the bottom right.
  5. As Fedora install, there are options to add root password and create user, which I did.
  6. Once installation is complete, click Quit. Instead of rebooting, power off here.

Correct Boot Order and Change Setting

  1. Right click VM in Virtual Box Manager. Select ‘Settings’. Change the following:
    1. In System -> Boot Order, there is an up and down button. Use that to push Hard Disk to the top.
    2. In Display -> Video Memory, increase the memory to 24MB. In Acceleration, click to turn on “Enable 3D Acceleration”.
    3. In Storage, there should be the Fedora iso file under “Controller IDE” and the distro’s vdi file under “Controller: SATA”. Remove the iso file. In order to install Guest Addition later, add an empty virtual optical drive to “Controller: IDE”.

      Controller IDE
      Click the cd image in red circle to create virtual optical disk
    4. Make sure you click “Ok”, or the options you changed wouldn’t be saved!

Prepare and Install Guest Addition to Fix Display Resolution

  1. Boot VM. Open the Terminal.
  2. If you are not root user, su – to become root user.
  3. Optional: If you added root password and created user during installation, your account may not have sudo permission. If you don’t want to su – every time you need to do things as root, do the following:
    1. Enter visudo -f /etc/sudoers (Note that this uses a vi editor. If you don’t how to do basic Insert and Save, look it up!).
    2. At the bottom, add the needed line to give yourself permission to use sudo. For me, my line was username ALL=(ALL) ALL, with username for my account name.
    3. Save file. Try logging out of root with command exit, then do a sudo visudo -f /etc/sudoers. You should be able to enter your password and view the file.
  4. Enter command sudo dnf -y update. It’s going to take a while. Go eat.
  5. Finished? Ok, now enter sudo dnf install dkms gcc kernel-devel kernel-headers. When done, reboot Fedora.
  6. Go to Devices -> Insert Guest Additions CD image.
  7. Errors?: If you get the error I came across earlier, you have either forgotten to remove the iso for Fedora, or your cdrom is preoccupy with another mount for some reason. If clicking “Force Unmount” doesn’t work,  do the following:
    1. Enter mount | grep dev. See if the mount on /dev/sr0 is the GuestAddition.iso. If there is nothing, ls -l /dev/cdrom to find what directory is the cdrom symlink to. If you still can’t find it, try mount | grep iso – your Fedora iso have to be mounted somewhere.
    2. Whatever your iso is mounted to, umount it. In my case, it was umount /dev/sr0. After that, do Devices -> Insert Guest Additions CD image again. This time, it should work.

      GuestAddition Mounted
      Viola! GuestAddition.iso mounted and ready to run!
  8. Reboot Fedora. Your resolution should now be fixed.

 

 

Localhost and Permission

Working with WordPress and Drupal with Macbook localhost is good so far. If I am on a terminal, I just cd into the directory and start editing. Drag-and-drop is quick, too. However, manually changing the owner of each file to  _www can be a nuisance if you are working something everyday, and you want to see the changes on the browser immediately.

For those who don’t use Macbook’s localhost, _www is the Apache username. In some cases, if a file is not label with _www as owner, the browser may display a permission error, since locahostling requires Apache to access the file and then display the result on the browser.

For the regular Linux user, a simple solution is to just log in as the user _www using su -. Macbook, however, have several hindrance about logging in as _www or just switching to different users on the terminal. That got me curious quickly, so I did some light digging:

  • A regular user, even assigned with administrator access, are not allowed to su – into a different user by default.
  • Of course, Macbook left some recourse for the admin users should they require root permission. The “Macbook” to gain root access to use sudo.
  • On the other hand, if a user sudo into su (repeat that 10 times at triple the speed, please), nothing appears to happen.
  • The sudo su command does actually gets executed, hence no error message. However, the default shell of _www is /usr/bin/false. Unlike /sbin/nologin, /false is a binary that immediately exits and returns false. So, you successfully sent the command to change user, but the shell is false, thus the session ends, and you are back to being whatever user you started with with no warning message whatsoever!
  • SOLUTION: Just add in an option to retain your current shell. Add in -s for keeping the shell, follow by -u for username: sudo -s -u _www. 

 

After that, I just use vi to create or edit the files!

Course Progress for C++ & WP

So far for C++, I have successfully churn through 1/3 of C++ Primer by Stanley B. Lippman in a month (It’s a really, really thick book. If it wasn’t softcover, you can probably knock someone out with it.). It is quite the intense reading – very detail but clear in its explanation. I can see why several Amazon reviews raved about it being an excellent book but emphasizes that it is not a beginner book (Seriously, do not read this if you have never touched OOP). Despite having skipped Intro to C++, I am doing fine in class as a result. I am so glad I am such a fast reading bookworm!

WordPress/Drupal have so much more assigned reading than any of my other programming classes! I literally read through 4 chapters of the textbook (Professional WordPress: Design and Development by Brad Williams, David Damstra, Hal Stern) in a week, plus 2 web pages in WordPress documentation about Core and Loop. I thought my brain was going to fried – who knows there is so much about WordPress? Core, content, admin, include, etc, etc.

Doing some extra self-challenge added some… challenge, to the class as well. I decided to run the whole LAMP stack natively when I got my new Macbook last year. I did had MAMP in my old Macbook, which was indeed a convenient program, but I was taking Linux when I got my new Mac and I was getting more and more interested in OS. Running my own LAMP, with all the troubleshooting and exploring sounded fun.

As a result, several error message came up with my second class assignment, and here is the notes about the problems I got to solved!


1) WordPress was asking for connection information when I try to update and upload the class’s assigned Underscore theme. At first, I just manually updated WP and upload the theme. Then I got asked again after trying to install plugin too, so I decided to look up for some better solution. After some research, I learned that I need to change WordPress’s filesystem method so it stops using FTP, so I added this in the wp-config.php:

/** Change filesystem method when localhost */
if ($_SERVER[‘REMOTE_ADDR’] == ‘127.0.0.1’||’::1′) {
define(‘FS_METHOD’, ‘direct’);
}

Just define(‘FS_METHOD’, ‘direct’) also works, but I thought I would add an if statement to check if the file is in localhost, I don’t have to worry about removing the line if I need to move the page from development to production mode.

Note that ‘127.0.0.1’ is the localhost ip for IPv4 system, while ‘::1’ is for IPv6. Including both allow the code to go into both system. For my Macbook, the code do not work if ‘::1’ is not included.

2) I got permission error, which was not fix by chmod 775 or 777. In that case, I thought it may be an chown issue instead of chmod. I looked up which user is localhost apache running as for in Mac OS, and the user turned out to be _www (MAMP users may have a different user). So I did chown -R _www wordpress. Now everything works.

 

Installing Linux on my Nexus 7 Tablet, Day One

I have tried to install Linux on my Macbook via VirtualBox, which was successful. I know there are phone specifically for Ubunta. Now the remaining question – how about my tablet?

Lo and behold, it is possible! Cause I have the Nexus 7 2013 WiFi version!!!

There are several tutorials online. Sure, I will have do backup on all my eBooks – no doubt a painful process since I am a bookworm. The installation will probably erase the Android in my tablet while still failing to complete the Linux installation. Alas, the tablet is 2 years old. I think it is a acceptable time for it to be a testing guinea pig.

Anyhow, most tutorials pointed to starting at Ubuntu’s developer documents, since it is the Linux that do have a tablet version. Let’s get started!!!

“Prepare your Desktop”
Ok, the first step is to install the ubuntu-device-flash package.
On the developer page, it says that it is “…published in the phablet-tools PPA.” and “…published in the Ubuntu universe archive.”
So… where is it published!?
Since this is a ubuntu package, I decided to go to Ubuntu universe archive. My first google search brings me to a subpage, but it got me to where I need to be – packages.ubuntu.com, with a navigation bar that shows I am under section Ubuntu >> packages >> trusty(14.04LTS) >> devel >> ubuntu-device-flash. I just need to go to its package main page to make sure I got the latest version for the right device! Ok, let’s click on “Packages”!

Um…

Why are there various name for each packages? They have edition-like number next to SOME of them, so are the names for different editions, or are they plain different packages? Will they all work for Nexus 7? There doesn’t seem to be any indication of compatibility issues. And why is there 3 variations of each name, where one has just the name, then another append by -update, then another append by -backports?
After some digging, they all seem to have the same stuff, so I guess they are just the editions? Nothing there says whether they work with Nexus 7 or not, so I will just use the latest, which is named “wily”.

Now I have another problem. Under “Development”, there is indeed the “ubuntu-device-flash” that I need, but there are TWO options – amd64 and i386.

What?

Turns out that is the processor architecture. amd64 is 64-bit processor from AMD, while i386 is 32-bit processor from Intel. Great! I know what the CPU for my Nexus 7 is! It’s Qualcomm’s Snapdragon… wait. Ok, that doesn’t help either, cause Qualcomm is neither AMD or Intel. I am still new at this!!!

After much search of amd64, i386, Snapdragon, I finally thought of searching whether Nexus is  32-bit or 64-bit. Among discussions on various forum, it seems to be 32-bit. Since this is a old and cracked tablet, I decided to bite the bullet and just go with i386.

That’s my progress for Day One. I can’t believe just downloading the package took so much digging work. Day Two hopefully will be quicker and I can finish the “Prepare your Desktop” section.

Summer 2015 So F ar

One of my goal this summer is work on my project, which ended up with me taking a long detour in both brushing up and learning new skills in JavaScript, JQuery, Ajax, PHP, MVC, and OOP. There was a lot of reading, online video/school, and coding. I have sadly ddiscovered that I have learned more about Ajax in a 2-days self-study using Treehouse video and books than I did a semester of class, but hey, some classes are better than other. It’s been good, although I ended up pushing back my C and Anduino learning.

IT network self-study has been going well. Since I am taking the same professor as I had in my Introduction to Networking for the next semester course in Network Security, I feel that I should brush up on my network knowledge. When I took my first network class over half year ago, I was new to CS and have no idea what is going on. I am half-way through re-reading my books and notes. Now that I have a lot more experience, it makes much more sense, and I feel more comfortable about jumping back to a networking class this Fall.

In term of Fedora, because of that fact that half of my self-study files are local, I lacked a reason to even turn on Virtualbox. But no more. Most of my learning files and even a good portion of my project files are now on Dropbox. I installed both Dropbox and Sublime Text on Fedora, so I can now do most of my coding and studies in Fedora!

Although, Fedora have problem waking up from its sleep in Virtualbox. It would either remain the black screen of death or refuse to let me type anything. In addition, I am consistently clicking on command-C instead of control-C. In Virtualbox, control-C actually exits the Virtualbox out of its full-screen mode instead of copying text. As someone who loves shortcut key and types pretty quick, it’s driving me a bit crazy. I pretty much do a command-key shortcut every 10 minutes when I started using Virtualbox, then when I do return to my Mac OS, I would do the opposite! (As in using control-key for shortcut every 10 minutes). For the first time in my life, I curse my ability to type so quickly…

Wiking Upstart during Linux homework reading. Wiki is awesome!

In my current Linux Admin class, the professor is trying to adjust his notes to the new Redhat 7 standard. One of the biggest confusion is Upstart and Systemd. He write his own notes for us, and he has good writing and teaching skills, but to go back and change everything… it is not a job I envy. For students, it’s hard enough to remember which term and system is for 6 (the old version), and which one is for 7. Just now, I found myself googling Upstart for the Nth time trying to remember if it’s 6 or 7 (6, Amy, 6).

Interestingly, I noticed a wiki page this time and opened it. I found the article quite informative for my curious side. Turns out Upstart also replaced another init daemon, much like systemd that is now replacing Upstart itself (Which, now that I think about it, duh. Considering the numerous version of Redhat and even more numerous version of Unix?  Just one init daemon? Nah.) It was replace and improved the previously traditional init process, so that computer can respond to events asynchronously instead of synchronously. It was first included in Ubuntu 6.10 release and replaced sysvinit. It is used in Chrome OS (wait, does that mean my Nexus tablet uses it?) , was considered by Debian (who eventually went with systemd), and replaced sysvinit in Fedora 9 then was replaced by systemd in Fedora 15.

Hmm, I don’t think I will get Upstart and systemd confuse now. Although, on a totally irrelevant note, why is Upstart the only one to get capitalized?

I clearly needs more coffee.

Fedora: Testing Testing

Ok, so today is the first day I am exploring Fedora GNOME after my installation during the Open Source event. Being a Linux student who was also studying my reading, I decided to run some of the command in my reading and compare it for the fun. Besides, that way I know which directory path exist in Linux but not in Mac.
Note that reading of the read was runlevel and subsystem, and that it will probably take me three tries before I understand the reading…:
Fedora
Macbook
pwd
/home/amychan331
/Users/amychan
ps
PID:1915 TTY:pts/0 TIME:00:00:00 CMD:bash
PID:2401 TTY:pts/0 TIME:00:00:00 CMD:ps
PID:784 TTY:ttys000 TIME:00:00:02 CMD:-bash
ps -u root | wc -l
86
61
ps -e | grep ‘d$’ | wc -l
33
73
who -r
run-level 5
. run-level 3
/sbin/runlevel
N 5
No such file or directory
/sbin/service —status-all
netconsole module not loaded
Configured devices: lo enp0s3
Currently active devices: lo enp0s3
The VirtualBox Additions are not currently running.
Checking for VBoxService …not running.
No such file or directory
cd /etc/rc.d
Blank. I am in!
No such file or directory
ls rc?.d/*rsyslog
ls rc2.d/S*{network,sshd}
No such file or directory
N/A
grep chkconfig /etc/init.d/rsyslog
No such file or directory
No such file or directory
  • Their home directory is different, as expected.
  • What on earth is “-bash” in ps?
  • I found it interesting that Fedora is running more ps than its local sister.
  • Runlevel is 5 for Fedora and 3 for Mac. Let see… my text says that Fedora being means 5 it starts the window manager, X Window. *Nods* Makes sense. It is the VM. Running /sbin/runlevel in Mac returns a “No such file or directory” error message, but then Mac is not Linux after all. who -r, however, does work. It returns 3, which means that… full multi-user mode, but interface is text-only. Hmm… text-only? Not sure what that mean. I will have to look it up later.
  • Fedora has less than half of running daemons than Mac, as expected.
  • Running an inquiry about subsystems status in Fedora returned text, mostly about systems that are not running. Mac, once again, returns “No such file or directory”.
  • Once we start to get into rsyslog, error keeps popping up. We have the rc.d directory in Fedora, but the naming system inside rc.d directories is probably different.

Of course, all this observation was made without any regards as to what version I am on! The notes my teacher give was for Redhat 6.5, and here I am comparing it to Fedora and Mac OS. Still, it was fun to do. Once I am not so busy with my classes (full course this semester), I would like to research the corresponding commands and file path in Fedora. For now though, I am mostly playing around to see what is in common and what is not.

Open Source Comes to Campus @ CCSF and my first GNOME in Mac Installation

The first time I know that I was using open source was when I first got my Macbook, which did not had Microsoft Word. Mac MS at the time was more expensive than the PC MS. So… I downloaded OpenOffice instead. The second time was when Adobe Creative stop working for the new Mac OS – less than a year after I brought it. Instead of relying on a product that was clearly unreliable, I downloaded GIMP. It’s been 7 years, and I have never look back.

When I learned about the Open Source event coming to CCSF from my friends on Facebook, my reply was “That sounds fun! I am in!”.

Besides, there is free breakfast and lunch. What college students says no?

The talk started with explaining what open source is and showing logos of known open source projects. The presenter, Asheesh, joked that the logo was “Probably the most things people remember about Openhatch” as he waved the penguin(?) sticker. Mental nod here – I know the penguin before I know OpenHatch.

He went onto introducing ways to contribute. One of the ways for new coders was simply to point out issues. The presenter then went on to Issue Trackers and communication methods. When he opens the IRC program window.. wow, instant flashback! It was a chat room, and I haven’t been to those since middle school.

I went in the workshop expecting talks about programming, but instead the first demo was a chat room. It was very telling about how open source works. One of the greatest difference open source has with private companies, from what I experienced in this workshop, was its sense of community despite diverse locations of its members. A company strives to find the ideal personality in the same location, whereas open source  projects is about those who can find them on the virtual realm and is offer their time and dedication.

After some laughs about the chats (the people in the chat room realized quickly a class was going on. Silly conversation and jokes ensued), we moved to some Github work. While I have been using git and Github to record the status of my self-studies and side projects, I have never had the chance to collaborate there. It was the first time I forked and the first time I pulled an updated project. I found it pretty awesome to see how, when the project was merge and my submission contained “Fixed #5”, the issue #5 that I fixed would close on its own.

After that, the mentor went around the tables to talk about their open source experiences. We heard stories of how it begins, what they learned, and what got them there. The first person talked about the importance of knowing how computer works, not just the language. One talked about his love of the open community. Another talked about how program vulnerability has a ripple effect on private companies that uses open source technology. The final person talked about how open source can solve real life problems. Their stories varies, but they have this in common: in some ways, programming and open source has changed their life.

Then, it is the last session – projects! The mentors summarized their projects and then find an area to stand so we can, as a mentor joked, “flock” over to them. I debated on my choices. In the end, I decided to went with one where two mentors teamed up to talk about Ubuntu technology and creating new OS. The idea of creating OS is just too cool to miss!

The interface and customization of GNOME was beautiful to watch. I enjoyed the discussions behind the creation and community teamwork of GNOME, and how it interacts with and affects third party distributors like Ubunta and the two other OS. They showed us various projects and widgets that could use some help. In the end, I installed GNOME via Fedora and VirtualBox on my Macbook for the first time. It was ridiculously easy after the agonizing experience I had with installing VM on our school computer for my Linux Admin class, though the later was probably so complex because they want us to know the steps and details. Plus, I don’t have to worry about remote access for this one!

This is purely about exploring the various features of the system, which I can’t wait! Contributing to the GNOME can be simple as just exploring and pointing out bugs. For those who are more advanced in their programming skills, they can help with solving existing issues. The mentors recommended wiki.gnome.org/GnomeLove for those whom wanted to learn more. For now though, I am probably just going to try the OS out and see what happens!