Aikataulu – Linuxin keskitetty hallinta – ict4tn011-1

Hallitse palvelimiasi ja työasemiasi. Tutustu samoihin työkaluihin, joilla Wikipedian Linux-palvelimet ja Googlen työntekijöiden Mac OSX -läppärit hallitaan.

Opettaja: Tero Karvinen. Paikka: h5001, Haaga-Helia Pasila, Helsinki. Aika: 2p, 2012 loppukevät w13-w19, torstaisin aamulla 08:15 – 12:00. Linuxin keskitetty hallinta 1 Moodlessa ja opinto-oppaassa.

Esitiedot (kertaa nämä): Linuxin komennot, apt, demonien hallinta (esim Apache), tiedostojärjestelmän rakenne (etc, var…).

Alustava aikataulu

w13 Aloitus: järjestäytyminen, nykytilan arviointi; automaation ja keskitetyn hallinnan merkitys; katsaus työkaluihin.

w14 Hello Puppet World, Puppet modulit (Hello Puppet – on Ubuntu, Modules and Classes)

w15 Puppetin tekniikoita (Templates, Per distro package names)

w16 Valmiiden Puppet-modulien käyttö tai Fabric

w17 PuppetMaster (PuppetMaster on Ubuntu 12.04)

w18 Omien modulien esittely

w19 Koe

(w20 ei opetusta, helatorstai)

Aikataulu on alustava – edistyneellä kurssilla aiheisiin tulee muutoksia vielä kurssin aikana.

Suoritukset

Alustava, muutoksia tulee.

  • Aktiivinen osallistuminen lähiopetukseen
  • Kotiläksyt
  • Oman puppet-modulin kirjoittaminen ja esittely
  • Koe

Kurssikirjat

Vaaditut: Learning Puppet, Puppet Cookbook

Oheismateriaali: Puppet reading list

Briefly in English

Course about Linux configuration management. Learn to use Puppet, Fabric and other tools.

Updated.

Posted in Courses, Uncategorized | Tagged , , , , , , , | 28 Comments

Apache on Vagrant on Ubuntu – “config.vm.forward_port 80, 8080″ and ‘vagrant reload’

Vagrant can automatically set your port forwarding to your guest os. This makes web development easy.

To follow this article, you should have vagrant installed.

Install Apache on Guest

In the box (guest OS), install Apache web server

box$ sudo apt-get -y install apache2

And test it

box$ wget http://localhost/

An index.html is downloaded to current working directory.

In Vagrantfile, uncomment the line

config.vm.forward_port 80, 8080

The reload the box (reboots guest virtual machine):

$ vagrant reload

Now you can access box (guest OS) web server on (normal, non-virtual) host OS on http://localhost:8080. You should get the familiar “It works” page.

See also

Hashimoto and Bender 2012: Getting Started with Vagrant: Port Forwarding

Karvinen 2008: Install Apache Web Server on Ubuntu

Karvinen 2012: Vagrant on Ubuntu 12.04 – Create and Boot New Virtual Machine in Minutes

Admnistrivia

Tested on xUbuntu 12.04 precise beta 32bit, Linux 3.2.0-18-generic-pae, vagrant 0.9.5-1, virtualbox 4.1.8-dfsg-2.

Posted in Uncategorized | Tagged , , , , , , | Leave a comment

Exam of Linux Basics 18 – Spring 2012

This was the practical exam for Linux Basics 18.

The exam was in computer lab h5001 in Haaga-Helia Pasila, Helsinki. Students worked with Ubuntu Live CD’s (one of 11.04, 11.10, 12.04 beta1) and empty HP Compaq 8200 computers.

For participants with Haaga-Helia accounts, evaluation is in Winha (login req) and personal feedback in Moodle (login req).

Task: Ar & Dui Ltd

Hello, and welcome to Ar & Dui Ltd. We’re an all open source embedded company.

Could you install us a workstation with typical software, such as a web browser and word processor?

This is us: Jorma Mähkylä, Pekka Hurme, Håkan Petersson, Jim Jones, Einari Vähäkäähkä, CEO Eija Väntäri.

