Google Nexus 7 running on Ubuntu 13.04 Raring Ringtail

Here is the video showing Ubuntu 13.04 Raring Ringtail (still in development at this time of writing) running on Nexus 7, a 7.81″ tablet which runs Android Jelly Bean by default.

It is expected that more announcement will be made regarding Ubuntu tablet at the upcoming Ubuntu Developer Summit (UDS) in Denmark, which Mark Shuttleworth himself drop a hint that future Ubuntu development will focused on mobile platform. He even encouraged attendees to bring Nexus 7 to the summit.

My Thoughts
Its refreshing to see Ubuntu can be ported on tablets. It open up several opportunities to integrate Ubuntu operating system with mobile platform and together with the possibility of cloud computing, it will be able to unify the way people use their computers in their daily life. However, a new GUI has to be designed in order to make Ubuntu usable and convenient to be used on tablets.

All in all, it is a bold move from Canonical.

How to optimize MySQL tables automatically using cron

Busy websites which has a lot of insert/delete transactions may introduce fragmentation in MySQL tables. Fortunately, users and optimize mysql tables with ‘OPTIMIZE TABLE’ command, but how to execute it automatically?

Here’s how:
The mysql-client package in Ubuntu installation comes with a tool called mysqlcheck which is handy for optimizing table in mysql. This command can be executed from bash and can be executed using cron.

to do that, just run this command.

cron -e

#in the crontab file– add this line
59 23 * * * /usr/bin/mysqlcheck -o -v -u <mysql username> -h localhost <database_name> -p <password>

This will tell cron to execute mysqlcheck and optimize mysql table of the specified database exactly on 11:59pm, every day. You can change the setting to suit your need.

Tweaking Ubuntu with Ubuntu Tweak!

Ubuntu Tweak

Ubuntu Tweak is an application that makes it easier for user to configure their Ubuntu computer.

Among the features of Ubuntu Tweak are :

  • Display Basic System Information
  • Tweaks GNOME Session Control
  • Edit Application Auto Start setting
  • Clean cache and temporary files
  • Change Default Splash Screen (or hides them!)
  • Easy to configure System Security Settings
  • Panel Tweaking
  • Tweaks Power Management Settings (useful for netbook!)
  • And many more

Visit Ubuntu Tweak website for more information!

Rant: About Computer Sciences/IT Classroom Assignments

When I was an undergraduate (i took Computer System & data communication major), one of the assignment requirement was to design an SIC/XE (link: simulator machine. Basically I’ve to understand how a microcomputer works by studying the SIC machine architecture, implementing the register understanding its opcode, etc.

The final outcome was the SIC/XE simulator written in C language which I was able to come out in a few days of spending time in front of computer. I compiled it with gcc, and it happily runs all of my opcodes and instructions.

In another assignment, I (and the rest of the class) are required to study BNF about a quarter of the semester, and we had to come up with an assembler for that particular simulator. Basically we have to create a fully working/executable assembler that spits out object code to be executed with the SIC/XE Simulator.

In short, we have to built a working computer simulator, and an assembler to enables programmer to write a program and executes it on that particular simulator in a course of one semester, and to me.. it is still a lightweight.

oh yeah, in another assignment I was tasked to write my own substitution/transposition cipher and integrates it with Java JCE and its cracker based on differential analysis. of course it only represent only 10% of the whole marks of the course.

And when we spoke about multimedia, we really mean about drawing a straight line in 3-d space by using spatial drawing algorithm and how to use OpenGL (in C) effectively to generate a computer representation of whatever object that the lecturer had just shown us. and the object must be interactive and must be accompanied with sound effect (thanks to libSDL – ).

Knowledge of actual physics and linear algebra, advanced calculus and numerical methods are a must, because you won’t be able to create a body in 3D space without those math shits. advance calculus helps you with handling the volume of the model. linear algebra, well.. helps you to get the model aligned within 3d space, vector and physics helps you to get around the environment within opengl without looking like a complete idiot.because you need to code stuffs in lines of C first without the benefits of seeing the output in a WYSIWYG environment until the point of compilation and running the actual code.

Kids nowadays grumble when they got an assignment that *only* requires them to use Java/PHP language to create a part of login system which implements basic (built-in!) hashing, which to me is completely doable under 15minutes with the benefit of the internet and free codes lying around.

Moreover there are several cases of Final Year Degree Project (FYP) that only requires a student to put together a mobile based web registration system using XHTML (and probably with PHP as the back-end) — they complained that the task was damn “too hard”….. which in my opinion is not suiteable at all to be a degree-level FYP (and it can be completely done under one week!)

Well, back in my days, those FYP examples aren’t even qualified for a class project that worth more than 5% of the semesters’ grade and those who aren’t capable in interpreting TCP/UDP packets or those who are not been able to do network programming will be having hard time graduating from the degree program (duh, its about Data Communication!)

Is the standards going down?

The differences between Linux IO Scheduler

The Linux kernel input/output scheduler (IO Schedulers) controls the way the kernel handles read/write to disks. Different I/O schedulers may have different impact on certain workloads. Here are the list of available Linux I/O schedulers:

1) Noop
Noop scheduler is the simplest IO scheduler available in the kernel. It does not perform sorting or seek-prevention. It is intended for devices that has no mechanical parts or is capable of random access such as SSD or flash-disk.

2) Anticipatory (AS)
Anticipatory is the default I/O scheduler for Linux kernel (2.6.x) until it was replaced by CFQ. It tries to optimize disk I/O by minimizing disk seeking/head movement whenever possible. However, it does has performance impact on file and database servers

3) Deadline
As the name implies, the deadline scheduler imposes deadline on all operations. This is to prevent resource starvation, so that every operation can be completed on time without being starved by other operations. The kernel documentation suggests Deadline scheduler to be used on storage and database servers

4) Completely fair-scheduling (CFQ)
CFQ tries to allocate the same resources to all users in the same time interval, hence the name. It tries to allocate fair amount of resources to all users, which would be ideal to use this on a multi-user/multi-purpose system. It is the default scheduler for Linux kernel since 2.6.18.