Pages

Wednesday, August 11, 2010

Display Google Calendar on Ubuntu Desktop using Conky

1. First,we need install Gcalcli,which is a command line tool that lets you access your Google Calendar in a terminal.
Just run this command (Applications->Accessories->Terminal) to install Gcalcli from default repository:

sudo apt-get install gcalcli

use this command to create a config file with the Google Calendar login information.

gedit ~/.gcalclirc

previous command creates a config file in home folder and opens the file.We need copy and paste following into the file and save it.

[gcalcli]
user: yourusername
pw: yourpassword

Pay attention: replace “yourusername” and “yourpassword” with your Google username ( don’t include the “@gmail.com” part) and password

2. Install conky with this command:

sudo apt-get install conky

edit the config file:

gedit ~/.conkyrc

copy and paste following,then save the config file:

alignment top_right
background no
border_width 0
cpu_avg_samples 2
default_color white
default_outline_color white
default_shade_color white
draw_borders no
draw_graph_borders yes
draw_outline no
draw_shades no
use_xft yes
xftfont DejaVu Sans Mono:size=12
gap_x 5
gap_y 60
minimum_size 5 5
net_avg_samples 2
double_buffer yes
out_to_console no
out_to_stderr no
extra_newline no
own_window yes
own_window_class Conky
own_window_type override
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
stippled_borders 0
update_interval 1.0
uppercase no
use_spacer none
show_graph_scale no
show_graph_range no
text_buffer_size 8096

TEXT
${execi 300 gcalcli --nc --cals=owner calw 4}

3. Finally,make Google Calendar run when Conky startup.

edit this file:

gedit ~/conkystart

copy and paste following,then save the file:

#!/bin/bashsleep 50 && conky

Wednesday, July 28, 2010

Normalizing an Example

Normalizing an Example Table
These steps demonstrate the process of normalizing a fictitious student table.
Unnormalized table:

Student# Advisor Adv-Room Class1 Class2 Class3
1022 Jones 412 101-07 143-01 159-02
4123 Smith 216 201-01 211-02 214-01
First Normal Form: No Repeating Groups

Tables should have only two dimensions. Since one student has several classes, these classes should be listed in a separate table. Fields Class1, Class2, and Class3 in the above records are indications of design trouble.

Spreadsheets often use the third dimension, but tables should not. Another way to look at this problem is with a one-to-many relationship, do not put the one side and the many side in the same table. Instead, create another table in first normal form by eliminating the repeating group (Class#), as shown below:

Student# Advisor Adv-Room Class#
1022 Jones 412 101-07
1022 Jones 412 143-01
1022 Jones 412 159-02
4123 Smith 216 201-01
4123 Smith 216 211-02
4123 Smith 216 214-01
Second Normal Form: Eliminate Redundant Data

Note the multiple Class# values for each Student# value in the above table. Class# is not functionally dependent on Student# (primary key), so this relationship is not in second normal form.

The following two tables demonstrate second normal form:

Students:

Student# Advisor Adv-Room
1022 Jones 412
4123 Smith 216


Registration:

Student# Class#
1022 101-07
1022 143-01
1022 159-02
4123 201-01
4123 211-02
4123 214-01
Third Normal Form: Eliminate Data Not Dependent On Key

In the last example, Adv-Room (the advisor's office number) is functionally dependent on the Advisor attribute. The solution is to move that attribute from the Students table to the Faculty table, as shown below:

Students:

Student# Advisor
1022 Jones
4123 Smith


Faculty:

Name Room Dept
Jones 412 42
Smith 216 42