Each of us wants a homepage. We can update our homepages over SSH.

Jim likes Java. Install required applications and compile a hello world so he can get started quickly.

Create a shell script that allows any user to easily check the ip number of the computer and their own username.

Rules briefly

Forbidden: Two-way communication, any items not specifically allowed, speaking without permission, looking others monitors.

Forbidden: Paper notes, mobile phones, logging in to anything else but the local computer.

Allowed: Browsing public web, using search engines

Teacher watching the exam could be monitoring your computers, hard drives, network and your monitor, so don’t handle any data that’s secret in the real world.

The End

Verify that you have

  • All required documents and tests open on your screen (this is how I evaluate it)
  • Your name and student number is on the documents
  • Your screen is unlocked and your saver will not lock screen
  • You have left feedback: Did you learn something? Was it usefull? How are you going to use skills after course? Which class was the most interesting? Would you recommend this course to a friend or a collegue?

After the course: Install Linux at home and blog about technology. Join Haaga-Helia Linux Club. Read HackerNews. Make Arduino Bots with open source tools. Or build a satellite, like David. Try Xubuntu 12.04 beta.

Puhutko Suomea (speaking Finnish)? Tervetuloa muillekin kursseilleni: Linuxin keskitetty hallinta (puppet, fabric…), Prototyypin rakentaminen, Linux-projekti.

Posted in Uncategorized | Tagged , , , , , , | 2 Comments

Aikataulu – Prototyypin rakentaminen bus4tn007-1

Opi rakentamaan itse keksimiäsi prototyyppejä: robotteja, varashälyttimiä, kauko-ohjaimia…

Opit lukemaan tietoa sensoreilta (etäisyys, valo, kallistus…). Mikrokontrolleri voi ohjata tiedon perusteella laitteita (moottoreita, servoja, valoja). Ja tietysti kokonaisuuden voi yhdistää tietokoneeseen ja sitä kautta nettiin.

Tällä kurssilla ei kolvata vilkkuvia joulukuusia rakennussarjoista. Tarkoitus on rakentaa laitteita, jotka olet itse keksinyt.

Opettaja: Tero Karvinen. Paikka: h5001, Haaga-Helia Pasila, Helsinki. Aika: 2p, 2012 loppukevät w13-w20, tiistaisin aamulla 08:15 – 12:00.

Esitiedot (kertaa nämä): Ohjelmoinnin alkeet: muuttujan arvon asettaminen, suortusjärjestys, if-then-else, for, funktio. Linux: asennus, komentokehote, apt.

Kurssikirja

Karvinen 2011: Make Arduino Bots and Gadgets

Vaihtoehtoisesti soveltaen voi käyttää myös Karvinen 2010: Sulautetut – Opi rakentamaan robotteja ja muita sulautettuja järjestelmiä.

Aikataulu

(Suluissa läksynä olevat “Make Arduino Bots” luvut.)

w13 Hello Arduino World (1, 2)

w14 Luetaan sensoreita (3)

w15 Syvemmälle sensoreihin (4) w17 (8)

w16 Yhteydet suureen maailmaan (5, 7)

w17 Liikettä, liikettä (8) w15 (4)

(w18 Vappu, Ubuntu 12.04 LTS julkaistu, ei lähiopetusta)

w19 Projektin viimeistelyä

w20 Projektien esittely

Aikatauluun tulee muutoksia tarpeen mukaan kurssin edistyessä.

Linkkejä

Prototyypin rakentaminen 1 Moodlessa (vaatii kirjautumisen)

Opinto-opas: Prototyypin rakentaminen

Sulautetun järjestelmän rakentaminen ict8td006-1 2008w43

Briefly in English

Arduino course, learn to design and build prototypes. Seven easy lessons. Robots and other embedded systems. Getting started right now? Read my book Make Arduino Bots and Gadgets.

Posted in Uncategorized | Tagged , , , , , , , , , , , | 23 Comments

Aikataulu – Linux-projekti – Järjestelmäprojekti I ict4tn007-3a

Tavoite: julkaise oma vapaisiin ohjelmistoihin perustuva projekti.

Viimeksi syntyi Run! paikannuspeli, Kotistudio Ubuntulla, Reititin palvelimena ja paljon muuta. Mihin sinä haluaisit syventyä?

Tutustu myös edellisen kurssin palautteisiin (ja lisäpalautteisiin).

Opettaja: Tero Karvinen. Paikka: h5001, Haaga-Helia Pasila, Helsinki. Aika: 2p, 2012 loppukevät w13-w20, keskiviikkoisin aamulla 08:15 – 12:00.

Esitiedot (kertaa nämä): Vapaan ohjelman määritelmä, vapaat lisenssit. Linux ja muut välineet, joilla aiot työskennellä. Projektinhallinta.

Aikataulu

w13 Ryhmäytyminen ja aloitus (lähiopetus)

w14 Projektisuunnitelman palautus Moodleen, DL.

w17 Tilannekatsaus (lähiopetus) (muuttunut aika, oli w16)

w18 Lopputuloksen julkaisu DL

w19 Projektien esittely (lähiopetus)

w20 Projektien esittely (lähiopetus)

Suoritukset

Koko kurssin tärkein ja ainut asia on tehdä oma projekti. Tässä sama pilkottuna:

  • Projektisuunnitelma
  • Esitys tilannekatsauksessa
  • Projektin julkaisu
  • Esitys projektien esittelyssä
  • Aktiivinen osallistuminen kaikkeen lähiopetukseen

Järjestelyt

Kurssi koostuu itsenäisestä työskentelystä ja lähiopetuksesta.

Arvosana muodostuu kaikesta palautetusta materiaalista ja esityksestä. Arvioidaan kerralla lopuksi. Osasuoritukset (esim projektisuunnitelma) vaikuttavat osana lopuksi palautettavaa materiaalia, mutta niitä ei arvioida erikseen.

Lähiopetuksessa saat projektiisi uusia näkökulmia kurssikavereilta ja Terolta. Lähiopetusta on vähän, mutta se on tärkeää. Kurssin läpäisemiseksi edellytetään läsnäoloa tunneilla.

Pysy aikataulussa. Sama järjestely kuin “tietoteknisessä selvityshankkeessa”: Myöhästyminen palautusaikatauluista ilman ennakolta hyväksyttyä syytä johtaa kurssin päättymiseen. Myöhästyminen pudottaa arvosanaa 20% per päivä.

Tutustu ryhmien aiheisiin. Ne laitetaan kommentteina tämän viestin perään.

Linkkejä

Järjestelmäprojekti I eli Linux-projekti Moodlessa (vaatii kirjautumisen)

Vanhoja kurssisivuja

Valmiiden projektien esittely – Järjestelmäprojekti ict4tn007-2

Aikataulu – Järjestelmäprojekti ict4tn007-2

Verkon projekti 2007 syksy

Posted in Uncategorized | Tagged , , , , | 23 Comments

Koe – Linux palvelimena ict4tn003-5

Tämä on Linux palvelimena ict4tn003-5 -kurssin käytännön koe. Tehtävät ratkaistaan tyhjillä HP Compaq 8200 -koneilla.

Koetilaisuus on w11 keskiviikkona 2012-03-14 Haaga-Helian tietokonelabrassa h5001.

Tehtävä: IipSix Oy:n käyrät ja kotisivut

Asenna teros-exam*.deb.

Toimitusjohtaja Liisa Laser: “Tervetuloa IipSix Oy:lle! Haluamme tehdä kotisivut. Ja Linuxiinkin pitäisi tutustua.

Laadi käyrät koneen kuormituksesta heti alusta lähtien. Lopuksi (tehtyäsi kaikki muut osat) kirjoita kuvaus siitä, mikä resurssi (cpu, ram…) on ollut milloinkin eniten kuormitettuna.

Asenna minulle WordPress niin, että myös alasivut kestävät kuormaa. Yritämme saada linkin Slashdottiin. Teemat voin asentaa itse SSH:lla. Kirjoita testeihin perustuva arvio siitä, minkä verran kuormaa sivuni kestää.

Ja tee minulle ja Pekalle käyttäjät. ”

Jos tähtäät huippupisteisiin ja muu tuntuu helpolta, käy juttelemassa ATK-tukemme Pekka Propellin kanssa. Pekka: “Kuulin, että Linuxilla voi antaa saman komennon monelle koneelle. Simuloi tätä tekemällä 10 käyttäjää, automatisoimalla ssh-kirjautuminen julkisella avaimella (ssh-keygen ja ssh-copy-id) ja ajamalla whoami yhdellä for-silmukalla kaikilla käyttäjillä.”

Kokeen päättyessä

Varmista ruudunsäästäjän asetuksista, ettei työasema mene lukkoon.

Laita ruudulle testit, jotka osoittavat kaikki palvelusi toimivaksi. Selkeä, yhden vilkaisun esillepano on arvosteltava osa suoritusta.

Kirjoita lyhyt (muutaman virkkeen tai bulletin) luettelo siitä, mikä toimii ja mikä ei toimi. Laita työpöydälle lista käyttäjätunnuksista ja salasanoista. Kirjoita myös oma (sudo) salasanasi kokeen tarkastusta varten. Ota lopuksi ruutukaappaus (PrintScrn-nappi).

Anna palautetta WinhaOpaaliin (vaikka olisit aiemmin kommentoinut kurssia).

Säännöt

Pöydälle saa ottaa: henkilöllisyystodistus, juotavaa, liveromppu. Kännykkä kiinni.

Kiellettyä: Älä kirjaudu muualle kuin tässä kokeessa asentamallesi koneelle (ja WinhaOpaaliin palautteen antamiseksi). Älä vilkuile toisten monitoreja. Älä juttele kenenkään kanssa äläkä muutenkaan kommunikoi kaksisuuntaisesti. Älä käytä mitään muistiinpanoja, jotka eivät ole julkisesti internetissä.

Kiellettyä: Verkkojen ja toisten palveluiden häirintä on kiellettyä. Älä siis käytä kuormitustyökaluja muihin osoitteisiin kuin omaan koneeseesi (localhost). Äläkä lähetä oikeaan HackerNewsiin mitään linkkejä tässä tekemiisi kokeilupalvelimiin.

Sallittua: Nettisurffailu, julkisessa internetissä olevat sivut.

Kokeen valvoja saattaa tarkastella kaikkea, mitä koneilla tehdään. Älä siis käsittele koneilla oikeassa elämässä luottamuksellista materiaalia.

Kokeen jälkeen

Asenna Linux kotiin ja blogaa tekniikasta!

Tervetuloa muillekin kursseilleni: Linuxin keskitetty hallinta (puppet, fabric…), Prototyypin rakentaminen (BotBook.com), Linux-projekti; ja jos olet vapaissa ohjelmissa tosi hyvä, opinnnäyte.

Posted in Uncategorized | Tagged , , | 2 Comments

Koe – Linux palvelimena ict4tn003-3

Tämä on Linux palvelimena ict4tn003-3 -kurssin käytännön koe.

Tehtävät ratkaistiin tyhjillä HP Compaq 8200 -koneilla. Useimmat osallistujat asensivat Ubuntu 11.10 tai Ubuntu 11.04 liverompulta.

Koetilaisuus oli w11 tiistaina 2012-03-13 Haaga-Helian tietokonelabrassa h5001.

Tehtävä: Matkalla HackerNewsiin

“Hei, ja tervetuloa meille hommiin. Minä olen Matti Möttönen, VadelmaPiiri Oy:n toimitusjohtaja. Tarvitsemme hieman julkisuutta tuotteillemme.

Laittaisitko minulle WordPressin? Voisin ylläpitää sitä netin kautta, ja ehkä hieman SSH:nkin yli.

Toivomus olisi saada linkki HackerNewsiin, joten sivuillemme voi tulla melkoinen lössi asiakkaita. Katsothan, että myös WordPressin alasivut latautuvat tehokkaasti? Anna samalla arvio, paljonko kotisivuni kestää kuormaa.”

“Minä olen Maija Möttönen ja vastaan VadelmaPiirin työasemista. Tekisitkö minulle metapaketin, jolla saan kaikissa työasemissa nämä komennot toimimaan: gimp, git, trash, meld ja frozen-buble. ”

Asenna Matin ja Maijan tarvitsemat palvelut. Osoita testein, että ne toimivat.

Kokeen päättyessä

Varmista, ettei työasema mene lukkoon.

Laita ruudulle testit, jotka osoittavat kaikki palvelusi toimivaksi. Selkeä, yhden vilkaisun esillepano on arvosteltava osa suoritusta.

Anna palautetta WinhaOpaaliin (vaikka olisit aiemmin kommentoinut kurssia).

Kokeen jälkeen

Asenna Linux kotiin ja blogaa tekniikasta!

Tervetuloa muillekin kursseilleni: Linuxin keskitetty hallinta (puppet, fabric…), Prototyypin rakentaminen (BotBook.com), Linux-projekti; ja jos olet vapaissa ohjelmissa tosi hyvä, opinnnäyte.

Säännöt

Pöydälle saa ottaa: henkilöllisyystodistus, juotavaa, liveromppu. Kännykkä kiinni.

Kiellettyä: Älä kirjaudu muualle kuin tässä kokeessa asentamallesi koneelle (ja WinhaOpaaliin palautteen antamiseksi). Älä vilkuile toisten monitoreja. Älä juttele kenenkään kanssa äläkä muutenkaan kommunikoi kaksisuuntaisesti. Älä käytä mitään muistiinpanoja, jotka eivät ole julkisesti internetissä.

Kiellettyä: Verkkojen ja toisten palveluiden häirintä on kiellettyä. Älä siis käytä kuormitustyökaluja muihin osoitteisiin kuin omaan koneeseesi (localhost). Äläkä lähetä oikeaan HackerNewsiin mitään linkkejä tässä tekemiisi kokeilupalvelimiin.

Sallittua: Nettisurffailu, julkisessa internetissä olevat sivut.

Kokeen valvoja saattaa tarkastella kaikkea, mitä koneilla tehdään. Älä siis käsittele koneilla oikeassa elämässä luottamuksellista materiaalia.

Posted in Uncategorized | Tagged , , | 1 Comment

Vagrant on Ubuntu 12.04 – Create and Boot New Virtual Machine in Minutes – apt-get install vagrant

Vagrant quickly creates a new virtual machine. Settings like automated ssh login and sudo are handled automatically.

To follow this artice, you should be familiar with command line, apt-get and ssh.

First Time Setup

$ sudo apt-get -y install vagrant
$ vagrant box add lucid32 http://files.vagrantup.com/lucid32.box

Takes 5-10 minutes to download the image.

Creating a New Virtual Machine & SSH Login

$ vagrant init lucid32
$ vagrant up
$ vagrant ssh

Vagrant greeted me with Ubuntu 10.04 login screen on the guest operating system. Vagrant automatically sets up openssh-server, ssh pubkey login and sudo without password (on the guest OS). For example, I could immediately use ‘sudo apt-get update; sudo apt-get install trash-cli’.

What’s Next?

Set web development environment on Vagrant – stay tuned for a new article.

Troubleshooting

“A Vagrant environment is required to run this command. Run `vagrant init` to set one up.” You should run ‘vagrant ssh’ in the folder where your Vagrantfile is. Change folder show that ‘ls’ shows Vagrantfile, then run ‘vagrant ssh’ again.

See also

Hashimoto and Bender 2012: Getting Started with Vagrant

Admnistrivia

Tested on xUbuntu 12.04 precise beta 32bit, Linux 3.2.0-18-generic-pae, vagrant 0.9.5-1, virtualbox 4.1.8-dfsg-2.

Briefly in Finnish: Asenna valmiiksi säädettyjä virtuaalikoneita Vagrantilla.

Posted in Uncategorized | Tagged , , , , , , , | Leave a comment

Windows and Buttons in Python – Ten Lines of PyGTK

It’s easy to write grahical user interface with python.

Write twindow to a text file, then run it.

$ nano twindow.py
$ python twindow

Do you see a window? Does it print some text to command line when you click the button? Well done, you made your first graphical user interface program with Python.

twindow.py

import gtk

def thello(widget):
        print "Button was clicked. http://TeroKarvinen.com/tag/python "
w=gtk.Window()
w.connect("destroy", gtk.main_quit)

b=gtk.Button("Click me")
b.connect("clicked", thello)

w.add(b)

w.show_all()
gtk.main()


Posted in Uncategorized | Tagged , , , , , , | Leave a comment

Reading StackOverflow XML Dump to MySQL Database

StackOverflow data is available for free. To play with the XML data dump, you must insert it into MySQL database. This report shows you how.

This article is not for beginners. To follow this article, you should have the StackOverflow XML data dump. You should know MySQL server, SQL, Python, XML and Linux command line. You should be able to solve problems with these tools. IIRC: This report is written from memory.

Download and Uncompress to get posts.xml

Downloaded “Stack Exchange Data Dump – Sept 2011″ with torrent.

Uncompressed StackOverflow

$ 7z e stackoverflow.com.7z.001

And selected “A(u)to rename all” when asked. Moved the files to a separate dir.

Convert XML to (my)SQL

Converted posts.xml to SQL with this excellent and short SAX parser. Nickname “no” claims it’s his “first python program ever“, which I doubt.

http://paste.org/8946

Here is the updated version:

xml2sql.py

#!/usr/bin/env python
# http://paste.org/8946 "no" 2009
# Updated by Tero Karvinen http://TeroKarvinen.com

import xml.sax.handler
import xml.sax
import sys
class SOHandler(xml.sax.handler.ContentHandler):
        def __init__(self):
                self.errParse = 0

        def startElement(self, name, attributes):
                if name != "row":
                        self.table = name;
                        self.outFile = open(name+".sql","w")
                        self.errfile = open(name+".err","w")
                else:
                        skip = 0
                        currentRow = u"insert into "+self.table+"("
                        for attr in attributes.keys():
                                currentRow += str(attr) + ","
                        currentRow = currentRow[:-1]
                        currentRow += u") values ("
                        for attr in attributes.keys():
                                try:
                                        currentRow += u'"{0}", \
'.format(attributes[attr].replace('\\','\\\\').replace('"', '\\"').replace("'", "\\'"))
                                except UnicodeEncodeError:
                                        self.errParse += 1;
                                        skip = 1;
                                        self.errfile.write(currentRow)
                        if skip != 1:
                                currentRow = currentRow[:-1]
                                currentRow += u");"
                                #print len(attributes.keys())
                                self.outFile.write(currentRow.encode("utf-8"))
                                self.outFile.write("")
                                self.outFile.flush()
                                print currentRow.encode("utf-8");

        def characters(self, data):
                pass

        def endElement(self, name):
                pass

if len(sys.argv) < 2:
        print "Give me an xml file argument!"
        sys.exit(1)

parser = xml.sax.make_parser()
handler = SOHandler()
parser.setContentHandler(handler)

Had to replace backslashes “\” with double backslashes “\\”. Added shebang “#!/usr/bin/env python” and made runnable ‘chmod u+x xml2sql.py’.

$ ./xml2sql.py posts.xml

This created posts.sql. Running the command took a while.

Could also use time, nice, ionice and pv and pipe output to /dev/null.

Create a New Database and User

Changed MySQL root password to one I can remember and logged in as database root.

$ sudo dpkg-reconfigure mysql-server-5.1
$ mysql -u root -p

Created a new user, a database with the same name and granted all priviledges.

mysql> create database sotero;
mysql> grant all on sotero.* to sotero@localhost identified by "NoThisIsNotMyRealPassword_u7ohkA"

Tested

$ mysql -u sotero -p
mysql> use sotero;
Database changed
mysql> exit;

Automated login

$ nano /home/tero/.my.cnf
[client]
user = sotero
database = sotero
password= NoThisIsNotMyRealPassword_u7ohkA

Now ‘mysql’ logged to database without questions.

Inserting SQL into Live Database

First, we have to create the tables (mysql.sql from soddi), use the correct database (before-posts.sql). Then we can insert the data (posts.sql).

Here are the helper files

$ cat before-posts.sql
use sotero;

mysql.sql is from soddi, with minor modifications. (soddi/trunk/soddi/Loaders/Scripts/mysql.sql)

$ hg clone https://bitbucket.org/bitpusher/soddi

$ cp ../../soddi/trunk/soddi/Loaders/Scripts/mysql.sql .

$  perl -p -i -e ‘s/DUMMY/sotero/g’ mysql.sql
$  perl -p -i -e ‘s/VoteTypes/votetypes/g’ mysql.sql
$  perl -p -i -e ‘s/PostTypes/posttypes/g’ mysql.sql

Then I run the actual insertion command

$ cat mysql.sql before-posts.sql posts.sql |mysql

This took a long time. I’m still waiting, and ‘SELECT COUNT(id) FROM posts;’ says over five million. But we can keep playing with the data while we wait.

Playing with the data

mysql> SELECT id, title, score FROM posts LIMIT 3;
+----+-------------------------------------------------------------------------------------+-------+
| id | title                                                                               | score |
+----+-------------------------------------------------------------------------------------+-------+
|  4 | When setting a form's opacity should I use a decimal or double?                     |    83 |
|  6 | Why doesn't the percentage width child in absolutely positioned parent work in IE7? |    20 |
|  7 | NULL                                                                                |    84 |
+----+-------------------------------------------------------------------------------------+-------+
3 rows in set (0.00 sec)

mysql> desc posts;
+-----------------------+--------------+------+-----+---------+-------+
| Field                 | Type         | Null | Key | Default | Extra |
+-----------------------+--------------+------+-----+---------+-------+
| Id                    | int(11)      | NO   | PRI | NULL    |       |
| AcceptedAnswerId      | int(11)      | YES  |     | NULL    |       |
| AnswerCount           | int(11)      | YES  |     | NULL    |       |
| Body                  | longtext     | NO   |     | NULL    |       |
| ClosedDate            | datetime     | YES  |     | NULL    |       |
| CommentCount          | int(11)      | YES  |     | NULL    |       |
| CommunityOwnedDate    | datetime     | YES  |     | NULL    |       |
| CreationDate          | datetime     | NO   |     | NULL    |       |
| FavoriteCount         | int(11)      | YES  |     | NULL    |       |
| LastActivityDate      | datetime     | NO   |     | NULL    |       |
| LastEditDate          | datetime     | YES  |     | NULL    |       |
| LastEditorDisplayName | varchar(40)  | YES  |     | NULL    |       |
| LastEditorUserId      | int(11)      | YES  |     | NULL    |       |
| OwnerUserId           | int(11)      | YES  |     | NULL    |       |
| ParentId              | int(11)      | YES  |     | NULL    |       |
| PostTypeId            | int(11)      | NO   |     | NULL    |       |
| Score                 | int(11)      | NO   |     | NULL    |       |
| Tags                  | varchar(150) | YES  |     | NULL    |       |
| Title                 | varchar(250) | YES  |     | NULL    |       |
| ViewCount             | int(11)      | NO   |     | NULL    |       |
+-----------------------+--------------+------+-----+---------+-------+
20 rows in set (0.00 sec)

Enjoy Your Data!

Even though the insert is still running, we can start honing our queries. It’s much nicer to practice SQL with real data than inserting ten records by hand.

Posted in Uncategorized | Tagged , , , , , | Leave a comment
  • Picks

  • Boxing Clock for AndroidOcton8 Diving T-ShirtsShaking Tower Panda Android GameLearn Chinese with Android
  • Student projects